Changeset 45670 in vbox for trunk/src/VBox/Devices
- Timestamp:
- Apr 22, 2013 3:46:03 PM (12 years ago)
- Location:
- trunk/src/VBox/Devices
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/BiosCommonCode/MakeAlternativeSource.cpp
r45045 r45670 966 966 && pb[5] == 0x58 967 967 ) 968 || ( pb[0] == 0x 72/* _pci16_function switch */968 || ( pb[0] == 0xc9 /* _pci16_function switch */ 969 969 && pb[1] == 0x8d 970 && pb[2] == 0x 8c970 && pb[2] == 0xe3 971 971 && pb[3] == 0x8d 972 && pb[4] == 0x 9f972 && pb[4] == 0xf6 973 973 && pb[5] == 0x8d 974 974 ) 975 || ( pb[0] == 0x d0/* _int1a_function switch */975 || ( pb[0] == 0xa3 /* _int1a_function switch */ 976 976 && pb[1] == 0x67 977 && pb[2] == 0x f7977 && pb[2] == 0xca 978 978 && pb[3] == 0x67 979 && pb[4] == 0x 1c980 && pb[5] == 0x6 8979 && pb[4] == 0xef 980 && pb[5] == 0x67 981 981 ) 982 982 || ( pb[0] == 0x0b /* _ahci_init byte table */ -
trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative.asm
r44751 r45670 794 794 section _DATA progbits vstart=0x0 align=1 ; size=0x40 class=DATA group=DGROUP 795 795 _pktacc: ; 0xf0000 LB 0xc 796 db 000h, 000h, 000h, 000h, 000h, 000h, 0e ah, 027h, 08dh, 075h, 0adh, 082h796 db 000h, 000h, 000h, 000h, 000h, 000h, 0e4h, 027h, 0f9h, 075h, 019h, 083h 797 797 _softrst: ; 0xf000c LB 0xc 798 db 000h, 000h, 000h, 000h, 000h, 000h, 0c dh, 02ah, 000h, 000h, 000h, 000h798 db 000h, 000h, 000h, 000h, 000h, 000h, 0c7h, 02ah, 000h, 000h, 000h, 000h 799 799 _dskacc: ; 0xf0018 LB 0x28 800 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 03 9h, 027h, 0b0h, 027h, 000h, 000h, 000h, 000h801 db 0 2bh, 074h, 0dch, 074h, 0afh, 081h, 040h, 082h, 05fh, 033h, 032h, 05fh, 000h, 0dah, 00fh, 000h800 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 033h, 027h, 0aah, 027h, 000h, 000h, 000h, 000h 801 db 097h, 074h, 048h, 075h, 01bh, 082h, 0ach, 082h, 05fh, 033h, 032h, 05fh, 000h, 0dah, 00fh, 000h 802 802 db 000h, 001h, 0f3h, 000h, 000h, 000h, 000h, 000h 803 803 … … 994 994 times 1254 db 0 995 995 996 section _TEXT progbits vstart=0x1600 align=1 ; size=0x7 aa5 class=CODE group=AUTO996 section _TEXT progbits vstart=0x1600 align=1 ; size=0x7b05 class=CODE group=AUTO 997 997 read_byte_: ; 0xf1600 LB 0xe 998 998 push bx ; 53 … … 1185 1185 pop bp ; 5d 1186 1186 retn ; c3 1187 call 07 097h ; e8 48591187 call 07103h ; e8 b4 59 1188 1188 pop bp ; 5d 1189 1189 retn ; c3 … … 1318 1318 mov bx, strict word 0000ah ; bb 0a 00 1319 1319 xor cx, cx ; 31 c9 1320 call 0 8fb0h ; e8 57 771320 call 09010h ; e8 b7 77 1321 1321 mov word [bp-004h], ax ; 89 46 fc 1322 1322 mov cx, dx ; 89 d1 … … 1394 1394 pop bx ; 5b 1395 1395 retn ; c3 1396 bios_printf_: ; 0xf18e9 LB 0x23 c1396 bios_printf_: ; 0xf18e9 LB 0x236 1397 1397 push bx ; 53 1398 1398 push cx ; 51 … … 1409 1409 and ax, strict word 00007h ; 25 07 00 1410 1410 cmp ax, strict word 00007h ; 3d 07 00 1411 jne short 0191bh ; 75 11 1412 xor al, al ; 30 c0 1413 mov dx, 00401h ; ba 01 04 1414 out DX, AL ; ee 1411 jne short 01915h ; 75 0b 1415 1412 push strict word 0006eh ; 68 6e 00 1416 1413 push strict byte 00002h ; 6a 02 1417 call 018e9h ; e8 d 1ff1414 call 018e9h ; e8 d7 ff 1418 1415 add sp, strict byte 00004h ; 83 c4 04 1419 1416 mov bx, word [bp+010h] ; 8b 5e 10 1420 1417 mov dl, byte [bx] ; 8a 17 1421 1418 test dl, dl ; 84 d2 1422 je near 01b0 ch ; 0f 84 e6 011419 je near 01b06h ; 0f 84 e6 01 1423 1420 cmp dl, 025h ; 80 fa 25 1424 jne short 019 33h ; 75 081421 jne short 0192dh ; 75 08 1425 1422 mov cx, strict word 00001h ; b9 01 00 1426 1423 xor si, si ; 31 f6 1427 jmp near 01b0 6h ; e9 d3 011424 jmp near 01b00h ; e9 d3 01 1428 1425 test cx, cx ; 85 c9 1429 je near 01af eh ; 0f 84 c5 011426 je near 01af8h ; 0f 84 c5 01 1430 1427 cmp dl, 030h ; 80 fa 30 1431 jc short 019 51h ; 72 131428 jc short 0194bh ; 72 13 1432 1429 cmp dl, 039h ; 80 fa 39 1433 jnbe short 019 51h ; 77 0e1430 jnbe short 0194bh ; 77 0e 1434 1431 movzx ax, dl ; 0f b6 c2 1435 1432 imul si, si, strict byte 0000ah ; 6b f6 0a 1436 1433 sub ax, strict word 00030h ; 2d 30 00 1437 1434 add si, ax ; 01 c6 1438 jmp near 01b0 6h ; e9 b5 011435 jmp near 01b00h ; e9 b5 01 1439 1436 mov ax, word [bp-006h] ; 8b 46 fa 1440 1437 mov word [bp-006h], ax ; 89 46 fa … … 1444 1441 mov word [bp-002h], ax ; 89 46 fe 1445 1442 cmp dl, 078h ; 80 fa 78 1446 je short 0196 fh ; 74 051443 je short 01969h ; 74 05 1447 1444 cmp dl, 058h ; 80 fa 58 1448 jne short 019b 8h ; 75 491445 jne short 019b2h ; 75 49 1449 1446 test si, si ; 85 f6 1450 jne short 0197 6h ; 75 031447 jne short 01970h ; 75 03 1451 1448 mov si, strict word 00004h ; be 04 00 1452 1449 cmp dl, 078h ; 80 fa 78 1453 jne short 019 80h ; 75 051450 jne short 0197ah ; 75 05 1454 1451 mov di, strict word 00061h ; bf 61 00 1455 jmp short 019 83h ; eb 031452 jmp short 0197dh ; eb 03 1456 1453 mov di, strict word 00041h ; bf 41 00 1457 1454 lea bx, [si-001h] ; 8d 5c ff 1458 1455 test bx, bx ; 85 db 1459 jl near 01af ah ; 0f 8c 6e 011456 jl near 01af4h ; 0f 8c 6e 01 1460 1457 mov cx, bx ; 89 d9 1461 1458 sal cx, 002h ; c1 e1 02 … … 1465 1462 and AL, strict byte 00fh ; 24 0f 1466 1463 cmp ax, strict word 00009h ; 3d 09 00 1467 jnbe short 019a 6h ; 77 071464 jnbe short 019a0h ; 77 07 1468 1465 mov dx, ax ; 89 c2 1469 1466 add dx, strict byte 00030h ; 83 c2 30 1470 jmp short 019a dh ; eb 071467 jmp short 019a7h ; eb 07 1471 1468 mov dx, ax ; 89 c2 1472 1469 sub dx, strict byte 0000ah ; 83 ea 0a … … 1474 1471 xor dh, dh ; 30 f6 1475 1472 mov ax, word [bp+00eh] ; 8b 46 0e 1476 call 01751h ; e8 9cfd1473 call 01751h ; e8 a2 fd 1477 1474 dec bx ; 4b 1478 jmp short 0198 6h ; eb ce1475 jmp short 01980h ; eb ce 1479 1476 cmp dl, 075h ; 80 fa 75 1480 jne short 019c ch ; 75 0f1477 jne short 019c6h ; 75 0f 1481 1478 xor cx, cx ; 31 c9 1482 1479 mov bx, si ; 89 f3 1483 1480 mov dx, ax ; 89 c2 1484 1481 mov ax, word [bp+00eh] ; 8b 46 0e 1485 call 017e4h ; e8 1bfe1486 jmp near 01af ah ; e9 2e 011482 call 017e4h ; e8 21 fe 1483 jmp near 01af4h ; e9 2e 01 1487 1484 lea bx, [si-001h] ; 8d 5c ff 1488 1485 cmp dl, 06ch ; 80 fa 6c 1489 jne near 01a8 8h ; 0f 85 b2 001486 jne near 01a82h ; 0f 85 b2 00 1490 1487 inc word [bp+010h] ; ff 46 10 1491 1488 mov di, word [bp+010h] ; 8b 7e 10 … … 1498 1495 mov word [bp-004h], ax ; 89 46 fc 1499 1496 cmp dl, 064h ; 80 fa 64 1500 jne short 01a 24h ; 75 2d1497 jne short 01a1eh ; 75 2d 1501 1498 test byte [bp-003h], 080h ; f6 46 fd 80 1502 je short 01a 12h ; 74 151499 je short 01a0ch ; 74 15 1503 1500 push strict byte 00001h ; 6a 01 1504 1501 mov ax, word [bp-002h] ; 8b 46 fe … … 1509 1506 mov dx, bx ; 89 da 1510 1507 mov bx, ax ; 89 c3 1511 jmp short 01a1 bh ; eb 091508 jmp short 01a15h ; eb 09 1512 1509 push strict byte 00000h ; 6a 00 1513 1510 mov bx, word [bp-002h] ; 8b 5e fe … … 1515 1512 mov cx, ax ; 89 c1 1516 1513 mov ax, word [bp+00eh] ; 8b 46 0e 1517 call 01840h ; e8 1ffe1518 jmp near 01af ah ; e9 d6 001514 call 01840h ; e8 25 fe 1515 jmp near 01af4h ; e9 d6 00 1519 1516 cmp dl, 075h ; 80 fa 75 1520 jne short 01a2 bh ; 75 021521 jmp short 01a 12h ; eb e71517 jne short 01a25h ; 75 02 1518 jmp short 01a0ch ; eb e7 1522 1519 cmp dl, 078h ; 80 fa 78 1523 je short 01a3 7h ; 74 071520 je short 01a31h ; 74 07 1524 1521 cmp dl, 058h ; 80 fa 58 1525 jne near 01af ah ; 0f 85 c3 001522 jne near 01af4h ; 0f 85 c3 00 1526 1523 test si, si ; 85 f6 1527 jne short 01a3 eh ; 75 031524 jne short 01a38h ; 75 03 1528 1525 mov si, strict word 00008h ; be 08 00 1529 1526 cmp dl, 078h ; 80 fa 78 1530 jne short 01a4 8h ; 75 051527 jne short 01a42h ; 75 05 1531 1528 mov di, strict word 00061h ; bf 61 00 1532 jmp short 01a4 bh ; eb 031529 jmp short 01a45h ; eb 03 1533 1530 mov di, strict word 00041h ; bf 41 00 1534 1531 lea bx, [si-001h] ; 8d 5c ff 1535 1532 test bx, bx ; 85 db 1536 jl near 01af ah ; 0f 8c a6 001533 jl near 01af4h ; 0f 8c a6 00 1537 1534 mov ax, word [bp-002h] ; 8b 46 fe 1538 1535 mov cx, bx ; 89 d9 1539 1536 sal cx, 002h ; c1 e1 02 1540 1537 mov dx, word [bp-004h] ; 8b 56 fc 1541 jcxz 01a6 7h ; e3 061538 jcxz 01a61h ; e3 06 1542 1539 shr dx, 1 ; d1 ea 1543 1540 rcr ax, 1 ; d1 d8 1544 loop 01a 61h ; e2 fa1541 loop 01a5bh ; e2 fa 1545 1542 and ax, strict word 0000fh ; 25 0f 00 1546 1543 cmp ax, strict word 00009h ; 3d 09 00 1547 jnbe short 01a7 6h ; 77 071544 jnbe short 01a70h ; 77 07 1548 1545 mov dx, ax ; 89 c2 1549 1546 add dx, strict byte 00030h ; 83 c2 30 1550 jmp short 01a7 dh ; eb 071547 jmp short 01a77h ; eb 07 1551 1548 mov dx, ax ; 89 c2 1552 1549 sub dx, strict byte 0000ah ; 83 ea 0a … … 1554 1551 xor dh, dh ; 30 f6 1555 1552 mov ax, word [bp+00eh] ; 8b 46 0e 1556 call 01751h ; e8 ccfc1553 call 01751h ; e8 d2 fc 1557 1554 dec bx ; 4b 1558 jmp short 01a4 eh ; eb c61555 jmp short 01a48h ; eb c6 1559 1556 cmp dl, 064h ; 80 fa 64 1560 jne short 01aa ah ; 75 1d1557 jne short 01aa4h ; 75 1d 1561 1558 test byte [bp-001h], 080h ; f6 46 ff 80 1562 je short 01a9 ch ; 74 091559 je short 01a96h ; 74 09 1563 1560 mov dx, ax ; 89 c2 1564 1561 neg dx ; f7 da 1565 1562 mov cx, strict word 00001h ; b9 01 00 1566 jmp short 01a a2h ; eb 061563 jmp short 01a9ch ; eb 06 1567 1564 xor cx, cx ; 31 c9 1568 1565 mov bx, si ; 89 f3 1569 1566 mov dx, ax ; 89 c2 1570 1567 mov ax, word [bp+00eh] ; 8b 46 0e 1571 call 01789h ; e8 e 1fc1572 jmp short 01af ah ; eb 501568 call 01789h ; e8 e7 fc 1569 jmp short 01af4h ; eb 50 1573 1570 cmp dl, 073h ; 80 fa 73 1574 jne short 01ab bh ; 75 0c1571 jne short 01ab5h ; 75 0c 1575 1572 mov cx, ds ; 8c d9 1576 1573 mov bx, ax ; 89 c3 1577 1574 mov ax, word [bp+00eh] ; 8b 46 0e 1578 call 018aeh ; e8 f 5fd1579 jmp short 01af ah ; eb 3f1575 call 018aeh ; e8 fb fd 1576 jmp short 01af4h ; eb 3f 1580 1577 cmp dl, 053h ; 80 fa 53 1581 jne short 01ad eh ; 75 1e1578 jne short 01ad8h ; 75 1e 1582 1579 mov word [bp-004h], ax ; 89 46 fc 1583 1580 mov ax, word [bp-006h] ; 8b 46 fa … … 1589 1586 mov bx, ax ; 89 c3 1590 1587 mov cx, word [bp-004h] ; 8b 4e fc 1591 jmp short 01a b3h ; eb d51588 jmp short 01aadh ; eb d5 1592 1589 cmp dl, 063h ; 80 fa 63 1593 jne short 01ae fh ; 75 0c1590 jne short 01ae9h ; 75 0c 1594 1591 movzx dx, byte [bp-002h] ; 0f b6 56 fe 1595 1592 mov ax, word [bp+00eh] ; 8b 46 0e 1596 call 01751h ; e8 6 4fc1597 jmp short 01af ah ; eb 0b1593 call 01751h ; e8 6a fc 1594 jmp short 01af4h ; eb 0b 1598 1595 push strict word 00076h ; 68 76 00 1599 1596 push strict byte 00007h ; 6a 07 1600 call 018e9h ; e8 f 2fd1597 call 018e9h ; e8 f8 fd 1601 1598 add sp, strict byte 00004h ; 83 c4 04 1602 1599 xor cx, cx ; 31 c9 1603 jmp short 01b0 6h ; eb 081600 jmp short 01b00h ; eb 08 1604 1601 xor dh, dh ; 30 f6 1605 1602 mov ax, word [bp+00eh] ; 8b 46 0e 1606 call 01751h ; e8 4bfc1603 call 01751h ; e8 51 fc 1607 1604 inc word [bp+010h] ; ff 46 10 1608 jmp near 0191 bh ; e9 0f fe1605 jmp near 01915h ; e9 0f fe 1609 1606 xor ax, ax ; 31 c0 1610 1607 mov word [bp-008h], ax ; 89 46 f8 1611 1608 mov word [bp-006h], ax ; 89 46 fa 1612 1609 test byte [bp+00eh], 001h ; f6 46 0e 01 1613 je short 01b1 eh ; 74 041610 je short 01b18h ; 74 04 1614 1611 cli ; fa 1615 1612 hlt ; f4 1616 jmp short 01b1 bh ; eb fd1613 jmp short 01b15h ; eb fd 1617 1614 leave ; c9 1618 1615 pop di ; 5f … … 1622 1619 pop bx ; 5b 1623 1620 retn ; c3 1624 _ata_init: ; 0xf1b 25LB 0xc11621 _ata_init: ; 0xf1b1f LB 0xc1 1625 1622 push si ; 56 1626 1623 push bp ; 55 … … 1628 1625 mov dx, strict word 0000eh ; ba 0e 00 1629 1626 mov ax, strict word 00040h ; b8 40 00 1630 call 0161ch ; e8 eafa1627 call 0161ch ; e8 f0 fa 1631 1628 mov si, 00122h ; be 22 01 1632 1629 mov dx, ax ; 89 c2 1633 1630 xor al, al ; 30 c0 1634 jmp short 01b3 fh ; eb 041631 jmp short 01b39h ; eb 04 1635 1632 cmp AL, strict byte 004h ; 3c 04 1636 jnc short 01b 63h ; 73 241633 jnc short 01b5dh ; 73 24 1637 1634 movzx bx, al ; 0f b6 d8 1638 1635 imul bx, bx, strict byte 00006h ; 6b db 06 … … 1645 1642 db 0feh, 0c0h 1646 1643 ; inc al ; fe c0 1647 jmp short 01b3 bh ; eb d81644 jmp short 01b35h ; eb d8 1648 1645 xor al, al ; 30 c0 1649 jmp short 01b6 bh ; eb 041646 jmp short 01b65h ; eb 04 1650 1647 cmp AL, strict byte 008h ; 3c 08 1651 jnc short 01bb 6h ; 73 4b1648 jnc short 01bb0h ; 73 4b 1652 1649 movzx bx, al ; 0f b6 d8 1653 1650 imul bx, bx, strict byte 00018h ; 6b db 18 … … 1669 1666 db 0feh, 0c0h 1670 1667 ; inc al ; fe c0 1671 jmp short 01b6 7h ; eb b11668 jmp short 01b61h ; eb b1 1672 1669 xor al, al ; 30 c0 1673 jmp short 01bb eh ; eb 041670 jmp short 01bb8h ; eb 04 1674 1671 cmp AL, strict byte 010h ; 3c 10 1675 jnc short 01b d5h ; 73 171672 jnc short 01bcfh ; 73 17 1676 1673 movzx bx, al ; 0f b6 d8 1677 1674 mov es, dx ; 8e c2 … … 1681 1678 db 0feh, 0c0h 1682 1679 ; inc al ; fe c0 1683 jmp short 01bb ah ; eb e51680 jmp short 01bb4h ; eb e5 1684 1681 mov es, dx ; 8e c2 1685 1682 mov byte [es:si+0019eh], 000h ; 26 c6 84 9e 01 00 … … 1688 1685 pop si ; 5e 1689 1686 retn ; c3 1690 ata_reset_: ; 0xf1be 6LB 0xda1687 ata_reset_: ; 0xf1be0 LB 0xda 1691 1688 push bx ; 53 1692 1689 push cx ; 51 … … 1698 1695 mov dx, strict word 0000eh ; ba 0e 00 1699 1696 mov ax, strict word 00040h ; b8 40 00 1700 call 0161ch ; e8 2 3fa1697 call 0161ch ; e8 29 fa 1701 1698 mov word [bp-004h], 00122h ; c7 46 fc 22 01 1702 1699 mov di, ax ; 89 c7 … … 1718 1715 dec bx ; 4b 1719 1716 test bx, bx ; 85 db 1720 jbe short 01c3 dh ; 76 0c1717 jbe short 01c37h ; 76 0c 1721 1718 mov dx, cx ; 89 ca 1722 1719 add dx, strict byte 00007h ; 83 c2 07 … … 1725 1722 ; sub ah, ah ; 2a e4 1726 1723 test AL, strict byte 080h ; a8 80 1727 je short 01c2 ch ; 74 ef1724 je short 01c26h ; 74 ef 1728 1725 lea dx, [si+006h] ; 8d 54 06 1729 1726 mov AL, strict byte 00ah ; b0 0a … … 1733 1730 add bx, word [bp-004h] ; 03 5e fc 1734 1731 cmp byte [es:bx+01eh], 000h ; 26 80 7f 1e 00 1735 je short 01c9 fh ; 74 4c1732 je short 01c99h ; 74 4c 1736 1733 cmp byte [bp-002h], 000h ; 80 7e fe 00 1737 je short 01c5 eh ; 74 051734 je short 01c58h ; 74 05 1738 1735 mov ax, 000b0h ; b8 b0 00 1739 jmp short 01c 61h ; eb 031736 jmp short 01c5bh ; eb 03 1740 1737 mov ax, 000a0h ; b8 a0 00 1741 1738 mov dx, cx ; 89 ca … … 1755 1752 ; sub ah, ah ; 2a e4 1756 1753 cmp bl, 001h ; 80 fb 01 1757 jne short 01c9 fh ; 75 221754 jne short 01c99h ; 75 22 1758 1755 cmp al, bl ; 38 d8 1759 jne short 01c9 fh ; 75 1e1756 jne short 01c99h ; 75 1e 1760 1757 mov bx, strict word 0ffffh ; bb ff ff 1761 1758 dec bx ; 4b 1762 1759 test bx, bx ; 85 db 1763 jbe short 01c9 fh ; 76 161760 jbe short 01c99h ; 76 16 1764 1761 mov dx, cx ; 89 ca 1765 1762 add dx, strict byte 00007h ; 83 c2 07 … … 1768 1765 ; sub ah, ah ; 2a e4 1769 1766 test AL, strict byte 080h ; a8 80 1770 je short 01c9 fh ; 74 0a1767 je short 01c99h ; 74 0a 1771 1768 mov ax, strict word 0ffffh ; b8 ff ff 1772 1769 dec ax ; 48 1773 1770 test ax, ax ; 85 c0 1774 jnbe short 01c9 8h ; 77 fb1775 jmp short 01c 84h ; eb e51771 jnbe short 01c92h ; 77 fb 1772 jmp short 01c7eh ; eb e5 1776 1773 mov bx, strict word 00010h ; bb 10 00 1777 1774 dec bx ; 4b 1778 1775 test bx, bx ; 85 db 1779 jbe short 01c b3h ; 76 0c1776 jbe short 01cadh ; 76 0c 1780 1777 mov dx, cx ; 89 ca 1781 1778 add dx, strict byte 00007h ; 83 c2 07 … … 1784 1781 ; sub ah, ah ; 2a e4 1785 1782 test AL, strict byte 040h ; a8 40 1786 je short 01c a2h ; 74 ef1783 je short 01c9ch ; 74 ef 1787 1784 lea dx, [si+006h] ; 8d 54 06 1788 1785 mov AL, strict byte 008h ; b0 08 … … 1795 1792 pop bx ; 5b 1796 1793 retn ; c3 1797 ata_cmd_data_in_: ; 0xf1c c0LB 0x2531794 ata_cmd_data_in_: ; 0xf1cba LB 0x253 1798 1795 push si ; 56 1799 1796 push di ; 57 … … 1824 1821 mov word [bp-008h], ax ; 89 46 f8 1825 1822 test ax, ax ; 85 c0 1826 jne short 01d2 6h ; 75 141823 jne short 01d20h ; 75 14 1827 1824 cmp byte [bp-002h], 001h ; 80 7e fe 01 1828 jne short 01d1 fh ; 75 071825 jne short 01d19h ; 75 07 1829 1826 mov word [bp-008h], 04000h ; c7 46 f8 00 40 1830 jmp short 01d 35h ; eb 161827 jmp short 01d2fh ; eb 16 1831 1828 mov word [bp-008h], 08000h ; c7 46 f8 00 80 1832 jmp short 01d 35h ; eb 0f1829 jmp short 01d2fh ; eb 0f 1833 1830 cmp byte [bp-002h], 001h ; 80 7e fe 01 1834 jne short 01d 32h ; 75 061831 jne short 01d2ch ; 75 06 1835 1832 shr word [bp-008h], 002h ; c1 6e f8 02 1836 jmp short 01d 35h ; eb 031833 jmp short 01d2fh ; eb 03 1837 1834 shr word [bp-008h], 1 ; d1 6e f8 1838 1835 lea dx, [bx+007h] ; 8d 57 07 … … 1841 1838 ; sub ah, ah ; 2a e4 1842 1839 test AL, strict byte 080h ; a8 80 1843 je short 01d4 eh ; 74 0f1840 je short 01d48h ; 74 0f 1844 1841 mov dx, word [bp-018h] ; 8b 56 e8 1845 1842 add dx, strict byte 00006h ; 83 c2 06 … … 1847 1844 out DX, AL ; ee 1848 1845 mov dx, strict word 00001h ; ba 01 00 1849 jmp near 01f0 dh ; e9 bf 011846 jmp near 01f07h ; e9 bf 01 1850 1847 mov es, [bp-006h] ; 8e 46 fa 1851 1848 mov ax, word [es:si] ; 26 8b 04 … … 1864 1861 mov ax, word [bp-00ch] ; 8b 46 f4 1865 1862 test ax, ax ; 85 c0 1866 jne short 01de ch ; 75 671863 jne short 01de6h ; 75 67 1867 1864 mov dx, word [bp-01ch] ; 8b 56 e4 1868 1865 add dx, word [bp-010h] ; 03 56 f0 1869 1866 adc ax, word [bp-01ah] ; 13 46 e6 1870 1867 cmp ax, 01000h ; 3d 00 10 1871 jnbe short 01d 95h ; 77 021872 jne short 01d c0h ; 75 2b1868 jnbe short 01d8fh ; 77 02 1869 jne short 01dbah ; 75 2b 1873 1870 mov ax, word [bp-01ah] ; 8b 46 e6 1874 1871 xor al, al ; 30 c0 … … 1895 1892 shr word [bp-01ah], 1 ; d1 6e e6 1896 1893 rcr word [bp-01ch], 1 ; d1 5e e4 1897 loop 01dc bh ; e2 f81894 loop 01dc5h ; e2 f8 1898 1895 mov ax, word [bp-01ch] ; 8b 46 e4 1899 1896 mov word [bp-00eh], ax ; 89 46 f2 … … 1924 1921 out DX, AL ; ee 1925 1922 cmp byte [bp-004h], 000h ; 80 7e fc 00 1926 je short 01e 22h ; 74 051923 je short 01e1ch ; 74 05 1927 1924 mov ax, 000b0h ; b8 b0 00 1928 jmp short 01e 25h ; eb 031925 jmp short 01e1fh ; eb 03 1929 1926 mov ax, 000a0h ; b8 a0 00 1930 1927 movzx dx, byte [bp-014h] ; 0f b6 56 ec … … 1937 1934 mov ax, word [bp-012h] ; 8b 46 ee 1938 1935 cmp ax, 000c4h ; 3d c4 00 1939 je short 01e 43h ; 74 051936 je short 01e3dh ; 74 05 1940 1937 cmp ax, strict word 00029h ; 3d 29 00 1941 jne short 01e 50h ; 75 0d1938 jne short 01e4ah ; 75 0d 1942 1939 mov ax, word [bp-010h] ; 8b 46 f0 1943 1940 mov word [bp-016h], ax ; 89 46 ea 1944 1941 mov word [bp-010h], strict word 00001h ; c7 46 f0 01 00 1945 jmp short 01e 55h ; eb 051942 jmp short 01e4fh ; eb 05 1946 1943 mov word [bp-016h], strict word 00001h ; c7 46 ea 01 00 1947 1944 lea dx, [bx+007h] ; 8d 57 07 … … 1951 1948 mov dl, al ; 88 c2 1952 1949 test AL, strict byte 080h ; a8 80 1953 jne short 01e 55h ; 75 f41950 jne short 01e4fh ; 75 f4 1954 1951 test AL, strict byte 001h ; a8 01 1955 je short 01e 74h ; 74 0f1952 je short 01e6eh ; 74 0f 1956 1953 mov dx, word [bp-018h] ; 8b 56 e8 1957 1954 add dx, strict byte 00006h ; 83 c2 06 … … 1959 1956 out DX, AL ; ee 1960 1957 mov dx, strict word 00002h ; ba 02 00 1961 jmp near 01f0 dh ; e9 99 001958 jmp near 01f07h ; e9 99 00 1962 1959 test dl, 008h ; f6 c2 08 1963 jne short 01e8 8h ; 75 0f1960 jne short 01e82h ; 75 0f 1964 1961 mov dx, word [bp-018h] ; 8b 56 e8 1965 1962 add dx, strict byte 00006h ; 83 c2 06 … … 1967 1964 out DX, AL ; ee 1968 1965 mov dx, strict word 00003h ; ba 03 00 1969 jmp near 01f0 dh ; e9 85 001966 jmp near 01f07h ; e9 85 00 1970 1967 sti ; fb 1971 1968 cmp di, 0f800h ; 81 ff 00 f8 1972 jc short 01e9 ch ; 72 0d1969 jc short 01e96h ; 72 0d 1973 1970 sub di, 00800h ; 81 ef 00 08 1974 1971 mov ax, word [bp-00ah] ; 8b 46 f6 … … 1976 1973 mov word [bp-00ah], ax ; 89 46 f6 1977 1974 cmp byte [bp-002h], 001h ; 80 7e fe 01 1978 jne short 01ea fh ; 75 0d1975 jne short 01ea9h ; 75 0d 1979 1976 mov dx, bx ; 89 da 1980 1977 mov cx, word [bp-008h] ; 8b 4e f8 … … 1982 1979 db 0f3h, 066h, 06dh 1983 1980 ; rep insd ; f3 66 6d 1984 jmp short 01eb 9h ; eb 0a1981 jmp short 01eb3h ; eb 0a 1985 1982 mov dx, bx ; 89 da 1986 1983 mov cx, word [bp-008h] ; 8b 4e f8 … … 1997 1994 mov dl, al ; 88 c2 1998 1995 test AL, strict byte 080h ; a8 80 1999 jne short 01ec 6h ; 75 f41996 jne short 01ec0h ; 75 f4 2000 1997 cmp word [bp-010h], strict byte 00000h ; 83 7e f0 00 2001 jne short 01ee ch ; 75 141998 jne short 01ee6h ; 75 14 2002 1999 and AL, strict byte 0c9h ; 24 c9 2003 2000 cmp AL, strict byte 040h ; 3c 40 2004 je short 01 f02h ; 74 242001 je short 01efch ; 74 24 2005 2002 mov dx, word [bp-018h] ; 8b 56 e8 2006 2003 add dx, strict byte 00006h ; 83 c2 06 … … 2008 2005 out DX, AL ; ee 2009 2006 mov dx, strict word 00004h ; ba 04 00 2010 jmp short 01f0 dh ; eb 212007 jmp short 01f07h ; eb 21 2011 2008 mov al, dl ; 88 d0 2012 2009 and AL, strict byte 0c9h ; 24 c9 2013 2010 cmp AL, strict byte 048h ; 3c 48 2014 je short 01e8 9h ; 74 952011 je short 01e83h ; 74 95 2015 2012 mov dx, word [bp-018h] ; 8b 56 e8 2016 2013 add dx, strict byte 00006h ; 83 c2 06 … … 2018 2015 out DX, AL ; ee 2019 2016 mov dx, strict word 00005h ; ba 05 00 2020 jmp short 01f0 dh ; eb 0b2017 jmp short 01f07h ; eb 0b 2021 2018 mov dx, word [bp-018h] ; 8b 56 e8 2022 2019 add dx, strict byte 00006h ; 83 c2 06 … … 2029 2026 pop si ; 5e 2030 2027 retn ; c3 2031 _ata_detect: ; 0xf1f 13LB 0x6112028 _ata_detect: ; 0xf1f0d LB 0x611 2032 2029 push si ; 56 2033 2030 push di ; 57 … … 2035 2032 mov dx, strict word 0000eh ; ba 0e 00 2036 2033 mov ax, strict word 00040h ; b8 40 00 2037 call 0161ch ; e8 fa f62034 call 0161ch ; e8 00 f7 2038 2035 mov word [bp-020h], ax ; 89 46 e0 2039 2036 mov di, 00122h ; bf 22 01 … … 2053 2050 mov byte [bp-002h], al ; 88 46 fe 2054 2051 mov byte [bp-00ah], al ; 88 46 f6 2055 jmp near 024 b2h ; e9 48 052052 jmp near 024ach ; e9 48 05 2056 2053 mov ax, 000a0h ; b8 a0 00 2057 2054 lea dx, [si+006h] ; 8d 54 06 … … 2085 2082 ; sub ah, ah ; 2a e4 2086 2083 cmp cl, 055h ; 80 f9 55 2087 jne near 020 64h ; 0f 85 c0 002084 jne near 0205eh ; 0f 85 c0 00 2088 2085 cmp AL, strict byte 0aah ; 3c aa 2089 jne near 020 64h ; 0f 85 ba 002086 jne near 0205eh ; 0f 85 ba 00 2090 2087 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 2091 2088 imul ax, ax, strict byte 00018h ; 6b c0 18 … … 2094 2091 mov byte [es:bx+01eh], 001h ; 26 c6 47 1e 01 2095 2092 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 2096 call 01be 6h ; e8 24 fc2093 call 01be0h ; e8 24 fc 2097 2094 cmp byte [bp-004h], 000h ; 80 7e fc 00 2098 je short 01fc dh ; 74 052095 je short 01fc7h ; 74 05 2099 2096 mov ax, 000b0h ; b8 b0 00 2100 jmp short 01f d0h ; eb 032097 jmp short 01fcah ; eb 03 2101 2098 mov ax, 000a0h ; b8 a0 00 2102 2099 lea dx, [si+006h] ; 8d 54 06 … … 2112 2109 ; sub ah, ah ; 2a e4 2113 2110 cmp bl, 001h ; 80 fb 01 2114 jne near 020 64h ; 0f 85 7b 002111 jne near 0205eh ; 0f 85 7b 00 2115 2112 cmp al, bl ; 38 d8 2116 jne near 020 64h ; 0f 85 75 002113 jne near 0205eh ; 0f 85 75 00 2117 2114 lea dx, [si+004h] ; 8d 54 04 2118 2115 in AL, DX ; ec … … 2132 2129 ; sub ah, ah ; 2a e4 2133 2130 cmp bl, 014h ; 80 fb 14 2134 jne short 0202 7h ; 75 182131 jne short 02021h ; 75 18 2135 2132 cmp cl, 0ebh ; 80 f9 eb 2136 jne short 0202 7h ; 75 132133 jne short 02021h ; 75 13 2137 2134 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 2138 2135 imul ax, ax, strict byte 00018h ; 6b c0 18 … … 2140 2137 add bx, ax ; 01 c3 2141 2138 mov byte [es:bx+01eh], 003h ; 26 c6 47 1e 03 2142 jmp short 020 64h ; eb 3d2139 jmp short 0205eh ; eb 3d 2143 2140 test bh, bh ; 84 ff 2144 jne short 0204 9h ; 75 1e2141 jne short 02043h ; 75 1e 2145 2142 cmp byte [bp-008h], 000h ; 80 7e f8 00 2146 jne short 0204 9h ; 75 182143 jne short 02043h ; 75 18 2147 2144 test al, al ; 84 c0 2148 je short 0204 9h ; 74 142145 je short 02043h ; 74 14 2149 2146 movzx bx, byte [bp-00ah] ; 0f b6 5e f6 2150 2147 imul bx, bx, strict byte 00018h ; 6b db 18 … … 2152 2149 add bx, word [bp-024h] ; 03 5e dc 2153 2150 mov byte [es:bx+01eh], 002h ; 26 c6 47 1e 02 2154 jmp short 020 64h ; eb 1b2151 jmp short 0205eh ; eb 1b 2155 2152 cmp bh, 0ffh ; 80 ff ff 2156 jne short 020 64h ; 75 162153 jne short 0205eh ; 75 16 2157 2154 cmp bh, byte [bp-008h] ; 3a 7e f8 2158 jne short 020 64h ; 75 112155 jne short 0205eh ; 75 11 2159 2156 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 2160 2157 imul ax, ax, strict byte 00018h ; 6b c0 18 … … 2173 2170 mov byte [bp-00ch], al ; 88 46 f4 2174 2171 cmp AL, strict byte 002h ; 3c 02 2175 jne near 0228 ah ; 0f 85 03 022172 jne near 02284h ; 0f 85 03 02 2176 2173 mov byte [es:si+01fh], 0ffh ; 26 c6 44 1f ff 2177 2174 mov byte [es:si+022h], 000h ; 26 c6 44 22 00 … … 2186 2183 mov ax, word [bp-024h] ; 8b 46 dc 2187 2184 mov dx, es ; 8c c2 2188 call 01c c0h ; e8 0b fc2185 call 01cbah ; e8 0b fc 2189 2186 test ax, ax ; 85 c0 2190 je short 020 c4h ; 74 0b2187 je short 020beh ; 74 0b 2191 2188 push 00094h ; 68 94 00 2192 2189 push strict byte 00007h ; 6a 07 2193 call 018e9h ; e8 2 8f82190 call 018e9h ; e8 2e f8 2194 2191 add sp, strict byte 00004h ; 83 c4 04 2195 2192 test byte [bp-0025ch], 080h ; f6 86 a4 fd 80 … … 2214 2211 mov si, word [bp-001e2h] ; 8b b6 1e fe 2215 2212 cmp si, 00fffh ; 81 fe ff 0f 2216 jne short 0211 9h ; 75 102213 jne short 02113h ; 75 10 2217 2214 cmp ax, strict word 0ffffh ; 3d ff ff 2218 jne short 0211 9h ; 75 0b2215 jne short 02113h ; 75 0b 2219 2216 mov ax, word [bp-00194h] ; 8b 86 6c fe 2220 2217 mov word [bp-01ch], ax ; 89 46 e4 … … 2222 2219 mov al, byte [bp-00ah] ; 8a 46 f6 2223 2220 cmp AL, strict byte 001h ; 3c 01 2224 jc short 0212 ch ; 72 0c2225 jbe short 021 34h ; 76 122221 jc short 02126h ; 72 0c 2222 jbe short 0212eh ; 76 12 2226 2223 cmp AL, strict byte 003h ; 3c 03 2227 je short 0213 ch ; 74 162224 je short 02136h ; 74 16 2228 2225 cmp AL, strict byte 002h ; 3c 02 2229 je short 0213 8h ; 74 0e2230 jmp short 0217 9h ; eb 4d2226 je short 02132h ; 74 0e 2227 jmp short 02173h ; eb 4d 2231 2228 test al, al ; 84 c0 2232 jne short 0217 9h ; 75 492229 jne short 02173h ; 75 49 2233 2230 mov BL, strict byte 01eh ; b3 1e 2234 jmp short 0213 eh ; eb 0a2231 jmp short 02138h ; eb 0a 2235 2232 mov BL, strict byte 026h ; b3 26 2236 jmp short 0213 eh ; eb 062233 jmp short 02138h ; eb 06 2237 2234 mov BL, strict byte 067h ; b3 67 2238 jmp short 0213 eh ; eb 022235 jmp short 02138h ; eb 02 2239 2236 mov BL, strict byte 070h ; b3 70 2240 2237 mov al, bl ; 88 d8 … … 2242 2239 ; inc al ; fe c0 2243 2240 xor ah, ah ; 30 e4 2244 call 0165ch ; e8 1 5f52241 call 0165ch ; e8 1b f5 2245 2242 xor ah, ah ; 30 e4 2246 2243 mov dx, ax ; 89 c2 2247 2244 sal dx, 008h ; c1 e2 08 2248 2245 movzx ax, bl ; 0f b6 c3 2249 call 0165ch ; e8 0 8f52246 call 0165ch ; e8 0e f5 2250 2247 xor ah, ah ; 30 e4 2251 2248 add ax, dx ; 01 d0 … … 2254 2251 add AL, strict byte 002h ; 04 02 2255 2252 xor ah, ah ; 30 e4 2256 call 0165ch ; e8 f 8f42253 call 0165ch ; e8 fe f4 2257 2254 xor ah, ah ; 30 e4 2258 2255 mov word [bp-032h], ax ; 89 46 ce … … 2260 2257 add AL, strict byte 007h ; 04 07 2261 2258 xor ah, ah ; 30 e4 2262 call 0165ch ; e8 eaf42259 call 0165ch ; e8 f0 f4 2263 2260 xor ah, ah ; 30 e4 2264 2261 mov word [bp-02eh], ax ; 89 46 d2 2265 jmp short 0218 6h ; eb 0d2262 jmp short 02180h ; eb 0d 2266 2263 mov bx, word [bp-01ch] ; 8b 5e e4 2267 2264 mov cx, si ; 89 f1 2268 2265 mov dx, ss ; 8c d2 2269 2266 lea ax, [bp-032h] ; 8d 46 ce 2270 call 052 a4h ; e8 1e 312267 call 0529eh ; e8 1e 31 2271 2268 mov bx, 00d32h ; bb 32 0d 2272 2269 mov cx, ds ; 8c d9 2273 2270 mov ax, strict word 00004h ; b8 04 00 2274 call 018aeh ; e8 1df72271 call 018aeh ; e8 23 f7 2275 2272 mov ax, word [bp-02eh] ; 8b 46 d2 2276 2273 push ax ; 50 … … 2288 2285 push 000bdh ; 68 bd 00 2289 2286 push strict byte 00004h ; 6a 04 2290 call 018e9h ; e8 3 1f72287 call 018e9h ; e8 37 f7 2291 2288 add sp, strict byte 00014h ; 83 c4 14 2292 2289 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 … … 2321 2318 mov al, byte [bp-00ah] ; 8a 46 f6 2322 2319 cmp AL, strict byte 002h ; 3c 02 2323 jnc short 022 75h ; 73 602320 jnc short 0226fh ; 73 60 2324 2321 test al, al ; 84 c0 2325 jne short 0221 eh ; 75 052322 jne short 02218h ; 75 05 2326 2323 mov di, strict word 0003dh ; bf 3d 00 2327 jmp short 022 21h ; eb 032324 jmp short 0221bh ; eb 03 2328 2325 mov di, strict word 0004dh ; bf 4d 00 2329 2326 mov dx, word [bp-020h] ; 8b 56 e0 … … 2344 2341 xor al, al ; 30 c0 2345 2342 xor ah, ah ; 30 e4 2346 jmp short 0225 fh ; eb 052343 jmp short 02259h ; eb 05 2347 2344 cmp ah, 00fh ; 80 fc 0f 2348 jnc short 0226 dh ; 73 0e2345 jnc short 02267h ; 73 0e 2349 2346 movzx bx, ah ; 0f b6 dc 2350 2347 mov es, dx ; 8e c2 … … 2353 2350 db 0feh, 0c4h 2354 2351 ; inc ah ; fe c4 2355 jmp short 0225 ah ; eb ed2352 jmp short 02254h ; eb ed 2356 2353 neg al ; f6 d8 2357 2354 mov es, dx ; 8e c2 … … 2364 2361 inc byte [bp-002h] ; fe 46 fe 2365 2362 cmp byte [bp-00ch], 003h ; 80 7e f4 03 2366 jne near 0232 ah ; 0f 85 98 002363 jne near 02324h ; 0f 85 98 00 2367 2364 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 2368 2365 imul ax, ax, strict byte 00018h ; 6b c0 18 … … 2381 2378 mov ax, word [bp-024h] ; 8b 46 dc 2382 2379 mov dx, es ; 8c c2 2383 call 01c c0h ; e8 f4 f92380 call 01cbah ; e8 f4 f9 2384 2381 test ax, ax ; 85 c0 2385 je short 022d bh ; 74 0b2382 je short 022d5h ; 74 0b 2386 2383 push 000e4h ; 68 e4 00 2387 2384 push strict byte 00007h ; 6a 07 2388 call 018e9h ; e8 1 1f62385 call 018e9h ; e8 17 f6 2389 2386 add sp, strict byte 00004h ; 83 c4 04 2390 2387 mov cl, byte [bp-0025bh] ; 8a 8e a5 fd … … 2415 2412 mov al, byte [bp-00ch] ; 8a 46 f4 2416 2413 cmp AL, strict byte 003h ; 3c 03 2417 je short 0235 dh ; 74 2c2414 je short 02357h ; 74 2c 2418 2415 cmp AL, strict byte 002h ; 3c 02 2419 jne near 023 c0h ; 0f 85 89 002416 jne near 023bah ; 0f 85 89 00 2420 2417 movzx bx, byte [bp-00ah] ; 0f b6 5e f6 2421 2418 imul bx, bx, strict byte 00018h ; 6b db 18 … … 2429 2426 shr word [bp-02ah], 1 ; d1 6e d6 2430 2427 rcr word [bp-02ch], 1 ; d1 5e d4 2431 loop 023 55h ; e2 f82428 loop 0234fh ; e2 f8 2432 2429 movzx dx, byte [bp-001bbh] ; 0f b6 96 45 fe 2433 2430 sal dx, 008h ; c1 e2 08 … … 2435 2432 or dx, ax ; 09 c2 2436 2433 mov byte [bp-00eh], 00fh ; c6 46 f2 0f 2437 jmp short 0237 bh ; eb 092434 jmp short 02375h ; eb 09 2438 2435 dec byte [bp-00eh] ; fe 4e f2 2439 2436 cmp byte [bp-00eh], 000h ; 80 7e f2 00 2440 jbe short 0238 8h ; 76 0d2437 jbe short 02382h ; 76 0d 2441 2438 movzx cx, byte [bp-00eh] ; 0f b6 4e f2 2442 2439 mov ax, strict word 00001h ; b8 01 00 2443 2440 sal ax, CL ; d3 e0 2444 2441 test dx, ax ; 85 c2 2445 je short 023 72h ; 74 ea2442 je short 0236ch ; 74 ea 2446 2443 xor di, di ; 31 ff 2447 jmp short 023 91h ; eb 052444 jmp short 0238bh ; eb 05 2448 2445 cmp di, strict byte 00014h ; 83 ff 14 2449 jnl short 023a 6h ; 7d 152446 jnl short 023a0h ; 7d 15 2450 2447 mov si, di ; 89 fe 2451 2448 add si, di ; 01 fe … … 2455 2452 mov byte [bp+si-05bh], al ; 88 42 a5 2456 2453 inc di ; 47 2457 jmp short 0238 ch ; eb e62454 jmp short 02386h ; eb e6 2458 2455 mov byte [bp-034h], 000h ; c6 46 cc 00 2459 2456 mov di, strict word 00027h ; bf 27 00 2460 jmp short 023 b4h ; eb 052457 jmp short 023aeh ; eb 05 2461 2458 dec di ; 4f 2462 2459 test di, di ; 85 ff 2463 jle short 023 c0h ; 7e 0c2460 jle short 023bah ; 7e 0c 2464 2461 cmp byte [bp+di-05ch], 020h ; 80 7b a4 20 2465 jne short 023 c0h ; 75 062462 jne short 023bah ; 75 06 2466 2463 mov byte [bp+di-05ch], 000h ; c6 43 a4 00 2467 jmp short 023a fh ; eb ef2464 jmp short 023a9h ; eb ef 2468 2465 mov al, byte [bp-00ch] ; 8a 46 f4 2469 2466 cmp AL, strict byte 003h ; 3c 03 2470 je short 024 23h ; 74 5c2467 je short 0241dh ; 74 5c 2471 2468 cmp AL, strict byte 002h ; 3c 02 2472 je short 023 d4h ; 74 092469 je short 023ceh ; 74 09 2473 2470 cmp AL, strict byte 001h ; 3c 01 2474 je near 0248 ah ; 0f 84 b9 002475 jmp near 024a 9h ; e9 d5 002471 je near 02484h ; 0f 84 b9 00 2472 jmp near 024a3h ; e9 d5 00 2476 2473 cmp byte [bp-004h], 000h ; 80 7e fc 00 2477 je short 023d fh ; 74 052474 je short 023d9h ; 74 05 2478 2475 mov ax, 0010fh ; b8 0f 01 2479 jmp short 023 e2h ; eb 032476 jmp short 023dch ; eb 03 2480 2477 mov ax, 00116h ; b8 16 01 2481 2478 push ax ; 50 … … 2484 2481 push 0011dh ; 68 1d 01 2485 2482 push strict byte 00002h ; 6a 02 2486 call 018e9h ; e8 f 9f42483 call 018e9h ; e8 ff f4 2487 2484 add sp, strict byte 00008h ; 83 c4 08 2488 2485 xor di, di ; 31 ff … … 2490 2487 inc di ; 47 2491 2488 test ax, ax ; 85 c0 2492 je short 0240 ch ; 74 0e2489 je short 02406h ; 74 0e 2493 2490 push ax ; 50 2494 2491 push 00128h ; 68 28 01 2495 2492 push strict byte 00002h ; 6a 02 2496 call 018e9h ; e8 e 2f42493 call 018e9h ; e8 e8 f4 2497 2494 add sp, strict byte 00006h ; 83 c4 06 2498 jmp short 023 f5h ; eb e92495 jmp short 023efh ; eb e9 2499 2496 push dword [bp-02ch] ; 66 ff 76 d4 2500 2497 movzx ax, byte [bp-00eh] ; 0f b6 46 f2 … … 2502 2499 push 0012bh ; 68 2b 01 2503 2500 push strict byte 00002h ; 6a 02 2504 call 018e9h ; e8 ccf42501 call 018e9h ; e8 d2 f4 2505 2502 add sp, strict byte 0000ah ; 83 c4 0a 2506 jmp near 024a 9h ; e9 86 002503 jmp near 024a3h ; e9 86 00 2507 2504 cmp byte [bp-004h], 000h ; 80 7e fc 00 2508 je short 0242 eh ; 74 052505 je short 02428h ; 74 05 2509 2506 mov ax, 0010fh ; b8 0f 01 2510 jmp short 024 31h ; eb 032507 jmp short 0242bh ; eb 03 2511 2508 mov ax, 00116h ; b8 16 01 2512 2509 push ax ; 50 … … 2515 2512 push 0011dh ; 68 1d 01 2516 2513 push strict byte 00002h ; 6a 02 2517 call 018e9h ; e8 aaf42514 call 018e9h ; e8 b0 f4 2518 2515 add sp, strict byte 00008h ; 83 c4 08 2519 2516 xor di, di ; 31 ff … … 2521 2518 inc di ; 47 2522 2519 test ax, ax ; 85 c0 2523 je short 0245 bh ; 74 0e2520 je short 02455h ; 74 0e 2524 2521 push ax ; 50 2525 2522 push 00128h ; 68 28 01 2526 2523 push strict byte 00002h ; 6a 02 2527 call 018e9h ; e8 9 3f42524 call 018e9h ; e8 99 f4 2528 2525 add sp, strict byte 00006h ; 83 c4 06 2529 jmp short 024 44h ; eb e92526 jmp short 0243eh ; eb e9 2530 2527 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 2531 2528 imul ax, ax, strict byte 00018h ; 6b c0 18 … … 2533 2530 add bx, ax ; 01 c3 2534 2531 cmp byte [es:bx+01fh], 005h ; 26 80 7f 1f 05 2535 jne short 0247 8h ; 75 0a2532 jne short 02472h ; 75 0a 2536 2533 movzx ax, byte [bp-00eh] ; 0f b6 46 f2 2537 2534 push ax ; 50 2538 2535 push 0014bh ; 68 4b 01 2539 jmp short 024 80h ; eb 082536 jmp short 0247ah ; eb 08 2540 2537 movzx ax, byte [bp-00eh] ; 0f b6 46 f2 2541 2538 push ax ; 50 2542 2539 push 00165h ; 68 65 01 2543 2540 push strict byte 00002h ; 6a 02 2544 call 018e9h ; e8 6 4f42541 call 018e9h ; e8 6a f4 2545 2542 add sp, strict byte 00006h ; 83 c4 06 2546 jmp short 024a 9h ; eb 1f2543 jmp short 024a3h ; eb 1f 2547 2544 cmp byte [bp-004h], 000h ; 80 7e fc 00 2548 je short 024 95h ; 74 052545 je short 0248fh ; 74 05 2549 2546 mov ax, 0010fh ; b8 0f 01 2550 jmp short 0249 8h ; eb 032547 jmp short 02492h ; eb 03 2551 2548 mov ax, 00116h ; b8 16 01 2552 2549 push ax ; 50 … … 2555 2552 push 00177h ; 68 77 01 2556 2553 push strict byte 00002h ; 6a 02 2557 call 018e9h ; e8 4 3f42554 call 018e9h ; e8 49 f4 2558 2555 add sp, strict byte 00008h ; 83 c4 08 2559 2556 inc byte [bp-00ah] ; fe 46 f6 2560 2557 cmp byte [bp-00ah], 008h ; 80 7e f6 08 2561 jnc short 02 500h ; 73 4e2558 jnc short 024fah ; 73 4e 2562 2559 movzx bx, byte [bp-00ah] ; 0f b6 5e f6 2563 2560 mov ax, bx ; 89 d8 … … 2587 2584 out DX, AL ; ee 2588 2585 test cl, cl ; 84 c9 2589 je near 01f6 ah ; 0f 84 70 fa2586 je near 01f64h ; 0f 84 70 fa 2590 2587 mov ax, 000b0h ; b8 b0 00 2591 jmp near 01f6 dh ; e9 6d fa2588 jmp near 01f67h ; e9 6d fa 2592 2589 mov al, byte [bp-002h] ; 8a 46 fe 2593 2590 les bx, [bp-024h] ; c4 5e dc … … 2598 2595 mov dx, strict word 00075h ; ba 75 00 2599 2596 mov ax, strict word 00040h ; b8 40 00 2600 call 0160eh ; e8 eef02597 call 0160eh ; e8 f4 f0 2601 2598 leave ; c9 2602 2599 pop di ; 5f 2603 2600 pop si ; 5e 2604 2601 retn ; c3 2605 ata_cmd_data_out_: ; 0xf25 24LB 0x2152602 ata_cmd_data_out_: ; 0xf251e LB 0x215 2606 2603 push si ; 56 2607 2604 push di ; 57 … … 2630 2627 mov byte [bp-004h], al ; 88 46 fc 2631 2628 cmp AL, strict byte 001h ; 3c 01 2632 jne short 0257 6h ; 75 072629 jne short 02570h ; 75 07 2633 2630 mov word [bp-00eh], 00080h ; c7 46 f2 80 00 2634 jmp short 0257 bh ; eb 052631 jmp short 02575h ; eb 05 2635 2632 mov word [bp-00eh], 00100h ; c7 46 f2 00 01 2636 2633 lea dx, [bx+007h] ; 8d 57 07 … … 2639 2636 ; sub ah, ah ; 2a e4 2640 2637 test AL, strict byte 080h ; a8 80 2641 je short 025 94h ; 74 0f2638 je short 0258eh ; 74 0f 2642 2639 mov dx, word [bp-008h] ; 8b 56 f8 2643 2640 add dx, strict byte 00006h ; 83 c2 06 … … 2645 2642 out DX, AL ; ee 2646 2643 mov dx, strict word 00001h ; ba 01 00 2647 jmp near 027 33h ; e9 9f 012644 jmp near 0272dh ; e9 9f 01 2648 2645 mov es, [bp-006h] ; 8e 46 fa 2649 2646 mov ax, word [es:di] ; 26 8b 05 … … 2662 2659 mov ax, word [bp-00ch] ; 8b 46 f4 2663 2660 test ax, ax ; 85 c0 2664 jne short 026 32h ; 75 672661 jne short 0262ch ; 75 67 2665 2662 mov dx, word [bp-01ah] ; 8b 56 e6 2666 2663 add dx, word [bp-00ah] ; 03 56 f6 2667 2664 adc ax, word [bp-018h] ; 13 46 e8 2668 2665 cmp ax, 01000h ; 3d 00 10 2669 jnbe short 025d bh ; 77 022670 jne short 0260 6h ; 75 2b2666 jnbe short 025d5h ; 77 02 2667 jne short 02600h ; 75 2b 2671 2668 mov ax, word [bp-018h] ; 8b 46 e8 2672 2669 xor al, al ; 30 c0 … … 2693 2690 shr word [bp-018h], 1 ; d1 6e e8 2694 2691 rcr word [bp-01ah], 1 ; d1 5e e6 2695 loop 026 11h ; e2 f82692 loop 0260bh ; e2 f8 2696 2693 mov ax, word [bp-01ah] ; 8b 46 e6 2697 2694 mov word [bp-012h], ax ; 89 46 ee … … 2722 2719 out DX, AL ; ee 2723 2720 cmp byte [bp-002h], 000h ; 80 7e fe 00 2724 je short 0266 8h ; 74 052721 je short 02662h ; 74 05 2725 2722 mov ax, 000b0h ; b8 b0 00 2726 jmp short 0266 bh ; eb 032723 jmp short 02665h ; eb 03 2727 2724 mov ax, 000a0h ; b8 a0 00 2728 2725 movzx dx, byte [bp-010h] ; 0f b6 56 f0 … … 2739 2736 mov dl, al ; 88 c2 2740 2737 test AL, strict byte 080h ; a8 80 2741 jne short 0267 ch ; 75 f42738 jne short 02676h ; 75 f4 2742 2739 test AL, strict byte 001h ; a8 01 2743 je short 0269 bh ; 74 0f2740 je short 02695h ; 74 0f 2744 2741 mov dx, word [bp-008h] ; 8b 56 f8 2745 2742 add dx, strict byte 00006h ; 83 c2 06 … … 2747 2744 out DX, AL ; ee 2748 2745 mov dx, strict word 00002h ; ba 02 00 2749 jmp near 027 33h ; e9 98 002746 jmp near 0272dh ; e9 98 00 2750 2747 test dl, 008h ; f6 c2 08 2751 jne short 026a fh ; 75 0f2748 jne short 026a9h ; 75 0f 2752 2749 mov dx, word [bp-008h] ; 8b 56 f8 2753 2750 add dx, strict byte 00006h ; 83 c2 06 … … 2755 2752 out DX, AL ; ee 2756 2753 mov dx, strict word 00003h ; ba 03 00 2757 jmp near 027 33h ; e9 84 002754 jmp near 0272dh ; e9 84 00 2758 2755 sti ; fb 2759 2756 cmp si, 0f800h ; 81 fe 00 f8 2760 jc short 026 c3h ; 72 0d2757 jc short 026bdh ; 72 0d 2761 2758 sub si, 00800h ; 81 ee 00 08 2762 2759 mov ax, word [bp-014h] ; 8b 46 ec … … 2764 2761 mov word [bp-014h], ax ; 89 46 ec 2765 2762 cmp byte [bp-004h], 001h ; 80 7e fc 01 2766 jne short 026d 7h ; 75 0e2763 jne short 026d1h ; 75 0e 2767 2764 mov dx, bx ; 89 da 2768 2765 mov cx, word [bp-00eh] ; 8b 4e f2 … … 2770 2767 db 0f3h, 066h, 026h, 06fh 2771 2768 ; rep es outsd ; f3 66 26 6f 2772 jmp short 026 e2h ; eb 0b2769 jmp short 026dch ; eb 0b 2773 2770 mov dx, bx ; 89 da 2774 2771 mov cx, word [bp-00eh] ; 8b 4e f2 … … 2785 2782 mov dl, al ; 88 c2 2786 2783 test AL, strict byte 080h ; a8 80 2787 jne short 026e ch ; 75 f42784 jne short 026e6h ; 75 f4 2788 2785 cmp word [bp-00ah], strict byte 00000h ; 83 7e f6 00 2789 jne short 027 12h ; 75 142786 jne short 0270ch ; 75 14 2790 2787 and AL, strict byte 0e9h ; 24 e9 2791 2788 cmp AL, strict byte 040h ; 3c 40 2792 je short 0272 8h ; 74 242789 je short 02722h ; 74 24 2793 2790 mov dx, word [bp-008h] ; 8b 56 f8 2794 2791 add dx, strict byte 00006h ; 83 c2 06 … … 2796 2793 out DX, AL ; ee 2797 2794 mov dx, strict word 00006h ; ba 06 00 2798 jmp short 027 33h ; eb 212795 jmp short 0272dh ; eb 21 2799 2796 mov al, dl ; 88 d0 2800 2797 and AL, strict byte 0c9h ; 24 c9 2801 2798 cmp AL, strict byte 048h ; 3c 48 2802 je short 026 b0h ; 74 962799 je short 026aah ; 74 96 2803 2800 mov dx, word [bp-008h] ; 8b 56 f8 2804 2801 add dx, strict byte 00006h ; 83 c2 06 … … 2806 2803 out DX, AL ; ee 2807 2804 mov dx, strict word 00007h ; ba 07 00 2808 jmp short 027 33h ; eb 0b2805 jmp short 0272dh ; eb 0b 2809 2806 mov dx, word [bp-008h] ; 8b 56 f8 2810 2807 add dx, strict byte 00006h ; 83 c2 06 … … 2817 2814 pop si ; 5e 2818 2815 retn ; c3 2819 @ata_read_sectors: ; 0xf273 9LB 0x772816 @ata_read_sectors: ; 0xf2733 LB 0x77 2820 2817 push si ; 56 2821 2818 push di ; 57 … … 2829 2826 mov ax, word [es:si+012h] ; 26 8b 44 12 2830 2827 test ax, ax ; 85 c0 2831 je short 0276 7h ; 74 0d2828 je short 02761h ; 74 0d 2832 2829 movzx di, bl ; 0f b6 fb 2833 2830 imul di, di, strict byte 00018h ; 6b ff 18 2834 2831 mov [bp-002h], es ; 8c 46 fe 2835 2832 add di, si ; 01 f7 2836 jmp short 027 93h ; eb 2c2833 jmp short 0278dh ; eb 2c 2837 2834 mov di, word [es:si] ; 26 8b 3c 2838 2835 add di, cx ; 01 cf … … 2840 2837 adc ax, word [es:si+002h] ; 26 13 44 02 2841 2838 cmp ax, 01000h ; 3d 00 10 2842 jnbe short 0277 ah ; 77 022843 jne short 0278 6h ; 75 0c2839 jnbe short 02774h ; 77 02 2840 jne short 02780h ; 75 0c 2844 2841 mov bx, strict word 00024h ; bb 24 00 2845 2842 mov ax, si ; 89 f0 2846 2843 mov dx, es ; 8c c2 2847 call 01c c0h ; e8 3c f52848 jmp short 027a ah ; eb 242844 call 01cbah ; e8 3c f5 2845 jmp short 027a4h ; eb 24 2849 2846 movzx ax, bl ; 0f b6 c3 2850 2847 imul ax, ax, strict byte 00018h ; 6b c0 18 … … 2856 2853 mov ax, si ; 89 f0 2857 2854 mov dx, es ; 8c c2 2858 call 01c c0h ; e8 1f f52855 call 01cbah ; e8 1f f5 2859 2856 mov es, [bp-002h] ; 8e 46 fe 2860 2857 mov word [es:di+024h], 00200h ; 26 c7 45 24 00 02 … … 2863 2860 pop si ; 5e 2864 2861 retn 00004h ; c2 04 00 2865 @ata_write_sectors: ; 0xf27 b0LB 0x3a2862 @ata_write_sectors: ; 0xf27aa LB 0x3a 2866 2863 push si ; 56 2867 2864 push bp ; 55 … … 2870 2867 mov cx, word [es:si+00ah] ; 26 8b 4c 0a 2871 2868 cmp word [es:si+012h], strict byte 00000h ; 26 83 7c 12 00 2872 je short 027c eh ; 74 0c2869 je short 027c8h ; 74 0c 2873 2870 mov bx, strict word 00030h ; bb 30 00 2874 2871 mov ax, si ; 89 f0 2875 2872 mov dx, es ; 8c c2 2876 call 025 24h ; e8 58 fd2877 jmp short 027 e5h ; eb 172873 call 0251eh ; e8 58 fd 2874 jmp short 027dfh ; eb 17 2878 2875 xor ax, ax ; 31 c0 2879 2876 mov dx, word [es:si] ; 26 8b 14 … … 2881 2878 adc ax, word [es:si+002h] ; 26 13 44 02 2882 2879 cmp ax, 01000h ; 3d 00 10 2883 jnbe short 027 e0h ; 77 022884 jne short 027 c2h ; 75 e22880 jnbe short 027dah ; 77 02 2881 jne short 027bch ; 75 e2 2885 2882 mov bx, strict word 00034h ; bb 34 00 2886 jmp short 027 c5h ; eb e02883 jmp short 027bfh ; eb e0 2887 2884 pop bp ; 5d 2888 2885 pop si ; 5e 2889 2886 retn 00004h ; c2 04 00 2890 ata_cmd_packet_: ; 0xf27e aLB 0x2e32887 ata_cmd_packet_: ; 0xf27e4 LB 0x2e3 2891 2888 push si ; 56 2892 2889 push di ; 57 … … 2897 2894 mov dx, strict word 0000eh ; ba 0e 00 2898 2895 mov ax, strict word 00040h ; b8 40 00 2899 call 0161ch ; e8 1dee2896 call 0161ch ; e8 23 ee 2900 2897 mov word [bp-00eh], 00122h ; c7 46 f2 22 01 2901 2898 mov word [bp-00ah], ax ; 89 46 f6 … … 2906 2903 mov byte [bp-002h], ah ; 88 66 fe 2907 2904 cmp byte [bp+00eh], 002h ; 80 7e 0e 02 2908 jne short 0283 ah ; 75 1f2905 jne short 02834h ; 75 1f 2909 2906 mov bx, 00d32h ; bb 32 0d 2910 2907 mov cx, ds ; 8c d9 2911 2908 mov ax, strict word 00004h ; b8 04 00 2912 call 018aeh ; e8 8 8f02909 call 018aeh ; e8 8e f0 2913 2910 push 00191h ; 68 91 01 2914 2911 push 001a0h ; 68 a0 01 2915 2912 push strict byte 00004h ; 6a 04 2916 call 018e9h ; e8 b 8f02913 call 018e9h ; e8 be f0 2917 2914 add sp, strict byte 00006h ; 83 c4 06 2918 2915 mov dx, strict word 00001h ; ba 01 00 2919 jmp near 02a c5h ; e9 8b 022916 jmp near 02abfh ; e9 8b 02 2920 2917 test byte [bp+008h], 001h ; f6 46 08 01 2921 jne short 028 34h ; 75 f42918 jne short 0282eh ; 75 f4 2922 2919 xor ah, ah ; 30 e4 2923 2920 imul ax, ax, strict byte 00006h ; 6b c0 06 … … 2937 2934 mov al, byte [bp-004h] ; 8a 46 fc 2938 2935 cmp AL, strict byte 00ch ; 3c 0c 2939 jnc short 0287 dh ; 73 062936 jnc short 02877h ; 73 06 2940 2937 mov byte [bp-004h], 00ch ; c6 46 fc 0c 2941 jmp short 028 83h ; eb 062942 jbe short 028 83h ; 76 042938 jmp short 0287dh ; eb 06 2939 jbe short 0287dh ; 76 04 2943 2940 mov byte [bp-004h], 010h ; c6 46 fc 10 2944 2941 shr byte [bp-004h], 1 ; d0 6e fc … … 2953 2950 ; sub ah, ah ; 2a e4 2954 2951 test AL, strict byte 080h ; a8 80 2955 je short 028a bh ; 74 062952 je short 028a5h ; 74 06 2956 2953 mov dx, strict word 00002h ; ba 02 00 2957 jmp near 02a c5h ; e9 1a 022954 jmp near 02abfh ; e9 1a 02 2958 2955 mov dx, word [bp-00ch] ; 8b 56 f4 2959 2956 add dx, strict byte 00006h ; 83 c2 06 … … 2967 2964 out DX, AL ; ee 2968 2965 cmp byte [bp-002h], 000h ; 80 7e fe 00 2969 je short 028c bh ; 74 052966 je short 028c5h ; 74 05 2970 2967 mov ax, 000b0h ; b8 b0 00 2971 jmp short 028c eh ; eb 032968 jmp short 028c8h ; eb 03 2972 2969 mov ax, 000a0h ; b8 a0 00 2973 2970 lea dx, [bx+006h] ; 8d 57 06 … … 2982 2979 mov dl, al ; 88 c2 2983 2980 test AL, strict byte 080h ; a8 80 2984 jne short 028d 8h ; 75 f42981 jne short 028d2h ; 75 f4 2985 2982 test AL, strict byte 001h ; a8 01 2986 je short 028f 7h ; 74 0f2983 je short 028f1h ; 74 0f 2987 2984 mov dx, word [bp-00ch] ; 8b 56 f4 2988 2985 add dx, strict byte 00006h ; 83 c2 06 … … 2990 2987 out DX, AL ; ee 2991 2988 mov dx, strict word 00003h ; ba 03 00 2992 jmp near 02a c5h ; e9 ce 012989 jmp near 02abfh ; e9 ce 01 2993 2990 test dl, 008h ; f6 c2 08 2994 jne short 0290 bh ; 75 0f2991 jne short 02905h ; 75 0f 2995 2992 mov dx, word [bp-00ch] ; 8b 56 f4 2996 2993 add dx, strict byte 00006h ; 83 c2 06 … … 2998 2995 out DX, AL ; ee 2999 2996 mov dx, strict word 00004h ; ba 04 00 3000 jmp near 02a c5h ; e9 ba 012997 jmp near 02abfh ; e9 ba 01 3001 2998 sti ; fb 3002 2999 mov ax, di ; 89 f8 … … 3011 3008 ; rep es outsw ; f3 26 6f 3012 3009 cmp byte [bp+00eh], 000h ; 80 7e 0e 00 3013 jne short 029 34h ; 75 0b3010 jne short 0292eh ; 75 0b 3014 3011 lea dx, [bx+007h] ; 8d 57 07 3015 3012 in AL, DX ; ec … … 3017 3014 ; sub ah, ah ; 2a e4 3018 3015 mov dl, al ; 88 c2 3019 jmp near 02aa 6h ; e9 72 013016 jmp near 02aa0h ; e9 72 01 3020 3017 lea dx, [bx+007h] ; 8d 57 07 3021 3018 in AL, DX ; ec … … 3024 3021 mov dl, al ; 88 c2 3025 3022 test AL, strict byte 080h ; a8 80 3026 jne short 029 34h ; 75 f43023 jne short 0292eh ; 75 f4 3027 3024 test AL, strict byte 088h ; a8 88 3028 je near 02aa 6h ; 0f 84 60 013025 je near 02aa0h ; 0f 84 60 01 3029 3026 test AL, strict byte 001h ; a8 01 3030 je short 029 55h ; 74 0b3027 je short 0294fh ; 74 0b 3031 3028 mov dx, word [bp-00ch] ; 8b 56 f4 3032 3029 add dx, strict byte 00006h ; 83 c2 06 3033 3030 mov AL, strict byte 008h ; b0 08 3034 3031 out DX, AL ; ee 3035 jmp short 028 f1h ; eb 9c3032 jmp short 028ebh ; eb 9c 3036 3033 mov al, dl ; 88 d0 3037 3034 and AL, strict byte 0c9h ; 24 c9 3038 3035 cmp AL, strict byte 048h ; 3c 48 3039 je short 0296 8h ; 74 0b3036 je short 02962h ; 74 0b 3040 3037 mov dx, word [bp-00ch] ; 8b 56 f4 3041 3038 add dx, strict byte 00006h ; 83 c2 06 3042 3039 mov AL, strict byte 008h ; b0 08 3043 3040 out DX, AL ; ee 3044 jmp short 02 905h ; eb 9d3041 jmp short 028ffh ; eb 9d 3045 3042 mov ax, word [bp+010h] ; 8b 46 10 3046 3043 shr ax, 004h ; c1 e8 04 … … 3065 3062 mov ax, word [bp+008h] ; 8b 46 08 3066 3063 cmp ax, cx ; 39 c8 3067 jbe short 029a 8h ; 76 0c3064 jbe short 029a2h ; 76 0c 3068 3065 mov ax, cx ; 89 c8 3069 3066 sub word [bp+008h], cx ; 29 4e 08 3070 3067 xor ax, cx ; 31 c8 3071 3068 mov word [bp-010h], ax ; 89 46 f0 3072 jmp short 029 b2h ; eb 0a3069 jmp short 029ach ; eb 0a 3073 3070 mov cx, ax ; 89 c1 3074 3071 mov word [bp+008h], strict word 00000h ; c7 46 08 00 00 … … 3076 3073 xor ax, ax ; 31 c0 3077 3074 cmp word [bp+00ch], strict byte 00000h ; 83 7e 0c 00 3078 jne short 029d bh ; 75 213075 jne short 029d5h ; 75 21 3079 3076 mov dx, word [bp-010h] ; 8b 56 f0 3080 3077 cmp dx, word [bp+00ah] ; 3b 56 0a 3081 jbe short 029d bh ; 76 193078 jbe short 029d5h ; 76 19 3082 3079 mov ax, word [bp-010h] ; 8b 46 f0 3083 3080 sub ax, word [bp+00ah] ; 2b 46 0a … … 3088 3085 mov word [bp+00ah], ax ; 89 46 0a 3089 3086 mov word [bp+00ch], ax ; 89 46 0c 3090 jmp short 029e 7h ; eb 0c3087 jmp short 029e1h ; eb 0c 3091 3088 mov word [bp-008h], ax ; 89 46 f8 3092 3089 mov dx, word [bp-010h] ; 8b 56 f0 … … 3096 3093 mov al, byte [bp-006h] ; 8a 46 fa 3097 3094 test cl, 003h ; f6 c1 03 3098 je short 029 f4h ; 74 023095 je short 029eeh ; 74 02 3099 3096 xor al, al ; 30 c0 3100 3097 test byte [bp-010h], 003h ; f6 46 f0 03 3101 je short 029f ch ; 74 023098 je short 029f6h ; 74 02 3102 3099 xor al, al ; 30 c0 3103 3100 test byte [bp-008h], 003h ; f6 46 f8 03 3104 je short 02 a04h ; 74 023101 je short 029feh ; 74 02 3105 3102 xor al, al ; 30 c0 3106 3103 test byte [bp-010h], 001h ; f6 46 f0 01 3107 je short 02a1 ch ; 74 123104 je short 02a16h ; 74 12 3108 3105 inc word [bp-010h] ; ff 46 f0 3109 3106 cmp word [bp-008h], strict byte 00000h ; 83 7e f8 00 3110 jbe short 02a1 ch ; 76 093107 jbe short 02a16h ; 76 09 3111 3108 test byte [bp-008h], 001h ; f6 46 f8 01 3112 je short 02a1 ch ; 74 033109 je short 02a16h ; 74 03 3113 3110 dec word [bp-008h] ; ff 4e f8 3114 3111 cmp AL, strict byte 001h ; 3c 01 3115 jne short 02a2 dh ; 75 0d3112 jne short 02a27h ; 75 0d 3116 3113 shr word [bp-010h], 002h ; c1 6e f0 02 3117 3114 shr cx, 002h ; c1 e9 02 3118 3115 shr word [bp-008h], 002h ; c1 6e f8 02 3119 jmp short 02a 35h ; eb 083116 jmp short 02a2fh ; eb 08 3120 3117 shr word [bp-010h], 1 ; d1 6e f0 3121 3118 shr cx, 1 ; d1 e9 3122 3119 shr word [bp-008h], 1 ; d1 6e f8 3123 3120 cmp AL, strict byte 001h ; 3c 01 3124 jne short 02a 65h ; 75 2c3121 jne short 02a5fh ; 75 2c 3125 3122 test cx, cx ; 85 c9 3126 je short 02a4 7h ; 74 0a3123 je short 02a41h ; 74 0a 3127 3124 mov dx, bx ; 89 da 3128 3125 push eax ; 66 50 3129 3126 in eax, DX ; 66 ed 3130 loop 02a 41h ; e2 fc3127 loop 02a3bh ; e2 fc 3131 3128 pop eax ; 66 58 3132 3129 mov dx, bx ; 89 da … … 3137 3134 mov ax, word [bp-008h] ; 8b 46 f8 3138 3135 test ax, ax ; 85 c0 3139 je short 02a 84h ; 74 2b3136 je short 02a7eh ; 74 2b 3140 3137 mov cx, ax ; 89 c1 3141 3138 push eax ; 66 50 3142 3139 in eax, DX ; 66 ed 3143 loop 02a5 dh ; e2 fc3140 loop 02a57h ; e2 fc 3144 3141 pop eax ; 66 58 3145 jmp short 02a 84h ; eb 1f3142 jmp short 02a7eh ; eb 1f 3146 3143 test cx, cx ; 85 c9 3147 je short 02a6 eh ; 74 053144 je short 02a68h ; 74 05 3148 3145 mov dx, bx ; 89 da 3149 3146 in ax, DX ; ed 3150 loop 02a6 bh ; e2 fd3147 loop 02a65h ; e2 fd 3151 3148 mov dx, bx ; 89 da 3152 3149 mov cx, word [bp-010h] ; 8b 4e f0 … … 3155 3152 mov ax, word [bp-008h] ; 8b 46 f8 3156 3153 test ax, ax ; 85 c0 3157 je short 02a 84h ; 74 053154 je short 02a7eh ; 74 05 3158 3155 mov cx, ax ; 89 c1 3159 3156 in ax, DX ; ed 3160 loop 02a 81h ; e2 fd3157 loop 02a7bh ; e2 fd 3161 3158 add word [bp+010h], si ; 01 76 10 3162 3159 xor ax, ax ; 31 c0 … … 3169 3166 mov ax, word [bp-012h] ; 8b 46 ee 3170 3167 mov word [es:si+018h], ax ; 26 89 44 18 3171 jmp near 029 34h ; e9 8e fe3168 jmp near 0292eh ; e9 8e fe 3172 3169 mov al, dl ; 88 d0 3173 3170 and AL, strict byte 0e9h ; 24 e9 3174 3171 cmp AL, strict byte 040h ; 3c 40 3175 je short 02ab ah ; 74 0c3172 je short 02ab4h ; 74 0c 3176 3173 mov dx, word [bp-00ch] ; 8b 56 f4 3177 3174 add dx, strict byte 00006h ; 83 c2 06 3178 3175 mov AL, strict byte 008h ; b0 08 3179 3176 out DX, AL ; ee 3180 jmp near 02 905h ; e9 4b fe3177 jmp near 028ffh ; e9 4b fe 3181 3178 mov dx, word [bp-00ch] ; 8b 56 f4 3182 3179 add dx, strict byte 00006h ; 83 c2 06 … … 3189 3186 pop si ; 5e 3190 3187 retn 0000ch ; c2 0c 00 3191 ata_soft_reset_: ; 0xf2ac dLB 0x7d3188 ata_soft_reset_: ; 0xf2ac7 LB 0x7d 3192 3189 push bx ; 53 3193 3190 push cx ; 51 … … 3197 3194 mov dx, strict word 0000eh ; ba 0e 00 3198 3195 mov ax, strict word 00040h ; b8 40 00 3199 call 0161ch ; e8 3deb3196 call 0161ch ; e8 43 eb 3200 3197 mov dx, bx ; 89 da 3201 3198 shr dx, 1 ; d1 ea … … 3212 3209 out DX, AL ; ee 3213 3210 cmp byte [bp-002h], 000h ; 80 7e fe 00 3214 je short 02b0 fh ; 74 053211 je short 02b09h ; 74 05 3215 3212 mov ax, 000b0h ; b8 b0 00 3216 jmp short 02b 12h ; eb 033213 jmp short 02b0ch ; eb 03 3217 3214 mov ax, 000a0h ; b8 a0 00 3218 3215 mov dx, cx ; 89 ca … … 3229 3226 ; sub ah, ah ; 2a e4 3230 3227 test AL, strict byte 080h ; a8 80 3231 jne short 02b 20h ; 75 f43228 jne short 02b1ah ; 75 f4 3232 3229 and AL, strict byte 0e9h ; 24 e9 3233 3230 cmp AL, strict byte 040h ; 3c 40 3234 je short 02b3 dh ; 74 0b3231 je short 02b37h ; 74 0b 3235 3232 lea dx, [bx+006h] ; 8d 57 06 3236 3233 mov AL, strict byte 008h ; b0 08 3237 3234 out DX, AL ; ee 3238 3235 mov ax, strict word 00001h ; b8 01 00 3239 jmp short 02b 45h ; eb 083236 jmp short 02b3fh ; eb 08 3240 3237 lea dx, [bx+006h] ; 8d 57 06 3241 3238 mov AL, strict byte 008h ; b0 08 … … 3247 3244 pop bx ; 5b 3248 3245 retn ; c3 3249 set_diskette_ret_status_: ; 0xf2b4 aLB 0x153246 set_diskette_ret_status_: ; 0xf2b44 LB 0x15 3250 3247 push bx ; 53 3251 3248 push dx ; 52 … … 3255 3252 mov dx, strict word 00041h ; ba 41 00 3256 3253 mov ax, strict word 00040h ; b8 40 00 3257 call 0160eh ; e8 b 3ea3254 call 0160eh ; e8 b9 ea 3258 3255 pop bp ; 5d 3259 3256 pop dx ; 5a 3260 3257 pop bx ; 5b 3261 3258 retn ; c3 3262 set_diskette_current_cyl_: ; 0xf2b5 fLB 0x2a3259 set_diskette_current_cyl_: ; 0xf2b59 LB 0x2a 3263 3260 push bx ; 53 3264 3261 push bp ; 55 … … 3266 3263 mov bl, al ; 88 c3 3267 3264 cmp AL, strict byte 001h ; 3c 01 3268 jbe short 02b 74h ; 76 0b3265 jbe short 02b6eh ; 76 0b 3269 3266 push 001c0h ; 68 c0 01 3270 3267 push strict byte 00007h ; 6a 07 3271 call 018e9h ; e8 7 8ed3268 call 018e9h ; e8 7e ed 3272 3269 add sp, strict byte 00004h ; 83 c4 04 3273 3270 movzx ax, dl ; 0f b6 c2 … … 3276 3273 mov bx, ax ; 89 c3 3277 3274 mov ax, strict word 00040h ; b8 40 00 3278 call 0160eh ; e8 8 8ea3275 call 0160eh ; e8 8e ea 3279 3276 pop bp ; 5d 3280 3277 pop bx ; 5b 3281 3278 retn ; c3 3282 floppy_reset_controller_: ; 0xf2b8 9LB 0x283279 floppy_reset_controller_: ; 0xf2b83 LB 0x28 3283 3280 push bx ; 53 3284 3281 push dx ; 52 … … 3302 3299 and AL, strict byte 0c0h ; 24 c0 3303 3300 cmp AL, strict byte 080h ; 3c 80 3304 jne short 02b a1h ; 75 f43301 jne short 02b9bh ; 75 f4 3305 3302 pop bp ; 5d 3306 3303 pop dx ; 5a 3307 3304 pop bx ; 5b 3308 3305 retn ; c3 3309 floppy_prepare_controller_: ; 0xf2b b1LB 0x8c3306 floppy_prepare_controller_: ; 0xf2bab LB 0x8c 3310 3307 push bx ; 53 3311 3308 push cx ; 51 … … 3315 3312 mov dx, strict word 0003eh ; ba 3e 00 3316 3313 mov ax, strict word 00040h ; b8 40 00 3317 call 01600h ; e8 3dea3314 call 01600h ; e8 43 ea 3318 3315 and AL, strict byte 07fh ; 24 7f 3319 3316 movzx bx, al ; 0f b6 d8 3320 3317 mov dx, strict word 0003eh ; ba 3e 00 3321 3318 mov ax, strict word 00040h ; b8 40 00 3322 call 0160eh ; e8 3dea3319 call 0160eh ; e8 43 ea 3323 3320 mov dx, 003f2h ; ba f2 03 3324 3321 in AL, DX ; ec … … 3328 3325 mov byte [bp-002h], al ; 88 46 fe 3329 3326 test cx, cx ; 85 c9 3330 je short 02b e4h ; 74 043327 je short 02bdeh ; 74 04 3331 3328 mov AL, strict byte 020h ; b0 20 3332 jmp short 02be 6h ; eb 023329 jmp short 02be0h ; eb 02 3333 3330 mov AL, strict byte 010h ; b0 10 3334 3331 or AL, strict byte 00ch ; 0c 0c … … 3339 3336 mov dx, strict word 00040h ; ba 40 00 3340 3337 mov ax, dx ; 89 d0 3341 call 0160eh ; e8 1 5ea3338 call 0160eh ; e8 1b ea 3342 3339 mov dx, 0008bh ; ba 8b 00 3343 3340 mov ax, strict word 00040h ; b8 40 00 3344 call 01600h ; e8 fe e93341 call 01600h ; e8 04 ea 3345 3342 shr al, 006h ; c0 e8 06 3346 3343 mov dx, 003f7h ; ba f7 03 … … 3352 3349 and AL, strict byte 0c0h ; 24 c0 3353 3350 cmp AL, strict byte 080h ; 3c 80 3354 jne short 02c0 9h ; 75 f43351 jne short 02c03h ; 75 f4 3355 3352 cmp byte [bp-002h], 000h ; 80 7e fe 00 3356 jne short 02c3 8h ; 75 1d3353 jne short 02c32h ; 75 1d 3357 3354 sti ; fb 3358 3355 mov dx, strict word 0003eh ; ba 3e 00 3359 3356 mov ax, strict word 00040h ; b8 40 00 3360 call 01600h ; e8 dbe93357 call 01600h ; e8 e1 e9 3361 3358 test AL, strict byte 080h ; a8 80 3362 je short 02c1 ch ; 74 f33359 je short 02c16h ; 74 f3 3363 3360 and AL, strict byte 07fh ; 24 7f 3364 3361 cli ; fa … … 3366 3363 mov dx, strict word 0003eh ; ba 3e 00 3367 3364 mov ax, strict word 00040h ; b8 40 00 3368 call 0160eh ; e8 d 6e93365 call 0160eh ; e8 dc e9 3369 3366 leave ; c9 3370 3367 pop dx ; 5a … … 3372 3369 pop bx ; 5b 3373 3370 retn ; c3 3374 floppy_media_known_: ; 0xf2c3 dLB 0x403371 floppy_media_known_: ; 0xf2c37 LB 0x40 3375 3372 push bx ; 53 3376 3373 push dx ; 52 … … 3380 3377 mov dx, strict word 0003eh ; ba 3e 00 3381 3378 mov ax, strict word 00040h ; b8 40 00 3382 call 01600h ; e8 b 3e93379 call 01600h ; e8 b9 e9 3383 3380 mov ah, al ; 88 c4 3384 3381 test bx, bx ; 85 db 3385 je short 02c 55h ; 74 023382 je short 02c4fh ; 74 02 3386 3383 shr al, 1 ; d0 e8 3387 3384 and AL, strict byte 001h ; 24 01 3388 jne short 02c5 dh ; 75 043385 jne short 02c57h ; 75 04 3389 3386 xor ah, ah ; 30 e4 3390 jmp short 02c7 9h ; eb 1c3387 jmp short 02c73h ; eb 1c 3391 3388 mov dx, 00090h ; ba 90 00 3392 3389 test bx, bx ; 85 db 3393 je short 02c6 7h ; 74 033390 je short 02c61h ; 74 03 3394 3391 mov dx, 00091h ; ba 91 00 3395 3392 mov ax, strict word 00040h ; b8 40 00 3396 call 01600h ; e8 9 3e93393 call 01600h ; e8 99 e9 3397 3394 xor ah, ah ; 30 e4 3398 3395 sar ax, 004h ; c1 f8 04 3399 3396 and AL, strict byte 001h ; 24 01 3400 je short 02c5 9h ; 74 e33397 je short 02c53h ; 74 e3 3401 3398 mov ax, strict word 00001h ; b8 01 00 3402 3399 pop bp ; 5d … … 3404 3401 pop bx ; 5b 3405 3402 retn ; c3 3406 floppy_read_id_: ; 0xf2c7 dLB 0x493403 floppy_read_id_: ; 0xf2c77 LB 0x49 3407 3404 push bx ; 53 3408 3405 push dx ; 52 … … 3410 3407 enter 00008h, 000h ; c8 08 00 00 3411 3408 mov bx, ax ; 89 c3 3412 call 02b b1h ; e8 28 ff3409 call 02babh ; e8 28 ff 3413 3410 mov AL, strict byte 04ah ; b0 4a 3414 3411 mov dx, 003f5h ; ba f5 03 … … 3419 3416 mov dx, strict word 0003eh ; ba 3e 00 3420 3417 mov ax, strict word 00040h ; b8 40 00 3421 call 01600h ; e8 6 4e93418 call 01600h ; e8 6a e9 3422 3419 and AL, strict byte 080h ; 24 80 3423 3420 test al, al ; 84 c0 3424 je short 02c 93h ; 74 f13421 je short 02c8dh ; 74 f1 3425 3422 cli ; fa 3426 3423 xor si, si ; 31 f6 3427 jmp short 02ca ch ; eb 053424 jmp short 02ca6h ; eb 05 3428 3425 cmp si, strict byte 00007h ; 83 fe 07 3429 jnl short 02cb 8h ; 7d 0c3426 jnl short 02cb2h ; 7d 0c 3430 3427 mov dx, 003f5h ; ba f5 03 3431 3428 in AL, DX ; ec … … 3434 3431 mov byte [bp+si-008h], al ; 88 42 f8 3435 3432 inc si ; 46 3436 jmp short 02ca 7h ; eb ef3433 jmp short 02ca1h ; eb ef 3437 3434 test byte [bp-008h], 0c0h ; f6 46 f8 c0 3438 3435 db 00fh, 094h, 0c0h … … 3444 3441 pop bx ; 5b 3445 3442 retn ; c3 3446 floppy_drive_recal_: ; 0xf2cc 6LB 0x5e3443 floppy_drive_recal_: ; 0xf2cc0 LB 0x5e 3447 3444 push bx ; 53 3448 3445 push cx ; 51 … … 3451 3448 mov bp, sp ; 89 e5 3452 3449 mov bx, ax ; 89 c3 3453 call 02b b1h ; e8 e0 fe3450 call 02babh ; e8 e0 fe 3454 3451 mov AL, strict byte 007h ; b0 07 3455 3452 mov dx, 003f5h ; ba f5 03 … … 3460 3457 mov dx, strict word 0003eh ; ba 3e 00 3461 3458 mov ax, strict word 00040h ; b8 40 00 3462 call 01600h ; e8 1ce93459 call 01600h ; e8 22 e9 3463 3460 and AL, strict byte 080h ; 24 80 3464 3461 test al, al ; 84 c0 3465 je short 02cd bh ; 74 f13462 je short 02cd5h ; 74 f1 3466 3463 cli ; fa 3467 3464 mov dx, strict word 0003eh ; ba 3e 00 3468 3465 mov ax, strict word 00040h ; b8 40 00 3469 call 01600h ; e8 0ce93466 call 01600h ; e8 12 e9 3470 3467 and AL, strict byte 07fh ; 24 7f 3471 3468 test bx, bx ; 85 db 3472 je short 02 d01h ; 74 073469 je short 02cfbh ; 74 07 3473 3470 or AL, strict byte 002h ; 0c 02 3474 3471 mov cx, 00095h ; b9 95 00 3475 jmp short 02d0 6h ; eb 053472 jmp short 02d00h ; eb 05 3476 3473 or AL, strict byte 001h ; 0c 01 3477 3474 mov cx, 00094h ; b9 94 00 … … 3479 3476 mov dx, strict word 0003eh ; ba 3e 00 3480 3477 mov ax, strict word 00040h ; b8 40 00 3481 call 0160eh ; e8 fc e83478 call 0160eh ; e8 02 e9 3482 3479 xor bx, bx ; 31 db 3483 3480 mov dx, cx ; 89 ca 3484 3481 mov ax, strict word 00040h ; b8 40 00 3485 call 0160eh ; e8 f 2e83482 call 0160eh ; e8 f8 e8 3486 3483 mov ax, strict word 00001h ; b8 01 00 3487 3484 pop bp ; 5d … … 3490 3487 pop bx ; 5b 3491 3488 retn ; c3 3492 floppy_media_sense_: ; 0xf2d 24LB 0xfa3489 floppy_media_sense_: ; 0xf2d1e LB 0xfa 3493 3490 push bx ; 53 3494 3491 push cx ; 51 … … 3499 3496 mov bp, sp ; 89 e5 3500 3497 mov di, ax ; 89 c7 3501 call 02cc 6h ; e8 95 ff3498 call 02cc0h ; e8 95 ff 3502 3499 test ax, ax ; 85 c0 3503 jne short 02d3 ah ; 75 053500 jne short 02d34h ; 75 05 3504 3501 xor cx, cx ; 31 c9 3505 jmp near 02e 15h ; e9 db 003502 jmp near 02e0fh ; e9 db 00 3506 3503 mov ax, strict word 00010h ; b8 10 00 3507 call 0165ch ; e8 1ce93504 call 0165ch ; e8 22 e9 3508 3505 test di, di ; 85 ff 3509 jne short 02d4 bh ; 75 073506 jne short 02d45h ; 75 07 3510 3507 mov cl, al ; 88 c1 3511 3508 shr cl, 004h ; c0 e9 04 3512 jmp short 02d 50h ; eb 053509 jmp short 02d4ah ; eb 05 3513 3510 mov cl, al ; 88 c1 3514 3511 and cl, 00fh ; 80 e1 0f 3515 3512 cmp cl, 001h ; 80 f9 01 3516 jne short 02d5 eh ; 75 093513 jne short 02d58h ; 75 09 3517 3514 xor cl, cl ; 30 c9 3518 3515 mov CH, strict byte 015h ; b5 15 3519 3516 mov si, strict word 00001h ; be 01 00 3520 jmp short 02da 9h ; eb 4b3517 jmp short 02da3h ; eb 4b 3521 3518 cmp cl, 002h ; 80 f9 02 3522 jne short 02d6 9h ; 75 063519 jne short 02d63h ; 75 06 3523 3520 xor cl, cl ; 30 c9 3524 3521 mov CH, strict byte 035h ; b5 35 3525 jmp short 02d5 9h ; eb f03522 jmp short 02d53h ; eb f0 3526 3523 cmp cl, 003h ; 80 f9 03 3527 jne short 02d 74h ; 75 063524 jne short 02d6eh ; 75 06 3528 3525 xor cl, cl ; 30 c9 3529 3526 mov CH, strict byte 017h ; b5 17 3530 jmp short 02d5 9h ; eb e53527 jmp short 02d53h ; eb e5 3531 3528 cmp cl, 004h ; 80 f9 04 3532 jne short 02d7 fh ; 75 063529 jne short 02d79h ; 75 06 3533 3530 xor cl, cl ; 30 c9 3534 3531 mov CH, strict byte 017h ; b5 17 3535 jmp short 02d5 9h ; eb da3532 jmp short 02d53h ; eb da 3536 3533 cmp cl, 005h ; 80 f9 05 3537 jne short 02d8 ah ; 75 063534 jne short 02d84h ; 75 06 3538 3535 mov CL, strict byte 0cch ; b1 cc 3539 3536 mov CH, strict byte 0d7h ; b5 d7 3540 jmp short 02d5 9h ; eb cf3537 jmp short 02d53h ; eb cf 3541 3538 cmp cl, 006h ; 80 f9 06 3542 jne short 02d 95h ; 75 063539 jne short 02d8fh ; 75 06 3543 3540 xor cl, cl ; 30 c9 3544 3541 mov CH, strict byte 027h ; b5 27 3545 jmp short 02d5 9h ; eb c43542 jmp short 02d53h ; eb c4 3546 3543 cmp cl, 007h ; 80 f9 07 3547 jne short 02d9 ch ; 75 023548 jmp short 02d8 fh ; eb f33544 jne short 02d96h ; 75 02 3545 jmp short 02d89h ; eb f3 3549 3546 cmp cl, 008h ; 80 f9 08 3550 jne short 02d a3h ; 75 023551 jmp short 02d8 fh ; eb ec3547 jne short 02d9dh ; 75 02 3548 jmp short 02d89h ; eb ec 3552 3549 xor cl, cl ; 30 c9 3553 3550 xor ch, ch ; 30 ed … … 3556 3553 mov dx, 0008bh ; ba 8b 00 3557 3554 mov ax, strict word 00040h ; b8 40 00 3558 call 0160eh ; e8 5 9e83555 call 0160eh ; e8 5f e8 3559 3556 mov ax, di ; 89 f8 3560 call 02c7 dh ; e8 c3 fe3557 call 02c77h ; e8 c3 fe 3561 3558 test ax, ax ; 85 c0 3562 jne short 02d f0h ; 75 323559 jne short 02deah ; 75 32 3563 3560 mov al, cl ; 88 c8 3564 3561 and AL, strict byte 0c0h ; 24 c0 3565 3562 cmp AL, strict byte 080h ; 3c 80 3566 je short 02d f0h ; 74 2a3563 je short 02deah ; 74 2a 3567 3564 mov al, cl ; 88 c8 3568 3565 and AL, strict byte 0c0h ; 24 c0 3569 3566 cmp AL, strict byte 0c0h ; 3c c0 3570 je short 02dd dh ; 74 0f3567 je short 02dd7h ; 74 0f 3571 3568 mov ah, cl ; 88 cc 3572 3569 and ah, 03fh ; 80 e4 3f 3573 3570 cmp AL, strict byte 040h ; 3c 40 3574 je short 02de 9h ; 74 123571 je short 02de3h ; 74 12 3575 3572 test al, al ; 84 c0 3576 je short 02d e2h ; 74 073577 jmp short 02da 9h ; eb cc3573 je short 02ddch ; 74 07 3574 jmp short 02da3h ; eb cc 3578 3575 and cl, 03fh ; 80 e1 3f 3579 jmp short 02da 9h ; eb c73576 jmp short 02da3h ; eb c7 3580 3577 mov cl, ah ; 88 e1 3581 3578 or cl, 040h ; 80 c9 40 3582 jmp short 02da 9h ; eb c03579 jmp short 02da3h ; eb c0 3583 3580 mov cl, ah ; 88 e1 3584 3581 or cl, 080h ; 80 c9 80 3585 jmp short 02da 9h ; eb b93582 jmp short 02da3h ; eb b9 3586 3583 test di, di ; 85 ff 3587 3584 db 00fh, 095h, 0c0h … … 3592 3589 mov dx, 0008bh ; ba 8b 00 3593 3590 mov ax, strict word 00040h ; b8 40 00 3594 call 0160eh ; e8 0 6e83591 call 0160eh ; e8 0c e8 3595 3592 movzx bx, ch ; 0f b6 dd 3596 3593 mov dx, di ; 89 fa 3597 3594 mov ax, strict word 00040h ; b8 40 00 3598 call 0160eh ; e8 fb e73595 call 0160eh ; e8 01 e8 3599 3596 mov cx, si ; 89 f1 3600 3597 mov ax, cx ; 89 c8 … … 3606 3603 pop bx ; 5b 3607 3604 retn ; c3 3608 floppy_drive_exists_: ; 0xf2e1 eLB 0x333605 floppy_drive_exists_: ; 0xf2e18 LB 0x33 3609 3606 push dx ; 52 3610 3607 push bp ; 55 … … 3612 3609 mov dx, ax ; 89 c2 3613 3610 mov ax, strict word 00010h ; b8 10 00 3614 call 0165ch ; e8 3 2e83611 call 0165ch ; e8 38 e8 3615 3612 test dx, dx ; 85 d2 3616 jne short 02e 33h ; 75 053613 jne short 02e2dh ; 75 05 3617 3614 shr al, 004h ; c0 e8 04 3618 jmp short 02e 35h ; eb 023615 jmp short 02e2fh ; eb 02 3619 3616 and AL, strict byte 00fh ; 24 0f 3620 3617 test al, al ; 84 c0 … … 3625 3622 pop dx ; 5a 3626 3623 retn ; c3 3627 sti ; fb 3628 xor AL, strict byte 006h ; 34 06 3629 xor ax, 03510h ; 35 10 35 3630 pop SS ; 17 3631 xor ax, 0351eh ; 35 1e 35 3632 and ax, 02c35h ; 25 35 2c 3633 xor ax, 03536h ; 35 36 35 3634 db 03dh 3624 cmc ; f5 3625 xor AL, strict byte 000h ; 34 00 3626 xor ax, 0350ah ; 35 0a 35 3627 adc word [di], si ; 11 35 3628 sbb byte [di], dh ; 18 35 3629 pop DS ; 1f 3630 xor ax, 03526h ; 35 26 35 3631 xor byte [di], dh ; 30 35 3632 aaa ; 37 3635 3633 db 035h 3636 _int13_diskette_function: ; 0xf2e 51LB 0x78f3634 _int13_diskette_function: ; 0xf2e4b LB 0x78f 3637 3635 push si ; 56 3638 3636 push di ; 57 … … 3645 3643 mov ah, byte [bp+012h] ; 8a 66 12 3646 3644 cmp bl, 008h ; 80 fb 08 3647 jc short 02ea 8h ; 72 3a3645 jc short 02ea2h ; 72 3a 3648 3646 mov dx, word [bp+020h] ; 8b 56 20 3649 3647 or dl, 001h ; 80 ca 01 3650 3648 cmp bl, 008h ; 80 fb 08 3651 jbe near 0347 ch ; 0f 86 01 063649 jbe near 03476h ; 0f 86 01 06 3652 3650 cmp bl, 016h ; 80 fb 16 3653 jc short 02e9 eh ; 72 1e3651 jc short 02e98h ; 72 1e 3654 3652 or si, 00100h ; 81 ce 00 01 3655 3653 mov cx, si ; 89 f1 3656 3654 cmp bl, 016h ; 80 fb 16 3657 jbe near 0359 bh ; 0f 86 0e 073655 jbe near 03595h ; 0f 86 0e 07 3658 3656 cmp bl, 018h ; 80 fb 18 3659 je near 035 a0h ; 0f 84 0c 073657 je near 0359ah ; 0f 84 0c 07 3660 3658 cmp bl, 017h ; 80 fb 17 3661 je near 035 a0h ; 0f 84 05 073662 jmp near 035b dh ; e9 1f 073659 je near 0359ah ; 0f 84 05 07 3660 jmp near 035b7h ; e9 1f 07 3663 3661 cmp bl, 015h ; 80 fb 15 3664 je near 0355 fh ; 0f 84 ba 063665 jmp near 035b dh ; e9 15 073662 je near 03559h ; 0f 84 ba 06 3663 jmp near 035b7h ; e9 15 07 3666 3664 cmp bl, 001h ; 80 fb 01 3667 jc short 02e c2h ; 72 153668 jbe near 02f3 8h ; 0f 86 87 003665 jc short 02ebch ; 72 15 3666 jbe near 02f32h ; 0f 86 87 00 3669 3667 cmp bl, 005h ; 80 fb 05 3670 je near 032 d5h ; 0f 84 1d 043668 je near 032cfh ; 0f 84 1d 04 3671 3669 cmp bl, 004h ; 80 fb 04 3672 jbe near 02f5 6h ; 0f 86 97 003673 jmp near 035b dh ; e9 fb 063670 jbe near 02f50h ; 0f 86 97 00 3671 jmp near 035b7h ; e9 fb 06 3674 3672 test bl, bl ; 84 db 3675 jne near 035b dh ; 0f 85 f5 063673 jne near 035b7h ; 0f 85 f5 06 3676 3674 mov al, byte [bp+012h] ; 8a 46 12 3677 3675 mov byte [bp-00ah], al ; 88 46 f6 3678 3676 cmp AL, strict byte 001h ; 3c 01 3679 jbe short 02ee 6h ; 76 143677 jbe short 02ee0h ; 76 14 3680 3678 mov ax, word [bp+01ah] ; 8b 46 1a 3681 3679 xor ah, ah ; 30 e4 … … 3683 3681 mov word [bp+01ah], ax ; 89 46 1a 3684 3682 mov ax, strict word 00001h ; b8 01 00 3685 call 02b4 ah ; e8 67 fc3686 jmp near 032 b1h ; e9 cb 033683 call 02b44h ; e8 67 fc 3684 jmp near 032abh ; e9 cb 03 3687 3685 mov ax, strict word 00010h ; b8 10 00 3688 call 0165ch ; e8 7 0e73686 call 0165ch ; e8 76 e7 3689 3687 cmp byte [bp-00ah], 000h ; 80 7e f6 00 3690 jne short 02ef 9h ; 75 073688 jne short 02ef3h ; 75 07 3691 3689 mov bl, al ; 88 c3 3692 3690 shr bl, 004h ; c0 eb 04 3693 jmp short 02ef eh ; eb 053691 jmp short 02ef8h ; eb 05 3694 3692 mov bl, al ; 88 c3 3695 3693 and bl, 00fh ; 80 e3 0f 3696 3694 test bl, bl ; 84 db 3697 jne short 02f 12h ; 75 103695 jne short 02f0ch ; 75 10 3698 3696 mov ax, word [bp+01ah] ; 8b 46 1a 3699 3697 xor ah, ah ; 30 e4 … … 3701 3699 mov word [bp+01ah], ax ; 89 46 1a 3702 3700 mov ax, 00080h ; b8 80 00 3703 jmp short 02e e0h ; eb ce3701 jmp short 02edah ; eb ce 3704 3702 xor bx, bx ; 31 db 3705 3703 mov dx, strict word 0003eh ; ba 3e 00 3706 3704 mov ax, strict word 00040h ; b8 40 00 3707 call 0160eh ; e8 f 1e63705 call 0160eh ; e8 f7 e6 3708 3706 xor al, al ; 30 c0 3709 3707 mov byte [bp+01bh], al ; 88 46 1b 3710 3708 xor ah, ah ; 30 e4 3711 call 02b4 ah ; e8 23 fc3709 call 02b44h ; e8 23 fc 3712 3710 and byte [bp+020h], 0feh ; 80 66 20 fe 3713 3711 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 3714 3712 xor dx, dx ; 31 d2 3715 call 02b5 fh ; e8 2b fc3713 call 02b59h ; e8 2b fc 3716 3714 leave ; c9 3717 3715 pop di ; 5f … … 3721 3719 mov dx, 00441h ; ba 41 04 3722 3720 xor ax, ax ; 31 c0 3723 call 01600h ; e8 bce63721 call 01600h ; e8 c2 e6 3724 3722 movzx dx, al ; 0f b6 d0 3725 3723 sal dx, 008h ; c1 e2 08 … … 3727 3725 mov word [bp+01ah], si ; 89 76 1a 3728 3726 test al, al ; 84 c0 3729 je short 02f 34h ; 74 e13730 jmp near 032 b1h ; e9 5b 033727 je short 02f2eh ; 74 e1 3728 jmp near 032abh ; e9 5b 03 3731 3729 mov al, byte [bp+01ah] ; 8a 46 1a 3732 3730 mov byte [bp-008h], al ; 88 46 f8 … … 3741 3739 mov byte [bp-00ah], ah ; 88 66 f6 3742 3740 cmp ah, 001h ; 80 fc 01 3743 jnbe short 02f8 ch ; 77 103741 jnbe short 02f86h ; 77 10 3744 3742 cmp dl, 001h ; 80 fa 01 3745 jnbe short 02f8 ch ; 77 0b3743 jnbe short 02f86h ; 77 0b 3746 3744 mov al, byte [bp-008h] ; 8a 46 f8 3747 3745 test al, al ; 84 c0 3748 je short 02f8 ch ; 74 043746 je short 02f86h ; 74 04 3749 3747 cmp AL, strict byte 048h ; 3c 48 3750 jbe short 02f b5h ; 76 293748 jbe short 02fafh ; 76 29 3751 3749 mov bx, 00d32h ; bb 32 0d 3752 3750 mov cx, ds ; 8c d9 3753 3751 mov ax, strict word 00004h ; b8 04 00 3754 call 018aeh ; e8 1 7e93752 call 018aeh ; e8 1d e9 3755 3753 push 001e5h ; 68 e5 01 3756 3754 push 001fdh ; 68 fd 01 3757 3755 push strict byte 00004h ; 6a 04 3758 call 018e9h ; e8 4 7e93756 call 018e9h ; e8 4d e9 3759 3757 add sp, strict byte 00006h ; 83 c4 06 3760 3758 mov ax, word [bp+01ah] ; 8b 46 1a … … 3763 3761 mov word [bp+01ah], ax ; 89 46 1a 3764 3762 mov ax, strict word 00001h ; b8 01 00 3765 jmp short 0302 6h ; eb 713763 jmp short 03020h ; eb 71 3766 3764 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 3767 call 02e1 eh ; e8 62 fe3765 call 02e18h ; e8 62 fe 3768 3766 test ax, ax ; 85 c0 3769 je near 030b fh ; 0f 84 fd 003767 je near 030b9h ; 0f 84 fd 00 3770 3768 movzx dx, byte [bp-00ah] ; 0f b6 56 f6 3771 3769 mov ax, dx ; 89 d0 3772 call 02c3 dh ; e8 72 fc3770 call 02c37h ; e8 72 fc 3773 3771 test ax, ax ; 85 c0 3774 jne short 02fe 8h ; 75 193772 jne short 02fe2h ; 75 19 3775 3773 mov ax, dx ; 89 d0 3776 call 02d 24h ; e8 50 fd3774 call 02d1eh ; e8 50 fd 3777 3775 test ax, ax ; 85 c0 3778 jne short 02fe 8h ; 75 103776 jne short 02fe2h ; 75 10 3779 3777 mov ax, word [bp+01ah] ; 8b 46 1a 3780 3778 xor ah, ah ; 30 e4 … … 3782 3780 mov word [bp+01ah], ax ; 89 46 1a 3783 3781 mov ax, strict word 0000ch ; b8 0c 00 3784 jmp short 0302 6h ; eb 3e3782 jmp short 03020h ; eb 3e 3785 3783 cmp ch, 002h ; 80 fd 02 3786 jne near 0317 dh ; 0f 85 8e 013784 jne near 03177h ; 0f 85 8e 01 3787 3785 mov dx, word [bp+00ah] ; 8b 56 0a 3788 3786 shr dx, 00ch ; c1 ea 0c … … 3793 3791 add bx, cx ; 01 cb 3794 3792 cmp bx, cx ; 39 cb 3795 jnc short 0300 8h ; 73 023793 jnc short 03002h ; 73 02 3796 3794 db 0feh, 0c4h 3797 3795 ; inc ah ; fe c4 … … 3802 3800 add dx, cx ; 01 ca 3803 3801 cmp dx, bx ; 39 da 3804 jnc short 030 30h ; 73 183802 jnc short 0302ah ; 73 18 3805 3803 mov ax, word [bp+01ah] ; 8b 46 1a 3806 3804 xor ah, ah ; 30 e4 … … 3808 3806 mov word [bp+01ah], ax ; 89 46 1a 3809 3807 mov ax, strict word 00009h ; b8 09 00 3810 call 02b4 ah ; e8 21 fb3808 call 02b44h ; e8 21 fb 3811 3809 mov byte [bp+01ah], 000h ; c6 46 1a 00 3812 jmp near 032 b1h ; e9 81 023810 jmp near 032abh ; e9 81 02 3813 3811 mov AL, strict byte 006h ; b0 06 3814 3812 mov dx, strict word 0000ah ; ba 0a 00 … … 3843 3841 out DX, AL ; ee 3844 3842 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 3845 call 02b b1h ; e8 3d fb3843 call 02babh ; e8 3d fb 3846 3844 mov AL, strict byte 0e6h ; b0 e6 3847 3845 mov dx, 003f5h ; ba f5 03 … … 3874 3872 mov dx, strict word 00040h ; ba 40 00 3875 3873 mov ax, dx ; 89 d0 3876 call 01600h ; e8 4 8e53874 call 01600h ; e8 4e e5 3877 3875 test al, al ; 84 c0 3878 jne short 030 d0h ; 75 143879 call 02b8 9h ; e8 ca fa3876 jne short 030cah ; 75 14 3877 call 02b83h ; e8 ca fa 3880 3878 mov ax, word [bp+01ah] ; 8b 46 1a 3881 3879 xor ah, ah ; 30 e4 … … 3883 3881 mov word [bp+01ah], ax ; 89 46 1a 3884 3882 mov ax, 00080h ; b8 80 00 3885 jmp near 0302 6h ; e9 56 ff3883 jmp near 03020h ; e9 56 ff 3886 3884 mov dx, strict word 0003eh ; ba 3e 00 3887 3885 mov ax, strict word 00040h ; b8 40 00 3888 call 01600h ; e8 2 7e53886 call 01600h ; e8 2d e5 3889 3887 and AL, strict byte 080h ; 24 80 3890 3888 test al, al ; 84 c0 3891 je short 030 b0h ; 74 d13889 je short 030aah ; 74 d1 3892 3890 cli ; fa 3893 3891 mov dx, strict word 0003eh ; ba 3e 00 3894 3892 mov ax, strict word 00040h ; b8 40 00 3895 call 01600h ; e8 1 7e53893 call 01600h ; e8 1d e5 3896 3894 and AL, strict byte 07fh ; 24 7f 3897 3895 movzx bx, al ; 0f b6 d8 3898 3896 mov dx, strict word 0003eh ; ba 3e 00 3899 3897 mov ax, strict word 00040h ; b8 40 00 3900 call 0160eh ; e8 1 7e53898 call 0160eh ; e8 1d e5 3901 3899 mov dx, 003f4h ; ba f4 03 3902 3900 in AL, DX ; ec … … 3905 3903 and AL, strict byte 0c0h ; 24 c0 3906 3904 cmp AL, strict byte 0c0h ; 3c c0 3907 je short 031 11h ; 74 0e3905 je short 0310bh ; 74 0e 3908 3906 push 001e5h ; 68 e5 01 3909 3907 push 00218h ; 68 18 02 3910 3908 push strict byte 00007h ; 6a 07 3911 call 018e9h ; e8 dbe73909 call 018e9h ; e8 e1 e7 3912 3910 add sp, strict byte 00006h ; 83 c4 06 3913 3911 xor si, si ; 31 f6 3914 jmp short 0311 ah ; eb 053912 jmp short 03114h ; eb 05 3915 3913 cmp si, strict byte 00007h ; 83 fe 07 3916 jnl short 031 32h ; 7d 183914 jnl short 0312ch ; 7d 18 3917 3915 mov dx, 003f5h ; ba f5 03 3918 3916 in AL, DX ; ec … … 3923 3921 lea dx, [si+042h] ; 8d 54 42 3924 3922 mov ax, strict word 00040h ; b8 40 00 3925 call 0160eh ; e8 dfe43923 call 0160eh ; e8 e5 e4 3926 3924 inc si ; 46 3927 jmp short 031 15h ; eb e33925 jmp short 0310fh ; eb e3 3928 3926 test byte [bp-012h], 0c0h ; f6 46 ee c0 3929 je short 0314 9h ; 74 113927 je short 03143h ; 74 11 3930 3928 mov ax, word [bp+01ah] ; 8b 46 1a 3931 3929 xor ah, ah ; 30 e4 … … 3933 3931 mov word [bp+01ah], ax ; 89 46 1a 3934 3932 mov ax, strict word 00020h ; b8 20 00 3935 jmp near 0302 6h ; e9 dd fe3933 jmp near 03020h ; e9 dd fe 3936 3934 movzx ax, byte [bp-008h] ; 0f b6 46 f8 3937 3935 sal ax, 009h ; c1 e0 09 … … 3951 3949 movzx dx, byte [bp-004h] ; 0f b6 56 fc 3952 3950 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 3953 call 02b5 fh ; e8 ed f93951 call 02b59h ; e8 ed f9 3954 3952 mov byte [bp+01bh], 000h ; c6 46 1b 00 3955 3953 and byte [bp+020h], 0feh ; 80 66 20 fe 3956 jmp near 02f 34h ; e9 b7 fd3954 jmp near 02f2eh ; e9 b7 fd 3957 3955 cmp ch, 003h ; 80 fd 03 3958 jne near 032b fh ; 0f 85 3b 013956 jne near 032b9h ; 0f 85 3b 01 3959 3957 mov dx, word [bp+00ah] ; 8b 56 0a 3960 3958 shr dx, 00ch ; c1 ea 0c … … 3965 3963 add bx, cx ; 01 cb 3966 3964 cmp bx, cx ; 39 cb 3967 jnc short 0319 dh ; 73 023965 jnc short 03197h ; 73 02 3968 3966 db 0feh, 0c4h 3969 3967 ; inc ah ; fe c4 … … 3974 3972 add dx, cx ; 01 ca 3975 3973 cmp dx, bx ; 39 da 3976 jc near 0301 8h ; 0f 82 69 fe3974 jc near 03012h ; 0f 82 69 fe 3977 3975 mov AL, strict byte 006h ; b0 06 3978 3976 mov dx, strict word 0000ah ; ba 0a 00 … … 4006 4004 out DX, AL ; ee 4007 4005 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 4008 call 02b b1h ; e8 bf f94006 call 02babh ; e8 bf f9 4009 4007 mov AL, strict byte 0c5h ; b0 c5 4010 4008 mov dx, 003f5h ; ba f5 03 … … 4037 4035 mov dx, strict word 00040h ; ba 40 00 4038 4036 mov ax, dx ; 89 d0 4039 call 01600h ; e8 cae34037 call 01600h ; e8 d0 e3 4040 4038 test al, al ; 84 c0 4041 je near 030b ch ; 0f 84 80 fe4039 je near 030b6h ; 0f 84 80 fe 4042 4040 mov dx, strict word 0003eh ; ba 3e 00 4043 4041 mov ax, strict word 00040h ; b8 40 00 4044 call 01600h ; e8 bbe34042 call 01600h ; e8 c1 e3 4045 4043 and AL, strict byte 080h ; 24 80 4046 4044 test al, al ; 84 c0 4047 je short 0322 eh ; 74 e34045 je short 03228h ; 74 e3 4048 4046 cli ; fa 4049 4047 mov dx, strict word 0003eh ; ba 3e 00 4050 4048 mov ax, strict word 00040h ; b8 40 00 4051 call 01600h ; e8 abe34049 call 01600h ; e8 b1 e3 4052 4050 and AL, strict byte 07fh ; 24 7f 4053 4051 movzx bx, al ; 0f b6 d8 4054 4052 mov dx, strict word 0003eh ; ba 3e 00 4055 4053 mov ax, strict word 00040h ; b8 40 00 4056 call 0160eh ; e8 abe34054 call 0160eh ; e8 b1 e3 4057 4055 mov dx, 003f4h ; ba f4 03 4058 4056 in AL, DX ; ec … … 4061 4059 and AL, strict byte 0c0h ; 24 c0 4062 4060 cmp AL, strict byte 0c0h ; 3c c0 4063 je short 0327 dh ; 74 0e4061 je short 03277h ; 74 0e 4064 4062 push 001e5h ; 68 e5 01 4065 4063 push 00218h ; 68 18 02 4066 4064 push strict byte 00007h ; 6a 07 4067 call 018e9h ; e8 6fe64065 call 018e9h ; e8 75 e6 4068 4066 add sp, strict byte 00006h ; 83 c4 06 4069 4067 xor si, si ; 31 f6 4070 jmp short 0328 6h ; eb 054068 jmp short 03280h ; eb 05 4071 4069 cmp si, strict byte 00007h ; 83 fe 07 4072 jnl short 0329 eh ; 7d 184070 jnl short 03298h ; 7d 18 4073 4071 mov dx, 003f5h ; ba f5 03 4074 4072 in AL, DX ; ec … … 4079 4077 lea dx, [si+042h] ; 8d 54 42 4080 4078 mov ax, strict word 00040h ; b8 40 00 4081 call 0160eh ; e8 7 3e34079 call 0160eh ; e8 79 e3 4082 4080 inc si ; 46 4083 jmp short 032 81h ; eb e34081 jmp short 0327bh ; eb e3 4084 4082 test byte [bp-012h], 0c0h ; f6 46 ee c0 4085 je near 0316 7h ; 0f 84 c1 fe4083 je near 03161h ; 0f 84 c1 fe 4086 4084 test byte [bp-011h], 002h ; f6 46 ef 02 4087 je short 032b 8h ; 74 0c4085 je short 032b2h ; 74 0c 4088 4086 mov word [bp+01ah], 00300h ; c7 46 1a 00 03 4089 4087 or byte [bp+020h], 001h ; 80 4e 20 01 4090 jmp near 02f 34h ; e9 7c fc4088 jmp near 02f2eh ; e9 7c fc 4091 4089 mov word [bp+01ah], 00100h ; c7 46 1a 00 01 4092 jmp short 032 b1h ; eb f24090 jmp short 032abh ; eb f2 4093 4091 movzx dx, byte [bp-004h] ; 0f b6 56 fc 4094 4092 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 4095 call 02b5 fh ; e8 95 f84093 call 02b59h ; e8 95 f8 4096 4094 and byte [bp+020h], 0feh ; 80 66 20 fe 4097 4095 mov byte [bp+01bh], 000h ; c6 46 1b 00 4098 jmp near 02f 34h ; e9 5f fc4096 jmp near 02f2eh ; e9 5f fc 4099 4097 mov al, byte [bp+01ah] ; 8a 46 1a 4100 4098 mov byte [bp-008h], al ; 88 46 f8 … … 4107 4105 mov byte [bp-00ah], bl ; 88 5e f6 4108 4106 cmp bl, 001h ; 80 fb 01 4109 jnbe short 0330 9h ; 77 144107 jnbe short 03303h ; 77 14 4110 4108 cmp AL, strict byte 001h ; 3c 01 4111 jnbe short 0330 9h ; 77 104109 jnbe short 03303h ; 77 10 4112 4110 cmp dl, 04fh ; 80 fa 4f 4113 jnbe short 0330 9h ; 77 0b4111 jnbe short 03303h ; 77 0b 4114 4112 mov al, byte [bp-008h] ; 8a 46 f8 4115 4113 test al, al ; 84 c0 4116 je short 0330 9h ; 74 044114 je short 03303h ; 74 04 4117 4115 cmp AL, strict byte 012h ; 3c 12 4118 jbe short 0331 eh ; 76 154116 jbe short 03318h ; 76 15 4119 4117 mov ax, word [bp+01ah] ; 8b 46 1a 4120 4118 xor ah, ah ; 30 e4 … … 4122 4120 mov word [bp+01ah], ax ; 89 46 1a 4123 4121 mov ax, strict word 00001h ; b8 01 00 4124 call 02b4 ah ; e8 30 f84122 call 02b44h ; e8 30 f8 4125 4123 or byte [bp+020h], 001h ; 80 4e 20 01 4126 4124 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 4127 call 02e1 eh ; e8 f9 fa4125 call 02e18h ; e8 f9 fa 4128 4126 test ax, ax ; 85 c0 4129 je near 02 f02h ; 0f 84 d7 fb4127 je near 02efch ; 0f 84 d7 fb 4130 4128 movzx dx, byte [bp-00ah] ; 0f b6 56 f6 4131 4129 mov ax, dx ; 89 d0 4132 call 02c3 dh ; e8 09 f94130 call 02c37h ; e8 09 f9 4133 4131 test ax, ax ; 85 c0 4134 jne short 033 43h ; 75 0b4132 jne short 0333dh ; 75 0b 4135 4133 mov ax, dx ; 89 d0 4136 call 02d 24h ; e8 e7 f94134 call 02d1eh ; e8 e7 f9 4137 4135 test ax, ax ; 85 c0 4138 je near 02fd 8h ; 0f 84 95 fc4136 je near 02fd2h ; 0f 84 95 fc 4139 4137 mov dx, word [bp+00ah] ; 8b 56 0a 4140 4138 shr dx, 00ch ; c1 ea 0c … … 4145 4143 add bx, cx ; 01 cb 4146 4144 cmp bx, cx ; 39 cb 4147 jnc short 0335 ch ; 73 024145 jnc short 03356h ; 73 02 4148 4146 db 0feh, 0c4h 4149 4147 ; inc ah ; fe c4 … … 4154 4152 add dx, cx ; 01 ca 4155 4153 cmp dx, bx ; 39 da 4156 jc near 0301 8h ; 0f 82 aa fc4154 jc near 03012h ; 0f 82 aa fc 4157 4155 mov AL, strict byte 006h ; b0 06 4158 4156 mov dx, strict word 0000ah ; ba 0a 00 … … 4186 4184 out DX, AL ; ee 4187 4185 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 4188 call 02b b1h ; e8 00 f84186 call 02babh ; e8 00 f8 4189 4187 mov AL, strict byte 04dh ; b0 4d 4190 4188 mov dx, 003f5h ; ba f5 03 … … 4207 4205 mov dx, strict word 00040h ; ba 40 00 4208 4206 mov ax, dx ; 89 d0 4209 call 01600h ; e8 2 2e24207 call 01600h ; e8 28 e2 4210 4208 test al, al ; 84 c0 4211 jne short 033e 8h ; 75 064212 call 02b8 9h ; e8 a4 f74213 jmp near 02 f02h ; e9 1a fb4209 jne short 033e2h ; 75 06 4210 call 02b83h ; e8 a4 f7 4211 jmp near 02efch ; e9 1a fb 4214 4212 mov dx, strict word 0003eh ; ba 3e 00 4215 4213 mov ax, strict word 00040h ; b8 40 00 4216 call 01600h ; e8 0fe24214 call 01600h ; e8 15 e2 4217 4215 and AL, strict byte 080h ; 24 80 4218 4216 test al, al ; 84 c0 4219 je short 033d 6h ; 74 df4217 je short 033d0h ; 74 df 4220 4218 cli ; fa 4221 4219 mov dx, strict word 0003eh ; ba 3e 00 4222 4220 mov ax, strict word 00040h ; b8 40 00 4223 call 01600h ; e8 ff e14221 call 01600h ; e8 05 e2 4224 4222 and AL, strict byte 07fh ; 24 7f 4225 4223 movzx bx, al ; 0f b6 d8 4226 4224 mov dx, strict word 0003eh ; ba 3e 00 4227 4225 mov ax, strict word 00040h ; b8 40 00 4228 call 0160eh ; e8 ff e14226 call 0160eh ; e8 05 e2 4229 4227 mov dx, 003f4h ; ba f4 03 4230 4228 in AL, DX ; ec … … 4233 4231 and AL, strict byte 0c0h ; 24 c0 4234 4232 cmp AL, strict byte 0c0h ; 3c c0 4235 je short 0342 9h ; 74 0e4233 je short 03423h ; 74 0e 4236 4234 push 001e5h ; 68 e5 01 4237 4235 push 00218h ; 68 18 02 4238 4236 push strict byte 00007h ; 6a 07 4239 call 018e9h ; e8 c 3e44237 call 018e9h ; e8 c9 e4 4240 4238 add sp, strict byte 00006h ; 83 c4 06 4241 4239 xor si, si ; 31 f6 4242 jmp short 034 32h ; eb 054240 jmp short 0342ch ; eb 05 4243 4241 cmp si, strict byte 00007h ; 83 fe 07 4244 jnl short 0344 ah ; 7d 184242 jnl short 03444h ; 7d 18 4245 4243 mov dx, 003f5h ; ba f5 03 4246 4244 in AL, DX ; ec … … 4251 4249 lea dx, [si+042h] ; 8d 54 42 4252 4250 mov ax, strict word 00040h ; b8 40 00 4253 call 0160eh ; e8 c 7e14251 call 0160eh ; e8 cd e1 4254 4252 inc si ; 46 4255 jmp short 0342 dh ; eb e34253 jmp short 03427h ; eb e3 4256 4254 test byte [bp-012h], 0c0h ; f6 46 ee c0 4257 je short 0346 6h ; 74 164255 je short 03460h ; 74 16 4258 4256 test byte [bp-011h], 002h ; f6 46 ef 02 4259 jne near 032a ch ; 0f 85 54 fe4257 jne near 032a6h ; 0f 85 54 fe 4260 4258 push 001e5h ; 68 e5 01 4261 4259 push 0022ch ; 68 2c 02 4262 4260 push strict byte 00007h ; 6a 07 4263 call 018e9h ; e8 8 6e44261 call 018e9h ; e8 8c e4 4264 4262 add sp, strict byte 00006h ; 83 c4 06 4265 4263 xor al, al ; 30 c0 4266 4264 mov byte [bp+01bh], al ; 88 46 1b 4267 4265 xor ah, ah ; 30 e4 4268 call 02b4 ah ; e8 da f64266 call 02b44h ; e8 da f6 4269 4267 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 4270 4268 xor dx, dx ; 31 d2 4271 call 02b5 fh ; e8 e6 f64272 jmp near 0317 6h ; e9 fa fc4269 call 02b59h ; e8 e6 f6 4270 jmp near 03170h ; e9 fa fc 4273 4271 mov byte [bp-00ah], ah ; 88 66 f6 4274 4272 cmp ah, 001h ; 80 fc 01 4275 jbe short 034 a4h ; 76 204273 jbe short 0349eh ; 76 20 4276 4274 xor ax, ax ; 31 c0 4277 4275 mov word [bp+01ah], ax ; 89 46 1a … … 4284 4282 mov word [bp+016h], ax ; 89 46 16 4285 4283 mov word [bp+020h], dx ; 89 56 20 4286 jmp near 02f 34h ; e9 90 fa4284 jmp near 02f2eh ; e9 90 fa 4287 4285 mov ax, strict word 00010h ; b8 10 00 4288 call 0165ch ; e8 b 2e14286 call 0165ch ; e8 b8 e1 4289 4287 mov bl, al ; 88 c3 4290 4288 xor cl, cl ; 30 c9 4291 4289 test AL, strict byte 0f0h ; a8 f0 4292 je short 034 b4h ; 74 024290 je short 034aeh ; 74 02 4293 4291 mov CL, strict byte 001h ; b1 01 4294 4292 test bl, 00fh ; f6 c3 0f 4295 je short 034b bh ; 74 024293 je short 034b5h ; 74 02 4296 4294 db 0feh, 0c1h 4297 4295 ; inc cl ; fe c1 4298 4296 cmp byte [bp-00ah], 000h ; 80 7e f6 00 4299 jne short 034c 6h ; 75 054297 jne short 034c0h ; 75 05 4300 4298 shr bl, 004h ; c0 eb 04 4301 jmp short 034c 9h ; eb 034299 jmp short 034c3h ; eb 03 4302 4300 and bl, 00fh ; 80 e3 0f 4303 4301 xor al, al ; 30 c0 … … 4313 4311 mov word [bp+016h], dx ; 89 56 16 4314 4312 cmp bl, 008h ; 80 fb 08 4315 jnbe short 035 44h ; 77 594313 jnbe short 0353eh ; 77 59 4316 4314 add si, si ; 01 f6 4317 4315 mov ax, dx ; 89 d0 … … 4319 4317 mov bx, ax ; 89 c3 4320 4318 or bh, 001h ; 80 cf 01 4321 jmp word [cs:si+02e3 fh] ; 2e ff a4 3f2e4319 jmp word [cs:si+02e39h] ; 2e ff a4 39 2e 4322 4320 mov word [bp+018h], strict word 00000h ; c7 46 18 00 00 4323 4321 mov byte [bp+017h], 000h ; c6 46 17 00 4324 jmp short 035 52h ; eb 4c4322 jmp short 0354ch ; eb 4c 4325 4323 mov word [bp+018h], 02709h ; c7 46 18 09 27 4326 4324 mov word [bp+016h], bx ; 89 5e 16 4327 jmp short 035 52h ; eb 424325 jmp short 0354ch ; eb 42 4328 4326 mov word [bp+018h], 04f0fh ; c7 46 18 0f 4f 4329 jmp short 0350 bh ; eb f44327 jmp short 03505h ; eb f4 4330 4328 mov word [bp+018h], 04f09h ; c7 46 18 09 4f 4331 jmp short 0350 bh ; eb ed4329 jmp short 03505h ; eb ed 4332 4330 mov word [bp+018h], 04f12h ; c7 46 18 12 4f 4333 jmp short 0350 bh ; eb e64331 jmp short 03505h ; eb e6 4334 4332 mov word [bp+018h], 04f24h ; c7 46 18 24 4f 4335 jmp short 0350 bh ; eb df4333 jmp short 03505h ; eb df 4336 4334 mov word [bp+018h], 02708h ; c7 46 18 08 27 4337 4335 mov word [bp+016h], ax ; 89 46 16 4338 jmp short 035 52h ; eb 1c4336 jmp short 0354ch ; eb 1c 4339 4337 mov word [bp+018h], 02709h ; c7 46 18 09 27 4340 jmp short 035 31h ; eb f44338 jmp short 0352bh ; eb f4 4341 4339 mov word [bp+018h], 02708h ; c7 46 18 08 27 4342 jmp short 0350 bh ; eb c74340 jmp short 03505h ; eb c7 4343 4341 push 001e5h ; 68 e5 01 4344 4342 push 0023dh ; 68 3d 02 4345 4343 push strict byte 00007h ; 6a 07 4346 call 018e9h ; e8 9ae34344 call 018e9h ; e8 a0 e3 4347 4345 add sp, strict byte 00006h ; 83 c4 06 4348 4346 mov word [bp+00ah], 0f000h ; c7 46 0a 00 f0 4349 4347 mov word [bp+00ch], 0efc7h ; c7 46 0c c7 ef 4350 jmp near 0317 6h ; e9 17 fc4348 jmp near 03170h ; e9 17 fc 4351 4349 mov byte [bp-00ah], ah ; 88 66 f6 4352 4350 cmp ah, 001h ; 80 fc 01 4353 jbe short 0356 dh ; 76 064351 jbe short 03567h ; 76 06 4354 4352 mov word [bp+01ah], si ; 89 76 1a 4355 jmp near 0349 eh ; e9 31 ff4353 jmp near 03498h ; e9 31 ff 4356 4354 mov ax, strict word 00010h ; b8 10 00 4357 call 0165ch ; e8 e 9e04355 call 0165ch ; e8 ef e0 4358 4356 cmp byte [bp-00ah], 000h ; 80 7e f6 00 4359 jne short 035 80h ; 75 074357 jne short 0357ah ; 75 07 4360 4358 mov bl, al ; 88 c3 4361 4359 shr bl, 004h ; c0 eb 04 4362 jmp short 035 85h ; eb 054360 jmp short 0357fh ; eb 05 4363 4361 mov bl, al ; 88 c3 4364 4362 and bl, 00fh ; 80 e3 0f … … 4367 4365 xor ah, ah ; 30 e4 4368 4366 test bl, bl ; 84 db 4369 je short 035 95h ; 74 034367 je short 0358fh ; 74 03 4370 4368 or ah, 001h ; 80 cc 01 4371 4369 mov word [bp+01ah], ax ; 89 46 1a 4372 jmp near 02f 34h ; e9 99 f94370 jmp near 02f2eh ; e9 99 f9 4373 4371 cmp ah, 001h ; 80 fc 01 4374 jbe short 035a ch ; 76 0c4372 jbe short 035a6h ; 76 0c 4375 4373 mov word [bp+01ah], si ; 89 76 1a 4376 4374 mov ax, strict word 00001h ; b8 01 00 4377 call 02b4 ah ; e8 a1 f54378 jmp near 0349 eh ; e9 f2 fe4375 call 02b44h ; e8 a1 f5 4376 jmp near 03498h ; e9 f2 fe 4379 4377 mov ax, word [bp+01ah] ; 8b 46 1a 4380 4378 xor ah, ah ; 30 e4 … … 4382 4380 mov word [bp+01ah], ax ; 89 46 1a 4383 4381 mov ax, strict word 00006h ; b8 06 00 4384 jmp near 02e e0h ; e9 23 f94382 jmp near 02edah ; e9 23 f9 4385 4383 mov bx, 00d32h ; bb 32 0d 4386 4384 mov cx, ds ; 8c d9 4387 4385 mov ax, strict word 00004h ; b8 04 00 4388 call 018aeh ; e8 e 6e24386 call 018aeh ; e8 ec e2 4389 4387 mov ax, word [bp+01ah] ; 8b 46 1a 4390 4388 shr ax, 008h ; c1 e8 08 … … 4393 4391 push 00252h ; 68 52 02 4394 4392 push strict byte 00004h ; 6a 04 4395 call 018e9h ; e8 0fe34393 call 018e9h ; e8 15 e3 4396 4394 add sp, strict byte 00008h ; 83 c4 08 4397 jmp near 02e d2h ; e9 f2 f84398 _cdemu_init: ; 0xf35 e0LB 0x164395 jmp near 02ecch ; e9 f2 f8 4396 _cdemu_init: ; 0xf35da LB 0x16 4399 4397 push bp ; 55 4400 4398 mov bp, sp ; 89 e5 4401 4399 mov dx, strict word 0000eh ; ba 0e 00 4402 4400 mov ax, strict word 00040h ; b8 40 00 4403 call 0161ch ; e8 3 0e04401 call 0161ch ; e8 36 e0 4404 4402 xor bx, bx ; 31 db 4405 4403 mov dx, 00322h ; ba 22 03 4406 call 0160eh ; e8 1ae04404 call 0160eh ; e8 20 e0 4407 4405 pop bp ; 5d 4408 4406 retn ; c3 4409 _cdemu_isactive: ; 0xf35f 6LB 0x144407 _cdemu_isactive: ; 0xf35f0 LB 0x14 4410 4408 push bp ; 55 4411 4409 mov bp, sp ; 89 e5 4412 4410 mov dx, strict word 0000eh ; ba 0e 00 4413 4411 mov ax, strict word 00040h ; b8 40 00 4414 call 0161ch ; e8 1ae04412 call 0161ch ; e8 20 e0 4415 4413 mov dx, 00322h ; ba 22 03 4416 call 01600h ; e8 f 8df4414 call 01600h ; e8 fe df 4417 4415 pop bp ; 5d 4418 4416 retn ; c3 4419 _cdemu_emulated_drive: ; 0xf360 aLB 0x144417 _cdemu_emulated_drive: ; 0xf3604 LB 0x14 4420 4418 push bp ; 55 4421 4419 mov bp, sp ; 89 e5 4422 4420 mov dx, strict word 0000eh ; ba 0e 00 4423 4421 mov ax, strict word 00040h ; b8 40 00 4424 call 0161ch ; e8 0 6e04422 call 0161ch ; e8 0c e0 4425 4423 mov dx, 00324h ; ba 24 03 4426 call 01600h ; e8 e 4df4424 call 01600h ; e8 ea df 4427 4425 pop bp ; 5d 4428 4426 retn ; c3 4429 _int13_eltorito: ; 0xf361 eLB 0x1864427 _int13_eltorito: ; 0xf3618 LB 0x186 4430 4428 push si ; 56 4431 4429 push di ; 57 … … 4434 4432 mov dx, strict word 0000eh ; ba 0e 00 4435 4433 mov ax, strict word 00040h ; b8 40 00 4436 call 0161ch ; e8 f 0df4434 call 0161ch ; e8 f6 df 4437 4435 mov si, 00322h ; be 22 03 4438 4436 mov di, ax ; 89 c7 … … 4440 4438 shr ax, 008h ; c1 e8 08 4441 4439 cmp ax, strict word 0004bh ; 3d 4b 00 4442 jc short 0364 6h ; 72 0a4443 jbe short 0366 ch ; 76 2e4440 jc short 03640h ; 72 0a 4441 jbe short 03666h ; 76 2e 4444 4442 cmp ax, strict word 0004dh ; 3d 4d 00 4445 jbe short 0364 dh ; 76 0a4446 jmp near 0376 8h ; e9 22 014443 jbe short 03647h ; 76 0a 4444 jmp near 03762h ; e9 22 01 4447 4445 cmp ax, strict word 0004ah ; 3d 4a 00 4448 jne near 0376 8h ; 0f 85 1b 014446 jne near 03762h ; 0f 85 1b 01 4449 4447 mov bx, 00d32h ; bb 32 0d 4450 4448 mov cx, ds ; 8c d9 4451 4449 mov ax, strict word 00004h ; b8 04 00 4452 call 018aeh ; e8 5 6e24450 call 018aeh ; e8 5c e2 4453 4451 push word [bp+01ah] ; ff 76 1a 4454 4452 push 0026ch ; 68 6c 02 4455 4453 push 0027bh ; 68 7b 02 4456 4454 push strict byte 00004h ; 6a 04 4457 call 018e9h ; e8 8 3e24455 call 018e9h ; e8 89 e2 4458 4456 add sp, strict byte 00008h ; 83 c4 08 4459 jmp near 037 83h ; e9 17 014457 jmp near 0377dh ; e9 17 01 4460 4458 mov dx, word [bp+00eh] ; 8b 56 0e 4461 4459 mov ax, word [bp+008h] ; 8b 46 08 4462 4460 mov bx, strict word 00013h ; bb 13 00 4463 call 0160eh ; e8 9 6df4461 call 0160eh ; e8 9c df 4464 4462 mov es, di ; 8e c7 4465 4463 movzx bx, byte [es:si+001h] ; 26 0f b6 5c 01 … … 4467 4465 inc dx ; 42 4468 4466 mov ax, word [bp+008h] ; 8b 46 08 4469 call 0160eh ; e8 8 5df4467 call 0160eh ; e8 8b df 4470 4468 mov es, di ; 8e c7 4471 4469 movzx bx, byte [es:si+002h] ; 26 0f b6 5c 02 … … 4474 4472 inc dx ; 42 4475 4473 mov ax, word [bp+008h] ; 8b 46 08 4476 call 0160eh ; e8 7 3df4474 call 0160eh ; e8 79 df 4477 4475 mov es, di ; 8e c7 4478 4476 movzx bx, byte [es:si+003h] ; 26 0f b6 5c 03 … … 4480 4478 add dx, strict byte 00003h ; 83 c2 03 4481 4479 mov ax, word [bp+008h] ; 8b 46 08 4482 call 0160eh ; e8 6 0df4480 call 0160eh ; e8 66 df 4483 4481 mov es, di ; 8e c7 4484 4482 mov bx, word [es:si+008h] ; 26 8b 5c 08 … … 4487 4485 add dx, strict byte 00004h ; 83 c2 04 4488 4486 mov ax, word [bp+008h] ; 8b 46 08 4489 call 0164ah ; e8 8 6df4487 call 0164ah ; e8 8c df 4490 4488 mov es, di ; 8e c7 4491 4489 mov bx, word [es:si+004h] ; 26 8b 5c 04 … … 4493 4491 add dx, strict byte 00008h ; 83 c2 08 4494 4492 mov ax, word [bp+008h] ; 8b 46 08 4495 call 0162ah ; e8 5 4df4493 call 0162ah ; e8 5a df 4496 4494 mov es, di ; 8e c7 4497 4495 mov bx, word [es:si+006h] ; 26 8b 5c 06 … … 4499 4497 add dx, strict byte 0000ah ; 83 c2 0a 4500 4498 mov ax, word [bp+008h] ; 8b 46 08 4501 call 0162ah ; e8 4 2df4499 call 0162ah ; e8 48 df 4502 4500 mov es, di ; 8e c7 4503 4501 mov bx, word [es:si+00ch] ; 26 8b 5c 0c … … 4505 4503 add dx, strict byte 0000ch ; 83 c2 0c 4506 4504 mov ax, word [bp+008h] ; 8b 46 08 4507 call 0162ah ; e8 3 0df4505 call 0162ah ; e8 36 df 4508 4506 mov es, di ; 8e c7 4509 4507 mov bx, word [es:si+00eh] ; 26 8b 5c 0e … … 4511 4509 add dx, strict byte 0000eh ; 83 c2 0e 4512 4510 mov ax, word [bp+008h] ; 8b 46 08 4513 call 0162ah ; e8 1edf4511 call 0162ah ; e8 24 df 4514 4512 mov es, di ; 8e c7 4515 4513 movzx bx, byte [es:si+012h] ; 26 0f b6 5c 12 … … 4517 4515 add dx, strict byte 00010h ; 83 c2 10 4518 4516 mov ax, word [bp+008h] ; 8b 46 08 4519 call 0160eh ; e8 efde4517 call 0160eh ; e8 f5 de 4520 4518 mov es, di ; 8e c7 4521 4519 movzx bx, byte [es:si+014h] ; 26 0f b6 5c 14 … … 4523 4521 add dx, strict byte 00011h ; 83 c2 11 4524 4522 mov ax, word [bp+008h] ; 8b 46 08 4525 call 0160eh ; e8 dcde4523 call 0160eh ; e8 e2 de 4526 4524 mov es, di ; 8e c7 4527 4525 movzx bx, byte [es:si+010h] ; 26 0f b6 5c 10 … … 4529 4527 add dx, strict byte 00012h ; 83 c2 12 4530 4528 mov ax, word [bp+008h] ; 8b 46 08 4531 call 0160eh ; e8 c 9de4529 call 0160eh ; e8 cf de 4532 4530 test byte [bp+01ah], 0ffh ; f6 46 1a ff 4533 jne short 037 51h ; 75 064531 jne short 0374bh ; 75 06 4534 4532 mov es, di ; 8e c7 4535 4533 mov byte [es:si], 000h ; 26 c6 04 00 … … 4538 4536 mov dx, strict word 00074h ; ba 74 00 4539 4537 mov ax, strict word 00040h ; b8 40 00 4540 call 0160eh ; e8 aede4538 call 0160eh ; e8 b4 de 4541 4539 and byte [bp+020h], 0feh ; 80 66 20 fe 4542 4540 pop bp ; 5d … … 4547 4545 mov cx, ds ; 8c d9 4548 4546 mov ax, strict word 00004h ; b8 04 00 4549 call 018aeh ; e8 3be14547 call 018aeh ; e8 41 e1 4550 4548 mov ax, word [bp+01ah] ; 8b 46 1a 4551 4549 shr ax, 008h ; c1 e8 08 … … 4553 4551 push 0026ch ; 68 6c 02 4554 4552 push 002a3h ; 68 a3 02 4555 jmp near 036 61h ; e9 de fe4553 jmp near 0365bh ; e9 de fe 4556 4554 mov ax, word [bp+01ah] ; 8b 46 1a 4557 4555 xor ah, ah ; 30 e4 … … 4563 4561 mov dx, strict word 00074h ; ba 74 00 4564 4562 mov ax, strict word 00040h ; b8 40 00 4565 call 0160eh ; e8 7 0de4563 call 0160eh ; e8 76 de 4566 4564 or byte [bp+020h], 001h ; 80 4e 20 01 4567 jmp short 037 64h ; eb c04568 device_is_cdrom_: ; 0xf37 a4LB 0x324565 jmp short 0375eh ; eb c0 4566 device_is_cdrom_: ; 0xf379e LB 0x32 4569 4567 push bx ; 53 4570 4568 push dx ; 52 … … 4574 4572 mov dx, strict word 0000eh ; ba 0e 00 4575 4573 mov ax, strict word 00040h ; b8 40 00 4576 call 0161ch ; e8 6 8de4574 call 0161ch ; e8 6e de 4577 4575 cmp bl, 010h ; 80 fb 10 4578 jc short 037b dh ; 72 044576 jc short 037b7h ; 72 04 4579 4577 xor ax, ax ; 31 c0 4580 jmp short 037 d2h ; eb 154578 jmp short 037cch ; eb 15 4581 4579 xor bh, bh ; 30 ff 4582 4580 imul bx, bx, strict byte 00018h ; 6b db 18 … … 4584 4582 add bx, 00122h ; 81 c3 22 01 4585 4583 cmp byte [es:bx+01fh], 005h ; 26 80 7f 1f 05 4586 jne short 037b 9h ; 75 ea4584 jne short 037b3h ; 75 ea 4587 4585 mov ax, strict word 00001h ; b8 01 00 4588 4586 pop bp ; 5d … … 4590 4588 pop bx ; 5b 4591 4589 retn ; c3 4592 cdrom_boot_: ; 0xf37d 6LB 0x4104590 cdrom_boot_: ; 0xf37d0 LB 0x410 4593 4591 push bx ; 53 4594 4592 push cx ; 51 … … 4599 4597 mov dx, strict word 0000eh ; ba 0e 00 4600 4598 mov ax, strict word 00040h ; b8 40 00 4601 call 0161ch ; e8 3 4de4599 call 0161ch ; e8 3a de 4602 4600 mov word [bp-00eh], ax ; 89 46 f2 4603 4601 mov si, 00322h ; be 22 03 … … 4606 4604 mov word [bp-008h], ax ; 89 46 f8 4607 4605 mov byte [bp-002h], 000h ; c6 46 fe 00 4608 jmp short 0380 8h ; eb 094606 jmp short 03802h ; eb 09 4609 4607 inc byte [bp-002h] ; fe 46 fe 4610 4608 cmp byte [bp-002h], 010h ; 80 7e fe 10 4611 jnc short 038 13h ; 73 0b4609 jnc short 0380dh ; 73 0b 4612 4610 movzx ax, byte [bp-002h] ; 0f b6 46 fe 4613 call 037 a4h ; e8 95 ff4611 call 0379eh ; e8 95 ff 4614 4612 test ax, ax ; 85 c0 4615 je short 037f fh ; 74 ec4613 je short 037f9h ; 74 ec 4616 4614 cmp byte [bp-002h], 010h ; 80 7e fe 10 4617 jc short 0381 fh ; 72 064615 jc short 03819h ; 72 06 4618 4616 mov ax, strict word 00002h ; b8 02 00 4619 jmp near 03b8 6h ; e9 67 034617 jmp near 03b80h ; e9 67 03 4620 4618 mov cx, strict word 0000ch ; b9 0c 00 4621 4619 xor bx, bx ; 31 db 4622 4620 mov dx, ss ; 8c d2 4623 4621 lea ax, [bp-01ch] ; 8d 46 e4 4624 call 090 1ah ; e8 ee 574622 call 0907ah ; e8 54 58 4625 4623 mov word [bp-01ch], strict word 00028h ; c7 46 e4 28 00 4626 4624 mov ax, strict word 00011h ; b8 11 00 … … 4638 4636 ; mov dword [es:bx+00ah], strict dword 008000001h ; 66 26 c7 47 0a 01 00 00 08 4639 4637 mov byte [bp-004h], 000h ; c6 46 fc 00 4640 jmp short 038 64h ; eb 094638 jmp short 0385eh ; eb 09 4641 4639 inc byte [bp-004h] ; fe 46 fc 4642 4640 cmp byte [bp-004h], 004h ; 80 7e fc 04 4643 jnbe short 0389 bh ; 77 374641 jnbe short 03895h ; 77 37 4644 4642 movzx di, byte [bp-002h] ; 0f b6 7e fe 4645 4643 imul di, di, strict byte 00018h ; 6b ff 18 … … 4661 4659 call word [word di+00000h] ; ff 95 00 00 4662 4660 test ax, ax ; 85 c0 4663 jne short 0385 bh ; 75 c04661 jne short 03855h ; 75 c0 4664 4662 test ax, ax ; 85 c0 4665 je short 038 a5h ; 74 064663 je short 0389fh ; 74 06 4666 4664 mov ax, strict word 00003h ; b8 03 00 4667 jmp near 03b8 6h ; e9 e1 024665 jmp near 03b80h ; e9 e1 02 4668 4666 cmp byte [bp-0081ch], 000h ; 80 be e4 f7 00 4669 je short 038 b2h ; 74 064667 je short 038ach ; 74 06 4670 4668 mov ax, strict word 00004h ; b8 04 00 4671 jmp near 03b8 6h ; e9 d4 024669 jmp near 03b80h ; e9 d4 02 4672 4670 xor di, di ; 31 ff 4673 jmp short 038b ch ; eb 064671 jmp short 038b6h ; eb 06 4674 4672 inc di ; 47 4675 4673 cmp di, strict byte 00005h ; 83 ff 05 4676 jnc short 038c ch ; 73 104674 jnc short 038c6h ; 73 10 4677 4675 mov al, byte [bp+di-0081bh] ; 8a 83 e5 f7 4678 4676 cmp al, byte [di+00d3ah] ; 3a 85 3a 0d 4679 je short 038b 6h ; 74 f04677 je short 038b0h ; 74 f0 4680 4678 mov ax, strict word 00005h ; b8 05 00 4681 jmp near 03b8 6h ; e9 ba 024679 jmp near 03b80h ; e9 ba 02 4682 4680 xor di, di ; 31 ff 4683 jmp short 038d 6h ; eb 064681 jmp short 038d0h ; eb 06 4684 4682 inc di ; 47 4685 4683 cmp di, strict byte 00017h ; 83 ff 17 4686 jnc short 038e 6h ; 73 104684 jnc short 038e0h ; 73 10 4687 4685 mov al, byte [bp+di-00815h] ; 8a 83 eb f7 4688 4686 cmp al, byte [di+00d40h] ; 3a 85 40 0d 4689 je short 038 d0h ; 74 f04687 je short 038cah ; 74 f0 4690 4688 mov ax, strict word 00006h ; b8 06 00 4691 jmp near 03b8 6h ; e9 a0 024689 jmp near 03b80h ; e9 a0 02 4692 4690 mov ax, word [bp-007d5h] ; 8b 86 2b f8 4693 4691 mov dx, word [bp-007d3h] ; 8b 96 2d f8 … … 4720 4718 call word [word di+00000h] ; ff 95 00 00 4721 4719 test ax, ax ; 85 c0 4722 je short 039 43h ; 74 064720 je short 0393dh ; 74 06 4723 4721 mov ax, strict word 00007h ; b8 07 00 4724 jmp near 03b8 6h ; e9 43 024722 jmp near 03b80h ; e9 43 02 4725 4723 cmp byte [bp-0081ch], 001h ; 80 be e4 f7 01 4726 je short 039 50h ; 74 064724 je short 0394ah ; 74 06 4727 4725 mov ax, strict word 00008h ; b8 08 00 4728 jmp near 03b8 6h ; e9 36 024726 jmp near 03b80h ; e9 36 02 4729 4727 cmp byte [bp-0081bh], 000h ; 80 be e5 f7 00 4730 je short 0395 dh ; 74 064728 je short 03957h ; 74 06 4731 4729 mov ax, strict word 00009h ; b8 09 00 4732 jmp near 03b8 6h ; e9 29 024730 jmp near 03b80h ; e9 29 02 4733 4731 cmp byte [bp-007feh], 055h ; 80 be 02 f8 55 4734 je short 0396 ah ; 74 064732 je short 03964h ; 74 06 4735 4733 mov ax, strict word 0000ah ; b8 0a 00 4736 jmp near 03b8 6h ; e9 1c 024734 jmp near 03b80h ; e9 1c 02 4737 4735 cmp byte [bp-007fdh], 0aah ; 80 be 03 f8 aa 4738 jne short 039 64h ; 75 f34736 jne short 0395eh ; 75 f3 4739 4737 cmp byte [bp-007fch], 088h ; 80 be 04 f8 88 4740 je short 0397 eh ; 74 064738 je short 03978h ; 74 06 4741 4739 mov ax, strict word 0000bh ; b8 0b 00 4742 jmp near 03b8 6h ; e9 08 024740 jmp near 03b80h ; e9 08 02 4743 4741 mov al, byte [bp-007fbh] ; 8a 86 05 f8 4744 4742 mov es, [bp-006h] ; 8e 46 fa 4745 4743 mov byte [es:si+001h], al ; 26 88 44 01 4746 4744 cmp byte [bp-007fbh], 000h ; 80 be 05 f8 00 4747 jne short 0399 7h ; 75 074745 jne short 03991h ; 75 07 4748 4746 mov byte [es:si+002h], 0e0h ; 26 c6 44 02 e0 4749 jmp short 039a ah ; eb 134747 jmp short 039a4h ; eb 13 4750 4748 cmp byte [bp-007fbh], 004h ; 80 be 05 f8 04 4751 jnc short 039 a5h ; 73 074749 jnc short 0399fh ; 73 07 4752 4750 mov byte [es:si+002h], 000h ; 26 c6 44 02 00 4753 jmp short 039a ah ; eb 054751 jmp short 039a4h ; eb 05 4754 4752 mov byte [es:si+002h], 080h ; 26 c6 44 02 80 4755 4753 movzx di, byte [bp-002h] ; 0f b6 7e fe … … 4769 4767 mov word [bp-00ch], ax ; 89 46 f4 4770 4768 test ax, ax ; 85 c0 4771 jne short 039d 8h ; 75 054769 jne short 039d2h ; 75 05 4772 4770 mov word [bp-00ch], 007c0h ; c7 46 f4 c0 07 4773 4771 mov ax, word [bp-00ch] ; 8b 46 f4 … … 4778 4776 mov word [es:si+00eh], di ; 26 89 7c 0e 4779 4777 test di, di ; 85 ff 4780 je short 039f ah ; 74 064778 je short 039f4h ; 74 06 4781 4779 cmp di, 00400h ; 81 ff 00 04 4782 jbe short 03 a00h ; 76 064780 jbe short 039fah ; 76 06 4783 4781 mov ax, strict word 0000ch ; b8 0c 00 4784 jmp near 03b8 6h ; e9 86 014782 jmp near 03b80h ; e9 86 01 4785 4783 mov ax, word [bp-007f4h] ; 8b 86 0c f8 4786 4784 mov dx, word [bp-007f2h] ; 8b 96 0e f8 … … 4822 4820 sal ax, 1 ; d1 e0 4823 4821 rcl di, 1 ; d1 d7 4824 loop 03a6 eh ; e2 fa4822 loop 03a68h ; e2 fa 4825 4823 push di ; 57 4826 4824 push ax ; 50 … … 4835 4833 mov word [es:bx+01ch], strict word 00000h ; 26 c7 47 1c 00 00 4836 4834 test ax, ax ; 85 c0 4837 je short 03a9 eh ; 74 064835 je short 03a98h ; 74 06 4838 4836 mov ax, strict word 0000dh ; b8 0d 00 4839 jmp near 03b8 6h ; e9 e8 004837 jmp near 03b80h ; e9 e8 00 4840 4838 mov es, [bp-006h] ; 8e 46 fa 4841 4839 mov al, byte [es:si+001h] ; 26 8a 44 01 4842 4840 cmp AL, strict byte 002h ; 3c 02 4843 jc short 03ab 6h ; 72 0d4844 jbe short 03ac eh ; 76 234841 jc short 03ab0h ; 72 0d 4842 jbe short 03ac8h ; 76 23 4845 4843 cmp AL, strict byte 004h ; 3c 04 4846 je short 03a e4h ; 74 354844 je short 03adeh ; 74 35 4847 4845 cmp AL, strict byte 003h ; 3c 03 4848 je short 03ad 9h ; 74 264849 jmp near 03b2 fh ; e9 79 004846 je short 03ad3h ; 74 26 4847 jmp near 03b29h ; e9 79 00 4850 4848 cmp AL, strict byte 001h ; 3c 01 4851 jne short 03b2 fh ; 75 754849 jne short 03b29h ; 75 75 4852 4850 mov es, [bp-006h] ; 8e 46 fa 4853 4851 db 066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 00fh, 000h 4854 4852 ; mov dword [es:si+012h], strict dword 0000f0050h ; 66 26 c7 44 12 50 00 0f 00 4855 4853 mov word [es:si+010h], strict word 00002h ; 26 c7 44 10 02 00 4856 jmp short 03b2 fh ; eb 614854 jmp short 03b29h ; eb 61 4857 4855 db 066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 012h, 000h 4858 4856 ; mov dword [es:si+012h], strict dword 000120050h ; 66 26 c7 44 12 50 00 12 00 4859 jmp short 03ac 6h ; eb ed4857 jmp short 03ac0h ; eb ed 4860 4858 db 066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 024h, 000h 4861 4859 ; mov dword [es:si+012h], strict dword 000240050h ; 66 26 c7 44 12 50 00 24 00 4862 jmp short 03ac 6h ; eb e24860 jmp short 03ac0h ; eb e2 4863 4861 mov dx, 001c4h ; ba c4 01 4864 4862 mov ax, word [bp-00ch] ; 8b 46 f4 4865 call 01600h ; e8 1 3db4863 call 01600h ; e8 19 db 4866 4864 and AL, strict byte 03fh ; 24 3f 4867 4865 xor ah, ah ; 30 e4 … … 4870 4868 mov dx, 001c4h ; ba c4 01 4871 4869 mov ax, word [bp-00ch] ; 8b 46 f4 4872 call 01600h ; e8 ff da4870 call 01600h ; e8 05 db 4873 4871 movzx bx, al ; 0f b6 d8 4874 4872 sal bx, 002h ; c1 e3 02 4875 4873 mov dx, 001c5h ; ba c5 01 4876 4874 mov ax, word [bp-00ch] ; 8b 46 f4 4877 call 01600h ; e8 f 0da4875 call 01600h ; e8 f6 da 4878 4876 xor ah, ah ; 30 e4 4879 4877 add ax, bx ; 01 d8 … … 4883 4881 mov dx, 001c3h ; ba c3 01 4884 4882 mov ax, word [bp-00ch] ; 8b 46 f4 4885 call 01600h ; e8 dbda4883 call 01600h ; e8 e1 da 4886 4884 xor ah, ah ; 30 e4 4887 4885 inc ax ; 40 … … 4890 4888 mov es, [bp-006h] ; 8e 46 fa 4891 4889 cmp byte [es:si+001h], 000h ; 26 80 7c 01 00 4892 je short 03b6 dh ; 74 344890 je short 03b67h ; 74 34 4893 4891 cmp byte [es:si+002h], 000h ; 26 80 7c 02 00 4894 jne short 03b5 6h ; 75 164892 jne short 03b50h ; 75 16 4895 4893 mov dx, strict word 00010h ; ba 10 00 4896 4894 mov ax, strict word 00040h ; b8 40 00 4897 call 01600h ; e8 b 7da4895 call 01600h ; e8 bd da 4898 4896 or AL, strict byte 041h ; 0c 41 4899 4897 movzx bx, al ; 0f b6 d8 4900 4898 mov dx, strict word 00010h ; ba 10 00 4901 4899 mov ax, strict word 00040h ; b8 40 00 4902 jmp short 03b6 ah ; eb 144900 jmp short 03b64h ; eb 14 4903 4901 mov dx, 002c0h ; ba c0 02 4904 4902 mov ax, word [bp-00eh] ; 8b 46 f2 4905 call 01600h ; e8 a 1da4903 call 01600h ; e8 a7 da 4906 4904 db 0feh, 0c0h 4907 4905 ; inc al ; fe c0 … … 4909 4907 mov dx, 002c0h ; ba c0 02 4910 4908 mov ax, word [bp-00eh] ; 8b 46 f2 4911 call 0160eh ; e8 a 1da4909 call 0160eh ; e8 a7 da 4912 4910 mov es, [bp-006h] ; 8e 46 fa 4913 4911 cmp byte [es:si+001h], 000h ; 26 80 7c 01 00 4914 je short 03b7 bh ; 74 044912 je short 03b75h ; 74 04 4915 4913 mov byte [es:si], 001h ; 26 c6 04 01 4916 4914 mov es, [bp-006h] ; 8e 46 fa … … 4942 4940 add AL, strict byte 003h ; 04 03 4943 4941 add al, byte [bx+di] ; 02 01 4944 add byte [bx+di+03fh], bh ; 00 79 3f 4945 mov bh, byte [si] ; 8a 3c 4946 sar word [si], 1 ; d1 3c 4947 stc ; f9 4948 cmp AL, strict byte 0c6h ; 3c c6 4949 cmp AL, strict byte 0f9h ; 3c f9 4950 cmp AL, strict byte 0c6h ; 3c c6 4951 cmp AL, strict byte 0cfh ; 3c cf 4952 db 03eh, 0afh 4953 ; ds scasw ; 3e af 4954 cmp AL, strict byte 079h ; 3c 79 4942 add byte [bp+di+03fh], dh ; 00 73 3f 4943 test byte [si], bh ; 84 3c 4944 retf ; cb 4945 cmp AL, strict byte 0f3h ; 3c f3 4946 cmp AL, strict byte 0c0h ; 3c c0 4947 cmp AL, strict byte 0f3h ; 3c f3 4948 cmp AL, strict byte 0c0h ; 3c c0 4949 cmp AL, strict byte 0c9h ; 3c c9 4950 db 03eh, 0a9h, 03ch, 073h 4951 ; ds test ax, 0733ch ; 3e a9 3c 73 4955 4952 aas ; 3f 4956 jns short 03bffh ; 79 3f 4957 scasw ; af 4958 cmp AL, strict byte 0afh ; 3c af 4959 cmp AL, strict byte 0afh ; 3c af 4960 cmp AL, strict byte 0afh ; 3c af 4961 cmp AL, strict byte 0afh ; 3c af 4962 cmp AL, strict byte 070h ; 3c 70 4953 jnc short 03bf9h ; 73 3f 4954 test ax, 0a93ch ; a9 3c a9 4955 cmp AL, strict byte 0a9h ; 3c a9 4956 cmp AL, strict byte 0a9h ; 3c a9 4957 cmp AL, strict byte 0a9h ; 3c a9 4958 cmp AL, strict byte 06ah ; 3c 6a 4963 4959 aas ; 3f 4964 scasw ; af 4965 cmp AL, strict byte 079h ; 3c 79 4960 test ax, 0733ch ; a9 3c 73 4966 4961 aas ; 3f 4967 jn s short 03c11h ; 793f4968 jn s short 03c13h ; 793f4969 jn s short 03c15h ; 793f4970 jn s short 03c17h ; 793f4971 jn s short 03c19h ; 793f4972 jn s short 03c1bh ; 793f4973 jn s short 03c1dh ; 793f4974 jn s short 03c1fh ; 793f4975 jn s short 03c21h ; 793f4976 jn s short 03c23h ; 793f4977 jn s short 03c25h ; 793f4978 _int13_cdemu: ; 0xf3be 6LB 0x42f4962 jnc short 03c0bh ; 73 3f 4963 jnc short 03c0dh ; 73 3f 4964 jnc short 03c0fh ; 73 3f 4965 jnc short 03c11h ; 73 3f 4966 jnc short 03c13h ; 73 3f 4967 jnc short 03c15h ; 73 3f 4968 jnc short 03c17h ; 73 3f 4969 jnc short 03c19h ; 73 3f 4970 jnc short 03c1bh ; 73 3f 4971 jnc short 03c1dh ; 73 3f 4972 jnc short 03c1fh ; 73 3f 4973 _int13_cdemu: ; 0xf3be0 LB 0x42f 4979 4974 push si ; 56 4980 4975 push di ; 57 … … 4982 4977 mov dx, strict word 0000eh ; ba 0e 00 4983 4978 mov ax, strict word 00040h ; b8 40 00 4984 call 0161ch ; e8 2 7da4979 call 0161ch ; e8 2d da 4985 4980 mov di, 00322h ; bf 22 03 4986 4981 mov cx, ax ; 89 c1 … … 4998 4993 mov dx, strict word 00074h ; ba 74 00 4999 4994 mov ax, strict word 00040h ; b8 40 00 5000 call 0160eh ; e8 ead94995 call 0160eh ; e8 f0 d9 5001 4996 mov es, cx ; 8e c1 5002 4997 cmp byte [es:di], 000h ; 26 80 3d 00 5003 je short 03c3 ah ; 74 0e4998 je short 03c34h ; 74 0e 5004 4999 movzx dx, byte [es:di+002h] ; 26 0f b6 55 02 5005 5000 mov ax, word [bp+016h] ; 8b 46 16 5006 5001 xor ah, ah ; 30 e4 5007 5002 cmp dx, ax ; 39 c2 5008 je short 03c 63h ; 74 295003 je short 03c5dh ; 74 29 5009 5004 mov bx, 00d32h ; bb 32 0d 5010 5005 mov cx, ds ; 8c d9 5011 5006 mov ax, strict word 00004h ; b8 04 00 5012 call 018aeh ; e8 6 9dc5007 call 018aeh ; e8 6f dc 5013 5008 mov ax, word [bp+016h] ; 8b 46 16 5014 5009 xor ah, ah ; 30 e4 … … 5020 5015 push 002c8h ; 68 c8 02 5021 5016 push strict byte 00004h ; 6a 04 5022 call 018e9h ; e8 8cdc5017 call 018e9h ; e8 92 dc 5023 5018 add sp, strict byte 0000ah ; 83 c4 0a 5024 jmp near 03f9 9h ; e9 36 035019 jmp near 03f93h ; e9 36 03 5025 5020 mov ax, word [bp+01ah] ; 8b 46 1a 5026 5021 shr ax, 008h ; c1 e8 08 5027 5022 cmp ax, strict word 00050h ; 3d 50 00 5028 jnbe near 03f7 9h ; 0f 87 09 035023 jnbe near 03f73h ; 0f 87 09 03 5029 5024 push CS ; 0e 5030 5025 pop ES ; 07 5031 5026 mov cx, strict word 0001eh ; b9 1e 00 5032 mov di, 03b8 dh ; bf 8d3b5027 mov di, 03b87h ; bf 87 3b 5033 5028 repne scasb ; f2 ae 5034 5029 sal cx, 1 ; d1 e1 5035 5030 mov di, cx ; 89 cf 5036 mov ax, word [cs:di+03ba ah] ; 2e 8b 85 aa3b5031 mov ax, word [cs:di+03ba4h] ; 2e 8b 85 a4 3b 5037 5032 mov bx, word [bp+01ah] ; 8b 5e 1a 5038 5033 xor bh, bh ; 30 ff … … 5045 5040 add bx, bx ; 01 db 5046 5041 cmp word [word bx+00000h], strict byte 00000h ; 83 bf 00 00 00 5047 je near 03ca fh ; 0f 84 08 005042 je near 03ca9h ; 0f 84 08 00 5048 5043 movzx ax, byte [bp-002h] ; 0f b6 46 fe 5049 5044 call word [word bx+0000ch] ; ff 97 0c 00 … … 5052 5047 mov dx, strict word 00074h ; ba 74 00 5053 5048 mov ax, strict word 00040h ; b8 40 00 5054 call 0160eh ; e8 5 0d95049 call 0160eh ; e8 56 d9 5055 5050 and byte [bp+020h], 0feh ; 80 66 20 fe 5056 5051 leave ; c9 … … 5061 5056 xor ah, ah ; 30 e4 5062 5057 or ah, 003h ; 80 cc 03 5063 jmp near 03f a1h ; e9 d0 025058 jmp near 03f9bh ; e9 d0 02 5064 5059 mov dx, strict word 00074h ; ba 74 00 5065 5060 mov ax, strict word 00040h ; b8 40 00 5066 call 01600h ; e8 2 6d95061 call 01600h ; e8 2c d9 5067 5062 mov cl, al ; 88 c1 5068 5063 movzx ax, cl ; 0f b6 c1 … … 5073 5068 mov dx, strict word 00074h ; ba 74 00 5074 5069 mov ax, strict word 00040h ; b8 40 00 5075 call 0160eh ; e8 1cd95070 call 0160eh ; e8 22 d9 5076 5071 test cl, cl ; 84 c9 5077 je short 03c b3h ; 74 bd5078 jmp near 03f b5h ; e9 bc 025072 je short 03cadh ; 74 bd 5073 jmp near 03fafh ; e9 bc 02 5079 5074 mov es, [bp-004h] ; 8e 46 fc 5080 5075 mov di, word [es:si+014h] ; 26 8b 7c 14 … … 5100 5095 mov word [bp-006h], cx ; 89 4e fa 5101 5096 test cx, cx ; 85 c9 5102 jne short 03d4 6h ; 75 035103 jmp near 03ca fh ; e9 69 ff5097 jne short 03d40h ; 75 03 5098 jmp near 03ca9h ; e9 69 ff 5104 5099 cmp di, word [bp-00ch] ; 3b 7e f4 5105 jc near 03f9 9h ; 0f 82 4c 025100 jc near 03f93h ; 0f 82 4c 02 5106 5101 cmp ax, dx ; 39 d0 5107 jnc near 03f9 9h ; 0f 83 46 025102 jnc near 03f93h ; 0f 83 46 02 5108 5103 cmp si, bx ; 39 de 5109 jnc near 03f9 9h ; 0f 83 40 025104 jnc near 03f93h ; 0f 83 40 02 5110 5105 mov dx, word [bp+01ah] ; 8b 56 1a 5111 5106 shr dx, 008h ; c1 ea 08 5112 5107 cmp dx, strict byte 00004h ; 83 fa 04 5113 jne short 03d6 7h ; 75 035114 jmp near 03ca fh ; e9 48 ff5108 jne short 03d61h ; 75 03 5109 jmp near 03ca9h ; e9 48 ff 5115 5110 mov dx, word [bp+014h] ; 8b 56 14 5116 5111 shr dx, 004h ; c1 ea 04 … … 5123 5118 xor dl, dl ; 30 d2 5124 5119 xor cx, cx ; 31 c9 5125 call 0 8fe9h ; e8 64525120 call 09049h ; e8 ca 52 5126 5121 xor bx, bx ; 31 db 5127 5122 add ax, si ; 01 f0 … … 5129 5124 mov bx, di ; 89 fb 5130 5125 xor cx, cx ; 31 c9 5131 call 0 8fe9h ; e8 57525126 call 09049h ; e8 bd 52 5132 5127 mov bx, ax ; 89 c3 5133 5128 mov ax, word [bp-00ch] ; 8b 46 f4 … … 5164 5159 mov dx, ss ; 8c d2 5165 5160 lea ax, [bp-02ah] ; 8d 46 d6 5166 call 090 1ah ; e8 31525161 call 0907ah ; e8 97 52 5167 5162 mov word [bp-02ah], strict word 00028h ; c7 46 d6 28 00 5168 5163 mov ax, word [bp-010h] ; 8b 46 f0 … … 5212 5207 sal si, 1 ; d1 e6 5213 5208 rcl di, 1 ; d1 d7 5214 loop 03e6 9h ; e2 fa5209 loop 03e63h ; e2 fa 5215 5210 push di ; 57 5216 5211 push si ; 56 … … 5227 5222 ; mov dword [es:bx+01ah], strict dword 000000000h ; 66 26 c7 47 1a 00 00 00 00 5228 5223 test al, al ; 84 c0 5229 je near 03ca fh ; 0f 84 16 fe5224 je near 03ca9h ; 0f 84 16 fe 5230 5225 mov bx, 00d32h ; bb 32 0d 5231 5226 mov cx, ds ; 8c d9 5232 5227 mov ax, strict word 00004h ; b8 04 00 5233 call 018aeh ; e8 0ada5228 call 018aeh ; e8 10 da 5234 5229 movzx ax, dl ; 0f b6 c2 5235 5230 push ax ; 50 … … 5240 5235 push 002feh ; 68 fe 02 5241 5236 push strict byte 00004h ; 6a 04 5242 call 018e9h ; e8 2fda5237 call 018e9h ; e8 35 da 5243 5238 add sp, strict byte 0000ah ; 83 c4 0a 5244 5239 mov ax, word [bp+01ah] ; 8b 46 1a … … 5247 5242 mov word [bp+01ah], ax ; 89 46 1a 5248 5243 mov byte [bp+01ah], 000h ; c6 46 1a 00 5249 jmp near 03f a4h ; e9 d5 005244 jmp near 03f9eh ; e9 d5 00 5250 5245 mov es, [bp-004h] ; 8e 46 fc 5251 5246 mov di, word [es:si+014h] ; 26 8b 7c 14 … … 5286 5281 mov word [bp+014h], ax ; 89 46 14 5287 5282 cmp dl, 003h ; 80 fa 03 5288 je short 03f 53h ; 74 1a5283 je short 03f4dh ; 74 1a 5289 5284 cmp dl, 002h ; 80 fa 02 5290 je short 03f4 fh ; 74 115285 je short 03f49h ; 74 11 5291 5286 cmp dl, 001h ; 80 fa 01 5292 jne short 03f5 7h ; 75 145287 jne short 03f51h ; 75 14 5293 5288 mov ax, word [bp+014h] ; 8b 46 14 5294 5289 xor al, al ; 30 c0 5295 5290 or AL, strict byte 002h ; 0c 02 5296 5291 mov word [bp+014h], ax ; 89 46 14 5297 jmp short 03f5 7h ; eb 085292 jmp short 03f51h ; eb 08 5298 5293 or AL, strict byte 004h ; 0c 04 5299 jmp short 03f4 ah ; eb f75294 jmp short 03f44h ; eb f7 5300 5295 or AL, strict byte 005h ; 0c 05 5301 jmp short 03f4 ah ; eb f35296 jmp short 03f44h ; eb f3 5302 5297 mov es, [bp-004h] ; 8e 46 fc 5303 5298 cmp byte [es:si+001h], 004h ; 26 80 7c 01 04 5304 jnc near 03ca fh ; 0f 83 4c fd5299 jnc near 03ca9h ; 0f 83 4c fd 5305 5300 mov word [bp+00ch], 0efc7h ; c7 46 0c c7 ef 5306 5301 mov word [bp+00ah], 0f000h ; c7 46 0a 00 f0 5307 jmp near 03ca fh ; e9 3f fd5302 jmp near 03ca9h ; e9 3f fd 5308 5303 or bh, 003h ; 80 cf 03 5309 5304 mov word [bp+01ah], bx ; 89 5e 1a 5310 jmp near 03c b3h ; e9 3a fd5305 jmp near 03cadh ; e9 3a fd 5311 5306 mov bx, 00d32h ; bb 32 0d 5312 5307 mov cx, ds ; 8c d9 5313 5308 mov ax, strict word 00004h ; b8 04 00 5314 call 018aeh ; e8 2ad95309 call 018aeh ; e8 30 d9 5315 5310 mov ax, word [bp+01ah] ; 8b 46 1a 5316 5311 shr ax, 008h ; c1 e8 08 … … 5319 5314 push 0031fh ; 68 1f 03 5320 5315 push strict byte 00004h ; 6a 04 5321 call 018e9h ; e8 5 3d95316 call 018e9h ; e8 59 d9 5322 5317 add sp, strict byte 00008h ; 83 c4 08 5323 5318 mov ax, word [bp+01ah] ; 8b 46 1a … … 5330 5325 mov dx, strict word 00074h ; ba 74 00 5331 5326 mov ax, strict word 00040h ; b8 40 00 5332 call 0160eh ; e8 5 9d65327 call 0160eh ; e8 5f d6 5333 5328 or byte [bp+020h], 001h ; 80 4e 20 01 5334 jmp near 03c c2h ; e9 06 fd5329 jmp near 03cbch ; e9 06 fd 5335 5330 push ax ; 50 5336 5331 dec si ; 4e … … 5351 5346 add AL, strict byte 003h ; 04 03 5352 5347 add al, byte [bx+di] ; 02 01 5353 add byte [di+045h], dl ; 00 55 45 5354 aam 042h ; d4 42 5355 rol byte [bx+si+055h], 045h ; c0 40 55 45 5356 mov CH, strict byte 040h ; b5 40 5357 push bp ; 55 5348 add byte [bx+045h], cl ; 00 4f 45 5349 into ; ce 5350 inc dx ; 42 5351 mov dx, 04f40h ; ba 40 4f 5358 5352 inc bp ; 45 5359 mov CH, strict byte 040h ; b5 40 5360 push bp ; 55 5353 scasw ; af 5354 inc ax ; 40 5355 dec di ; 4f 5361 5356 inc bp ; 45 5362 aam 042h ; d4 42 5363 push bp ; 55 5357 scasw ; af 5358 inc ax ; 40 5359 dec di ; 4f 5364 5360 inc bp ; 45 5365 push bp ; 55 5361 into ; ce 5362 inc dx ; 42 5363 dec di ; 4f 5366 5364 inc bp ; 45 5367 aam 042h ; d4 42 5368 aam 042h ; d4 42 5369 aam 042h ; d4 42 5370 aam 042h ; d4 42 5371 aam 042h ; d4 42 5372 jmp far 05542h:0d440h ; ea 40 d4 42 55 5365 dec di ; 4f 5373 5366 inc bp ; 45 5374 rep inc ax ; f3 40 5375 push ES ; 06 5376 inc cx ; 41 5377 mov CH, strict byte 040h ; b5 40 5378 push ES ; 06 5379 inc cx ; 41 5380 xor AL, strict byte 042h ; 34 42 5381 jmp short 0404dh ; eb 42 5382 push ES ; 06 5383 inc cx ; 41 5384 adc al, byte [bp+di+00eh] ; 12 43 0e 5367 into ; ce 5368 inc dx ; 42 5369 into ; ce 5370 inc dx ; 42 5371 into ; ce 5372 inc dx ; 42 5373 into ; ce 5374 inc dx ; 42 5375 into ; ce 5376 inc dx ; 42 5377 in AL, strict byte 040h ; e4 40 5378 into ; ce 5379 inc dx ; 42 5380 dec di ; 4f 5385 5381 inc bp ; 45 5386 push SS ; 16 5382 in ax, DX ; ed 5383 inc ax ; 40 5384 add byte [bx+di-051h], al ; 00 41 af 5385 inc ax ; 40 5386 add byte [bx+di+02eh], al ; 00 41 2e 5387 inc dx ; 42 5388 in ax, 042h ; e5 42 5389 add byte [bx+di+00ch], al ; 00 41 0c 5390 inc bx ; 43 5391 or byte [di+010h], al ; 08 45 10 5387 5392 inc bp ; 45 5388 push bp ; 555393 dec di ; 4f 5389 5394 inc bp ; 45 5390 _int13_cdrom: ; 0xf40 15LB 0x55d5395 _int13_cdrom: ; 0xf400f LB 0x55d 5391 5396 push si ; 56 5392 5397 push di ; 57 … … 5394 5399 mov dx, strict word 0000eh ; ba 0e 00 5395 5400 mov ax, strict word 00040h ; b8 40 00 5396 call 0161ch ; e8 f 8d55401 call 0161ch ; e8 fe d5 5397 5402 mov word [bp-016h], ax ; 89 46 ea 5398 5403 mov si, 00122h ; be 22 01 … … 5401 5406 mov dx, strict word 00074h ; ba 74 00 5402 5407 mov ax, strict word 00040h ; b8 40 00 5403 call 0160eh ; e8 d 6d55408 call 0160eh ; e8 dc d5 5404 5409 mov ax, word [bp+014h] ; 8b 46 14 5405 5410 xor ah, ah ; 30 e4 5406 5411 cmp ax, 000e0h ; 3d e0 00 5407 jc short 0404 7h ; 72 055412 jc short 04041h ; 72 05 5408 5413 cmp ax, 000f0h ; 3d f0 00 5409 jc short 040 65h ; 72 1e5414 jc short 0405fh ; 72 1e 5410 5415 mov ax, word [bp+014h] ; 8b 46 14 5411 5416 xor ah, ah ; 30 e4 … … 5417 5422 push 0035bh ; 68 5b 03 5418 5423 push strict byte 00004h ; 6a 04 5419 call 018e9h ; e8 8ad85424 call 018e9h ; e8 90 d8 5420 5425 add sp, strict byte 0000ah ; 83 c4 0a 5421 jmp near 045 32h ; e9 cd 045426 jmp near 0452ch ; e9 cd 04 5422 5427 mov ax, word [bp+014h] ; 8b 46 14 5423 5428 xor ah, ah ; 30 e4 … … 5428 5433 mov byte [bp-004h], dl ; 88 56 fc 5429 5434 cmp dl, 010h ; 80 fa 10 5430 jc short 0408 eh ; 72 105435 jc short 04088h ; 72 10 5431 5436 push ax ; 50 5432 5437 mov ax, word [bp+01ch] ; 8b 46 1c … … 5435 5440 push 0034fh ; 68 4f 03 5436 5441 push 00386h ; 68 86 03 5437 jmp short 0405 ah ; eb cc5442 jmp short 04054h ; eb cc 5438 5443 mov ax, word [bp+01ch] ; 8b 46 1c 5439 5444 shr ax, 008h ; c1 e8 08 5440 5445 cmp ax, strict word 00050h ; 3d 50 00 5441 jnbe near 045 55h ; 0f 87 ba 045446 jnbe near 0454fh ; 0f 87 ba 04 5442 5447 push CS ; 0e 5443 5448 pop ES ; 07 5444 5449 mov cx, strict word 0001eh ; b9 1e 00 5445 mov di, 03fb ch ; bf bc3f5450 mov di, 03fb6h ; bf b6 3f 5446 5451 repne scasb ; f2 ae 5447 5452 sal cx, 1 ; d1 e1 5448 5453 mov di, cx ; 89 cf 5449 mov ax, word [cs:di+03fd 9h] ; 2e 8b 85 d93f5454 mov ax, word [cs:di+03fd3h] ; 2e 8b 85 d3 3f 5450 5455 mov bx, word [bp+01ch] ; 8b 5e 1c 5451 5456 xor bh, bh ; 30 ff … … 5454 5459 xor ah, ah ; 30 e4 5455 5460 or ah, 003h ; 80 cc 03 5456 jmp near 0453 ah ; e9 7a 045461 jmp near 04534h ; e9 7a 04 5457 5462 mov dx, strict word 00074h ; ba 74 00 5458 5463 mov ax, strict word 00040h ; b8 40 00 5459 call 01600h ; e8 3 7d55464 call 01600h ; e8 3d d5 5460 5465 mov cl, al ; 88 c1 5461 5466 movzx ax, cl ; 0f b6 c1 … … 5466 5471 mov dx, strict word 00074h ; ba 74 00 5467 5472 mov ax, strict word 00040h ; b8 40 00 5468 call 0160eh ; e8 2dd55473 call 0160eh ; e8 33 d5 5469 5474 test cl, cl ; 84 c9 5470 je near 042d 8h ; 0f 84 f1 015471 jmp near 0454 eh ; e9 64 045475 je near 042d2h ; 0f 84 f1 01 5476 jmp near 04548h ; e9 64 04 5472 5477 or bh, 002h ; 80 cf 02 5473 5478 mov word [bp+01ch], bx ; 89 5e 1c 5474 jmp near 0453 dh ; e9 4a 045479 jmp near 04537h ; e9 4a 04 5475 5480 mov word [bp+016h], 0aa55h ; c7 46 16 55 aa 5476 5481 or bh, 030h ; 80 cf 30 5477 5482 mov word [bp+01ch], bx ; 89 5e 1c 5478 5483 mov word [bp+01ah], strict word 00007h ; c7 46 1a 07 00 5479 jmp near 042d 8h ; e9 d2 015484 jmp near 042d2h ; e9 d2 01 5480 5485 mov bx, word [bp+010h] ; 8b 5e 10 5481 5486 mov es, [bp+00ah] ; 8e 46 0a … … 5492 5497 mov di, word [es:bx+00eh] ; 26 8b 7f 0e 5493 5498 or di, ax ; 09 c7 5494 je short 0414 eh ; 74 185499 je short 04148h ; 74 18 5495 5500 mov ax, word [bp+01ch] ; 8b 46 1c 5496 5501 shr ax, 008h ; c1 e8 08 … … 5499 5504 push 003b8h ; 68 b8 03 5500 5505 push strict byte 00007h ; 6a 07 5501 call 018e9h ; e8 a 1d75506 call 018e9h ; e8 a7 d7 5502 5507 add sp, strict byte 00008h ; 83 c4 08 5503 jmp near 045 32h ; e9 e4 035508 jmp near 0452ch ; e9 e4 03 5504 5509 les bx, [bp-010h] ; c4 5e f0 5505 5510 mov ax, word [es:bx+008h] ; 26 8b 47 08 … … 5511 5516 mov word [bp-012h], ax ; 89 46 ee 5512 5517 cmp ax, strict word 00044h ; 3d 44 00 5513 je near 042 d4h ; 0f 84 66 015518 je near 042ceh ; 0f 84 66 01 5514 5519 cmp ax, strict word 00047h ; 3d 47 00 5515 je near 042 d4h ; 0f 84 5f 015520 je near 042ceh ; 0f 84 5f 01 5516 5521 mov cx, strict word 0000ch ; b9 0c 00 5517 5522 xor bx, bx ; 31 db 5518 5523 mov dx, ss ; 8c d2 5519 5524 lea ax, [bp-028h] ; 8d 46 d8 5520 call 090 1ah ; e8 984e5525 call 0907ah ; e8 fe 4e 5521 5526 mov word [bp-028h], strict word 00028h ; c7 46 d8 28 00 5522 5527 mov ax, word [bp-014h] ; 8b 46 ec … … 5546 5551 sal ax, 1 ; d1 e0 5547 5552 rcl bx, 1 ; d1 d3 5548 loop 041c ch ; e2 fa5553 loop 041c6h ; e2 fa 5549 5554 push bx ; 53 5550 5555 push ax ; 50 … … 5562 5567 shr di, 1 ; d1 ef 5563 5568 rcr ax, 1 ; d1 d8 5564 loop 041f 6h ; e2 fa5569 loop 041f0h ; e2 fa 5565 5570 les bx, [bp-010h] ; c4 5e f0 5566 5571 mov word [es:bx+002h], ax ; 26 89 47 02 5567 5572 test dl, dl ; 84 d2 5568 je near 042 d4h ; 0f 84 cb 005573 je near 042ceh ; 0f 84 cb 00 5569 5574 mov bx, 00d32h ; bb 32 0d 5570 5575 mov cx, ds ; 8c d9 5571 5576 mov ax, strict word 00004h ; b8 04 00 5572 call 018aeh ; e8 9ad65577 call 018aeh ; e8 a0 d6 5573 5578 movzx ax, dl ; 0f b6 c2 5574 5579 push ax ; 50 … … 5577 5582 push 003e1h ; 68 e1 03 5578 5583 push strict byte 00004h ; 6a 04 5579 call 018e9h ; e8 c 3d65584 call 018e9h ; e8 c9 d6 5580 5585 add sp, strict byte 0000ah ; 83 c4 0a 5581 5586 mov ax, word [bp+01ch] ; 8b 46 1c 5582 5587 xor ah, ah ; 30 e4 5583 5588 or ah, 00ch ; 80 cc 0c 5584 jmp near 0453 ah ; e9 06 035589 jmp near 04534h ; e9 06 03 5585 5590 cmp bx, strict byte 00002h ; 83 fb 02 5586 jnbe near 045 32h ; 0f 87 f7 025591 jnbe near 0452ch ; 0f 87 f7 02 5587 5592 movzx ax, byte [bp-004h] ; 0f b6 46 fc 5588 5593 imul ax, ax, strict byte 00018h ; 6b c0 18 … … 5592 5597 mov al, byte [es:di+021h] ; 26 8a 45 21 5593 5598 cmp bx, strict byte 00002h ; 83 fb 02 5594 je short 042 c5h ; 74 735599 je short 042bfh ; 74 73 5595 5600 cmp bx, strict byte 00001h ; 83 fb 01 5596 je short 042 92h ; 74 3b5601 je short 0428ch ; 74 3b 5597 5602 test bx, bx ; 85 db 5598 jne near 042 d4h ; 0f 85 77 005603 jne near 042ceh ; 0f 85 77 00 5599 5604 cmp AL, strict byte 0ffh ; 3c ff 5600 jne short 042 73h ; 75 125605 jne short 0426dh ; 75 12 5601 5606 mov ax, word [bp+01ch] ; 8b 46 1c 5602 5607 xor ah, ah ; 30 e4 … … 5605 5610 xor al, al ; 30 c0 5606 5611 or AL, strict byte 001h ; 0c 01 5607 jmp near 0453 ah ; e9 c7 025612 jmp near 04534h ; e9 c7 02 5608 5613 movzx dx, byte [bp-004h] ; 0f b6 56 fc 5609 5614 imul dx, dx, strict byte 00018h ; 6b d2 18 … … 5617 5622 or AL, strict byte 001h ; 0c 01 5618 5623 mov word [bp+01ch], ax ; 89 46 1c 5619 jmp near 042 d4h ; e9 42 005624 jmp near 042ceh ; e9 42 00 5620 5625 test al, al ; 84 c0 5621 jne short 042 a2h ; 75 0c5626 jne short 0429ch ; 75 0c 5622 5627 or bh, 0b0h ; 80 cf b0 5623 5628 mov word [bp+01ch], bx ; 89 5e 1c 5624 5629 mov byte [bp+01ch], al ; 88 46 1c 5625 jmp near 0453 dh ; e9 9b 025630 jmp near 04537h ; e9 9b 02 5626 5631 movzx dx, byte [bp-004h] ; 0f b6 56 fc 5627 5632 imul dx, dx, strict byte 00018h ; 6b d2 18 … … 5638 5643 xor al, al ; 30 c0 5639 5644 or ax, dx ; 09 d0 5640 jmp short 0428 ch ; eb c75645 jmp short 04286h ; eb c7 5641 5646 test al, al ; 84 c0 5642 5647 db 00fh, 095h, 0c0h … … 5650 5655 mov dx, strict word 00074h ; ba 74 00 5651 5656 mov ax, strict word 00040h ; b8 40 00 5652 call 0160eh ; e8 2bd35657 call 0160eh ; e8 31 d3 5653 5658 and byte [bp+022h], 0feh ; 80 66 22 fe 5654 5659 leave ; c9 … … 5662 5667 mov al, byte [es:si+021h] ; 26 8a 44 21 5663 5668 test al, al ; 84 c0 5664 je short 04 305h ; 74 065669 je short 042ffh ; 74 06 5665 5670 or bh, 0b1h ; 80 cf b1 5666 jmp near 040e dh ; e9 e8 fd5667 je short 042 d4h ; 74 cd5671 jmp near 040e7h ; e9 e8 fd 5672 je short 042ceh ; 74 cd 5668 5673 mov ax, word [bp+01ch] ; 8b 46 1c 5669 5674 xor ah, ah ; 30 e4 5670 5675 or ah, 0b1h ; 80 cc b1 5671 jmp near 0453 ah ; e9 28 025676 jmp near 04534h ; e9 28 02 5672 5677 mov dx, word [bp+010h] ; 8b 56 10 5673 5678 mov cx, word [bp+00ah] ; 8b 4e 0a … … 5679 5684 mov word [bp-00ah], ax ; 89 46 f6 5680 5685 cmp ax, strict word 0001ah ; 3d 1a 00 5681 jc near 045 32h ; 0f 82 04 025682 jc short 0437 fh ; 72 4f5686 jc near 0452ch ; 0f 82 04 02 5687 jc short 04379h ; 72 4f 5683 5688 movzx ax, byte [bp-004h] ; 0f b6 46 fc 5684 5689 imul ax, ax, strict byte 00018h ; 6b c0 18 … … 5703 5708 ; mov dword [es:di+014h], strict dword 0ffffffffh ; 66 26 c7 45 14 ff ff ff ff 5704 5709 cmp word [bp-00ah], strict byte 0001eh ; 83 7e f6 1e 5705 jc near 0445 6h ; 0f 82 cf 005710 jc near 04450h ; 0f 82 cf 00 5706 5711 mov es, [bp-006h] ; 8e 46 fa 5707 5712 mov word [es:bx], strict word 0001eh ; 26 c7 07 1e 00 … … 5755 5760 xor cl, cl ; 30 c9 5756 5761 xor ch, ch ; 30 ed 5757 jmp short 0443 9h ; eb 055762 jmp short 04433h ; eb 05 5758 5763 cmp ch, 00fh ; 80 fd 0f 5759 jnc short 0444 ch ; 73 135764 jnc short 04446h ; 73 13 5760 5765 movzx dx, ch ; 0f b6 d5 5761 5766 add dx, 00312h ; 81 c2 12 03 5762 5767 mov ax, word [bp-016h] ; 8b 46 ea 5763 call 01600h ; e8 bad15768 call 01600h ; e8 c0 d1 5764 5769 add cl, al ; 00 c1 5765 5770 db 0feh, 0c5h 5766 5771 ; inc ch ; fe c5 5767 jmp short 044 34h ; eb e85772 jmp short 0442eh ; eb e8 5768 5773 neg cl ; f6 d9 5769 5774 mov es, [bp-008h] ; 8e 46 f8 5770 5775 mov byte [es:si+001ffh], cl ; 26 88 8c ff 01 5771 5776 cmp word [bp-00ah], strict byte 00042h ; 83 7e f6 42 5772 jc near 042 d4h ; 0f 82 76 fe5777 jc near 042ceh ; 0f 82 76 fe 5773 5778 movzx ax, byte [bp-004h] ; 0f b6 46 fc 5774 5779 cwd ; 99 … … 5788 5793 mov word [es:bx+022h], strict word 00000h ; 26 c7 47 22 00 00 5789 5794 test al, al ; 84 c0 5790 jne short 0449 fh ; 75 095795 jne short 04499h ; 75 09 5791 5796 db 066h, 026h, 0c7h, 047h, 024h, 049h, 053h, 041h, 020h 5792 5797 ; mov dword [es:bx+024h], strict dword 020415349h ; 66 26 c7 47 24 49 53 41 20 … … 5797 5802 ; mov dword [es:bx+02ch], strict dword 020202020h ; 66 26 c7 47 2c 20 20 20 20 5798 5803 test al, al ; 84 c0 5799 jne short 044c bh ; 75 135804 jne short 044c5h ; 75 13 5800 5805 mov word [es:bx+030h], dx ; 26 89 57 30 5801 5806 db 066h, 026h, 0c7h, 047h, 032h, 000h, 000h, 000h, 000h … … 5812 5817 xor al, al ; 30 c0 5813 5818 mov AH, strict byte 01eh ; b4 1e 5814 jmp short 044 f3h ; eb 055819 jmp short 044edh ; eb 05 5815 5820 cmp ah, 040h ; 80 fc 40 5816 jnc short 04 502h ; 73 0f5821 jnc short 044fch ; 73 0f 5817 5822 movzx si, ah ; 0f b6 f4 5818 5823 mov es, [bp-006h] ; 8e 46 fa … … 5821 5826 db 0feh, 0c4h 5822 5827 ; inc ah ; fe c4 5823 jmp short 044e eh ; eb ec5828 jmp short 044e8h ; eb ec 5824 5829 neg al ; f6 d8 5825 5830 mov es, [bp-006h] ; 8e 46 fa 5826 5831 mov byte [es:bx+041h], al ; 26 88 47 41 5827 jmp near 042 d4h ; e9 c6 fd5832 jmp near 042ceh ; e9 c6 fd 5828 5833 or bh, 006h ; 80 cf 06 5829 5834 mov word [bp+01ch], bx ; 89 5e 1c 5830 jmp short 0454 eh ; eb 385835 jmp short 04548h ; eb 38 5831 5836 cmp bx, strict byte 00006h ; 83 fb 06 5832 je near 042 d4h ; 0f 84 b7 fd5837 je near 042ceh ; 0f 84 b7 fd 5833 5838 cmp bx, strict byte 00001h ; 83 fb 01 5834 jc short 045 32h ; 72 105835 jbe near 042 d4h ; 0f 86 ae fd5839 jc short 0452ch ; 72 10 5840 jbe near 042ceh ; 0f 86 ae fd 5836 5841 cmp bx, strict byte 00003h ; 83 fb 03 5837 jc short 045 32h ; 72 075842 jc short 0452ch ; 72 07 5838 5843 cmp bx, strict byte 00004h ; 83 fb 04 5839 jbe near 042 d4h ; 0f 86 a2 fd5844 jbe near 042ceh ; 0f 86 a2 fd 5840 5845 mov ax, word [bp+01ch] ; 8b 46 1c 5841 5846 xor ah, ah ; 30 e4 … … 5847 5852 mov dx, strict word 00074h ; ba 74 00 5848 5853 mov ax, strict word 00040h ; b8 40 00 5849 call 0160eh ; e8 c 0d05854 call 0160eh ; e8 c6 d0 5850 5855 or byte [bp+022h], 001h ; 80 4e 22 01 5851 jmp near 042e 7h ; e9 92 fd5856 jmp near 042e1h ; e9 92 fd 5852 5857 mov bx, 00d32h ; bb 32 0d 5853 5858 mov cx, ds ; 8c d9 5854 5859 mov ax, strict word 00004h ; b8 04 00 5855 call 018aeh ; e8 4ed35860 call 018aeh ; e8 54 d3 5856 5861 mov ax, word [bp+01ch] ; 8b 46 1c 5857 5862 shr ax, 008h ; c1 e8 08 … … 5860 5865 push 002a3h ; 68 a3 02 5861 5866 push strict byte 00004h ; 6a 04 5862 jmp near 041 45h ; e9 d3 fb5863 print_boot_device_: ; 0xf45 72LB 0x485867 jmp near 0413fh ; e9 d3 fb 5868 print_boot_device_: ; 0xf456c LB 0x48 5864 5869 push cx ; 51 5865 5870 push bp ; 55 5866 5871 mov bp, sp ; 89 e5 5867 5872 test al, al ; 84 c0 5868 je short 0457 fh ; 74 055873 je short 04579h ; 74 05 5869 5874 mov dx, strict word 00002h ; ba 02 00 5870 jmp short 0459 9h ; eb 1a5875 jmp short 04593h ; eb 1a 5871 5876 test dl, dl ; 84 d2 5872 je short 0458 8h ; 74 055877 je short 04582h ; 74 05 5873 5878 mov dx, strict word 00003h ; ba 03 00 5874 jmp short 0459 9h ; eb 115879 jmp short 04593h ; eb 11 5875 5880 test bl, 080h ; f6 c3 80 5876 jne short 045 91h ; 75 045881 jne short 0458bh ; 75 04 5877 5882 xor dh, dh ; 30 f6 5878 jmp short 0459 9h ; eb 085883 jmp short 04593h ; eb 08 5879 5884 test bl, 080h ; f6 c3 80 5880 je short 045b 7h ; 74 215885 je short 045b1h ; 74 21 5881 5886 mov dx, strict word 00001h ; ba 01 00 5882 5887 mov bx, 00d32h ; bb 32 0d 5883 5888 mov cx, ds ; 8c d9 5884 5889 mov ax, strict word 00004h ; b8 04 00 5885 call 018aeh ; e8 0ad35890 call 018aeh ; e8 10 d3 5886 5891 imul dx, dx, strict byte 0000ah ; 6b d2 0a 5887 5892 add dx, 00d58h ; 81 c2 58 0d … … 5889 5894 push 00404h ; 68 04 04 5890 5895 push strict byte 00004h ; 6a 04 5891 call 018e9h ; e8 3 5d35896 call 018e9h ; e8 3b d3 5892 5897 add sp, strict byte 00006h ; 83 c4 06 5893 5898 pop bp ; 5d 5894 5899 pop cx ; 59 5895 5900 retn ; c3 5896 print_boot_failure_: ; 0xf45b aLB 0x905901 print_boot_failure_: ; 0xf45b4 LB 0x90 5897 5902 push si ; 56 5898 5903 push bp ; 55 … … 5903 5908 movzx si, ah ; 0f b6 f4 5904 5909 test al, al ; 84 c0 5905 je short 045e 7h ; 74 1b5910 je short 045e1h ; 74 1b 5906 5911 mov bx, 00d32h ; bb 32 0d 5907 5912 mov cx, ds ; 8c d9 5908 5913 mov ax, strict word 00004h ; b8 04 00 5909 call 018aeh ; e8 d 7d25914 call 018aeh ; e8 dd d2 5910 5915 push 00d6ch ; 68 6c 0d 5911 5916 push 00418h ; 68 18 04 5912 5917 push strict byte 00004h ; 6a 04 5913 call 018e9h ; e8 0 7d35918 call 018e9h ; e8 0d d3 5914 5919 add sp, strict byte 00006h ; 83 c4 06 5915 jmp short 0462 bh ; eb 445920 jmp short 04625h ; eb 44 5916 5921 test dl, dl ; 84 d2 5917 je short 045f bh ; 74 105922 je short 045f5h ; 74 10 5918 5923 mov bx, 00d32h ; bb 32 0d 5919 5924 mov cx, ds ; 8c d9 5920 5925 mov ax, strict word 00004h ; b8 04 00 5921 call 018aeh ; e8 b 8d25926 call 018aeh ; e8 be d2 5922 5927 push 00d76h ; 68 76 0d 5923 jmp short 045d ah ; eb df5928 jmp short 045d4h ; eb df 5924 5929 test bl, 080h ; f6 c3 80 5925 je short 046 11h ; 74 115930 je short 0460bh ; 74 11 5926 5931 mov bx, 00d32h ; bb 32 0d 5927 5932 mov cx, ds ; 8c d9 5928 5933 mov ax, strict word 00004h ; b8 04 00 5929 call 018aeh ; e8 a 3d25934 call 018aeh ; e8 a9 d2 5930 5935 push si ; 56 5931 5936 push 00d62h ; 68 62 0d 5932 jmp short 046 20h ; eb 0f5937 jmp short 0461ah ; eb 0f 5933 5938 mov bx, 00d32h ; bb 32 0d 5934 5939 mov cx, ds ; 8c d9 5935 5940 mov ax, strict word 00004h ; b8 04 00 5936 call 018aeh ; e8 9 2d25941 call 018aeh ; e8 98 d2 5937 5942 push si ; 56 5938 5943 push 00d58h ; 68 58 0d 5939 5944 push 0042dh ; 68 2d 04 5940 5945 push strict byte 00004h ; 6a 04 5941 call 018e9h ; e8 c 1d25946 call 018e9h ; e8 c7 d2 5942 5947 add sp, strict byte 00008h ; 83 c4 08 5943 5948 cmp byte [bp+006h], 001h ; 80 7e 06 01 5944 jne short 046 45h ; 75 145949 jne short 0463fh ; 75 14 5945 5950 test dh, dh ; 84 f6 5946 jne short 0463 ah ; 75 055951 jne short 04634h ; 75 05 5947 5952 push 00445h ; 68 45 04 5948 jmp short 0463 dh ; eb 035953 jmp short 04637h ; eb 03 5949 5954 push 0046fh ; 68 6f 04 5950 5955 push strict byte 00007h ; 6a 07 5951 call 018e9h ; e8 a 7d25956 call 018e9h ; e8 ad d2 5952 5957 add sp, strict byte 00004h ; 83 c4 04 5953 5958 pop bp ; 5d 5954 5959 pop si ; 5e 5955 5960 retn 00002h ; c2 02 00 5956 print_cdromboot_failure_: ; 0xf464 aLB 0x245961 print_cdromboot_failure_: ; 0xf4644 LB 0x24 5957 5962 push bx ; 53 5958 5963 push cx ; 51 … … 5964 5969 mov cx, ds ; 8c d9 5965 5970 mov ax, strict word 00004h ; b8 04 00 5966 call 018aeh ; e8 5 1d25971 call 018aeh ; e8 57 d2 5967 5972 push dx ; 52 5968 5973 push 004a4h ; 68 a4 04 5969 5974 push strict byte 00004h ; 6a 04 5970 call 018e9h ; e8 8 3d25975 call 018e9h ; e8 89 d2 5971 5976 add sp, strict byte 00006h ; 83 c4 06 5972 5977 pop bp ; 5d … … 5975 5980 pop bx ; 5b 5976 5981 retn ; c3 5977 _int19_function: ; 0xf466 eLB 0x2515982 _int19_function: ; 0xf4668 LB 0x251 5978 5983 push si ; 56 5979 5984 push di ; 57 … … 5981 5986 mov dx, strict word 0000eh ; ba 0e 00 5982 5987 mov ax, strict word 00040h ; b8 40 00 5983 call 0161ch ; e8 9fcf5988 call 0161ch ; e8 a5 cf 5984 5989 mov bx, ax ; 89 c3 5985 5990 mov word [bp-00ah], ax ; 89 46 f6 5986 5991 mov byte [bp-004h], 000h ; c6 46 fc 00 5987 5992 mov ax, strict word 0003dh ; b8 3d 00 5988 call 0165ch ; e8 d 0cf5993 call 0165ch ; e8 d6 cf 5989 5994 movzx si, al ; 0f b6 f0 5990 5995 mov ax, strict word 00038h ; b8 38 00 5991 call 0165ch ; e8 c 7cf5996 call 0165ch ; e8 cd cf 5992 5997 and AL, strict byte 0f0h ; 24 f0 5993 5998 xor ah, ah ; 30 e4 … … 5995 6000 or si, ax ; 09 c6 5996 6001 mov ax, strict word 0003ch ; b8 3c 00 5997 call 0165ch ; e8 b 8cf6002 call 0165ch ; e8 be cf 5998 6003 and AL, strict byte 00fh ; 24 0f 5999 6004 xor ah, ah ; 30 e4 … … 6002 6007 mov dx, 00339h ; ba 39 03 6003 6008 mov ax, bx ; 89 d8 6004 call 01600h ; e8 4bcf6009 call 01600h ; e8 51 cf 6005 6010 test al, al ; 84 c0 6006 je short 046 c4h ; 74 0b6011 je short 046beh ; 74 0b 6007 6012 mov dx, 00339h ; ba 39 03 6008 6013 mov ax, bx ; 89 d8 6009 call 01600h ; e8 3fcf6014 call 01600h ; e8 45 cf 6010 6015 movzx si, al ; 0f b6 f0 6011 6016 cmp byte [bp+008h], 001h ; 80 7e 08 01 6012 jne short 046d ah ; 75 106017 jne short 046d4h ; 75 10 6013 6018 mov ax, strict word 0003ch ; b8 3c 00 6014 call 0165ch ; e8 8ccf6019 call 0165ch ; e8 92 cf 6015 6020 and AL, strict byte 0f0h ; 24 f0 6016 6021 xor ah, ah ; 30 e4 6017 6022 sar ax, 004h ; c1 f8 04 6018 call 07 2b6h ; e8 dc 2b6023 call 07322h ; e8 4e 2c 6019 6024 cmp byte [bp+008h], 002h ; 80 7e 08 02 6020 jne short 046 e3h ; 75 036025 jne short 046ddh ; 75 03 6021 6026 shr si, 004h ; c1 ee 04 6022 6027 cmp byte [bp+008h], 003h ; 80 7e 08 03 6023 jne short 046e ch ; 75 036028 jne short 046e6h ; 75 03 6024 6029 shr si, 008h ; c1 ee 08 6025 6030 cmp byte [bp+008h], 004h ; 80 7e 08 04 6026 jne short 046 f5h ; 75 036031 jne short 046efh ; 75 03 6027 6032 shr si, 00ch ; c1 ee 0c 6028 6033 cmp si, strict byte 00010h ; 83 fe 10 6029 jnc short 046f eh ; 73 046034 jnc short 046f8h ; 73 04 6030 6035 mov byte [bp-004h], 001h ; c6 46 fc 01 6031 6036 xor al, al ; 30 c0 … … 6036 6041 mov cx, ds ; 8c d9 6037 6042 mov ax, strict word 00004h ; b8 04 00 6038 call 018aeh ; e8 9ad16043 call 018aeh ; e8 a0 d1 6039 6044 push si ; 56 6040 6045 movzx ax, byte [bp+008h] ; 0f b6 46 08 … … 6042 6047 push 004c4h ; 68 c4 04 6043 6048 push strict byte 00004h ; 6a 04 6044 call 018e9h ; e8 c 7d16049 call 018e9h ; e8 cd d1 6045 6050 add sp, strict byte 00008h ; 83 c4 08 6046 6051 and si, strict byte 0000fh ; 83 e6 0f 6047 6052 cmp si, strict byte 00002h ; 83 fe 02 6048 jc short 0473 bh ; 72 0e6049 jbe short 0474 ah ; 76 1b6053 jc short 04735h ; 72 0e 6054 jbe short 04744h ; 76 1b 6050 6055 cmp si, strict byte 00004h ; 83 fe 04 6051 je short 0476 8h ; 74 346056 je short 04762h ; 74 34 6052 6057 cmp si, strict byte 00003h ; 83 fe 03 6053 je short 0475 eh ; 74 256054 jmp short 047 95h ; eb 5a6058 je short 04758h ; 74 25 6059 jmp short 0478fh ; eb 5a 6055 6060 cmp si, strict byte 00001h ; 83 fe 01 6056 jne short 047 95h ; 75 556061 jne short 0478fh ; 75 55 6057 6062 xor al, al ; 30 c0 6058 6063 mov byte [bp-002h], al ; 88 46 fe 6059 6064 mov byte [bp-006h], al ; 88 46 fa 6060 jmp short 047a dh ; eb 636065 jmp short 047a7h ; eb 63 6061 6066 mov dx, 00338h ; ba 38 03 6062 6067 mov ax, word [bp-00ah] ; 8b 46 f6 6063 call 01600h ; e8 adce6068 call 01600h ; e8 b3 ce 6064 6069 add AL, strict byte 080h ; 04 80 6065 6070 mov byte [bp-002h], al ; 88 46 fe 6066 6071 mov byte [bp-006h], 000h ; c6 46 fa 00 6067 jmp short 047a dh ; eb 4f6072 jmp short 047a7h ; eb 4f 6068 6073 mov byte [bp-002h], 000h ; c6 46 fe 00 6069 6074 mov byte [bp-006h], 001h ; c6 46 fa 01 6070 jmp short 047 72h ; eb 0a6075 jmp short 0476ch ; eb 0a 6071 6076 mov byte [bp-008h], 001h ; c6 46 f8 01 6072 6077 cmp byte [bp-006h], 000h ; 80 7e fa 00 6073 je short 047a dh ; 74 3b6074 call 037d 6h ; e8 61 f06078 je short 047a7h ; 74 3b 6079 call 037d0h ; e8 61 f0 6075 6080 mov bx, ax ; 89 c3 6076 6081 test AL, strict byte 0ffh ; a8 ff 6077 je short 0479 ch ; 74 216078 call 0464 ah ; e8 cc fe6082 je short 04796h ; 74 21 6083 call 04644h ; e8 cc fe 6079 6084 movzx ax, byte [bp-004h] ; 0f b6 46 fc 6080 6085 push ax ; 50 … … 6083 6088 movzx ax, byte [bp-006h] ; 0f b6 46 fa 6084 6089 mov cx, strict word 00001h ; b9 01 00 6085 call 045b ah ; e8 25 fe6090 call 045b4h ; e8 25 fe 6086 6091 xor ax, ax ; 31 c0 6087 6092 xor dx, dx ; 31 d2 6088 jmp near 048b bh ; e9 1f 016093 jmp near 048b5h ; e9 1f 01 6089 6094 mov dx, 0032eh ; ba 2e 03 6090 6095 mov ax, word [bp-00ah] ; 8b 46 f6 6091 call 0161ch ; e8 7 7ce6096 call 0161ch ; e8 7d ce 6092 6097 mov di, ax ; 89 c7 6093 6098 shr bx, 008h ; c1 eb 08 6094 6099 mov byte [bp-002h], bl ; 88 5e fe 6095 6100 cmp byte [bp-008h], 001h ; 80 7e f8 01 6096 jne near 0482 9h ; 0f 85 74 006101 jne near 04823h ; 0f 85 74 00 6097 6102 xor si, si ; 31 f6 6098 6103 mov ax, 0e200h ; b8 00 e2 6099 6104 mov es, ax ; 8e c0 6100 6105 cmp word [es:si], 0aa55h ; 26 81 3c 55 aa 6101 jne short 0477 eh ; 75 bb6106 jne short 04778h ; 75 bb 6102 6107 mov cx, ax ; 89 c1 6103 6108 mov si, word [es:si+01ah] ; 26 8b 74 1a 6104 6109 cmp word [es:si+002h], 0506eh ; 26 81 7c 02 6e 50 6105 jne short 0477 eh ; 75 ad6110 jne short 04778h ; 75 ad 6106 6111 cmp word [es:si], 05024h ; 26 81 3c 24 50 6107 jne short 0477 eh ; 75 a66112 jne short 04778h ; 75 a6 6108 6113 mov di, word [es:si+00eh] ; 26 8b 7c 0e 6109 6114 mov dx, word [es:di] ; 26 8b 15 6110 6115 mov ax, word [es:di+002h] ; 26 8b 45 02 6111 6116 cmp ax, 06568h ; 3d 68 65 6112 jne short 0480 7h ; 75 1f6117 jne short 04801h ; 75 1f 6113 6118 cmp dx, 07445h ; 81 fa 45 74 6114 jne short 0480 7h ; 75 196119 jne short 04801h ; 75 19 6115 6120 movzx bx, byte [bp-002h] ; 0f b6 5e fe 6116 6121 movzx dx, byte [bp-008h] ; 0f b6 56 f8 6117 6122 movzx ax, byte [bp-006h] ; 0f b6 46 fa 6118 call 045 72h ; e8 75 fd6123 call 0456ch ; e8 75 fd 6119 6124 mov word [bp-00eh], strict word 00006h ; c7 46 f2 06 00 6120 6125 mov word [bp-00ch], cx ; 89 4e f4 6121 jmp short 048 23h ; eb 1c6126 jmp short 0481dh ; eb 1c 6122 6127 movzx bx, byte [bp-002h] ; 0f b6 5e fe 6123 6128 movzx dx, byte [bp-008h] ; 0f b6 56 f8 6124 6129 movzx ax, byte [bp-006h] ; 0f b6 46 fa 6125 call 045 72h ; e8 5c fd6130 call 0456ch ; e8 5c fd 6126 6131 sti ; fb 6127 6132 mov word [bp-00ch], cx ; 89 4e f4 … … 6130 6135 mov word [bp-00eh], ax ; 89 46 f2 6131 6136 call far [bp-00eh] ; ff 5e f2 6132 jmp near 0477 eh ; e9 55 ff6137 jmp near 04778h ; e9 55 ff 6133 6138 cmp byte [bp-006h], 000h ; 80 7e fa 00 6134 jne short 048 55h ; 75 266139 jne short 0484fh ; 75 26 6135 6140 cmp byte [bp-008h], 000h ; 80 7e f8 00 6136 jne short 048 55h ; 75 206141 jne short 0484fh ; 75 20 6137 6142 mov di, 007c0h ; bf c0 07 6138 6143 mov es, di ; 8e c7 … … 6147 6152 sbb ax, strict byte 00000h ; 83 d8 00 6148 6153 test ax, ax ; 85 c0 6149 jne near 0477 eh ; 0f 85 29 ff6154 jne near 04778h ; 0f 85 29 ff 6150 6155 cmp byte [bp-002h], 000h ; 80 7e fe 00 6151 6156 db 00fh, 094h, 0c1h 6152 6157 ; sete cl ; 0f 94 c1 6153 6158 cmp byte [bp-006h], 000h ; 80 7e fa 00 6154 je short 048 64h ; 74 026159 je short 0485eh ; 74 02 6155 6160 mov CL, strict byte 001h ; b1 01 6156 6161 xor dx, dx ; 31 d2 6157 6162 mov ax, di ; 89 f8 6158 call 0161ch ; e8 b 1cd6163 call 0161ch ; e8 b7 cd 6159 6164 mov bx, ax ; 89 c3 6160 6165 mov dx, strict word 00002h ; ba 02 00 6161 6166 mov ax, di ; 89 f8 6162 call 0161ch ; e8 a 7cd6167 call 0161ch ; e8 ad cd 6163 6168 cmp bx, ax ; 39 c3 6164 je short 0488 ah ; 74 116169 je short 04884h ; 74 11 6165 6170 test cl, cl ; 84 c9 6166 jne short 048 a0h ; 75 236171 jne short 0489ah ; 75 23 6167 6172 mov dx, 001feh ; ba fe 01 6168 6173 mov ax, di ; 89 f8 6169 call 0161ch ; e8 9 7cd6174 call 0161ch ; e8 9d cd 6170 6175 cmp ax, 0aa55h ; 3d 55 aa 6171 je short 048 a0h ; 74 166176 je short 0489ah ; 74 16 6172 6177 movzx ax, byte [bp-004h] ; 0f b6 46 fc 6173 6178 push ax ; 50 … … 6176 6181 movzx ax, byte [bp-006h] ; 0f b6 46 fa 6177 6182 xor cx, cx ; 31 c9 6178 jmp near 047 92h ; e9 f2 fe6183 jmp near 0478ch ; e9 f2 fe 6179 6184 movzx bx, byte [bp-002h] ; 0f b6 5e fe 6180 6185 movzx dx, byte [bp-008h] ; 0f b6 56 f8 6181 6186 movzx ax, byte [bp-006h] ; 0f b6 46 fa 6182 call 045 72h ; e8 c3 fc6187 call 0456ch ; e8 c3 fc 6183 6188 movzx bx, byte [bp-002h] ; 0f b6 5e fe 6184 6189 xor dx, dx ; 31 d2 … … 6190 6195 pop si ; 5e 6191 6196 retn ; c3 6192 keyboard_panic_: ; 0xf48b fLB 0x116197 keyboard_panic_: ; 0xf48b9 LB 0x11 6193 6198 push bp ; 55 6194 6199 mov bp, sp ; 89 e5 … … 6196 6201 push 004e4h ; 68 e4 04 6197 6202 push strict byte 00007h ; 6a 07 6198 call 018e9h ; e8 1ed06203 call 018e9h ; e8 24 d0 6199 6204 add sp, strict byte 00006h ; 83 c4 06 6200 6205 pop bp ; 5d 6201 6206 retn ; c3 6202 _keyboard_init: ; 0xf48 d0LB 0x27a6207 _keyboard_init: ; 0xf48ca LB 0x27a 6203 6208 push bp ; 55 6204 6209 mov bp, sp ; 89 e5 … … 6212 6217 ; sub ah, ah ; 2a e4 6213 6218 test AL, strict byte 002h ; a8 02 6214 je short 048 f3h ; 74 0d6219 je short 048edh ; 74 0d 6215 6220 dec bx ; 4b 6216 6221 test bx, bx ; 85 db 6217 jbe short 048 f3h ; 76 086222 jbe short 048edh ; 76 08 6218 6223 xor al, al ; 30 c0 6219 6224 mov dx, 00080h ; ba 80 00 6220 6225 out DX, AL ; ee 6221 jmp short 048d ch ; eb e96226 jmp short 048d6h ; eb e9 6222 6227 test bx, bx ; 85 db 6223 jne short 048f ch ; 75 056228 jne short 048f6h ; 75 05 6224 6229 xor ax, ax ; 31 c0 6225 call 048b fh ; e8 c3 ff6230 call 048b9h ; e8 c3 ff 6226 6231 mov bx, strict word 0ffffh ; bb ff ff 6227 6232 mov dx, strict word 00064h ; ba 64 00 … … 6230 6235 ; sub ah, ah ; 2a e4 6231 6236 test AL, strict byte 001h ; a8 01 6232 jne short 0491 6h ; 75 0d6237 jne short 04910h ; 75 0d 6233 6238 dec bx ; 4b 6234 6239 test bx, bx ; 85 db 6235 jbe short 0491 6h ; 76 086240 jbe short 04910h ; 76 08 6236 6241 mov AL, strict byte 001h ; b0 01 6237 6242 mov dx, 00080h ; ba 80 00 6238 6243 out DX, AL ; ee 6239 jmp short 048f fh ; eb e96244 jmp short 048f9h ; eb e9 6240 6245 test bx, bx ; 85 db 6241 jne short 049 20h ; 75 066246 jne short 0491ah ; 75 06 6242 6247 mov ax, strict word 00001h ; b8 01 00 6243 call 048b fh ; e8 9f ff6248 call 048b9h ; e8 9f ff 6244 6249 mov dx, strict word 00060h ; ba 60 00 6245 6250 in AL, DX ; ec … … 6247 6252 ; sub ah, ah ; 2a e4 6248 6253 cmp ax, strict word 00055h ; 3d 55 00 6249 je short 049 31h ; 74 066254 je short 0492bh ; 74 06 6250 6255 mov ax, 003dfh ; b8 df 03 6251 call 048b fh ; e8 8e ff6256 call 048b9h ; e8 8e ff 6252 6257 mov AL, strict byte 0abh ; b0 ab 6253 6258 mov dx, strict word 00064h ; ba 64 00 … … 6259 6264 ; sub ah, ah ; 2a e4 6260 6265 test AL, strict byte 002h ; a8 02 6261 je short 049 51h ; 74 0d6266 je short 0494bh ; 74 0d 6262 6267 dec bx ; 4b 6263 6268 test bx, bx ; 85 db 6264 jbe short 049 51h ; 76 086269 jbe short 0494bh ; 76 08 6265 6270 mov AL, strict byte 010h ; b0 10 6266 6271 mov dx, 00080h ; ba 80 00 6267 6272 out DX, AL ; ee 6268 jmp short 0493 ah ; eb e96273 jmp short 04934h ; eb e9 6269 6274 test bx, bx ; 85 db 6270 jne short 0495 bh ; 75 066275 jne short 04955h ; 75 06 6271 6276 mov ax, strict word 0000ah ; b8 0a 00 6272 call 048b fh ; e8 64 ff6277 call 048b9h ; e8 64 ff 6273 6278 mov bx, strict word 0ffffh ; bb ff ff 6274 6279 mov dx, strict word 00064h ; ba 64 00 … … 6277 6282 ; sub ah, ah ; 2a e4 6278 6283 test AL, strict byte 001h ; a8 01 6279 jne short 049 75h ; 75 0d6284 jne short 0496fh ; 75 0d 6280 6285 dec bx ; 4b 6281 6286 test bx, bx ; 85 db 6282 jbe short 049 75h ; 76 086287 jbe short 0496fh ; 76 08 6283 6288 mov AL, strict byte 011h ; b0 11 6284 6289 mov dx, 00080h ; ba 80 00 6285 6290 out DX, AL ; ee 6286 jmp short 0495 eh ; eb e96291 jmp short 04958h ; eb e9 6287 6292 test bx, bx ; 85 db 6288 jne short 0497 fh ; 75 066293 jne short 04979h ; 75 06 6289 6294 mov ax, strict word 0000bh ; b8 0b 00 6290 call 048b fh ; e8 40 ff6295 call 048b9h ; e8 40 ff 6291 6296 mov dx, strict word 00060h ; ba 60 00 6292 6297 in AL, DX ; ec … … 6294 6299 ; sub ah, ah ; 2a e4 6295 6300 test ax, ax ; 85 c0 6296 je short 0498 fh ; 74 066301 je short 04989h ; 74 06 6297 6302 mov ax, 003e0h ; b8 e0 03 6298 call 048b fh ; e8 30 ff6303 call 048b9h ; e8 30 ff 6299 6304 mov AL, strict byte 0ffh ; b0 ff 6300 6305 mov dx, strict word 00060h ; ba 60 00 … … 6306 6311 ; sub ah, ah ; 2a e4 6307 6312 test AL, strict byte 002h ; a8 02 6308 je short 049a fh ; 74 0d6313 je short 049a9h ; 74 0d 6309 6314 dec bx ; 4b 6310 6315 test bx, bx ; 85 db 6311 jbe short 049a fh ; 76 086316 jbe short 049a9h ; 76 08 6312 6317 mov AL, strict byte 020h ; b0 20 6313 6318 mov dx, 00080h ; ba 80 00 6314 6319 out DX, AL ; ee 6315 jmp short 0499 8h ; eb e96320 jmp short 04992h ; eb e9 6316 6321 test bx, bx ; 85 db 6317 jne short 049b 9h ; 75 066322 jne short 049b3h ; 75 06 6318 6323 mov ax, strict word 00014h ; b8 14 00 6319 call 048b fh ; e8 06 ff6324 call 048b9h ; e8 06 ff 6320 6325 mov bx, strict word 0ffffh ; bb ff ff 6321 6326 mov dx, strict word 00064h ; ba 64 00 … … 6324 6329 ; sub ah, ah ; 2a e4 6325 6330 test AL, strict byte 001h ; a8 01 6326 jne short 049 d3h ; 75 0d6331 jne short 049cdh ; 75 0d 6327 6332 dec bx ; 4b 6328 6333 test bx, bx ; 85 db 6329 jbe short 049 d3h ; 76 086334 jbe short 049cdh ; 76 08 6330 6335 mov AL, strict byte 021h ; b0 21 6331 6336 mov dx, 00080h ; ba 80 00 6332 6337 out DX, AL ; ee 6333 jmp short 049b ch ; eb e96338 jmp short 049b6h ; eb e9 6334 6339 test bx, bx ; 85 db 6335 jne short 049d dh ; 75 066340 jne short 049d7h ; 75 06 6336 6341 mov ax, strict word 00015h ; b8 15 00 6337 call 048b fh ; e8 e2 fe6342 call 048b9h ; e8 e2 fe 6338 6343 mov dx, strict word 00060h ; ba 60 00 6339 6344 in AL, DX ; ec … … 6341 6346 ; sub ah, ah ; 2a e4 6342 6347 cmp ax, 000fah ; 3d fa 00 6343 je short 049e eh ; 74 066348 je short 049e8h ; 74 06 6344 6349 mov ax, 003e1h ; b8 e1 03 6345 call 048b fh ; e8 d1 fe6350 call 048b9h ; e8 d1 fe 6346 6351 mov bx, strict word 0ffffh ; bb ff ff 6347 6352 mov dx, strict word 00064h ; ba 64 00 … … 6350 6355 ; sub ah, ah ; 2a e4 6351 6356 test AL, strict byte 001h ; a8 01 6352 jne short 04a0 8h ; 75 0d6357 jne short 04a02h ; 75 0d 6353 6358 dec bx ; 4b 6354 6359 test bx, bx ; 85 db 6355 jbe short 04a0 8h ; 76 086360 jbe short 04a02h ; 76 08 6356 6361 mov AL, strict byte 031h ; b0 31 6357 6362 mov dx, 00080h ; ba 80 00 6358 6363 out DX, AL ; ee 6359 jmp short 049 f1h ; eb e96364 jmp short 049ebh ; eb e9 6360 6365 test bx, bx ; 85 db 6361 jne short 04a 12h ; 75 066366 jne short 04a0ch ; 75 06 6362 6367 mov ax, strict word 0001fh ; b8 1f 00 6363 call 048b fh ; e8 ad fe6368 call 048b9h ; e8 ad fe 6364 6369 mov dx, strict word 00060h ; ba 60 00 6365 6370 in AL, DX ; ec … … 6367 6372 ; sub ah, ah ; 2a e4 6368 6373 cmp ax, 000aah ; 3d aa 00 6369 je short 04a2 bh ; 74 0e6374 je short 04a25h ; 74 0e 6370 6375 in AL, DX ; ec 6371 6376 db 02ah, 0e4h 6372 6377 ; sub ah, ah ; 2a e4 6373 6378 cmp ax, 000aah ; 3d aa 00 6374 je short 04a2 bh ; 74 066379 je short 04a25h ; 74 06 6375 6380 mov ax, 003e2h ; b8 e2 03 6376 call 048b fh ; e8 94 fe6381 call 048b9h ; e8 94 fe 6377 6382 mov AL, strict byte 0f5h ; b0 f5 6378 6383 mov dx, strict word 00060h ; ba 60 00 … … 6384 6389 ; sub ah, ah ; 2a e4 6385 6390 test AL, strict byte 002h ; a8 02 6386 je short 04a4 bh ; 74 0d6391 je short 04a45h ; 74 0d 6387 6392 dec bx ; 4b 6388 6393 test bx, bx ; 85 db 6389 jbe short 04a4 bh ; 76 086394 jbe short 04a45h ; 76 08 6390 6395 mov AL, strict byte 040h ; b0 40 6391 6396 mov dx, 00080h ; ba 80 00 6392 6397 out DX, AL ; ee 6393 jmp short 04a 34h ; eb e96398 jmp short 04a2eh ; eb e9 6394 6399 test bx, bx ; 85 db 6395 jne short 04a 55h ; 75 066400 jne short 04a4fh ; 75 06 6396 6401 mov ax, strict word 00028h ; b8 28 00 6397 call 048b fh ; e8 6a fe6402 call 048b9h ; e8 6a fe 6398 6403 mov bx, strict word 0ffffh ; bb ff ff 6399 6404 mov dx, strict word 00064h ; ba 64 00 … … 6402 6407 ; sub ah, ah ; 2a e4 6403 6408 test AL, strict byte 001h ; a8 01 6404 jne short 04a6 fh ; 75 0d6409 jne short 04a69h ; 75 0d 6405 6410 dec bx ; 4b 6406 6411 test bx, bx ; 85 db 6407 jbe short 04a6 fh ; 76 086412 jbe short 04a69h ; 76 08 6408 6413 mov AL, strict byte 041h ; b0 41 6409 6414 mov dx, 00080h ; ba 80 00 6410 6415 out DX, AL ; ee 6411 jmp short 04a5 8h ; eb e96416 jmp short 04a52h ; eb e9 6412 6417 test bx, bx ; 85 db 6413 jne short 04a7 9h ; 75 066418 jne short 04a73h ; 75 06 6414 6419 mov ax, strict word 00029h ; b8 29 00 6415 call 048b fh ; e8 46 fe6420 call 048b9h ; e8 46 fe 6416 6421 mov dx, strict word 00060h ; ba 60 00 6417 6422 in AL, DX ; ec … … 6419 6424 ; sub ah, ah ; 2a e4 6420 6425 cmp ax, 000fah ; 3d fa 00 6421 je short 04a8 ah ; 74 066426 je short 04a84h ; 74 06 6422 6427 mov ax, 003e3h ; b8 e3 03 6423 call 048b fh ; e8 35 fe6428 call 048b9h ; e8 35 fe 6424 6429 mov AL, strict byte 060h ; b0 60 6425 6430 mov dx, strict word 00064h ; ba 64 00 … … 6431 6436 ; sub ah, ah ; 2a e4 6432 6437 test AL, strict byte 002h ; a8 02 6433 je short 04aa ah ; 74 0d6438 je short 04aa4h ; 74 0d 6434 6439 dec bx ; 4b 6435 6440 test bx, bx ; 85 db 6436 jbe short 04aa ah ; 76 086441 jbe short 04aa4h ; 76 08 6437 6442 mov AL, strict byte 050h ; b0 50 6438 6443 mov dx, 00080h ; ba 80 00 6439 6444 out DX, AL ; ee 6440 jmp short 04a 93h ; eb e96445 jmp short 04a8dh ; eb e9 6441 6446 test bx, bx ; 85 db 6442 jne short 04a b4h ; 75 066447 jne short 04aaeh ; 75 06 6443 6448 mov ax, strict word 00032h ; b8 32 00 6444 call 048b fh ; e8 0b fe6449 call 048b9h ; e8 0b fe 6445 6450 mov AL, strict byte 065h ; b0 65 6446 6451 mov dx, strict word 00060h ; ba 60 00 … … 6452 6457 ; sub ah, ah ; 2a e4 6453 6458 test AL, strict byte 002h ; a8 02 6454 je short 04a d4h ; 74 0d6459 je short 04aceh ; 74 0d 6455 6460 dec bx ; 4b 6456 6461 test bx, bx ; 85 db 6457 jbe short 04a d4h ; 76 086462 jbe short 04aceh ; 76 08 6458 6463 mov AL, strict byte 060h ; b0 60 6459 6464 mov dx, 00080h ; ba 80 00 6460 6465 out DX, AL ; ee 6461 jmp short 04ab dh ; eb e96466 jmp short 04ab7h ; eb e9 6462 6467 test bx, bx ; 85 db 6463 jne short 04ad eh ; 75 066468 jne short 04ad8h ; 75 06 6464 6469 mov ax, strict word 0003ch ; b8 3c 00 6465 call 048b fh ; e8 e1 fd6470 call 048b9h ; e8 e1 fd 6466 6471 mov AL, strict byte 0f4h ; b0 f4 6467 6472 mov dx, strict word 00060h ; ba 60 00 … … 6473 6478 ; sub ah, ah ; 2a e4 6474 6479 test AL, strict byte 002h ; a8 02 6475 je short 04af eh ; 74 0d6480 je short 04af8h ; 74 0d 6476 6481 dec bx ; 4b 6477 6482 test bx, bx ; 85 db 6478 jbe short 04af eh ; 76 086483 jbe short 04af8h ; 76 08 6479 6484 mov AL, strict byte 070h ; b0 70 6480 6485 mov dx, 00080h ; ba 80 00 6481 6486 out DX, AL ; ee 6482 jmp short 04ae 7h ; eb e96487 jmp short 04ae1h ; eb e9 6483 6488 test bx, bx ; 85 db 6484 jne short 04b0 8h ; 75 066489 jne short 04b02h ; 75 06 6485 6490 mov ax, strict word 00046h ; b8 46 00 6486 call 048b fh ; e8 b7 fd6491 call 048b9h ; e8 b7 fd 6487 6492 mov bx, strict word 0ffffh ; bb ff ff 6488 6493 mov dx, strict word 00064h ; ba 64 00 … … 6491 6496 ; sub ah, ah ; 2a e4 6492 6497 test AL, strict byte 001h ; a8 01 6493 jne short 04b 22h ; 75 0d6498 jne short 04b1ch ; 75 0d 6494 6499 dec bx ; 4b 6495 6500 test bx, bx ; 85 db 6496 jbe short 04b 22h ; 76 086501 jbe short 04b1ch ; 76 08 6497 6502 mov AL, strict byte 071h ; b0 71 6498 6503 mov dx, 00080h ; ba 80 00 6499 6504 out DX, AL ; ee 6500 jmp short 04b0 bh ; eb e96505 jmp short 04b05h ; eb e9 6501 6506 test bx, bx ; 85 db 6502 jne short 04b2 ch ; 75 066507 jne short 04b26h ; 75 06 6503 6508 mov ax, strict word 00046h ; b8 46 00 6504 call 048b fh ; e8 93 fd6509 call 048b9h ; e8 93 fd 6505 6510 mov dx, strict word 00060h ; ba 60 00 6506 6511 in AL, DX ; ec … … 6508 6513 ; sub ah, ah ; 2a e4 6509 6514 cmp ax, 000fah ; 3d fa 00 6510 je short 04b3 dh ; 74 066515 je short 04b37h ; 74 06 6511 6516 mov ax, 003e4h ; b8 e4 03 6512 call 048b fh ; e8 82 fd6517 call 048b9h ; e8 82 fd 6513 6518 mov AL, strict byte 0a8h ; b0 a8 6514 6519 mov dx, strict word 00064h ; ba 64 00 6515 6520 out DX, AL ; ee 6516 6521 xor ax, ax ; 31 c0 6517 call 05d9 ah ; e8 52 126522 call 05d94h ; e8 52 12 6518 6523 pop bp ; 5d 6519 6524 retn ; c3 6520 enqueue_key_: ; 0xf4b4 aLB 0x906525 enqueue_key_: ; 0xf4b44 LB 0x90 6521 6526 push bx ; 53 6522 6527 push cx ; 51 … … 6528 6533 mov dx, strict word 0001ah ; ba 1a 00 6529 6534 mov ax, strict word 00040h ; b8 40 00 6530 call 0161ch ; e8 bcca6535 call 0161ch ; e8 c2 ca 6531 6536 mov di, ax ; 89 c7 6532 6537 mov dx, strict word 0001ch ; ba 1c 00 6533 6538 mov ax, strict word 00040h ; b8 40 00 6534 call 0161ch ; e8 b 1ca6539 call 0161ch ; e8 b7 ca 6535 6540 mov si, ax ; 89 c6 6536 6541 lea cx, [si+002h] ; 8d 4c 02 6537 6542 cmp cx, strict byte 0003eh ; 83 f9 3e 6538 jc short 04b7 8h ; 72 036543 jc short 04b72h ; 72 03 6539 6544 mov cx, strict word 0001eh ; b9 1e 00 6540 6545 cmp cx, di ; 39 f9 6541 jne short 04b 80h ; 75 046546 jne short 04b7ah ; 75 04 6542 6547 xor ax, ax ; 31 c0 6543 jmp short 04b a5h ; eb 256548 jmp short 04b9fh ; eb 25 6544 6549 xor bh, bh ; 30 ff 6545 6550 mov dx, si ; 89 f2 6546 6551 mov ax, strict word 00040h ; b8 40 00 6547 call 0160eh ; e8 8 4ca6552 call 0160eh ; e8 8a ca 6548 6553 movzx bx, byte [bp-002h] ; 0f b6 5e fe 6549 6554 lea dx, [si+001h] ; 8d 54 01 6550 6555 mov ax, strict word 00040h ; b8 40 00 6551 call 0160eh ; e8 7 7ca6556 call 0160eh ; e8 7d ca 6552 6557 mov bx, cx ; 89 cb 6553 6558 mov dx, strict word 0001ch ; ba 1c 00 6554 6559 mov ax, strict word 00040h ; b8 40 00 6555 call 0162ah ; e8 8 8ca6560 call 0162ah ; e8 8e ca 6556 6561 mov ax, strict word 00001h ; b8 01 00 6557 6562 leave ; c9 … … 6570 6575 cmp bh, byte [bx+si] ; 3a 38 6571 6576 sub bl, byte [ss:di] ; 36 2a 1d 6572 adc cl, byte [bp-061h] ; 12 4e 9f 6577 or AL, strict byte 04eh ; 0c 4e 6578 cwd ; 99 6573 6579 dec sp ; 4c 6574 outsb ; 6e6580 push 0684ch ; 68 4c 68 6575 6581 dec sp ; 4c 6576 outsb ; 6e6582 sbb cx, word [di+041h] ; 1b 4d 41 6577 6583 dec sp ; 4c 6578 and word [di+047h], cx ; 21 4d 47 6584 lea cx, [di-024h] ; 8d 4d dc 6585 dec bp ; 4d 6586 dec word [di-026h] ; ff 4d da 6579 6587 dec sp ; 4c 6580 xchg bx, ax ; 93 6588 push 0684ch ; 68 4c 68 6589 dec sp ; 4c 6590 push sp ; 54 6581 6591 dec bp ; 4d 6582 loop 04c17h ; e2 4d 6583 add ax, 0e04eh ; 05 4e e0 6592 pop dx ; 5a 6584 6593 dec sp ; 4c 6585 outsb ; 6e 6586 dec sp ; 4c 6587 outsb ; 6e 6588 dec sp ; 4c 6589 pop dx ; 5a 6594 mov bp, 0f84dh ; bd 4d f8 6590 6595 dec bp ; 4d 6591 pushaw ; 60 6592 dec sp ; 4c 6593 retn ; c3 6594 dec bp ; 4d 6595 db 0feh 6596 dec bp ; 4d 6597 _int09_function: ; 0xf4bda LB 0x358 6596 _int09_function: ; 0xf4bd4 LB 0x358 6598 6597 push si ; 56 6599 6598 push di ; 57 … … 6602 6601 mov byte [bp-006h], al ; 88 46 fa 6603 6602 test al, al ; 84 c0 6604 jne short 04 c03h ; 75 196603 jne short 04bfdh ; 75 19 6605 6604 mov bx, 00d32h ; bb 32 0d 6606 6605 mov cx, ds ; 8c d9 6607 6606 mov ax, strict word 00004h ; b8 04 00 6608 call 018aeh ; e8 b 9cc6607 call 018aeh ; e8 bf cc 6609 6608 push 004f7h ; 68 f7 04 6610 6609 push strict byte 00004h ; 6a 04 6611 call 018e9h ; e8 eccc6610 call 018e9h ; e8 f2 cc 6612 6611 add sp, strict byte 00004h ; 83 c4 04 6613 jmp near 04f2 eh ; e9 2b 036612 jmp near 04f28h ; e9 2b 03 6614 6613 mov dx, strict word 00017h ; ba 17 00 6615 6614 mov ax, strict word 00040h ; b8 40 00 6616 call 01600h ; e8 f 4c96615 call 01600h ; e8 fa c9 6617 6616 mov byte [bp-00ah], al ; 88 46 f6 6618 6617 mov bl, al ; 88 c3 6619 6618 mov dx, strict word 00018h ; ba 18 00 6620 6619 mov ax, strict word 00040h ; b8 40 00 6621 call 01600h ; e8 e 6c96620 call 01600h ; e8 ec c9 6622 6621 mov byte [bp-00ch], al ; 88 46 f4 6623 6622 mov byte [bp-008h], al ; 88 46 f8 6624 6623 mov dx, 00096h ; ba 96 00 6625 6624 mov ax, strict word 00040h ; b8 40 00 6626 call 01600h ; e8 d 7c96625 call 01600h ; e8 dd c9 6627 6626 mov byte [bp-004h], al ; 88 46 fc 6628 6627 mov byte [bp-002h], al ; 88 46 fe … … 6631 6630 pop ES ; 07 6632 6631 mov cx, strict word 00010h ; b9 10 00 6633 mov di, 04ba bh ; bf ab4b6632 mov di, 04ba5h ; bf a5 4b 6634 6633 repne scasb ; f2 ae 6635 6634 sal cx, 1 ; d1 e1 6636 6635 mov di, cx ; 89 cf 6637 mov ax, word [cs:di+04bb ah] ; 2e 8b 85 ba4b6636 mov ax, word [cs:di+04bb4h] ; 2e 8b 85 b4 4b 6638 6637 jmp ax ; ff e0 6639 6638 xor bl, 040h ; 80 f3 40 … … 6641 6640 mov dx, strict word 00017h ; ba 17 00 6642 6641 mov ax, strict word 00040h ; b8 40 00 6643 call 0160eh ; e8 b 9c96642 call 0160eh ; e8 bf c9 6644 6643 or byte [bp-008h], 040h ; 80 4e f8 40 6645 6644 movzx bx, byte [bp-008h] ; 0f b6 5e f8 6646 jmp near 04dd 6h ; e9 76 016645 jmp near 04dd0h ; e9 76 01 6647 6646 mov al, byte [bp-00ch] ; 8a 46 f4 6648 6647 and AL, strict byte 0bfh ; 24 bf 6649 6648 mov byte [bp-008h], al ; 88 46 f8 6650 6649 movzx bx, al ; 0f b6 d8 6651 jmp near 04dd 6h ; e9 68 016650 jmp near 04dd0h ; e9 68 01 6652 6651 test byte [bp-002h], 002h ; f6 46 fe 02 6653 jne near 04f 10h ; 0f 85 9a 026652 jne near 04f0ah ; 0f 85 9a 02 6654 6653 mov al, byte [bp-006h] ; 8a 46 fa 6655 6654 and AL, strict byte 07fh ; 24 7f … … 6660 6659 inc ax ; 40 6661 6660 test byte [bp-006h], 080h ; f6 46 fa 80 6662 je short 04c8 fh ; 74 066661 je short 04c89h ; 74 06 6663 6662 not al ; f6 d0 6664 6663 and bl, al ; 20 c3 6665 jmp short 04c 91h ; eb 026664 jmp short 04c8bh ; eb 02 6666 6665 or bl, al ; 08 c3 6667 6666 xor bh, bh ; 30 ff 6668 6667 mov dx, strict word 00017h ; ba 17 00 6669 6668 mov ax, strict word 00040h ; b8 40 00 6670 call 0160eh ; e8 7 2c96671 jmp near 04f 10h ; e9 71 026669 call 0160eh ; e8 78 c9 6670 jmp near 04f0ah ; e9 71 02 6672 6671 test byte [bp-004h], 001h ; f6 46 fc 01 6673 jne near 04f 10h ; 0f 85 69 026672 jne near 04f0ah ; 0f 85 69 02 6674 6673 or bl, 004h ; 80 cb 04 6675 6674 xor bh, bh ; 30 ff 6676 6675 mov dx, strict word 00017h ; ba 17 00 6677 6676 mov ax, strict word 00040h ; b8 40 00 6678 call 0160eh ; e8 5 9c96677 call 0160eh ; e8 5f c9 6679 6678 mov al, byte [bp-004h] ; 8a 46 fc 6680 6679 test AL, strict byte 002h ; a8 02 6681 je short 04cc 9h ; 74 0d6680 je short 04cc3h ; 74 0d 6682 6681 or AL, strict byte 004h ; 0c 04 6683 6682 mov byte [bp-002h], al ; 88 46 fe 6684 6683 movzx bx, al ; 0f b6 d8 6685 6684 mov dx, 00096h ; ba 96 00 6686 jmp short 04cd 7h ; eb 0e6685 jmp short 04cd1h ; eb 0e 6687 6686 mov al, byte [bp-00ch] ; 8a 46 f4 6688 6687 or AL, strict byte 001h ; 0c 01 … … 6691 6690 mov dx, strict word 00018h ; ba 18 00 6692 6691 mov ax, strict word 00040h ; b8 40 00 6693 call 0160eh ; e8 3 1c96694 jmp near 04f 10h ; e9 30 026692 call 0160eh ; e8 37 c9 6693 jmp near 04f0ah ; e9 30 02 6695 6694 test byte [bp-004h], 001h ; f6 46 fc 01 6696 jne near 04f 10h ; 0f 85 28 026695 jne near 04f0ah ; 0f 85 28 02 6697 6696 and bl, 0fbh ; 80 e3 fb 6698 6697 xor bh, bh ; 30 ff 6699 6698 mov dx, strict word 00017h ; ba 17 00 6700 6699 mov ax, strict word 00040h ; b8 40 00 6701 call 0160eh ; e8 1 8c96700 call 0160eh ; e8 1e c9 6702 6701 mov al, byte [bp-004h] ; 8a 46 fc 6703 6702 test AL, strict byte 002h ; a8 02 6704 je short 04d0 ah ; 74 0d6703 je short 04d04h ; 74 0d 6705 6704 and AL, strict byte 0fbh ; 24 fb 6706 6705 mov byte [bp-002h], al ; 88 46 fe 6707 6706 movzx bx, al ; 0f b6 d8 6708 6707 mov dx, 00096h ; ba 96 00 6709 jmp short 04d1 8h ; eb 0e6708 jmp short 04d12h ; eb 0e 6710 6709 mov al, byte [bp-00ch] ; 8a 46 f4 6711 6710 and AL, strict byte 0feh ; 24 fe … … 6714 6713 mov dx, strict word 00018h ; ba 18 00 6715 6714 mov ax, strict word 00040h ; b8 40 00 6716 call 0160eh ; e8 f 0c86717 jmp near 04f 10h ; e9 ef 016715 call 0160eh ; e8 f6 c8 6716 jmp near 04f0ah ; e9 ef 01 6718 6717 or bl, 008h ; 80 cb 08 6719 6718 xor bh, bh ; 30 ff 6720 6719 mov dx, strict word 00017h ; ba 17 00 6721 6720 mov ax, strict word 00040h ; b8 40 00 6722 call 0160eh ; e8 dfc86721 call 0160eh ; e8 e5 c8 6723 6722 mov al, byte [bp-004h] ; 8a 46 fc 6724 6723 test AL, strict byte 002h ; a8 02 6725 je short 04d 43h ; 74 0d6724 je short 04d3dh ; 74 0d 6726 6725 or AL, strict byte 008h ; 0c 08 6727 6726 mov byte [bp-002h], al ; 88 46 fe 6728 6727 movzx bx, al ; 0f b6 d8 6729 6728 mov dx, 00096h ; ba 96 00 6730 jmp short 04d 51h ; eb 0e6729 jmp short 04d4bh ; eb 0e 6731 6730 mov al, byte [bp-00ch] ; 8a 46 f4 6732 6731 or AL, strict byte 002h ; 0c 02 … … 6735 6734 mov dx, strict word 00018h ; ba 18 00 6736 6735 mov ax, strict word 00040h ; b8 40 00 6737 call 0160eh ; e8 b 7c86738 jmp near 04f 10h ; e9 b6 016736 call 0160eh ; e8 bd c8 6737 jmp near 04f0ah ; e9 b6 01 6739 6738 and bl, 0f7h ; 80 e3 f7 6740 6739 xor bh, bh ; 30 ff 6741 6740 mov dx, strict word 00017h ; ba 17 00 6742 6741 mov ax, strict word 00040h ; b8 40 00 6743 call 0160eh ; e8 a 6c86742 call 0160eh ; e8 ac c8 6744 6743 mov al, byte [bp-004h] ; 8a 46 fc 6745 6744 test AL, strict byte 002h ; a8 02 6746 je short 04d7 ch ; 74 0d6745 je short 04d76h ; 74 0d 6747 6746 and AL, strict byte 0f7h ; 24 f7 6748 6747 mov byte [bp-002h], al ; 88 46 fe 6749 6748 movzx bx, al ; 0f b6 d8 6750 6749 mov dx, 00096h ; ba 96 00 6751 jmp short 04d8 ah ; eb 0e6750 jmp short 04d84h ; eb 0e 6752 6751 mov al, byte [bp-00ch] ; 8a 46 f4 6753 6752 and AL, strict byte 0fdh ; 24 fd … … 6756 6755 mov dx, strict word 00018h ; ba 18 00 6757 6756 mov ax, strict word 00040h ; b8 40 00 6758 call 0160eh ; e8 7ec86759 jmp near 04f 10h ; e9 7d 016757 call 0160eh ; e8 84 c8 6758 jmp near 04f0ah ; e9 7d 01 6760 6759 test byte [bp-004h], 003h ; f6 46 fc 03 6761 jne near 04f 10h ; 0f 85 75 016760 jne near 04f0ah ; 0f 85 75 01 6762 6761 mov al, byte [bp-00ch] ; 8a 46 f4 6763 6762 or AL, strict byte 020h ; 0c 20 … … 6766 6765 mov dx, strict word 00018h ; ba 18 00 6767 6766 mov ax, strict word 00040h ; b8 40 00 6768 call 0160eh ; e8 5fc86767 call 0160eh ; e8 65 c8 6769 6768 mov bl, byte [bp-00ah] ; 8a 5e f6 6770 6769 xor bl, 020h ; 80 f3 20 … … 6772 6771 mov dx, strict word 00017h ; ba 17 00 6773 6772 mov ax, strict word 00040h ; b8 40 00 6774 call 0160eh ; e8 4ec86775 jmp near 04f 10h ; e9 4d 016773 call 0160eh ; e8 54 c8 6774 jmp near 04f0ah ; e9 4d 01 6776 6775 test byte [bp-004h], 003h ; f6 46 fc 03 6777 jne near 04f 10h ; 0f 85 45 016776 jne near 04f0ah ; 0f 85 45 01 6778 6777 mov al, byte [bp-00ch] ; 8a 46 f4 6779 6778 and AL, strict byte 0dfh ; 24 df … … 6782 6781 mov dx, strict word 00018h ; ba 18 00 6783 6782 mov ax, strict word 00040h ; b8 40 00 6784 call 0160eh ; e8 2fc86785 jmp near 04f 10h ; e9 2e 016783 call 0160eh ; e8 35 c8 6784 jmp near 04f0ah ; e9 2e 01 6786 6785 mov al, byte [bp-00ch] ; 8a 46 f4 6787 6786 or AL, strict byte 010h ; 0c 10 … … 6790 6789 mov dx, strict word 00018h ; ba 18 00 6791 6790 mov ax, strict word 00040h ; b8 40 00 6792 call 0160eh ; e8 1 8c86791 call 0160eh ; e8 1e c8 6793 6792 mov bl, byte [bp-00ah] ; 8a 5e f6 6794 6793 xor bl, 010h ; 80 f3 10 6795 jmp short 04d b5h ; eb b76794 jmp short 04dafh ; eb b7 6796 6795 mov al, byte [bp-00ch] ; 8a 46 f4 6797 6796 and AL, strict byte 0efh ; 24 ef 6798 jmp short 04d d0h ; eb cb6797 jmp short 04dcah ; eb cb 6799 6798 mov al, bl ; 88 d8 6800 6799 and AL, strict byte 00ch ; 24 0c 6801 6800 cmp AL, strict byte 00ch ; 3c 0c 6802 jne short 04e 12h ; 75 056801 jne short 04e0ch ; 75 05 6803 6802 jmp far 0f000h:0e05bh ; ea 5b e0 00 f0 6804 6803 test byte [bp-006h], 080h ; f6 46 fa 80 6805 jne near 04f 10h ; 0f 85 f6 006804 jne near 04f0ah ; 0f 85 f6 00 6806 6805 cmp byte [bp-006h], 058h ; 80 7e fa 58 6807 jbe short 04e3 eh ; 76 1e6806 jbe short 04e38h ; 76 1e 6808 6807 mov bx, 00d32h ; bb 32 0d 6809 6808 mov cx, ds ; 8c d9 6810 6809 mov ax, strict word 00004h ; b8 04 00 6811 call 018aeh ; e8 8 3ca6810 call 018aeh ; e8 89 ca 6812 6811 movzx ax, byte [bp-006h] ; 0f b6 46 fa 6813 6812 push ax ; 50 6814 6813 push 00511h ; 68 11 05 6815 6814 push strict byte 00004h ; 6a 04 6816 call 018e9h ; e8 b 1ca6815 call 018e9h ; e8 b7 ca 6817 6816 add sp, strict byte 00006h ; 83 c4 06 6818 jmp near 04f2 eh ; e9 f0 006817 jmp near 04f28h ; e9 f0 00 6819 6818 test bl, 008h ; f6 c3 08 6820 je short 04e 55h ; 74 126819 je short 04e4fh ; 74 12 6821 6820 movzx si, byte [bp-006h] ; 0f b6 76 fa 6822 6821 imul si, si, strict byte 0000ah ; 6b f6 0a 6823 6822 mov dl, byte [si+00d86h] ; 8a 94 86 0d 6824 6823 mov ax, word [si+00d86h] ; 8b 84 86 0d 6825 jmp near 04e e1h ; e9 8c 006824 jmp near 04edbh ; e9 8c 00 6826 6825 test bl, 004h ; f6 c3 04 6827 je short 04e6 ch ; 74 126826 je short 04e66h ; 74 12 6828 6827 movzx si, byte [bp-006h] ; 0f b6 76 fa 6829 6828 imul si, si, strict byte 0000ah ; 6b f6 0a 6830 6829 mov dl, byte [si+00d84h] ; 8a 94 84 0d 6831 6830 mov ax, word [si+00d84h] ; 8b 84 84 0d 6832 jmp near 04e e1h ; e9 75 006831 jmp near 04edbh ; e9 75 00 6833 6832 mov al, byte [bp-002h] ; 8a 46 fe 6834 6833 and AL, strict byte 002h ; 24 02 6835 6834 test al, al ; 84 c0 6836 jbe short 04e8 ah ; 76 156835 jbe short 04e84h ; 76 15 6837 6836 mov al, byte [bp-006h] ; 8a 46 fa 6838 6837 cmp AL, strict byte 047h ; 3c 47 6839 jc short 04e8 ah ; 72 0e6838 jc short 04e84h ; 72 0e 6840 6839 cmp AL, strict byte 053h ; 3c 53 6841 jnbe short 04e8 ah ; 77 0a6840 jnbe short 04e84h ; 77 0a 6842 6841 mov DL, strict byte 0e0h ; b2 e0 6843 6842 movzx si, al ; 0f b6 f0 6844 6843 imul si, si, strict byte 0000ah ; 6b f6 0a 6845 jmp short 04ed dh ; eb 536844 jmp short 04ed7h ; eb 53 6846 6845 test bl, 003h ; f6 c3 03 6847 je short 04eb ch ; 74 2d6846 je short 04eb6h ; 74 2d 6848 6847 movzx si, byte [bp-006h] ; 0f b6 76 fa 6849 6848 imul si, si, strict byte 0000ah ; 6b f6 0a … … 6851 6850 movzx dx, bl ; 0f b6 d3 6852 6851 test dx, ax ; 85 c2 6853 je short 04ea ch ; 74 0a6852 je short 04ea6h ; 74 0a 6854 6853 mov dl, byte [si+00d80h] ; 8a 94 80 0d 6855 6854 mov ax, word [si+00d80h] ; 8b 84 80 0d 6856 jmp short 04e b4h ; eb 086855 jmp short 04eaeh ; eb 08 6857 6856 mov dl, byte [si+00d82h] ; 8a 94 82 0d 6858 6857 mov ax, word [si+00d82h] ; 8b 84 82 0d 6859 6858 shr ax, 008h ; c1 e8 08 6860 6859 mov byte [bp-006h], al ; 88 46 fa 6861 jmp short 04ee 7h ; eb 2b6860 jmp short 04ee1h ; eb 2b 6862 6861 movzx si, byte [bp-006h] ; 0f b6 76 fa 6863 6862 imul si, si, strict byte 0000ah ; 6b f6 0a … … 6865 6864 movzx dx, bl ; 0f b6 d3 6866 6865 test dx, ax ; 85 c2 6867 je short 04ed 9h ; 74 0a6866 je short 04ed3h ; 74 0a 6868 6867 mov dl, byte [si+00d82h] ; 8a 94 82 0d 6869 6868 mov ax, word [si+00d82h] ; 8b 84 82 0d 6870 jmp short 04e e1h ; eb 086869 jmp short 04edbh ; eb 08 6871 6870 mov dl, byte [si+00d80h] ; 8a 94 80 0d 6872 6871 mov ax, word [si+00d80h] ; 8b 84 80 0d … … 6874 6873 mov byte [bp-006h], al ; 88 46 fa 6875 6874 cmp byte [bp-006h], 000h ; 80 7e fa 00 6876 jne short 04f0 7h ; 75 1a6875 jne short 04f01h ; 75 1a 6877 6876 test dl, dl ; 84 d2 6878 jne short 04f0 7h ; 75 166877 jne short 04f01h ; 75 16 6879 6878 mov bx, 00d32h ; bb 32 0d 6880 6879 mov cx, ds ; 8c d9 6881 6880 mov ax, strict word 00004h ; b8 04 00 6882 call 018aeh ; e8 b 2c96881 call 018aeh ; e8 b8 c9 6883 6882 push 00548h ; 68 48 05 6884 6883 push strict byte 00004h ; 6a 04 6885 call 018e9h ; e8 e 5c96884 call 018e9h ; e8 eb c9 6886 6885 add sp, strict byte 00004h ; 83 c4 04 6887 6886 xor dh, dh ; 30 f6 6888 6887 movzx ax, byte [bp-006h] ; 0f b6 46 fa 6889 call 04b4 ah ; e8 3a fc6888 call 04b44h ; e8 3a fc 6890 6889 mov al, byte [bp-006h] ; 8a 46 fa 6891 6890 and AL, strict byte 07fh ; 24 7f 6892 6891 cmp AL, strict byte 01dh ; 3c 1d 6893 je short 04f1 dh ; 74 046892 je short 04f17h ; 74 04 6894 6893 and byte [bp-002h], 0feh ; 80 66 fe fe 6895 6894 and byte [bp-002h], 0fdh ; 80 66 fe fd … … 6897 6896 mov dx, 00096h ; ba 96 00 6898 6897 mov ax, strict word 00040h ; b8 40 00 6899 call 0160eh ; e8 e 0c66898 call 0160eh ; e8 e6 c6 6900 6899 leave ; c9 6901 6900 pop di ; 5f 6902 6901 pop si ; 5e 6903 6902 retn ; c3 6904 dequeue_key_: ; 0xf4f 32LB 0x906903 dequeue_key_: ; 0xf4f2c LB 0x90 6905 6904 push si ; 56 6906 6905 push di ; 57 … … 6912 6911 mov dx, strict word 0001ah ; ba 1a 00 6913 6912 mov ax, strict word 00040h ; b8 40 00 6914 call 0161ch ; e8 d 1c66913 call 0161ch ; e8 d7 c6 6915 6914 mov bx, ax ; 89 c3 6916 6915 mov dx, strict word 0001ch ; ba 1c 00 6917 6916 mov ax, strict word 00040h ; b8 40 00 6918 call 0161ch ; e8 c 6c66917 call 0161ch ; e8 cc c6 6919 6918 cmp bx, ax ; 39 c3 6920 je short 04f9 7h ; 74 3d6919 je short 04f91h ; 74 3d 6921 6920 mov dx, bx ; 89 da 6922 6921 mov ax, strict word 00040h ; b8 40 00 6923 call 01600h ; e8 9ec66922 call 01600h ; e8 a4 c6 6924 6923 mov cl, al ; 88 c1 6925 6924 lea dx, [bx+001h] ; 8d 57 01 6926 6925 mov ax, strict word 00040h ; b8 40 00 6927 call 01600h ; e8 9 3c66926 call 01600h ; e8 99 c6 6928 6927 mov es, [bp-004h] ; 8e 46 fc 6929 6928 mov byte [es:si], cl ; 26 88 0c … … 6931 6930 mov byte [es:di], al ; 26 88 05 6932 6931 cmp word [bp+008h], strict byte 00000h ; 83 7e 08 00 6933 je short 04f 92h ; 74 136932 je short 04f8ch ; 74 13 6934 6933 inc bx ; 43 6935 6934 inc bx ; 43 6936 6935 cmp bx, strict byte 0003eh ; 83 fb 3e 6937 jc short 04f8 9h ; 72 036936 jc short 04f83h ; 72 03 6938 6937 mov bx, strict word 0001eh ; bb 1e 00 6939 6938 mov dx, strict word 0001ah ; ba 1a 00 6940 6939 mov ax, strict word 00040h ; b8 40 00 6941 call 0162ah ; e8 9 8c66940 call 0162ah ; e8 9e c6 6942 6941 mov ax, strict word 00001h ; b8 01 00 6943 jmp short 04f9 9h ; eb 026942 jmp short 04f93h ; eb 02 6944 6943 xor ax, ax ; 31 c0 6945 6944 leave ; c9 … … 6951 6950 or cl, byte [bx+di] ; 0a 09 6952 6951 add ax, 00102h ; 05 02 01 6953 add byte [bp+052h], bl ; 00 5e 52 6954 je short 04ffeh ; 74 50 6955 mov bx, 00750h ; bb 50 07 6952 add byte [bx+si+052h], bl ; 00 58 52 6953 outsb ; 6e 6954 push ax ; 50 6955 mov CH, strict byte 050h ; b5 50 6956 add word [bx+di+011h], dx ; 01 51 11 6956 6957 push cx ; 51 6957 pop SS ; 176958 cmp dx, word [bx+di+044h] ; 3b 51 44 6958 6959 push cx ; 51 6959 inc cx ; 41 6960 push cx ; 51 6961 dec dx ; 4a 6962 push cx ; 51 6963 mov bx, 0ec51h ; bb 51 ec 6964 push cx ; 51 6965 sbb word [bp+si+053h], dx ; 19 52 53 6960 mov CH, strict byte 051h ; b5 51 6961 out strict byte 051h, AL ; e6 51 6962 adc dx, word [bp+si+04dh] ; 13 52 4d 6966 6963 push dx ; 52 6967 db 0a1h6964 wait ; 9b 6968 6965 push dx ; 52 6969 _int16_function: ; 0xf4f c2LB 0x2e26966 _int16_function: ; 0xf4fbc LB 0x2e2 6970 6967 push di ; 57 6971 6968 enter 00006h, 000h ; c8 06 00 00 6972 6969 mov dx, strict word 00017h ; ba 17 00 6973 6970 mov ax, strict word 00040h ; b8 40 00 6974 call 01600h ; e8 3 0c66971 call 01600h ; e8 36 c6 6975 6972 mov cl, al ; 88 c1 6976 6973 mov bh, al ; 88 c7 6977 6974 mov dx, 00097h ; ba 97 00 6978 6975 mov ax, strict word 00040h ; b8 40 00 6979 call 01600h ; e8 2 3c66976 call 01600h ; e8 29 c6 6980 6977 mov bl, al ; 88 c3 6981 6978 movzx dx, cl ; 0f b6 d1 … … 6986 6983 xor al, dl ; 30 d0 6987 6984 test ax, ax ; 85 c0 6988 je short 050 52h ; 74 606985 je short 0504ch ; 74 60 6989 6986 cli ; fa 6990 6987 mov AL, strict byte 0edh ; b0 ed … … 6996 6993 ; sub ah, ah ; 2a e4 6997 6994 test AL, strict byte 001h ; a8 01 6998 jne short 0500 bh ; 75 086995 jne short 05005h ; 75 08 6999 6996 mov AL, strict byte 021h ; b0 21 7000 6997 mov dx, 00080h ; ba 80 00 7001 6998 out DX, AL ; ee 7002 jmp short 04ff 9h ; eb ee6999 jmp short 04ff3h ; eb ee 7003 7000 mov dx, strict word 00060h ; ba 60 00 7004 7001 in AL, DX ; ec … … 7006 7003 ; sub ah, ah ; 2a e4 7007 7004 cmp ax, 000fah ; 3d fa 00 7008 jne short 050 51h ; 75 3b7005 jne short 0504bh ; 75 3b 7009 7006 and bl, 0f8h ; 80 e3 f8 7010 7007 movzx ax, bh ; 0f b6 c7 … … 7022 7019 ; sub ah, ah ; 2a e4 7023 7020 test AL, strict byte 001h ; a8 01 7024 jne short 050 40h ; 75 087021 jne short 0503ah ; 75 08 7025 7022 mov AL, strict byte 021h ; b0 21 7026 7023 mov dx, 00080h ; ba 80 00 7027 7024 out DX, AL ; ee 7028 jmp short 0502 eh ; eb ee7025 jmp short 05028h ; eb ee 7029 7026 mov dx, strict word 00060h ; ba 60 00 7030 7027 in AL, DX ; ec … … 7034 7031 mov dx, 00097h ; ba 97 00 7035 7032 mov ax, strict word 00040h ; b8 40 00 7036 call 0160eh ; e8 bdc57033 call 0160eh ; e8 c3 c5 7037 7034 sti ; fb 7038 7035 mov ax, word [bp+014h] ; 8b 46 14 7039 7036 shr ax, 008h ; c1 e8 08 7040 7037 cmp ax, 000a2h ; 3d a2 00 7041 jnbe near 0525 eh ; 0f 87 ff 017038 jnbe near 05258h ; 0f 87 ff 01 7042 7039 push CS ; 0e 7043 7040 pop ES ; 07 7044 7041 mov cx, strict word 0000ch ; b9 0c 00 7045 mov di, 04f9 fh ; bf 9f4f7042 mov di, 04f99h ; bf 99 4f 7046 7043 repne scasb ; f2 ae 7047 7044 sal cx, 1 ; d1 e1 7048 7045 mov di, cx ; 89 cf 7049 mov ax, word [cs:di+04fa ah] ; 2e 8b 85 aa4f7046 mov ax, word [cs:di+04fa4h] ; 2e 8b 85 a4 4f 7050 7047 jmp ax ; ff e0 7051 7048 push strict byte 00001h ; 6a 01 … … 7054 7051 mov dx, ss ; 8c d2 7055 7052 lea ax, [bp-004h] ; 8d 46 fc 7056 call 04f 32h ; e8 af fe7053 call 04f2ch ; e8 af fe 7057 7054 test ax, ax ; 85 c0 7058 jne short 050 92h ; 75 0b7055 jne short 0508ch ; 75 0b 7059 7056 push 0057fh ; 68 7f 05 7060 7057 push strict byte 00007h ; 6a 07 7061 call 018e9h ; e8 5ac87058 call 018e9h ; e8 60 c8 7062 7059 add sp, strict byte 00004h ; 83 c4 04 7063 7060 cmp byte [bp-004h], 000h ; 80 7e fc 00 7061 je short 05098h ; 74 06 7062 cmp byte [bp-006h], 0f0h ; 80 7e fa f0 7064 7063 je short 0509eh ; 74 06 7065 cmp byte [bp-006h], 0f0h ; 80 7e fa f07066 je short 050a4h ; 74 067067 7064 cmp byte [bp-006h], 0e0h ; 80 7e fa e0 7068 jne short 050a 8h ; 75 047065 jne short 050a2h ; 75 04 7069 7066 mov byte [bp-006h], 000h ; c6 46 fa 00 7070 7067 movzx dx, byte [bp-004h] ; 0f b6 56 fc … … 7082 7079 mov dx, ss ; 8c d2 7083 7080 lea ax, [bp-004h] ; 8d 46 fc 7084 call 04f 32h ; e8 63 fe7081 call 04f2ch ; e8 63 fe 7085 7082 test ax, ax ; 85 c0 7086 jne short 050d ah ; 75 077083 jne short 050d4h ; 75 07 7087 7084 or word [bp+01eh], strict byte 00040h ; 83 4e 1e 40 7088 7085 leave ; c9 … … 7090 7087 retn ; c3 7091 7088 cmp byte [bp-004h], 000h ; 80 7e fc 00 7089 je short 050e0h ; 74 06 7090 cmp byte [bp-006h], 0f0h ; 80 7e fa f0 7092 7091 je short 050e6h ; 74 06 7093 cmp byte [bp-006h], 0f0h ; 80 7e fa f07094 je short 050ech ; 74 067095 7092 cmp byte [bp-006h], 0e0h ; 80 7e fa e0 7096 jne short 050 f0h ; 75 047093 jne short 050eah ; 75 04 7097 7094 mov byte [bp-006h], 000h ; c6 46 fa 00 7098 7095 movzx dx, byte [bp-004h] ; 0f b6 56 fc … … 7107 7104 mov dx, strict word 00017h ; ba 17 00 7108 7105 mov ax, strict word 00040h ; b8 40 00 7109 call 01600h ; e8 f 0c47106 call 01600h ; e8 f6 c4 7110 7107 mov dx, word [bp+014h] ; 8b 56 14 7111 7108 mov dl, al ; 88 c2 7112 jmp short 050 b5h ; eb 9e7109 jmp short 050afh ; eb 9e 7113 7110 mov al, byte [bp+012h] ; 8a 46 12 7114 7111 movzx dx, al ; 0f b6 d0 … … 7116 7113 shr ax, 008h ; c1 e8 08 7117 7114 xor ah, ah ; 30 e4 7118 call 04b4 ah ; e8 22 fa7115 call 04b44h ; e8 22 fa 7119 7116 test ax, ax ; 85 c0 7120 jne short 0513 9h ; 75 0d7117 jne short 05133h ; 75 0d 7121 7118 mov ax, word [bp+014h] ; 8b 46 14 7122 7119 xor al, al ; 30 c0 … … 7133 7130 xor al, al ; 30 c0 7134 7131 or AL, strict byte 030h ; 0c 30 7135 jmp short 051 33h ; eb e97132 jmp short 0512dh ; eb e9 7136 7133 mov byte [bp-002h], 002h ; c6 46 fe 02 7137 7134 xor cx, cx ; 31 c9 … … 7146 7143 ; sub ah, ah ; 2a e4 7147 7144 test AL, strict byte 001h ; a8 01 7148 jne short 051 71h ; 75 0d7145 jne short 0516bh ; 75 0d 7149 7146 dec bx ; 4b 7150 7147 test bx, bx ; 85 db 7151 jbe short 051 71h ; 76 087148 jbe short 0516bh ; 76 08 7152 7149 mov dx, 00080h ; ba 80 00 7153 7150 in AL, DX ; ec 7154 7151 db 02ah, 0e4h 7155 7152 ; sub ah, ah ; 2a e4 7156 jmp short 0515 ah ; eb e97153 jmp short 05154h ; eb e9 7157 7154 test bx, bx ; 85 db 7158 jbe short 051 b5h ; 76 407155 jbe short 051afh ; 76 40 7159 7156 mov dx, strict word 00060h ; ba 60 00 7160 7157 in AL, DX ; ec … … 7162 7159 ; sub ah, ah ; 2a e4 7163 7160 cmp ax, 000fah ; 3d fa 00 7164 jne short 051 b5h ; 75 357161 jne short 051afh ; 75 35 7165 7162 mov bx, strict word 0ffffh ; bb ff ff 7166 7163 mov dx, strict word 00064h ; ba 64 00 … … 7169 7166 ; sub ah, ah ; 2a e4 7170 7167 test AL, strict byte 001h ; a8 01 7171 jne short 0519 ah ; 75 0d7168 jne short 05194h ; 75 0d 7172 7169 dec bx ; 4b 7173 7170 test bx, bx ; 85 db 7174 jbe short 0519 ah ; 76 087171 jbe short 05194h ; 76 08 7175 7172 mov dx, 00080h ; ba 80 00 7176 7173 in AL, DX ; ec 7177 7174 db 02ah, 0e4h 7178 7175 ; sub ah, ah ; 2a e4 7179 jmp short 051 83h ; eb e97176 jmp short 0517dh ; eb e9 7180 7177 test bx, bx ; 85 db 7181 jbe short 051a ch ; 76 0e7178 jbe short 051a6h ; 76 0e 7182 7179 shr cx, 008h ; c1 e9 08 7183 7180 mov dx, strict word 00060h ; ba 60 00 … … 7189 7186 dec byte [bp-002h] ; fe 4e fe 7190 7187 cmp byte [bp-002h], 000h ; 80 7e fe 00 7191 jnbe short 051 80h ; 77 cb7188 jnbe short 0517ah ; 77 cb 7192 7189 mov word [bp+00eh], cx ; 89 4e 0e 7193 7190 leave ; c9 … … 7199 7196 mov dx, ss ; 8c d2 7200 7197 lea ax, [bp-004h] ; 8d 46 fc 7201 call 04f 32h ; e8 68 fd7198 call 04f2ch ; e8 68 fd 7202 7199 test ax, ax ; 85 c0 7203 jne short 051d 9h ; 75 0b7200 jne short 051d3h ; 75 0b 7204 7201 push 0057fh ; 68 7f 05 7205 7202 push strict byte 00007h ; 6a 07 7206 call 018e9h ; e8 1 3c77203 call 018e9h ; e8 19 c7 7207 7204 add sp, strict byte 00004h ; 83 c4 04 7208 7205 cmp byte [bp-004h], 000h ; 80 7e fc 00 7209 je near 050a 8h ; 0f 84 c7 fe7206 je near 050a2h ; 0f 84 c7 fe 7210 7207 cmp byte [bp-006h], 0f0h ; 80 7e fa f0 7211 je near 050 a4h ; 0f 84 bb fe7212 jmp near 050a 8h ; e9 bc fe7208 je near 0509eh ; 0f 84 bb fe 7209 jmp near 050a2h ; e9 bc fe 7213 7210 or word [bp+01eh], 00200h ; 81 4e 1e 00 02 7214 7211 push strict byte 00000h ; 6a 00 … … 7217 7214 mov dx, ss ; 8c d2 7218 7215 lea ax, [bp-004h] ; 8d 46 fc 7219 call 04f 32h ; e8 32 fd7216 call 04f2ch ; e8 32 fd 7220 7217 test ax, ax ; 85 c0 7221 je near 050 d3h ; 0f 84 cd fe7218 je near 050cdh ; 0f 84 cd fe 7222 7219 cmp byte [bp-004h], 000h ; 80 7e fc 00 7223 je near 050 f0h ; 0f 84 e2 fe7220 je near 050eah ; 0f 84 e2 fe 7224 7221 cmp byte [bp-006h], 0f0h ; 80 7e fa f0 7225 je near 050e ch ; 0f 84 d6 fe7226 jmp near 050 f0h ; e9 d7 fe7222 je near 050e6h ; 0f 84 d6 fe 7223 jmp near 050eah ; e9 d7 fe 7227 7224 mov dx, strict word 00017h ; ba 17 00 7228 7225 mov ax, strict word 00040h ; b8 40 00 7229 call 01600h ; e8 dec37226 call 01600h ; e8 e4 c3 7230 7227 mov dx, word [bp+014h] ; 8b 56 14 7231 7228 mov dl, al ; 88 c2 … … 7233 7230 mov dx, strict word 00018h ; ba 18 00 7234 7231 mov ax, strict word 00040h ; b8 40 00 7235 call 01600h ; e8 cdc37232 call 01600h ; e8 d3 c3 7236 7233 mov bh, al ; 88 c7 7237 7234 and bh, 073h ; 80 e7 73 7238 7235 mov dx, 00096h ; ba 96 00 7239 7236 mov ax, strict word 00040h ; b8 40 00 7240 call 01600h ; e8 bfc37237 call 01600h ; e8 c5 c3 7241 7238 and AL, strict byte 00ch ; 24 0c 7242 7239 or bh, al ; 08 c7 … … 7245 7242 movzx ax, bh ; 0f b6 c7 7246 7243 sal ax, 008h ; c1 e0 08 7247 jmp near 050 b3h ; e9 60 fe7244 jmp near 050adh ; e9 60 fe 7248 7245 mov ax, word [bp+014h] ; 8b 46 14 7249 7246 xor ah, ah ; 30 e4 7250 7247 or ah, 080h ; 80 cc 80 7251 jmp near 051 33h ; e9 d5 fe7248 jmp near 0512dh ; e9 d5 fe 7252 7249 mov bx, 00d32h ; bb 32 0d 7253 7250 mov cx, ds ; 8c d9 7254 7251 mov ax, strict word 00004h ; b8 04 00 7255 call 018aeh ; e8 4 5c67252 call 018aeh ; e8 4b c6 7256 7253 mov ax, word [bp+014h] ; 8b 46 14 7257 7254 shr ax, 008h ; c1 e8 08 … … 7259 7256 push 005a3h ; 68 a3 05 7260 7257 push strict byte 00004h ; 6a 04 7261 call 018e9h ; e8 7 1c67258 call 018e9h ; e8 77 c6 7262 7259 add sp, strict byte 00006h ; 83 c4 06 7263 7260 mov bx, 00d32h ; bb 32 0d 7264 7261 mov cx, ds ; 8c d9 7265 7262 mov ax, strict word 00004h ; b8 04 00 7266 call 018aeh ; e8 2 8c67263 call 018aeh ; e8 2e c6 7267 7264 mov ax, word [bp+010h] ; 8b 46 10 7268 7265 push ax ; 50 … … 7275 7272 push 005cbh ; 68 cb 05 7276 7273 push strict byte 00004h ; 6a 04 7277 call 018e9h ; e8 4bc67274 call 018e9h ; e8 51 c6 7278 7275 add sp, strict byte 0000ch ; 83 c4 0c 7279 7276 leave ; c9 7280 7277 pop di ; 5f 7281 7278 retn ; c3 7282 set_geom_lba_: ; 0xf52 a4LB 0x9e7279 set_geom_lba_: ; 0xf529e LB 0x9e 7283 7280 push si ; 56 7284 7281 push di ; 57 … … 7292 7289 mov di, 000ffh ; bf ff 00 7293 7290 xor bx, bx ; 31 db 7294 jmp short 052 c5h ; eb 057291 jmp short 052bfh ; eb 05 7295 7292 cmp bx, strict byte 00004h ; 83 fb 04 7296 jnl short 052d bh ; 7d 167293 jnl short 052d5h ; 7d 16 7297 7294 cmp dx, word [bp-002h] ; 3b 56 fe 7298 jnbe short 052 d1h ; 77 077299 jne short 052 d4h ; 75 087295 jnbe short 052cbh ; 77 07 7296 jne short 052ceh ; 75 08 7300 7297 cmp ax, word [bp-004h] ; 3b 46 fc 7301 jc short 052 d4h ; 72 037298 jc short 052ceh ; 72 03 7302 7299 inc di ; 47 7303 7300 shr di, 1 ; d1 ef … … 7305 7302 rcr ax, 1 ; d1 d8 7306 7303 inc bx ; 43 7307 jmp short 052 c0h ; eb e57304 jmp short 052bah ; eb e5 7308 7305 mov ax, di ; 89 f8 7309 7306 xor dx, dx ; 31 d2 7310 7307 mov bx, strict word 0003fh ; bb 3f 00 7311 7308 xor cx, cx ; 31 c9 7312 call 0 8fe9h ; e8 023d7309 call 09049h ; e8 68 3d 7313 7310 mov bx, ax ; 89 c3 7314 7311 mov cx, dx ; 89 d1 7315 7312 mov ax, word [bp-004h] ; 8b 46 fc 7316 7313 mov dx, word [bp-002h] ; 8b 56 fe 7317 call 0 8fb0h ; e8 bc 3c7314 call 09010h ; e8 22 3d 7318 7315 mov word [es:si+002h], ax ; 26 89 44 02 7319 7316 cmp ax, 00400h ; 3d 00 04 7320 jbe short 05 303h ; 76 067317 jbe short 052fdh ; 76 06 7321 7318 mov word [es:si+002h], 00400h ; 26 c7 44 02 00 04 7322 7319 mov word [es:si], di ; 26 89 3c … … 7326 7323 pop si ; 5e 7327 7324 retn ; c3 7328 retf 0ee53h ; ca 53 ee7325 les dx, [bp+di-018h] ; c4 53 e8 7329 7326 push bx ; 53 7330 sbb dx, word [si+01bh] ; 1b 54 1b7327 adc ax, 01554h ; 15 54 15 7331 7328 push sp ; 54 7332 sbb dx, word [si-00dh] ; 1b 54 f37329 adc ax, 0ed54h ; 15 54 ed 7333 7330 push bp ; 55 7334 and word [bx+021h], dx ; 21 57 217331 sbb dx, word [bx+01bh] ; 1b 57 1b 7335 7332 push di ; 57 7336 or AL, strict byte 056h ; 0c 56 7337 db 0feh 7333 push ES ; 06 7338 7334 push si ; 56 7339 and word [bx+021h], dx ; 21 57 21 7335 clc ; f8 7336 push si ; 56 7337 sbb dx, word [bx+01bh] ; 1b 57 1b 7340 7338 push di ; 57 7341 db 0feh7339 clc ; f8 7342 7340 push si ; 56 7343 db 0feh7341 clc ; f8 7344 7342 push si ; 56 7345 and word [bx+021h], dx ; 21 57 217343 sbb dx, word [bx+01bh] ; 1b 57 1b 7346 7344 push di ; 57 7347 db 082h, 056h, 0feh, 056h 7348 ; adc byte [bp-002h], 056h ; 82 56 fe 56 7349 and word [bx+021h], dx ; 21 57 21 7345 jl short 05382h ; 7c 56 7346 clc ; f8 7347 push si ; 56 7348 sbb dx, word [bx+01bh] ; 1b 57 1b 7350 7349 push di ; 57 7351 db 0feh7350 clc ; f8 7352 7351 push si ; 56 7353 mov DL, strict byte 056h ; b2 56 7354 and word [bx+021h], dx ; 21 57 21 7352 lodsb ; ac 7353 push si ; 56 7354 sbb dx, word [bx+01bh] ; 1b 57 1b 7355 7355 push di ; 57 7356 db 0 21h7356 db 01bh 7357 7357 push di ; 57 7358 _int13_harddisk: ; 0xf53 42LB 0x43c7358 _int13_harddisk: ; 0xf533c LB 0x43c 7359 7359 enter 00010h, 000h ; c8 10 00 00 7360 7360 mov dx, strict word 0000eh ; ba 0e 00 7361 7361 mov ax, strict word 00040h ; b8 40 00 7362 call 0161ch ; e8 cdc27362 call 0161ch ; e8 d3 c2 7363 7363 mov si, 00122h ; be 22 01 7364 7364 mov word [bp-004h], ax ; 89 46 fc … … 7366 7366 mov dx, 0008eh ; ba 8e 00 7367 7367 mov ax, strict word 00040h ; b8 40 00 7368 call 0160eh ; e8 aec27368 call 0160eh ; e8 b4 c2 7369 7369 mov ax, word [bp+00eh] ; 8b 46 0e 7370 7370 xor ah, ah ; 30 e4 7371 7371 cmp ax, 00080h ; 3d 80 00 7372 jc short 0536 fh ; 72 057372 jc short 05369h ; 72 05 7373 7373 cmp ax, 00090h ; 3d 90 00 7374 jc short 0538 dh ; 72 1e7374 jc short 05387h ; 72 1e 7375 7375 mov ax, word [bp+00eh] ; 8b 46 0e 7376 7376 xor ah, ah ; 30 e4 … … 7382 7382 push 005fdh ; 68 fd 05 7383 7383 push strict byte 00004h ; 6a 04 7384 call 018e9h ; e8 6 2c57384 call 018e9h ; e8 68 c5 7385 7385 add sp, strict byte 0000ah ; 83 c4 0a 7386 jmp near 0573 ch ; e9 af 037386 jmp near 05736h ; e9 af 03 7387 7387 mov ax, word [bp+00eh] ; 8b 46 0e 7388 7388 xor ah, ah ; 30 e4 … … 7393 7393 mov byte [bp-002h], dl ; 88 56 fe 7394 7394 cmp dl, 010h ; 80 fa 10 7395 jc short 053b 6h ; 72 107395 jc short 053b0h ; 72 10 7396 7396 push ax ; 50 7397 7397 mov ax, word [bp+016h] ; 8b 46 16 … … 7400 7400 push 005eeh ; 68 ee 05 7401 7401 push 00628h ; 68 28 06 7402 jmp short 053 82h ; eb cc7402 jmp short 0537ch ; eb cc 7403 7403 mov bx, word [bp+016h] ; 8b 5e 16 7404 7404 shr bx, 008h ; c1 eb 08 7405 7405 cmp bx, strict byte 00018h ; 83 fb 18 7406 jnbe near 057 21h ; 0f 87 5e 037406 jnbe near 0571bh ; 0f 87 5e 03 7407 7407 add bx, bx ; 01 db 7408 jmp word [cs:bx+053 10h] ; 2e ff a7 10537408 jmp word [cs:bx+0530ah] ; 2e ff a7 0a 53 7409 7409 cmp byte [bp-002h], 008h ; 80 7e fe 08 7410 jnc near 053d 9h ; 0f 83 07 007410 jnc near 053d3h ; 0f 83 07 00 7411 7411 movzx ax, byte [bp-002h] ; 0f b6 46 fe 7412 call 01be 6h ; e8 0d c87412 call 01be0h ; e8 0d c8 7413 7413 mov byte [bp+017h], 000h ; c6 46 17 00 7414 7414 xor bx, bx ; 31 db 7415 7415 mov dx, strict word 00074h ; ba 74 00 7416 7416 mov ax, strict word 00040h ; b8 40 00 7417 call 0160eh ; e8 2 6c27417 call 0160eh ; e8 2c c2 7418 7418 and byte [bp+01ch], 0feh ; 80 66 1c fe 7419 7419 leave ; c9 … … 7421 7421 mov dx, strict word 00074h ; ba 74 00 7422 7422 mov ax, strict word 00040h ; b8 40 00 7423 call 01600h ; e8 0 9c27423 call 01600h ; e8 0f c2 7424 7424 mov cl, al ; 88 c1 7425 7425 mov dx, word [bp+016h] ; 8b 56 16 … … 7432 7432 mov dx, strict word 00074h ; ba 74 00 7433 7433 mov ax, strict word 00040h ; b8 40 00 7434 call 0160eh ; e8 fa c17434 call 0160eh ; e8 00 c2 7435 7435 test cl, cl ; 84 c9 7436 je short 053d dh ; 74 c57437 jmp near 0575 8h ; e9 3d 037436 je short 053d7h ; 74 c5 7437 jmp near 05752h ; e9 3d 03 7438 7438 mov ax, word [bp+016h] ; 8b 46 16 7439 7439 xor ah, ah ; 30 e4 … … 7455 7455 mov ax, word [bp-00ch] ; 8b 46 f4 7456 7456 cmp ax, 00080h ; 3d 80 00 7457 jnbe short 0545 6h ; 77 047457 jnbe short 05450h ; 77 04 7458 7458 test ax, ax ; 85 c0 7459 jne short 0547 9h ; 75 237459 jne short 05473h ; 75 23 7460 7460 mov bx, 00d32h ; bb 32 0d 7461 7461 mov cx, ds ; 8c d9 7462 7462 mov ax, strict word 00004h ; b8 04 00 7463 call 018aeh ; e8 4dc47463 call 018aeh ; e8 53 c4 7464 7464 mov ax, word [bp+016h] ; 8b 46 16 7465 7465 shr ax, 008h ; c1 e8 08 … … 7468 7468 push 0065ah ; 68 5a 06 7469 7469 push strict byte 00004h ; 6a 04 7470 call 018e9h ; e8 7 6c47470 call 018e9h ; e8 7c c4 7471 7471 add sp, strict byte 00008h ; 83 c4 08 7472 jmp near 0573 ch ; e9 c3 027472 jmp near 05736h ; e9 c3 02 7473 7473 movzx ax, byte [bp-002h] ; 0f b6 46 fe 7474 7474 imul ax, ax, strict byte 00018h ; 6b c0 18 … … 7481 7481 mov word [bp-00ah], dx ; 89 56 f6 7482 7482 cmp di, ax ; 39 c7 7483 jnc short 054a 6h ; 73 0c7483 jnc short 054a0h ; 73 0c 7484 7484 cmp cx, word [bp-008h] ; 3b 4e f8 7485 jbe short 054a 6h ; 76 077485 jbe short 054a0h ; 76 07 7486 7486 mov ax, word [bp-006h] ; 8b 46 fa 7487 7487 cmp ax, dx ; 39 d0 7488 jbe short 054 d4h ; 76 2e7488 jbe short 054ceh ; 76 2e 7489 7489 mov bx, 00d32h ; bb 32 0d 7490 7490 mov cx, ds ; 8c d9 7491 7491 mov ax, strict word 00004h ; b8 04 00 7492 call 018aeh ; e8 fd c37492 call 018aeh ; e8 03 c4 7493 7493 push dword [bp-008h] ; 66 ff 76 f8 7494 7494 push di ; 57 … … 7502 7502 push 00682h ; 68 82 06 7503 7503 push strict byte 00004h ; 6a 04 7504 call 018e9h ; e8 1bc47504 call 018e9h ; e8 21 c4 7505 7505 add sp, strict byte 00010h ; 83 c4 10 7506 jmp near 0573 ch ; e9 68 027506 jmp near 05736h ; e9 68 02 7507 7507 mov ax, word [bp+016h] ; 8b 46 16 7508 7508 shr ax, 008h ; c1 e8 08 7509 7509 cmp ax, strict word 00004h ; 3d 04 00 7510 jne short 054 e2h ; 75 037511 jmp near 053d 9h ; e9 f7 fe7510 jne short 054dch ; 75 03 7511 jmp near 053d3h ; e9 f7 fe 7512 7512 movzx bx, byte [bp-002h] ; 0f b6 5e fe 7513 7513 imul bx, bx, strict byte 00018h ; 6b db 18 … … 7515 7515 add bx, si ; 01 f3 7516 7516 cmp cx, word [es:bx+02ch] ; 26 3b 4f 2c 7517 jne short 05 503h ; 75 0f7517 jne short 054fdh ; 75 0f 7518 7518 mov ax, word [es:bx+030h] ; 26 8b 47 30 7519 7519 cmp ax, word [bp-00ah] ; 3b 46 f6 7520 jne short 05 503h ; 75 067520 jne short 054fdh ; 75 06 7521 7521 cmp byte [bp-002h], 008h ; 80 7e fe 08 7522 jc short 055 33h ; 72 307522 jc short 0552dh ; 72 30 7523 7523 mov ax, di ; 89 f8 7524 7524 xor dx, dx ; 31 d2 7525 7525 mov bx, cx ; 89 cb 7526 7526 xor cx, cx ; 31 c9 7527 call 0 8fe9h ; e8 db 3a7527 call 09049h ; e8 41 3b 7528 7528 xor bx, bx ; 31 db 7529 7529 add ax, word [bp-008h] ; 03 46 f8 … … 7531 7531 mov bx, word [bp-00ah] ; 8b 5e f6 7532 7532 xor cx, cx ; 31 c9 7533 call 0 8fe9h ; e8 cc 3a7533 call 09049h ; e8 32 3b 7534 7534 xor bx, bx ; 31 db 7535 7535 add ax, word [bp-006h] ; 03 46 fa … … 7584 7584 mov word [bp+016h], bx ; 89 5e 16 7585 7585 test dl, dl ; 84 d2 7586 je near 053d 9h ; 0f 84 15 fe7586 je near 053d3h ; 0f 84 15 fe 7587 7587 mov bx, 00d32h ; bb 32 0d 7588 7588 mov cx, ds ; 8c d9 7589 7589 mov ax, strict word 00004h ; b8 04 00 7590 call 018aeh ; e8 dfc27590 call 018aeh ; e8 e5 c2 7591 7591 movzx ax, dl ; 0f b6 c2 7592 7592 push ax ; 50 … … 7597 7597 push 006c9h ; 68 c9 06 7598 7598 push strict byte 00004h ; 6a 04 7599 call 018e9h ; e8 0 4c37599 call 018e9h ; e8 0a c3 7600 7600 add sp, strict byte 0000ah ; 83 c4 0a 7601 7601 mov ax, word [bp+016h] ; 8b 46 16 7602 7602 xor ah, ah ; 30 e4 7603 7603 or ah, 00ch ; 80 cc 0c 7604 jmp near 057 44h ; e9 51 017604 jmp near 0573eh ; e9 51 01 7605 7605 mov bx, 00d32h ; bb 32 0d 7606 7606 mov cx, ds ; 8c d9 7607 7607 mov ax, strict word 00004h ; b8 04 00 7608 call 018aeh ; e8 b 0c27608 call 018aeh ; e8 b6 c2 7609 7609 push 006eah ; 68 ea 06 7610 7610 push strict byte 00004h ; 6a 04 7611 call 018e9h ; e8 e 3c27611 call 018e9h ; e8 e9 c2 7612 7612 add sp, strict byte 00004h ; 83 c4 04 7613 jmp near 053d 9h ; e9 cd fd7613 jmp near 053d3h ; e9 cd fd 7614 7614 movzx ax, byte [bp-002h] ; 0f b6 46 fe 7615 7615 imul ax, ax, strict byte 00018h ; 6b c0 18 … … 7654 7654 or dx, ax ; 09 c2 7655 7655 mov word [bp+012h], dx ; 89 56 12 7656 jmp near 053d 9h ; e9 57 fd7656 jmp near 053d3h ; e9 57 fd 7657 7657 movzx ax, byte [bp-002h] ; 0f b6 46 fe 7658 7658 cwd ; 99 … … 7670 7670 and AL, strict byte 0c0h ; 24 c0 7671 7671 cmp AL, strict byte 040h ; 3c 40 7672 jne short 056a 7h ; 75 037673 jmp near 053d 9h ; e9 32 fd7672 jne short 056a1h ; 75 03 7673 jmp near 053d3h ; e9 32 fd 7674 7674 mov ax, word [bp+016h] ; 8b 46 16 7675 7675 xor ah, ah ; 30 e4 7676 7676 or ah, 0aah ; 80 cc aa 7677 jmp near 057 44h ; e9 92 007677 jmp near 0573eh ; e9 92 00 7678 7678 movzx ax, byte [bp-002h] ; 0f b6 46 fe 7679 7679 imul ax, ax, strict byte 00018h ; 6b c0 18 … … 7689 7689 mov bx, word [bp-008h] ; 8b 5e f8 7690 7690 xor cx, cx ; 31 c9 7691 call 0 8fe9h ; e8 0d397691 call 09049h ; e8 73 39 7692 7692 mov bx, word [bp-006h] ; 8b 5e fa 7693 7693 xor cx, cx ; 31 c9 7694 call 0 8fe9h ; e8 05397694 call 09049h ; e8 6b 39 7695 7695 mov word [bp-010h], ax ; 89 46 f0 7696 7696 mov word [bp-00eh], dx ; 89 56 f2 … … 7701 7701 or ah, 003h ; 80 cc 03 7702 7702 mov word [bp+016h], ax ; 89 46 16 7703 jmp near 053d dh ; e9 df fc7703 jmp near 053d7h ; e9 df fc 7704 7704 mov bx, 00d32h ; bb 32 0d 7705 7705 mov cx, ds ; 8c d9 7706 7706 mov ax, strict word 00004h ; b8 04 00 7707 call 018aeh ; e8 a 5c17707 call 018aeh ; e8 ab c1 7708 7708 mov ax, word [bp+016h] ; 8b 46 16 7709 7709 shr ax, 008h ; c1 e8 08 … … 7712 7712 push 00704h ; 68 04 07 7713 7713 push strict byte 00004h ; 6a 04 7714 call 018e9h ; e8 cec17714 call 018e9h ; e8 d4 c1 7715 7715 add sp, strict byte 00008h ; 83 c4 08 7716 jmp near 053d 9h ; e9 b8 fc7716 jmp near 053d3h ; e9 b8 fc 7717 7717 mov bx, 00d32h ; bb 32 0d 7718 7718 mov cx, ds ; 8c d9 7719 7719 mov ax, strict word 00004h ; b8 04 00 7720 call 018aeh ; e8 8 2c17720 call 018aeh ; e8 88 c1 7721 7721 mov ax, word [bp+016h] ; 8b 46 16 7722 7722 shr ax, 008h ; c1 e8 08 … … 7724 7724 push 005eeh ; 68 ee 05 7725 7725 push 00737h ; 68 37 07 7726 jmp near 0546 eh ; e9 32 fd7726 jmp near 05468h ; e9 32 fd 7727 7727 mov ax, word [bp+016h] ; 8b 46 16 7728 7728 xor ah, ah ; 30 e4 … … 7734 7734 mov dx, strict word 00074h ; ba 74 00 7735 7735 mov ax, strict word 00040h ; b8 40 00 7736 call 0160eh ; e8 b 6be7736 call 0160eh ; e8 bc be 7737 7737 or byte [bp+01ch], 001h ; 80 4e 1c 01 7738 7738 leave ; c9 7739 7739 retn ; c3 7740 pop SS ; 177740 adc word [bx+si+029h], bx ; 11 58 29 7741 7741 pop ax ; 58 7742 das ; 2f7742 sub word [bx+si+029h], bx ; 29 58 29 7743 7743 pop ax ; 58 7744 das ; 2f 7745 pop ax ; 58 7746 das ; 2f 7747 pop ax ; 58 7748 ficomp word [bp+di+072h] ; de 5b 72 7744 fcomp dword [bp+di+06ch] ; d8 5b 6c 7749 7745 pop cx ; 59 7750 das ; 2f 7751 pop ax ; 58 7752 js short 057c7h ; 78 59 7753 ficomp word [bp+di+02bh] ; de 5b 2b 7746 sub word [bx+si+072h], bx ; 29 58 72 7747 pop cx ; 59 7748 fcomp dword [bp+di+025h] ; d8 5b 25 7754 7749 pop sp ; 5c 7755 sub bx, word [si+02bh] ; 2b 5c 2b7750 and ax, 0255ch ; 25 5c 25 7756 7751 pop sp ; 5c 7757 sub bx, word [si-00dh] ; 2b 5c f37752 and ax, 0ed5ch ; 25 5c ed 7758 7753 pop bx ; 5b 7759 sub bx, word [si+02bh] ; 2b 5c 2b7754 and ax, 0255ch ; 25 5c 25 7760 7755 pop sp ; 5c 7761 _int13_harddisk_ext: ; 0xf577 eLB 0x4c87756 _int13_harddisk_ext: ; 0xf5778 LB 0x4c8 7762 7757 enter 00028h, 000h ; c8 28 00 00 7763 7758 mov dx, strict word 0000eh ; ba 0e 00 7764 7759 mov ax, strict word 00040h ; b8 40 00 7765 call 0161ch ; e8 9 1be7760 call 0161ch ; e8 97 be 7766 7761 mov word [bp-014h], ax ; 89 46 ec 7767 7762 mov dx, strict word 0000eh ; ba 0e 00 7768 7763 mov ax, strict word 00040h ; b8 40 00 7769 call 0161ch ; e8 8 5be7764 call 0161ch ; e8 8b be 7770 7765 mov si, 00122h ; be 22 01 7771 7766 mov word [bp-026h], ax ; 89 46 da … … 7773 7768 mov dx, 0008eh ; ba 8e 00 7774 7769 mov ax, strict word 00040h ; b8 40 00 7775 call 0160eh ; e8 6 6be7770 call 0160eh ; e8 6c be 7776 7771 mov ax, word [bp+00eh] ; 8b 46 0e 7777 7772 xor ah, ah ; 30 e4 7778 7773 cmp ax, 00080h ; 3d 80 00 7779 jc short 057b 7h ; 72 057774 jc short 057b1h ; 72 05 7780 7775 cmp ax, 00090h ; 3d 90 00 7781 jc short 057 d5h ; 72 1e7776 jc short 057cfh ; 72 1e 7782 7777 mov ax, word [bp+00eh] ; 8b 46 0e 7783 7778 xor ah, ah ; 30 e4 … … 7789 7784 push 005fdh ; 68 fd 05 7790 7785 push strict byte 00004h ; 6a 04 7791 call 018e9h ; e8 1ac17786 call 018e9h ; e8 20 c1 7792 7787 add sp, strict byte 0000ah ; 83 c4 0a 7793 jmp near 05c0 9h ; e9 34 047788 jmp near 05c03h ; e9 34 04 7794 7789 mov ax, word [bp+00eh] ; 8b 46 0e 7795 7790 xor ah, ah ; 30 e4 … … 7799 7794 mov cl, byte [es:bx+0011fh] ; 26 8a 8f 1f 01 7800 7795 cmp cl, 010h ; 80 f9 10 7801 jc short 057f bh ; 72 107796 jc short 057f5h ; 72 10 7802 7797 push ax ; 50 7803 7798 mov ax, word [bp+016h] ; 8b 46 16 … … 7806 7801 push 00765h ; 68 65 07 7807 7802 push 00628h ; 68 28 06 7808 jmp short 057c ah ; eb cf7803 jmp short 057c4h ; eb cf 7809 7804 mov bx, word [bp+016h] ; 8b 5e 16 7810 7805 shr bx, 008h ; c1 eb 08 7811 7806 sub bx, strict byte 00041h ; 83 eb 41 7812 7807 cmp bx, strict byte 0000fh ; 83 fb 0f 7813 jnbe near 05c2 bh ; 0f 87 20 047808 jnbe near 05c25h ; 0f 87 20 04 7814 7809 add bx, bx ; 01 db 7815 7810 mov ax, word [bp+016h] ; 8b 46 16 7816 7811 xor ah, ah ; 30 e4 7817 jmp word [cs:bx+0575 eh] ; 2e ff a7 5e577812 jmp word [cs:bx+05758h] ; 2e ff a7 58 57 7818 7813 mov word [bp+010h], 0aa55h ; c7 46 10 55 aa 7819 7814 mov ax, word [bp+016h] ; 8b 46 16 … … 7822 7817 mov word [bp+016h], ax ; 89 46 16 7823 7818 mov word [bp+014h], strict word 00007h ; c7 46 14 07 00 7824 jmp near 05b e2h ; e9 b3 037819 jmp near 05bdch ; e9 b3 03 7825 7820 mov bx, word [bp+00ah] ; 8b 5e 0a 7826 7821 mov es, [bp+004h] ; 8e 46 04 … … 7837 7832 mov ax, word [es:bx+00eh] ; 26 8b 47 0e 7838 7833 or ax, word [bp-00ah] ; 0b 46 f6 7839 je short 058 70h ; 74 117834 je short 0586ah ; 74 11 7840 7835 mov ax, word [bp+016h] ; 8b 46 16 7841 7836 shr ax, 008h ; c1 e8 08 … … 7844 7839 push 00778h ; 68 78 07 7845 7840 push strict byte 00007h ; 6a 07 7846 jmp short 058b ah ; eb 4a7841 jmp short 058b4h ; eb 4a 7847 7842 mov es, [bp-010h] ; 8e 46 f0 7848 7843 mov ax, word [es:di+008h] ; 26 8b 45 08 … … 7856 7851 mov ch, byte [es:bx+01eh] ; 26 8a 6f 1e 7857 7852 cmp ax, word [es:bx+034h] ; 26 3b 47 34 7858 jnbe short 058 a0h ; 77 0b7859 jne short 058 c3h ; 75 2c7853 jnbe short 0589ah ; 77 0b 7854 jne short 058bdh ; 75 2c 7860 7855 mov dx, word [bp-00ah] ; 8b 56 f6 7861 7856 cmp dx, word [es:bx+032h] ; 26 3b 57 32 7862 jc short 058 c3h ; 72 237857 jc short 058bdh ; 72 23 7863 7858 mov bx, 00d32h ; bb 32 0d 7864 7859 mov cx, ds ; 8c d9 7865 7860 mov ax, strict word 00004h ; b8 04 00 7866 call 018aeh ; e8 0 3c07861 call 018aeh ; e8 09 c0 7867 7862 mov ax, word [bp+016h] ; 8b 46 16 7868 7863 shr ax, 008h ; c1 e8 08 … … 7871 7866 push 007a1h ; 68 a1 07 7872 7867 push strict byte 00004h ; 6a 04 7873 call 018e9h ; e8 2cc07868 call 018e9h ; e8 32 c0 7874 7869 add sp, strict byte 00008h ; 83 c4 08 7875 jmp near 05c0 9h ; e9 46 037870 jmp near 05c03h ; e9 46 03 7876 7871 mov dx, word [bp+016h] ; 8b 56 16 7877 7872 shr dx, 008h ; c1 ea 08 7878 7873 mov word [bp-00ch], dx ; 89 56 f4 7879 7874 cmp dx, strict byte 00044h ; 83 fa 44 7880 je near 05bd eh ; 0f 84 0b 037875 je near 05bd8h ; 0f 84 0b 03 7881 7876 cmp dx, strict byte 00047h ; 83 fa 47 7882 je near 05bd eh ; 0f 84 04 037877 je near 05bd8h ; 0f 84 04 03 7883 7878 mov es, [bp-026h] ; 8e 46 da 7884 7879 db 066h, 026h, 0c7h, 044h, 014h, 000h, 000h, 000h, 000h … … 7912 7907 mov word [es:di+002h], ax ; 26 89 45 02 7913 7908 test dl, dl ; 84 d2 7914 je near 05bd eh ; 0f 84 97 027909 je near 05bd8h ; 0f 84 97 02 7915 7910 mov bx, 00d32h ; bb 32 0d 7916 7911 mov cx, ds ; 8c d9 7917 7912 mov ax, strict word 00004h ; b8 04 00 7918 call 018aeh ; e8 5cbf7913 call 018aeh ; e8 62 bf 7919 7914 movzx ax, dl ; 0f b6 c2 7920 7915 push ax ; 50 … … 7923 7918 push 006c9h ; 68 c9 06 7924 7919 push strict byte 00004h ; 6a 04 7925 call 018e9h ; e8 8 5bf7920 call 018e9h ; e8 8b bf 7926 7921 add sp, strict byte 0000ah ; 83 c4 0a 7927 7922 mov ax, word [bp+016h] ; 8b 46 16 7928 7923 xor ah, ah ; 30 e4 7929 7924 or ah, 00ch ; 80 cc 0c 7930 jmp near 05c 11h ; e9 9f 027925 jmp near 05c0bh ; e9 9f 02 7931 7926 or ah, 0b2h ; 80 cc b2 7932 jmp near 05c 11h ; e9 99 027927 jmp near 05c0bh ; e9 99 02 7933 7928 mov bx, word [bp+00ah] ; 8b 5e 0a 7934 7929 mov ax, word [bp+004h] ; 8b 46 04 … … 7940 7935 mov word [bp-00eh], ax ; 89 46 f2 7941 7936 cmp ax, strict word 0001ah ; 3d 1a 00 7942 jc near 05c0 9h ; 0f 82 74 027943 jc near 05a1 ch ; 0f 82 83 007937 jc near 05c03h ; 0f 82 74 02 7938 jc near 05a16h ; 0f 82 83 00 7944 7939 movzx ax, cl ; 0f b6 c1 7945 7940 imul ax, ax, strict byte 00018h ; 6b c0 18 … … 7979 7974 ; mov dword [es:di+014h], strict dword 000000000h ; 66 26 c7 45 14 00 00 00 00 7980 7975 cmp word [bp-00eh], strict byte 0001eh ; 83 7e f2 1e 7981 jc near 05b2 8h ; 0f 82 04 017976 jc near 05b22h ; 0f 82 04 01 7982 7977 mov es, [bp-004h] ; 8e 46 fc 7983 7978 mov word [es:bx], strict word 0001eh ; 26 c7 07 1e 00 … … 8005 8000 mov al, byte [es:di+023h] ; 26 8a 45 23 8006 8001 test al, al ; 84 c0 8007 jne short 05a7 ah ; 75 048002 jne short 05a74h ; 75 04 8008 8003 xor dx, dx ; 31 d2 8009 jmp short 05a7 dh ; eb 038004 jmp short 05a77h ; eb 03 8010 8005 mov dx, strict word 00008h ; ba 08 00 8011 8006 or dl, 010h ; 80 ca 10 … … 8022 8017 or word [bp-008h], dx ; 09 56 f8 8023 8018 cmp AL, strict byte 003h ; 3c 03 8024 jne short 05a a3h ; 75 058019 jne short 05a9dh ; 75 05 8025 8020 mov ax, strict word 00003h ; b8 03 00 8026 jmp short 05a a5h ; eb 028021 jmp short 05a9fh ; eb 02 8027 8022 xor ax, ax ; 31 c0 8028 8023 or word [bp-008h], ax ; 09 46 f8 … … 8049 8044 xor ch, ch ; 30 ed 8050 8045 mov byte [bp-002h], ch ; 88 6e fe 8051 jmp short 05b0 9h ; eb 068046 jmp short 05b03h ; eb 06 8052 8047 cmp byte [bp-002h], 00fh ; 80 7e fe 0f 8053 jnc short 05b1 eh ; 73 158048 jnc short 05b18h ; 73 15 8054 8049 movzx dx, byte [bp-002h] ; 0f b6 56 fe 8055 8050 add dx, 00312h ; 81 c2 12 03 8056 8051 mov ax, word [bp-014h] ; 8b 46 ec 8057 call 01600h ; e8 e 9ba8052 call 01600h ; e8 ef ba 8058 8053 add ch, al ; 00 c5 8059 8054 inc byte [bp-002h] ; fe 46 fe 8060 jmp short 05 b03h ; eb e58055 jmp short 05afdh ; eb e5 8061 8056 neg ch ; f6 dd 8062 8057 mov es, [bp-026h] ; 8e 46 da 8063 8058 mov byte [es:si+001ffh], ch ; 26 88 ac ff 01 8064 8059 cmp word [bp-00eh], strict byte 00042h ; 83 7e f2 42 8065 jc near 05bd eh ; 0f 82 ae 008060 jc near 05bd8h ; 0f 82 ae 00 8066 8061 movzx ax, cl ; 0f b6 c1 8067 8062 cwd ; 99 … … 8081 8076 mov word [es:bx+022h], strict word 00000h ; 26 c7 47 22 00 00 8082 8077 test al, al ; 84 c0 8083 jne short 05b 70h ; 75 098078 jne short 05b6ah ; 75 09 8084 8079 db 066h, 026h, 0c7h, 047h, 024h, 049h, 053h, 041h, 020h 8085 8080 ; mov dword [es:bx+024h], strict dword 020415349h ; 66 26 c7 47 24 49 53 41 20 … … 8090 8085 ; mov dword [es:bx+02ch], strict dword 020202020h ; 66 26 c7 47 2c 20 20 20 20 8091 8086 test al, al ; 84 c0 8092 jne short 05b9 ch ; 75 138087 jne short 05b96h ; 75 13 8093 8088 mov word [es:bx+030h], dx ; 26 89 57 30 8094 8089 db 066h, 026h, 0c7h, 047h, 032h, 000h, 000h, 000h, 000h … … 8105 8100 xor cl, cl ; 30 c9 8106 8101 mov CH, strict byte 01eh ; b5 1e 8107 jmp short 05b c3h ; eb 058102 jmp short 05bbdh ; eb 05 8108 8103 cmp ch, 040h ; 80 fd 40 8109 jnc short 05b d5h ; 73 128104 jnc short 05bcfh ; 73 12 8110 8105 movzx dx, ch ; 0f b6 d5 8111 8106 add dx, word [bp+00ah] ; 03 56 0a 8112 8107 mov ax, word [bp+004h] ; 8b 46 04 8113 call 01600h ; e8 3 1ba8108 call 01600h ; e8 37 ba 8114 8109 add cl, al ; 00 c1 8115 8110 db 0feh, 0c5h 8116 8111 ; inc ch ; fe c5 8117 jmp short 05bb eh ; eb e98112 jmp short 05bb8h ; eb e9 8118 8113 neg cl ; f6 d9 8119 8114 mov es, [bp-004h] ; 8e 46 fc … … 8123 8118 mov dx, strict word 00074h ; ba 74 00 8124 8119 mov ax, strict word 00040h ; b8 40 00 8125 call 0160eh ; e8 2 1ba8120 call 0160eh ; e8 27 ba 8126 8121 and byte [bp+01ch], 0feh ; 80 66 1c fe 8127 8122 leave ; c9 8128 8123 retn ; c3 8129 8124 cmp ax, strict word 00006h ; 3d 06 00 8130 je short 05bd eh ; 74 e68125 je short 05bd8h ; 74 e6 8131 8126 cmp ax, strict word 00001h ; 3d 01 00 8132 jc short 05c0 9h ; 72 0c8133 jbe short 05bd eh ; 76 df8127 jc short 05c03h ; 72 0c 8128 jbe short 05bd8h ; 76 df 8134 8129 cmp ax, strict word 00003h ; 3d 03 00 8135 jc short 05c0 9h ; 72 058130 jc short 05c03h ; 72 05 8136 8131 cmp ax, strict word 00004h ; 3d 04 00 8137 jbe short 05bd eh ; 76 d58132 jbe short 05bd8h ; 76 d5 8138 8133 mov ax, word [bp+016h] ; 8b 46 16 8139 8134 xor ah, ah ; 30 e4 … … 8145 8140 mov dx, strict word 00074h ; ba 74 00 8146 8141 mov ax, strict word 00040h ; b8 40 00 8147 call 0160eh ; e8 e 9b98142 call 0160eh ; e8 ef b9 8148 8143 or byte [bp+01ch], 001h ; 80 4e 1c 01 8149 8144 leave ; c9 … … 8152 8147 mov cx, ds ; 8c d9 8153 8148 mov ax, strict word 00004h ; b8 04 00 8154 call 018aeh ; e8 7 8bc8149 call 018aeh ; e8 7e bc 8155 8150 mov ax, word [bp+016h] ; 8b 46 16 8156 8151 shr ax, 008h ; c1 e8 08 … … 8158 8153 push 00765h ; 68 65 07 8159 8154 push 00737h ; 68 37 07 8160 jmp near 058b 8h ; e9 72 fc8161 _int14_function: ; 0xf5c4 6LB 0x1548155 jmp near 058b2h ; e9 72 fc 8156 _int14_function: ; 0xf5c40 LB 0x154 8162 8157 push si ; 56 8163 8158 push bp ; 55 … … 8167 8162 add dx, dx ; 01 d2 8168 8163 mov ax, strict word 00040h ; b8 40 00 8169 call 0161ch ; e8 c 6b98164 call 0161ch ; e8 cc b9 8170 8165 mov si, ax ; 89 c6 8171 8166 mov bx, ax ; 89 c3 … … 8173 8168 add dx, strict byte 0007ch ; 83 c2 7c 8174 8169 mov ax, strict word 00040h ; b8 40 00 8175 call 01600h ; e8 9ab98170 call 01600h ; e8 a0 b9 8176 8171 mov cl, al ; 88 c1 8177 8172 cmp word [bp+010h], strict byte 00004h ; 83 7e 10 04 8178 jnc near 05d 93h ; 0f 83 23 018173 jnc near 05d8dh ; 0f 83 23 01 8179 8174 test si, si ; 85 f6 8180 jbe near 05d 93h ; 0f 86 1d 018175 jbe near 05d8dh ; 0f 86 1d 01 8181 8176 mov al, byte [bp+015h] ; 8a 46 15 8182 8177 cmp AL, strict byte 001h ; 3c 01 8183 jc short 05c8 eh ; 72 118184 jbe short 05c e2h ; 76 638178 jc short 05c88h ; 72 11 8179 jbe short 05cdch ; 76 63 8185 8180 cmp AL, strict byte 003h ; 3c 03 8186 je near 05d7 bh ; 0f 84 f6 008181 je near 05d75h ; 0f 84 f6 00 8187 8182 cmp AL, strict byte 002h ; 3c 02 8188 je near 05d 30h ; 0f 84 a5 008189 jmp near 05d8 ch ; e9 fe 008183 je near 05d2ah ; 0f 84 a5 00 8184 jmp near 05d86h ; e9 fe 00 8190 8185 test al, al ; 84 c0 8191 jne near 05d8 ch ; 0f 85 f8 008186 jne near 05d86h ; 0f 85 f8 00 8192 8187 lea dx, [bx+003h] ; 8d 57 03 8193 8188 in AL, DX ; ec … … 8221 8216 ; sub ah, ah ; 2a e4 8222 8217 mov byte [bp+014h], al ; 88 46 14 8223 jmp near 05d6 ch ; e9 97 008218 jmp near 05d66h ; e9 97 00 8224 8219 mov AL, strict byte 017h ; b0 17 8225 8220 mov dx, bx ; 89 da … … 8228 8223 mov AL, strict byte 004h ; b0 04 8229 8224 out DX, AL ; ee 8230 jmp short 05cb 7h ; eb d58225 jmp short 05cb1h ; eb d5 8231 8226 mov dx, strict word 0006ch ; ba 6c 00 8232 8227 mov ax, strict word 00040h ; b8 40 00 8233 call 0161ch ; e8 3 1b98228 call 0161ch ; e8 37 b9 8234 8229 mov si, ax ; 89 c6 8235 8230 lea dx, [bx+005h] ; 8d 57 05 … … 8239 8234 and ax, strict word 00060h ; 25 60 00 8240 8235 cmp ax, strict word 00060h ; 3d 60 00 8241 je short 05d 12h ; 74 178236 je short 05d0ch ; 74 17 8242 8237 test cl, cl ; 84 c9 8243 je short 05d 12h ; 74 138238 je short 05d0ch ; 74 13 8244 8239 mov dx, strict word 0006ch ; ba 6c 00 8245 8240 mov ax, strict word 00040h ; b8 40 00 8246 call 0161ch ; e8 1 4b98241 call 0161ch ; e8 1a b9 8247 8242 cmp ax, si ; 39 f0 8248 je short 05ce dh ; 74 e18243 je short 05ce7h ; 74 e1 8249 8244 mov si, ax ; 89 c6 8250 8245 db 0feh, 0c9h 8251 8246 ; dec cl ; fe c9 8252 jmp short 05ce dh ; eb db8247 jmp short 05ce7h ; eb db 8253 8248 test cl, cl ; 84 c9 8254 je short 05d1 ch ; 74 068249 je short 05d16h ; 74 06 8255 8250 mov al, byte [bp+014h] ; 8a 46 14 8256 8251 mov dx, bx ; 89 da … … 8262 8257 mov byte [bp+015h], al ; 88 46 15 8263 8258 test cl, cl ; 84 c9 8264 jne short 05d6 ch ; 75 438259 jne short 05d66h ; 75 43 8265 8260 or AL, strict byte 080h ; 0c 80 8266 8261 mov byte [bp+015h], al ; 88 46 15 8267 jmp short 05d6 ch ; eb 3c8262 jmp short 05d66h ; eb 3c 8268 8263 mov dx, strict word 0006ch ; ba 6c 00 8269 8264 mov ax, strict word 00040h ; b8 40 00 8270 call 0161ch ; e8 e 3b88265 call 0161ch ; e8 e9 b8 8271 8266 mov si, ax ; 89 c6 8272 8267 lea dx, [bx+005h] ; 8d 57 05 … … 8275 8270 ; sub ah, ah ; 2a e4 8276 8271 test AL, strict byte 001h ; a8 01 8277 jne short 05d5 ch ; 75 178272 jne short 05d56h ; 75 17 8278 8273 test cl, cl ; 84 c9 8279 je short 05d5 ch ; 74 138274 je short 05d56h ; 74 13 8280 8275 mov dx, strict word 0006ch ; ba 6c 00 8281 8276 mov ax, strict word 00040h ; b8 40 00 8282 call 0161ch ; e8 cab88277 call 0161ch ; e8 d0 b8 8283 8278 cmp ax, si ; 39 f0 8284 je short 05d3 bh ; 74 e58279 je short 05d35h ; 74 e5 8285 8280 mov si, ax ; 89 c6 8286 8281 db 0feh, 0c9h 8287 8282 ; dec cl ; fe c9 8288 jmp short 05d3 bh ; eb df8283 jmp short 05d35h ; eb df 8289 8284 test cl, cl ; 84 c9 8290 je short 05d 73h ; 74 138285 je short 05d6dh ; 74 13 8291 8286 mov byte [bp+015h], 000h ; c6 46 15 00 8292 8287 mov dx, bx ; 89 da … … 8303 8298 db 02ah, 0e4h 8304 8299 ; sub ah, ah ; 2a e4 8305 jmp short 05d2 bh ; eb b08300 jmp short 05d25h ; eb b0 8306 8301 lea dx, [si+005h] ; 8d 54 05 8307 8302 in AL, DX ; ec … … 8313 8308 db 02ah, 0e4h 8314 8309 ; sub ah, ah ; 2a e4 8315 jmp short 05d6 9h ; eb dd8310 jmp short 05d63h ; eb dd 8316 8311 or byte [bp+01eh], 001h ; 80 4e 1e 01 8317 8312 pop bp ; 5d … … 8322 8317 pop si ; 5e 8323 8318 retn ; c3 8324 set_enable_a20_: ; 0xf5d9 aLB 0x298319 set_enable_a20_: ; 0xf5d94 LB 0x29 8325 8320 push bx ; 53 8326 8321 push cx ; 51 … … 8335 8330 mov cl, al ; 88 c1 8336 8331 test bx, bx ; 85 db 8337 je short 05d b3h ; 74 058332 je short 05dadh ; 74 05 8338 8333 or AL, strict byte 002h ; 0c 02 8339 8334 out DX, AL ; ee 8340 jmp short 05db 6h ; eb 038335 jmp short 05db0h ; eb 03 8341 8336 and AL, strict byte 0fdh ; 24 fd 8342 8337 out DX, AL ; ee … … 8350 8345 pop bx ; 5b 8351 8346 retn ; c3 8352 set_e820_range_: ; 0xf5d c3LB 0x8c8347 set_e820_range_: ; 0xf5dbd LB 0x8c 8353 8348 push si ; 56 8354 8349 push bp ; 55 … … 8379 8374 retn 0000ah ; c2 0a 00 8380 8375 in AL, DX ; ec 8381 jmp near 01ff 6h ; e9 d8 c18376 jmp near 01ff0h ; e9 d8 c1 8382 8377 sar byte [bx-06f6fh], 089h ; c0 bf 91 90 89 8383 8378 mov byte [bx+05283h], al ; 88 87 83 52 … … 8385 8380 inc cx ; 41 8386 8381 and AL, strict byte 000h ; 24 00 8387 jmp far 0a05eh:08d62h ; ea 62 8d 5e a0 8382 in AL, strict byte 062h ; e4 62 8383 xchg word [bp-066h], bx ; 87 5e 9a 8388 8384 pop si ; 5e 8389 xor bl, byte [bx+038h] ; 32 5f 38 8385 sub AL, strict byte 05fh ; 2c 5f 8386 xor bl, byte [bx+037h] ; 32 5f 37 8390 8387 pop di ; 5f 8391 cmp ax, 0425fh ; 3d 5f 42 8388 cmp AL, strict byte 05fh ; 3c 5f 8389 ficomp word [bx+07bh] ; de 5f 7b 8390 popaw ; 61 8391 mov ax, word [02861h] ; a1 61 28 8392 8392 pop di ; 5f 8393 in AL, strict byte 05fh ; e4 5f 8394 and word [bx+di-059h], 02e61h ; 81 61 a7 61 2e 8393 sub byte [bx+06eh], bl ; 28 5f 6e 8394 bound dx, [bp-0569eh] ; 62 96 62 a9 8395 bound di, [bx+si+02c62h] ; 62 b8 62 2c 8395 8396 pop di ; 5f 8396 db 02eh, 05fh 8397 ; cs pop di ; 2e 5f 8398 je short 05ea7h ; 74 62 8399 pushfw ; 9c 8400 bound bp, [bx-0419eh] ; 62 af 62 be 8401 bound si, [bp+si] ; 62 32 8402 pop di ; 5f 8403 db 0c5h 8397 db 0bfh 8404 8398 db 062h 8405 _int15_function: ; 0xf5e4 fLB 0x4c98399 _int15_function: ; 0xf5e49 LB 0x4c9 8406 8400 push si ; 56 8407 8401 push di ; 57 … … 8410 8404 shr ax, 008h ; c1 e8 08 8411 8405 cmp ax, 000ech ; 3d ec 00 8412 jnbe near 062e ah ; 0f 87 88 048406 jnbe near 062e4h ; 0f 87 88 04 8413 8407 push CS ; 0e 8414 8408 pop ES ; 07 8415 8409 mov cx, strict word 00012h ; b9 12 00 8416 mov di, 05e1 ah ; bf 1a5e8410 mov di, 05e14h ; bf 14 5e 8417 8411 repne scasb ; f2 ae 8418 8412 sal cx, 1 ; d1 e1 8419 8413 mov di, cx ; 89 cf 8420 mov si, word [cs:di+05e2 bh] ; 2e 8b b5 2b5e8414 mov si, word [cs:di+05e25h] ; 2e 8b b5 25 5e 8421 8415 mov ax, word [bp+016h] ; 8b 46 16 8422 8416 xor ah, ah ; 30 e4 … … 8431 8425 xor ah, ah ; 30 e4 8432 8426 cmp ax, 000c0h ; 3d c0 00 8433 jne near 062e ah ; 0f 85 51 048427 jne near 062e4h ; 0f 85 51 04 8434 8428 or byte [bp+01ch], 001h ; 80 4e 1c 01 8435 jmp near 062 93h ; e9 f3 038429 jmp near 0628dh ; e9 f3 03 8436 8430 mov dx, ax ; 89 c2 8437 8431 cmp ax, strict word 00001h ; 3d 01 00 8438 jc short 05e b5h ; 72 0e8439 jbe short 05ec 9h ; 76 208432 jc short 05eafh ; 72 0e 8433 jbe short 05ec3h ; 76 20 8440 8434 cmp ax, strict word 00003h ; 3d 03 00 8441 je short 05ef 6h ; 74 488435 je short 05ef0h ; 74 48 8442 8436 cmp ax, strict word 00002h ; 3d 02 00 8443 je short 05ed 9h ; 74 268444 jmp short 05 f03h ; eb 4e8437 je short 05ed3h ; 74 26 8438 jmp short 05efdh ; eb 4e 8445 8439 test ax, ax ; 85 c0 8446 jne short 05 f03h ; 75 4a8440 jne short 05efdh ; 75 4a 8447 8441 xor ax, ax ; 31 c0 8448 call 05d9 ah ; e8 dc fe8442 call 05d94h ; e8 dc fe 8449 8443 and byte [bp+01ch], 0feh ; 80 66 1c fe 8450 8444 mov byte [bp+017h], 000h ; c6 46 17 00 8451 jmp near 05f2 eh ; e9 65 008445 jmp near 05f28h ; e9 65 00 8452 8446 mov ax, strict word 00001h ; b8 01 00 8453 call 05d9 ah ; e8 cb fe8447 call 05d94h ; e8 cb fe 8454 8448 and byte [bp+01ch], 0feh ; 80 66 1c fe 8455 8449 mov byte [bp+017h], dh ; 88 76 17 8456 jmp near 05f2 eh ; e9 55 008450 jmp near 05f28h ; e9 55 00 8457 8451 mov dx, 00092h ; ba 92 00 8458 8452 in AL, DX ; ec … … 8466 8460 and byte [bp+01ch], 0feh ; 80 66 1c fe 8467 8461 mov byte [bp+017h], ah ; 88 66 17 8468 jmp near 05f2 eh ; e9 38 008462 jmp near 05f28h ; e9 38 00 8469 8463 and byte [bp+01ch], 0feh ; 80 66 1c fe 8470 8464 mov byte [bp+017h], ah ; 88 66 17 8471 8465 mov word [bp+010h], ax ; 89 46 10 8472 jmp near 05f2 eh ; e9 2b 008466 jmp near 05f28h ; e9 2b 00 8473 8467 mov bx, 00d32h ; bb 32 0d 8474 8468 mov cx, ds ; 8c d9 8475 8469 mov ax, strict word 00004h ; b8 04 00 8476 call 018aeh ; e8 a 0b98470 call 018aeh ; e8 a6 b9 8477 8471 mov ax, word [bp+016h] ; 8b 46 16 8478 8472 xor ah, ah ; 30 e4 … … 8480 8474 push 007c6h ; 68 c6 07 8481 8475 push strict byte 00004h ; 6a 04 8482 call 018e9h ; e8 cdb98476 call 018e9h ; e8 d3 b9 8483 8477 add sp, strict byte 00006h ; 83 c4 06 8484 8478 or byte [bp+01ch], 001h ; 80 4e 1c 01 … … 8492 8486 retn ; c3 8493 8487 mov word [bp+01ch], bx ; 89 5e 1c 8494 jmp near 05fd eh ; e9 a6 008488 jmp near 05fd8h ; e9 a6 00 8495 8489 mov word [bp+01ch], bx ; 89 5e 1c 8496 jmp short 05f2 eh ; eb f18490 jmp short 05f28h ; eb f1 8497 8491 mov word [bp+01ch], cx ; 89 4e 1c 8498 jmp short 05f2 bh ; eb e98492 jmp short 05f25h ; eb e9 8499 8493 test byte [bp+016h], 0ffh ; f6 46 16 ff 8500 je short 05f b4h ; 74 6c8494 je short 05faeh ; 74 6c 8501 8495 mov dx, 000a0h ; ba a0 00 8502 8496 mov ax, strict word 00040h ; b8 40 00 8503 call 01600h ; e8 afb68497 call 01600h ; e8 b5 b6 8504 8498 test AL, strict byte 001h ; a8 01 8505 jne near 0628 ah ; 0f 85 33 038499 jne near 06284h ; 0f 85 33 03 8506 8500 mov bx, strict word 00001h ; bb 01 00 8507 8501 mov dx, 000a0h ; ba a0 00 8508 8502 mov ax, strict word 00040h ; b8 40 00 8509 call 0160eh ; e8 abb68503 call 0160eh ; e8 b1 b6 8510 8504 mov bx, word [bp+018h] ; 8b 5e 18 8511 8505 mov dx, 00098h ; ba 98 00 8512 8506 mov ax, strict word 00040h ; b8 40 00 8513 call 0162ah ; e8 bbb68507 call 0162ah ; e8 c1 b6 8514 8508 mov bx, word [bp+010h] ; 8b 5e 10 8515 8509 mov dx, 0009ah ; ba 9a 00 8516 8510 mov ax, strict word 00040h ; b8 40 00 8517 call 0162ah ; e8 afb68511 call 0162ah ; e8 b5 b6 8518 8512 mov bx, word [bp+012h] ; 8b 5e 12 8519 8513 mov dx, 0009ch ; ba 9c 00 8520 8514 mov ax, strict word 00040h ; b8 40 00 8521 call 0162ah ; e8 a 3b68515 call 0162ah ; e8 a9 b6 8522 8516 mov bx, word [bp+014h] ; 8b 5e 14 8523 8517 mov dx, 0009eh ; ba 9e 00 8524 8518 mov ax, strict word 00040h ; b8 40 00 8525 call 0162ah ; e8 9 7b68519 call 0162ah ; e8 9d b6 8526 8520 and byte [bp+01ch], 0feh ; 80 66 1c fe 8527 8521 mov dx, 000a1h ; ba a1 00 … … 8532 8526 out DX, AL ; ee 8533 8527 mov ax, strict word 0000bh ; b8 0b 00 8534 call 0165ch ; e8 b 6b68528 call 0165ch ; e8 bc b6 8535 8529 or AL, strict byte 040h ; 0c 40 8536 8530 movzx dx, al ; 0f b6 d0 8537 8531 mov ax, strict word 0000bh ; b8 0b 00 8538 call 0166dh ; e8 bcb68539 jmp near 05f2 eh ; e9 7a ff8532 call 0166dh ; e8 c2 b6 8533 jmp near 05f28h ; e9 7a ff 8540 8534 cmp ax, strict word 00001h ; 3d 01 00 8541 jne short 05f d2h ; 75 198535 jne short 05fcch ; 75 19 8542 8536 xor bx, bx ; 31 db 8543 8537 mov dx, 000a0h ; ba a0 00 8544 8538 mov ax, strict word 00040h ; b8 40 00 8545 call 0160eh ; e8 4ab68539 call 0160eh ; e8 50 b6 8546 8540 and byte [bp+01ch], 0feh ; 80 66 1c fe 8547 8541 mov ax, strict word 0000bh ; b8 0b 00 8548 call 0165ch ; e8 8eb68542 call 0165ch ; e8 94 b6 8549 8543 and AL, strict byte 0bfh ; 24 bf 8550 jmp short 05fa 8h ; eb d68544 jmp short 05fa2h ; eb d6 8551 8545 mov word [bp+01ch], bx ; 89 5e 1c 8552 8546 mov ax, dx ; 89 d0 … … 8556 8550 or dx, ax ; 09 c2 8557 8551 mov word [bp+016h], dx ; 89 56 16 8558 jmp near 05f2 eh ; e9 4a ff8552 jmp near 05f28h ; e9 4a ff 8559 8553 cli ; fa 8560 8554 mov ax, strict word 00001h ; b8 01 00 8561 call 05d9 ah ; e8 af fd8555 call 05d94h ; e8 af fd 8562 8556 mov di, ax ; 89 c7 8563 8557 mov ax, word [bp+018h] ; 8b 46 18 … … 8569 8563 mov byte [bp-002h], dl ; 88 56 fe 8570 8564 cmp cx, ax ; 39 c1 8571 jnc short 0600 ah ; 73 058565 jnc short 06004h ; 73 05 8572 8566 db 0feh, 0c2h 8573 8567 ; inc dl ; fe c2 … … 8577 8571 mov ax, word [bp+018h] ; 8b 46 18 8578 8572 mov bx, strict word 0002fh ; bb 2f 00 8579 call 0162ah ; e8 1 1b68573 call 0162ah ; e8 17 b6 8580 8574 mov dx, word [bp+00ah] ; 8b 56 0a 8581 8575 add dx, strict byte 0000ah ; 83 c2 0a 8582 8576 mov ax, word [bp+018h] ; 8b 46 18 8583 8577 mov bx, cx ; 89 cb 8584 call 0162ah ; e8 0 3b68578 call 0162ah ; e8 09 b6 8585 8579 movzx bx, byte [bp-002h] ; 0f b6 5e fe 8586 8580 mov dx, word [bp+00ah] ; 8b 56 0a 8587 8581 add dx, strict byte 0000ch ; 83 c2 0c 8588 8582 mov ax, word [bp+018h] ; 8b 46 18 8589 call 0160eh ; e8 d 7b58583 call 0160eh ; e8 dd b5 8590 8584 mov dx, word [bp+00ah] ; 8b 56 0a 8591 8585 add dx, strict byte 0000dh ; 83 c2 0d 8592 8586 mov ax, word [bp+018h] ; 8b 46 18 8593 8587 mov bx, 00093h ; bb 93 00 8594 call 0160eh ; e8 c 8b58588 call 0160eh ; e8 ce b5 8595 8589 mov dx, word [bp+00ah] ; 8b 56 0a 8596 8590 add dx, strict byte 0000eh ; 83 c2 0e 8597 8591 mov ax, word [bp+018h] ; 8b 46 18 8598 8592 xor bx, bx ; 31 db 8599 call 0162ah ; e8 d 6b58593 call 0162ah ; e8 dc b5 8600 8594 mov dx, word [bp+00ah] ; 8b 56 0a 8601 8595 add dx, strict byte 00020h ; 83 c2 20 8602 8596 mov ax, word [bp+018h] ; 8b 46 18 8603 8597 mov bx, strict word 0ffffh ; bb ff ff 8604 call 0162ah ; e8 c 7b58598 call 0162ah ; e8 cd b5 8605 8599 mov dx, word [bp+00ah] ; 8b 56 0a 8606 8600 add dx, strict byte 00022h ; 83 c2 22 8607 8601 mov ax, word [bp+018h] ; 8b 46 18 8608 8602 xor bx, bx ; 31 db 8609 call 0162ah ; e8 b 9b58603 call 0162ah ; e8 bf b5 8610 8604 mov dx, word [bp+00ah] ; 8b 56 0a 8611 8605 add dx, strict byte 00024h ; 83 c2 24 8612 8606 mov ax, word [bp+018h] ; 8b 46 18 8613 8607 mov bx, strict word 0000fh ; bb 0f 00 8614 call 0160eh ; e8 8eb58608 call 0160eh ; e8 94 b5 8615 8609 mov dx, word [bp+00ah] ; 8b 56 0a 8616 8610 add dx, strict byte 00025h ; 83 c2 25 8617 8611 mov ax, word [bp+018h] ; 8b 46 18 8618 8612 mov bx, 0009bh ; bb 9b 00 8619 call 0160eh ; e8 7fb58613 call 0160eh ; e8 85 b5 8620 8614 mov dx, word [bp+00ah] ; 8b 56 0a 8621 8615 add dx, strict byte 00026h ; 83 c2 26 8622 8616 mov ax, word [bp+018h] ; 8b 46 18 8623 8617 xor bx, bx ; 31 db 8624 call 0162ah ; e8 8db58618 call 0162ah ; e8 93 b5 8625 8619 mov ax, ss ; 8c d0 8626 8620 mov cx, ax ; 89 c1 … … 8632 8626 mov ax, word [bp+018h] ; 8b 46 18 8633 8627 mov bx, strict word 0ffffh ; bb ff ff 8634 call 0162ah ; e8 7 1b58628 call 0162ah ; e8 77 b5 8635 8629 mov dx, word [bp+00ah] ; 8b 56 0a 8636 8630 add dx, strict byte 0002ah ; 83 c2 2a 8637 8631 mov ax, word [bp+018h] ; 8b 46 18 8638 8632 mov bx, cx ; 89 cb 8639 call 0162ah ; e8 6 3b58633 call 0162ah ; e8 69 b5 8640 8634 movzx bx, byte [bp-004h] ; 0f b6 5e fc 8641 8635 mov dx, word [bp+00ah] ; 8b 56 0a 8642 8636 add dx, strict byte 0002ch ; 83 c2 2c 8643 8637 mov ax, word [bp+018h] ; 8b 46 18 8644 call 0160eh ; e8 3 7b58638 call 0160eh ; e8 3d b5 8645 8639 mov dx, word [bp+00ah] ; 8b 56 0a 8646 8640 add dx, strict byte 0002dh ; 83 c2 2d 8647 8641 mov ax, word [bp+018h] ; 8b 46 18 8648 8642 mov bx, 00093h ; bb 93 00 8649 call 0160eh ; e8 2 8b58643 call 0160eh ; e8 2e b5 8650 8644 mov dx, word [bp+00ah] ; 8b 56 0a 8651 8645 add dx, strict byte 0002eh ; 83 c2 2e 8652 8646 mov ax, word [bp+018h] ; 8b 46 18 8653 8647 xor bx, bx ; 31 db 8654 call 0162ah ; e8 3 6b58648 call 0162ah ; e8 3c b5 8655 8649 mov si, word [bp+00ah] ; 8b 76 0a 8656 8650 mov es, [bp+018h] ; 8e 46 18 … … 8663 8657 mov word [00467h], sp ; 89 26 67 04 8664 8658 mov [00469h], ss ; 8c 16 69 04 8665 call 061 10h ; e8 00 008659 call 0610ah ; e8 00 00 8666 8660 pop di ; 5f 8667 8661 add di, strict byte 0001bh ; 83 c7 1b … … 8686 8680 cld ; fc 8687 8681 rep movsw ; f3 a5 8688 call 061 44h ; e8 00 008682 call 0613eh ; e8 00 00 8689 8683 pop ax ; 58 8690 8684 push 0f000h ; 68 00 f0 … … 8707 8701 pop DS ; 1f 8708 8702 mov ax, di ; 89 f8 8709 call 05d9 ah ; e8 25 fc8703 call 05d94h ; e8 25 fc 8710 8704 sti ; fb 8711 8705 mov byte [bp+017h], 000h ; c6 46 17 00 8712 8706 and byte [bp+01ch], 0feh ; 80 66 1c fe 8713 jmp near 05f2 eh ; e9 ad fd8707 jmp near 05f28h ; e9 ad fd 8714 8708 mov ax, strict word 00031h ; b8 31 00 8715 call 0165ch ; e8 d 5b48709 call 0165ch ; e8 db b4 8716 8710 xor ah, ah ; 30 e4 8717 8711 mov dx, ax ; 89 c2 8718 8712 sal dx, 008h ; c1 e2 08 8719 8713 mov ax, strict word 00030h ; b8 30 00 8720 call 0165ch ; e8 c 8b48714 call 0165ch ; e8 ce b4 8721 8715 xor ah, ah ; 30 e4 8722 8716 or dx, ax ; 09 c2 8723 8717 mov word [bp+016h], dx ; 89 56 16 8724 8718 cmp dx, strict byte 0ffc0h ; 83 fa c0 8725 jbe short 0617 ah ; 76 da8719 jbe short 06174h ; 76 da 8726 8720 mov word [bp+016h], strict word 0ffc0h ; c7 46 16 c0 ff 8727 jmp short 0617 ah ; eb d38721 jmp short 06174h ; eb d3 8728 8722 cli ; fa 8729 8723 mov ax, strict word 00001h ; b8 01 00 8730 call 05d9 ah ; e8 ec fb8724 call 05d94h ; e8 ec fb 8731 8725 mov dx, word [bp+00ah] ; 8b 56 0a 8732 8726 add dx, strict byte 00038h ; 83 c2 38 8733 8727 mov ax, word [bp+018h] ; 8b 46 18 8734 8728 mov bx, strict word 0ffffh ; bb ff ff 8735 call 0162ah ; e8 6db48729 call 0162ah ; e8 73 b4 8736 8730 mov dx, word [bp+00ah] ; 8b 56 0a 8737 8731 add dx, strict byte 0003ah ; 83 c2 3a 8738 8732 mov ax, word [bp+018h] ; 8b 46 18 8739 8733 xor bx, bx ; 31 db 8740 call 0162ah ; e8 5fb48734 call 0162ah ; e8 65 b4 8741 8735 mov dx, word [bp+00ah] ; 8b 56 0a 8742 8736 add dx, strict byte 0003ch ; 83 c2 3c 8743 8737 mov ax, word [bp+018h] ; 8b 46 18 8744 8738 mov bx, strict word 0000fh ; bb 0f 00 8745 call 0160eh ; e8 3 4b48739 call 0160eh ; e8 3a b4 8746 8740 mov dx, word [bp+00ah] ; 8b 56 0a 8747 8741 add dx, strict byte 0003dh ; 83 c2 3d 8748 8742 mov ax, word [bp+018h] ; 8b 46 18 8749 8743 mov bx, 0009bh ; bb 9b 00 8750 call 0160eh ; e8 2 5b48744 call 0160eh ; e8 2b b4 8751 8745 mov dx, word [bp+00ah] ; 8b 56 0a 8752 8746 add dx, strict byte 0003eh ; 83 c2 3e 8753 8747 mov ax, word [bp+018h] ; 8b 46 18 8754 8748 xor bx, bx ; 31 db 8755 call 0162ah ; e8 3 3b48749 call 0162ah ; e8 39 b4 8756 8750 mov AL, strict byte 011h ; b0 11 8757 8751 mov dx, strict word 00020h ; ba 20 00 … … 8783 8777 out DX, AL ; ee 8784 8778 mov si, word [bp+00ah] ; 8b 76 0a 8785 call 0623 8h ; e8 00 008779 call 06232h ; e8 00 00 8786 8780 pop di ; 5f 8787 8781 add di, strict byte 00018h ; 83 c7 18 … … 8811 8805 push cx ; 51 8812 8806 retf ; cb 8813 jmp near 05f2 eh ; e9 ba fc8807 jmp near 05f28h ; e9 ba fc 8814 8808 mov bx, 00d32h ; bb 32 0d 8815 8809 mov cx, ds ; 8c d9 8816 8810 mov ax, strict word 00004h ; b8 04 00 8817 call 018aeh ; e8 2fb68811 call 018aeh ; e8 35 b6 8818 8812 push 00806h ; 68 06 08 8819 8813 push strict byte 00004h ; 6a 04 8820 call 018e9h ; e8 6 2b68814 call 018e9h ; e8 68 b6 8821 8815 add sp, strict byte 00004h ; 83 c4 04 8822 8816 or byte [bp+01ch], 001h ; 80 4e 1c 01 … … 8825 8819 or ah, 086h ; 80 cc 86 8826 8820 mov word [bp+016h], ax ; 89 46 16 8827 jmp near 05f2 eh ; e9 92 fc8821 jmp near 05f28h ; e9 92 fc 8828 8822 mov word [bp+01ch], cx ; 89 4e 1c 8829 8823 mov word [bp+016h], ax ; 89 46 16 8830 8824 mov word [bp+010h], 0e6f5h ; c7 46 10 f5 e6 8831 8825 mov word [bp+018h], 0f000h ; c7 46 18 00 f0 8832 jmp near 05f2 eh ; e9 7f fc8826 jmp near 05f28h ; e9 7f fc 8833 8827 mov dx, strict word 0000eh ; ba 0e 00 8834 8828 mov ax, strict word 00040h ; b8 40 00 8835 call 0161ch ; e8 6 4b38829 call 0161ch ; e8 6a b3 8836 8830 mov word [bp+018h], ax ; 89 46 18 8837 jmp near 0617 ah ; e9 bc fe8831 jmp near 06174h ; e9 bc fe 8838 8832 push 00835h ; 68 35 08 8839 8833 push strict byte 00008h ; 6a 08 8840 jmp short 062 84h ; eb bf8834 jmp short 0627eh ; eb bf 8841 8835 test byte [bp+016h], 0ffh ; f6 46 16 ff 8842 jne short 062e ah ; 75 1f8836 jne short 062e4h ; 75 1f 8843 8837 mov word [bp+016h], ax ; 89 46 16 8844 8838 mov ax, word [bp+010h] ; 8b 46 10 8845 8839 xor ah, ah ; 30 e4 8846 8840 cmp ax, strict word 00001h ; 3d 01 00 8847 jc short 062 e3h ; 72 0b8841 jc short 062ddh ; 72 0b 8848 8842 cmp ax, strict word 00003h ; 3d 03 00 8849 jnbe short 062 e3h ; 77 068843 jnbe short 062ddh ; 77 06 8850 8844 mov word [bp+01ch], cx ; 89 4e 1c 8851 jmp near 05f2 eh ; e9 4b fc8845 jmp near 05f28h ; e9 4b fc 8852 8846 or byte [bp+01ch], 001h ; 80 4e 1c 01 8853 jmp near 05f2 eh ; e9 44 fc8847 jmp near 05f28h ; e9 44 fc 8854 8848 mov bx, 00d32h ; bb 32 0d 8855 8849 mov cx, ds ; 8c d9 8856 8850 mov ax, strict word 00004h ; b8 04 00 8857 call 018aeh ; e8 b 9b58851 call 018aeh ; e8 bf b5 8858 8852 push word [bp+010h] ; ff 76 10 8859 8853 push word [bp+016h] ; ff 76 16 8860 8854 push 0084ch ; 68 4c 08 8861 8855 push strict byte 00004h ; 6a 04 8862 call 018e9h ; e8 e 6b58856 call 018e9h ; e8 ec b5 8863 8857 add sp, strict byte 00008h ; 83 c4 08 8864 jmp short 0628 ah ; eb 828865 dec dx ; 4a8866 and byte [fs:si-05eh], 064h ; 64 80 64 a2 648867 retn ; c38868 db 064h, 0e2h, 064h8869 ; fs loop 06376h ; 64 e2 648870 add word [di+043h], sp ; 01 65 438871 db 065h, 070h, 065h8872 ; gs jo short 0637dh ; 65 70 658873 _int15_function32: ; 0xf631 8 LB 0x3098858 jmp short 06284h ; eb 82 8859 mov cx, 0db64h ; b9 64 db 8860 db 064h 8861 db 0feh 8862 and byte [fs:di+040h], ah ; 64 20 65 40 8863 db 065h, 061h 8864 ; gs popaw ; 65 61 8865 mov AL, byte [gs:0cc65h] ; 65 a0 65 cc 8866 db 065h 8867 _int15_function32: ; 0xf6312 LB 0x37b 8874 8868 push si ; 56 8875 8869 enter 00008h, 000h ; c8 08 00 00 8870 mov dx, word [bp+022h] ; 8b 56 22 8871 shr dx, 008h ; c1 ea 08 8872 mov bx, word [bp+02ah] ; 8b 5e 2a 8873 and bl, 0feh ; 80 e3 fe 8876 8874 mov ax, word [bp+022h] ; 8b 46 22 8877 shr ax, 008h ; c1 e8 08 8878 cmp ax, 000e8h ; 3d e8 00 8879 je short 06369h ; 74 41 8880 cmp ax, 00086h ; 3d 86 00 8881 jne near 065f4h ; 0f 85 c5 02 8875 xor ah, ah ; 30 e4 8876 cmp dx, 000e8h ; 81 fa e8 00 8877 je near 063ddh ; 0f 84 ad 00 8878 cmp dx, 000d0h ; 81 fa d0 00 8879 je short 06378h ; 74 42 8880 cmp dx, 00086h ; 81 fa 86 00 8881 jne near 06660h ; 0f 85 22 03 8882 8882 sti ; fb 8883 8883 mov ax, word [bp+01eh] ; 8b 46 1e … … 8898 8898 db 066h, 00bh, 0c9h 8899 8899 ; or ecx, ecx ; 66 0b c9 8900 je near 063 66h ; 0f 84 0e 008900 je near 06375h ; 0f 84 0e 00 8901 8901 in AL, strict byte 061h ; e4 61 8902 8902 and AL, strict byte 010h ; 24 10 8903 8903 db 03ah, 0c4h 8904 8904 ; cmp al, ah ; 3a c4 8905 je short 063 58h ; 74 f88905 je short 06367h ; 74 f8 8906 8906 db 08ah, 0e0h 8907 8907 ; mov ah, al ; 8a e0 8908 8908 dec ecx ; 66 49 8909 jne short 063 58h ; 75 f28909 jne short 06367h ; 75 f2 8910 8910 leave ; c9 8911 8911 pop si ; 5e 8912 8912 retn ; c3 8913 mov ax, word [bp+022h] ; 8b 46 22 8914 xor ah, ah ; 30 e4 8913 cmp ax, strict word 0004fh ; 3d 4f 00 8914 jne near 06660h ; 0f 85 e1 02 8915 cmp word [bp+018h], 05052h ; 81 7e 18 52 50 8916 jne near 06660h ; 0f 85 d8 02 8917 cmp word [bp+016h], 04f43h ; 81 7e 16 43 4f 8918 jne near 06660h ; 0f 85 cf 02 8919 cmp word [bp+020h], 04d4fh ; 81 7e 20 4f 4d 8920 jne near 06660h ; 0f 85 c6 02 8921 cmp word [bp+01eh], 04445h ; 81 7e 1e 45 44 8922 jne near 06660h ; 0f 85 bd 02 8923 mov ax, word [bp+00ch] ; 8b 46 0c 8924 or ax, word [bp+00ah] ; 0b 46 0a 8925 jne near 06660h ; 0f 85 b3 02 8926 mov ax, word [bp+008h] ; 8b 46 08 8927 or ax, word [bp+006h] ; 0b 46 06 8928 jne near 06660h ; 0f 85 a9 02 8929 mov word [bp+02ah], bx ; 89 5e 2a 8930 mov ax, word [bp+016h] ; 8b 46 16 8931 mov word [bp+00ah], ax ; 89 46 0a 8932 mov ax, word [bp+018h] ; 8b 46 18 8933 mov word [bp+00ch], ax ; 89 46 0c 8934 mov ax, word [bp+01eh] ; 8b 46 1e 8935 mov word [bp+006h], ax ; 89 46 06 8936 mov ax, word [bp+020h] ; 8b 46 20 8937 mov word [bp+008h], ax ; 89 46 08 8938 mov dword [bp+022h], strict dword 049413332h ; 66 c7 46 22 32 33 41 49 8939 leave ; c9 8940 pop si ; 5e 8941 retn ; c3 8915 8942 cmp ax, strict word 00020h ; 3d 20 00 8916 je short 063 7dh ; 74 0a8943 je short 063ech ; 74 0a 8917 8944 cmp ax, strict word 00001h ; 3d 01 00 8918 je near 06 5a6h ; 0f 84 2c028919 jmp near 06 5f4h ; e9 77028945 je near 06614h ; 0f 84 2b 02 8946 jmp near 06660h ; e9 74 02 8920 8947 cmp word [bp+01ch], 0534dh ; 81 7e 1c 4d 53 8921 jne near 06 5f4h ; 0f 85 6e028948 jne near 06660h ; 0f 85 6b 02 8922 8949 cmp word [bp+01ah], 04150h ; 81 7e 1a 50 41 8923 jne near 06 5f4h ; 0f 85 65028950 jne near 06660h ; 0f 85 62 02 8924 8951 mov ax, strict word 00035h ; b8 35 00 8925 call 0165ch ; e8 c7b28952 call 0165ch ; e8 58 b2 8926 8953 movzx bx, al ; 0f b6 d8 8927 8954 xor dx, dx ; 31 d2 … … 8929 8956 sal bx, 1 ; d1 e3 8930 8957 rcl dx, 1 ; d1 d2 8931 loop 06 39dh ; e2 fa8958 loop 0640ch ; e2 fa 8932 8959 mov ax, strict word 00034h ; b8 34 00 8933 call 0165ch ; e8 b3b28960 call 0165ch ; e8 44 b2 8934 8961 xor ah, ah ; 30 e4 8935 8962 mov dx, bx ; 89 da … … 8939 8966 adc dx, 00100h ; 81 d2 00 01 8940 8967 cmp dx, 00100h ; 81 fa 00 01 8941 jc short 06 3c3h ; 72 068942 jne short 06 3f0h ; 75 318968 jc short 06432h ; 72 06 8969 jne short 0645fh ; 75 31 8943 8970 test bx, bx ; 85 db 8944 jnbe short 06 3f0h ; 77 2d8971 jnbe short 0645fh ; 77 2d 8945 8972 mov ax, strict word 00031h ; b8 31 00 8946 call 0165ch ; e8 93b28973 call 0165ch ; e8 24 b2 8947 8974 movzx bx, al ; 0f b6 d8 8948 8975 xor dx, dx ; 31 d2 … … 8950 8977 sal bx, 1 ; d1 e3 8951 8978 rcl dx, 1 ; d1 d2 8952 loop 06 3d1h ; e2 fa8979 loop 06440h ; e2 fa 8953 8980 mov ax, strict word 00030h ; b8 30 00 8954 call 0165ch ; e8 7fb28981 call 0165ch ; e8 10 b2 8955 8982 xor ah, ah ; 30 e4 8956 8983 or bx, ax ; 09 c3 … … 8958 8985 sal bx, 1 ; d1 e3 8959 8986 rcl dx, 1 ; d1 d2 8960 loop 06 3e4h ; e2 fa8987 loop 06453h ; e2 fa 8961 8988 add bx, strict byte 00000h ; 83 c3 00 8962 8989 adc dx, strict byte 00010h ; 83 d2 10 8963 8990 mov ax, strict word 00062h ; b8 62 00 8964 call 0165ch ; e8 66 b28991 call 0165ch ; e8 f7 b1 8965 8992 xor ah, ah ; 30 e4 8966 8993 mov word [bp-008h], ax ; 89 46 f8 … … 8970 8997 sal word [bp-008h], 1 ; d1 66 f8 8971 8998 rcl word [bp-006h], 1 ; d1 56 fa 8972 loop 064 03h ; e2 f88999 loop 06472h ; e2 f8 8973 9000 mov ax, strict word 00061h ; b8 61 00 8974 call 0165ch ; e8 4b b29001 call 0165ch ; e8 dc b1 8975 9002 xor ah, ah ; 30 e4 8976 9003 or word [bp-008h], ax ; 09 46 f8 … … 8979 9006 mov word [bp-008h], strict word 00000h ; c7 46 f8 00 00 8980 9007 mov ax, strict word 00063h ; b8 63 00 8981 call 0165ch ; e8 35 b2 9008 call 0165ch ; e8 c6 b1 9009 mov byte [bp-002h], al ; 88 46 fe 8982 9010 mov byte [bp-004h], al ; 88 46 fc 8983 mov byte [bp-002h], al ; 88 46 fe8984 9011 mov ax, word [bp+016h] ; 8b 46 16 8985 9012 cmp ax, strict word 00007h ; 3d 07 00 8986 jnbe near 06 5f4h ; 0f 87 bd019013 jnbe near 06660h ; 0f 87 ba 01 8987 9014 mov si, ax ; 89 c6 8988 9015 add si, ax ; 01 c6 8989 mov ax, bx ; 89 d88990 add ax, strict word 00000h ; 05 00008991 mov cx, dx ; 89 d18992 adc cx, strict byte 0ffffh ; 83 d1ff8993 jmp word [cs:si+0630 8h] ; 2e ff a4 08639016 mov cx, bx ; 89 d9 9017 add cx, strict byte 00000h ; 83 c1 00 9018 mov ax, dx ; 89 d0 9019 adc ax, strict word 0ffffh ; 15 ff ff 9020 jmp word [cs:si+06302h] ; 2e ff a4 02 63 8994 9021 push strict byte 00001h ; 6a 01 8995 9022 push dword 000000000h ; 66 6a 00 … … 9000 9027 xor bx, bx ; 31 db 9001 9028 xor cx, cx ; 31 c9 9002 call 05d c3h ; e8 62 f99029 call 05dbdh ; e8 ed f8 9003 9030 mov dword [bp+016h], strict dword 000000001h ; 66 c7 46 16 01 00 00 00 9004 mov dword [bp+022h], strict dword 0534d4150h ; 66 c7 46 22 50 41 4d 53 9005 mov dword [bp+01eh], strict dword 000000014h ; 66 c7 46 1e 14 00 00 00 9006 and byte [bp+02ah], 0feh ; 80 66 2a fe 9007 leave ; c9 9008 pop si ; 5e 9009 retn ; c3 9031 jmp near 065fdh ; e9 22 01 9010 9032 push strict byte 00002h ; 6a 02 9011 9033 push dword 000000000h ; 66 6a 00 … … 9016 9038 mov bx, 0fc00h ; bb 00 fc 9017 9039 mov cx, strict word 00009h ; b9 09 00 9018 call 05d c3h ; e8 2b f99040 call 05dbdh ; e8 ca f8 9019 9041 mov dword [bp+016h], strict dword 000000002h ; 66 c7 46 16 02 00 00 00 9020 jmp short 06469h ; eb c79042 jmp near 065fdh ; e9 ff 00 9021 9043 push strict byte 00002h ; 6a 02 9022 9044 push dword 000000000h ; 66 6a 00 … … 9027 9049 xor bx, bx ; 31 db 9028 9050 mov cx, strict word 0000fh ; b9 0f 00 9029 call 05d c3h ; e8 0a f99051 call 05dbdh ; e8 a8 f8 9030 9052 mov dword [bp+016h], strict dword 000000003h ; 66 c7 46 16 03 00 00 00 9031 jmp short 06469h ; eb a69053 jmp near 065fdh ; e9 dd 00 9032 9054 push strict byte 00001h ; 6a 01 9033 9055 push dword 000000000h ; 66 6a 00 9056 push ax ; 50 9034 9057 push cx ; 51 9035 push ax ; 509036 9058 mov dx, word [bp+006h] ; 8b 56 06 9037 9059 mov ax, word [bp+026h] ; 8b 46 26 9038 9060 xor bx, bx ; 31 db 9039 9061 mov cx, strict word 00010h ; b9 10 00 9040 call 05d c3h ; e8 ebf89062 call 05dbdh ; e8 88 f8 9041 9063 mov dword [bp+016h], strict dword 000000004h ; 66 c7 46 16 04 00 00 00 9042 jmp short 06469h ; eb 879064 jmp near 065fdh ; e9 bd 00 9043 9065 push strict byte 00003h ; 6a 03 9044 9066 push dword 000000000h ; 66 6a 00 … … 9047 9069 mov dx, word [bp+006h] ; 8b 56 06 9048 9070 mov si, word [bp+026h] ; 8b 76 26 9049 mov bx, ax ; 89 c3 9071 mov bx, cx ; 89 cb 9072 mov cx, ax ; 89 c1 9050 9073 mov ax, si ; 89 f0 9051 call 05d c3h ; e8 cdf89074 call 05dbdh ; e8 67 f8 9052 9075 mov dword [bp+016h], strict dword 000000005h ; 66 c7 46 16 05 00 00 00 9053 jmp near 06 469h ; e9 68 ff9076 jmp near 065fdh ; e9 9c 00 9054 9077 push strict byte 00002h ; 6a 02 9055 9078 push dword 000000000h ; 66 6a 00 … … 9059 9082 xor bx, bx ; 31 db 9060 9083 mov cx, strict word 0fffch ; b9 fc ff 9061 call 05d c3h ; e8 acf89062 cmp byte [bp-00 4h], 000h ; 80 7e fc009063 jne short 065 24h ; 75 079084 call 05dbdh ; e8 46 f8 9085 cmp byte [bp-002h], 000h ; 80 7e fe 00 9086 jne short 06584h ; 75 07 9064 9087 mov ax, word [bp-006h] ; 8b 46 fa 9065 9088 test ax, ax ; 85 c0 9066 je short 065 3ah ; 74 169089 je short 06598h ; 74 14 9067 9090 mov dword [bp+016h], strict dword 000000007h ; 66 c7 46 16 07 00 00 00 9068 jmp near 06469h ; e9 3a ff9091 jmp short 065fdh ; eb 6f 9069 9092 mov dword [bp+016h], strict dword 000000006h ; 66 c7 46 16 06 00 00 00 9070 jmp near 06469h ; e9 2f ff9093 jmp short 065fdh ; eb 65 9071 9094 mov word [bp+016h], ax ; 89 46 16 9072 9095 mov word [bp+018h], ax ; 89 46 18 9073 jmp near 06469h ; e9 26 ff9096 jmp short 065fdh ; eb 5d 9074 9097 push strict byte 00002h ; 6a 02 9075 9098 push dword 000000000h ; 66 6a 00 … … 9079 9102 xor bx, bx ; 31 db 9080 9103 xor cx, cx ; 31 c9 9081 call 05d c3h ; e8 6bf89082 cmp byte [bp-00 4h], 000h ; 80 7e fc009083 jne short 065 65h ; 75 079104 call 05dbdh ; e8 08 f8 9105 cmp byte [bp-002h], 000h ; 80 7e fe 00 9106 jne short 065c2h ; 75 07 9084 9107 mov ax, word [bp-006h] ; 8b 46 fa 9085 9108 test ax, ax ; 85 c0 9086 je short 065 67h ; 74 029087 jmp short 065 24h ; eb bd9109 je short 065c4h ; 74 02 9110 jmp short 06584h ; eb c0 9088 9111 mov word [bp+016h], ax ; 89 46 16 9089 9112 mov word [bp+018h], ax ; 89 46 18 9090 jmp near 06469h ; e9 f9 fe9091 cmp byte [bp-00 4h], 000h ; 80 7e fc009092 jne short 065 7eh ; 75 089113 jmp short 065fdh ; eb 31 9114 cmp byte [bp-002h], 000h ; 80 7e fe 00 9115 jne short 065d8h ; 75 06 9093 9116 cmp word [bp-006h], strict byte 00000h ; 83 7e fa 00 9094 je near 06469h ; 0f 84 eb fe9117 je short 065fdh ; 74 25 9095 9118 push strict byte 00001h ; 6a 01 9096 mov al, byte [bp-00 2h] ; 8a 46 fe9119 mov al, byte [bp-004h] ; 8a 46 fc 9097 9120 db 0feh, 0c0h 9098 9121 ; inc al ; fe c0 … … 9105 9128 xor bx, bx ; 31 db 9106 9129 xor cx, cx ; 31 c9 9107 call 05d c3h ; e8 28 f89130 call 05dbdh ; e8 c8 f7 9108 9131 xor ax, ax ; 31 c0 9109 9132 mov word [bp+016h], ax ; 89 46 16 9110 9133 mov word [bp+018h], ax ; 89 46 18 9111 jmp near 06469h ; e9 c3 fe 9134 mov dword [bp+022h], strict dword 0534d4150h ; 66 c7 46 22 50 41 4d 53 9135 mov dword [bp+01eh], strict dword 000000014h ; 66 c7 46 1e 14 00 00 00 9112 9136 and byte [bp+02ah], 0feh ; 80 66 2a fe 9137 leave ; c9 9138 pop si ; 5e 9139 retn ; c3 9140 mov word [bp+02ah], bx ; 89 5e 2a 9113 9141 mov ax, strict word 00031h ; b8 31 00 9114 call 0165ch ; e8 ac b0 9115 xor ah, ah ; 30 e4 9116 mov dx, ax ; 89 c2 9142 call 0165ch ; e8 3f b0 9143 movzx dx, al ; 0f b6 d0 9117 9144 sal dx, 008h ; c1 e2 08 9118 9145 mov ax, strict word 00030h ; b8 30 00 9119 call 0165ch ; e8 9fb09146 call 0165ch ; e8 33 b0 9120 9147 xor ah, ah ; 30 e4 9121 9148 or dx, ax ; 09 c2 9122 9149 mov word [bp+01eh], dx ; 89 56 1e 9123 9150 cmp dx, 03c00h ; 81 fa 00 3c 9124 jbe short 06 5cfh ; 76 059151 jbe short 0663bh ; 76 05 9125 9152 mov word [bp+01eh], 03c00h ; c7 46 1e 00 3c 9126 9153 mov ax, strict word 00035h ; b8 35 00 9127 call 0165ch ; e8 87b09154 call 0165ch ; e8 1b b0 9128 9155 movzx dx, al ; 0f b6 d0 9129 9156 sal dx, 008h ; c1 e2 08 9130 9157 mov ax, strict word 00034h ; b8 34 00 9131 call 0165ch ; e8 7bb09158 call 0165ch ; e8 0f b0 9132 9159 xor ah, ah ; 30 e4 9133 9160 or dx, ax ; 09 c2 … … 9142 9169 mov cx, ds ; 8c d9 9143 9170 mov ax, strict word 00004h ; b8 04 00 9144 call 018aeh ; e8 afb29171 call 018aeh ; e8 43 b2 9145 9172 push word [bp+016h] ; ff 76 16 9146 9173 push word [bp+022h] ; ff 76 22 9147 9174 push 0084ch ; 68 4c 08 9148 9175 push strict byte 00004h ; 6a 04 9149 call 018e9h ; e8 dcb29176 call 018e9h ; e8 70 b2 9150 9177 add sp, strict byte 00008h ; 83 c4 08 9151 9178 or byte [bp+02ah], 001h ; 80 4e 2a 01 … … 9157 9184 pop si ; 5e 9158 9185 retn ; c3 9159 init_rtc_: ; 0xf66 21LB 0x259186 init_rtc_: ; 0xf668d LB 0x25 9160 9187 push dx ; 52 9161 9188 push bp ; 55 … … 9163 9190 mov dx, strict word 00026h ; ba 26 00 9164 9191 mov ax, strict word 0000ah ; b8 0a 00 9165 call 0166dh ; e8 3f b09192 call 0166dh ; e8 d3 af 9166 9193 mov dx, strict word 00002h ; ba 02 00 9167 9194 mov ax, strict word 0000bh ; b8 0b 00 9168 call 0166dh ; e8 36 b09195 call 0166dh ; e8 ca af 9169 9196 mov ax, strict word 0000ch ; b8 0c 00 9170 call 0165ch ; e8 1f b09197 call 0165ch ; e8 b3 af 9171 9198 mov ax, strict word 0000dh ; b8 0d 00 9172 call 0165ch ; e8 19 b09199 call 0165ch ; e8 ad af 9173 9200 pop bp ; 5d 9174 9201 pop dx ; 5a 9175 9202 retn ; c3 9176 rtc_updating_: ; 0xf66 46LB 0x1f9203 rtc_updating_: ; 0xf66b2 LB 0x1f 9177 9204 push dx ; 52 9178 9205 push bp ; 55 … … 9180 9207 mov dx, 061a8h ; ba a8 61 9181 9208 dec dx ; 4a 9182 je short 066 5fh ; 74 0f9209 je short 066cbh ; 74 0f 9183 9210 mov ax, strict word 0000ah ; b8 0a 00 9184 call 0165ch ; e8 06 b09211 call 0165ch ; e8 9a af 9185 9212 test AL, strict byte 080h ; a8 80 9186 jne short 066 4dh ; 75 f39213 jne short 066b9h ; 75 f3 9187 9214 xor ax, ax ; 31 c0 9188 9215 pop bp ; 5d … … 9193 9220 pop dx ; 5a 9194 9221 retn ; c3 9195 _int70_function: ; 0xf66 65LB 0xbb9222 _int70_function: ; 0xf66d1 LB 0xbb 9196 9223 push si ; 56 9197 9224 enter 00002h, 000h ; c8 02 00 00 9198 9225 mov ax, strict word 0000bh ; b8 0b 00 9199 call 0165ch ; e8 ecaf9226 call 0165ch ; e8 80 af 9200 9227 mov dl, al ; 88 c2 9201 9228 mov byte [bp-002h], al ; 88 46 fe 9202 9229 mov ax, strict word 0000ch ; b8 0c 00 9203 call 0165ch ; e8 e1af9230 call 0165ch ; e8 75 af 9204 9231 mov dh, al ; 88 c6 9205 9232 test dl, 060h ; f6 c2 60 9206 je near 067 0ah ; 0f 84 86 009233 je near 06776h ; 0f 84 86 00 9207 9234 test AL, strict byte 020h ; a8 20 9208 je short 066 8ch ; 74 049235 je short 066f8h ; 74 04 9209 9236 sti ; fb 9210 9237 int 04ah ; cd 4a 9211 9238 cli ; fa 9212 9239 test dh, 040h ; f6 c6 40 9213 je near 067 0ah ; 0f 84 77 009240 je near 06776h ; 0f 84 77 00 9214 9241 mov dx, 000a0h ; ba a0 00 9215 9242 mov ax, strict word 00040h ; b8 40 00 9216 call 01600h ; e8 64 af9243 call 01600h ; e8 f8 ae 9217 9244 test al, al ; 84 c0 9218 je short 067 0ah ; 74 6a9245 je short 06776h ; 74 6a 9219 9246 mov dx, 0009ch ; ba 9c 00 9220 9247 mov ax, strict word 00040h ; b8 40 00 9221 call 01638h ; e8 8faf9248 call 01638h ; e8 23 af 9222 9249 test dx, dx ; 85 d2 9223 jne short 06 6f6h ; 75 499250 jne short 06762h ; 75 49 9224 9251 cmp ax, 003d1h ; 3d d1 03 9225 jnc short 06 6f6h ; 73 449252 jnc short 06762h ; 73 44 9226 9253 mov dx, 00098h ; ba 98 00 9227 9254 mov ax, strict word 00040h ; b8 40 00 9228 call 0161ch ; e8 61 af9255 call 0161ch ; e8 f5 ae 9229 9256 mov si, ax ; 89 c6 9230 9257 mov dx, 0009ah ; ba 9a 00 9231 9258 mov ax, strict word 00040h ; b8 40 00 9232 call 0161ch ; e8 56 af9259 call 0161ch ; e8 ea ae 9233 9260 mov cx, ax ; 89 c1 9234 9261 xor bx, bx ; 31 db 9235 9262 mov dx, 000a0h ; ba a0 00 9236 9263 mov ax, strict word 00040h ; b8 40 00 9237 call 0160eh ; e8 3b af9264 call 0160eh ; e8 cf ae 9238 9265 mov al, byte [bp-002h] ; 8a 46 fe 9239 9266 and AL, strict byte 037h ; 24 37 9240 9267 movzx dx, al ; 0f b6 d0 9241 9268 mov ax, strict word 0000bh ; b8 0b 00 9242 call 0166dh ; e8 8caf9269 call 0166dh ; e8 20 af 9243 9270 mov dx, cx ; 89 ca 9244 9271 mov ax, si ; 89 f0 9245 call 01600h ; e8 18 af9272 call 01600h ; e8 ac ae 9246 9273 or AL, strict byte 080h ; 0c 80 9247 9274 movzx bx, al ; 0f b6 d8 9248 9275 mov dx, cx ; 89 ca 9249 9276 mov ax, si ; 89 f0 9250 call 0160eh ; e8 1a af9251 jmp short 067 0ah ; eb 149277 call 0160eh ; e8 ae ae 9278 jmp short 06776h ; eb 14 9252 9279 mov bx, ax ; 89 c3 9253 9280 add bx, 0fc2fh ; 81 c3 2f fc … … 9256 9283 mov dx, 0009ch ; ba 9c 00 9257 9284 mov ax, strict word 00040h ; b8 40 00 9258 call 0164ah ; e8 40 af9259 call 0e03bh ; e8 2e 799285 call 0164ah ; e8 d4 ae 9286 call 0e03bh ; e8 c2 78 9260 9287 leave ; c9 9261 9288 pop si ; 5e 9262 9289 retn ; c3 9263 aaa ; 37 9264 db 067h, 05eh 9265 ; pop si ; 67 5e 9266 and word [edi-04bh], strict byte 00067h ; 67 83 67 b5 67 9267 add bp, word [bx+si+039h] ; 03 68 39 9268 push 0687bh ; 68 7b 68 9269 db 0d0h 9270 db 068h 9271 _int1a_function: ; 0xf6720 LB 0x1c0 9290 db 0a3h, 067h, 0cah, 067h, 0efh, 067h, 021h, 068h, 06fh, 068h, 0a5h, 068h, 0e7h, 068h, 03ch, 069h 9291 _int1a_function: ; 0xf678c LB 0x1c0 9272 9292 push bp ; 55 9273 9293 mov bp, sp ; 89 e5 … … 9275 9295 mov al, byte [bp+013h] ; 8a 46 13 9276 9296 cmp AL, strict byte 007h ; 3c 07 9277 jnbe near 067 5ch ; 0f 87 2f 009297 jnbe near 067c8h ; 0f 87 2f 00 9278 9298 movzx bx, al ; 0f b6 d8 9279 9299 add bx, bx ; 01 db 9280 jmp word [cs:bx+067 10h] ; 2e ff a7 10679300 jmp word [cs:bx+0677ch] ; 2e ff a7 7c 67 9281 9301 cli ; fa 9282 9302 mov bx, 0046eh ; bb 6e 04 … … 9310 9330 pop bp ; 5d 9311 9331 retn ; c3 9312 call 066 46h ; e8 c0 fe9332 call 066b2h ; e8 c0 fe 9313 9333 test ax, ax ; 85 c0 9314 je short 067 8ch ; 74 029334 je short 067f8h ; 74 02 9315 9335 pop bp ; 5d 9316 9336 retn ; c3 9317 9337 xor ax, ax ; 31 c0 9318 call 0165ch ; e8 cbae9338 call 0165ch ; e8 5f ae 9319 9339 mov byte [bp+00fh], al ; 88 46 0f 9320 9340 mov ax, strict word 00002h ; b8 02 00 9321 call 0165ch ; e8 c2ae9341 call 0165ch ; e8 56 ae 9322 9342 mov byte [bp+010h], al ; 88 46 10 9323 9343 mov ax, strict word 00004h ; b8 04 00 9324 call 0165ch ; e8 b9ae9344 call 0165ch ; e8 4d ae 9325 9345 mov bl, al ; 88 c3 9326 9346 mov byte [bp+011h], al ; 88 46 11 9327 9347 mov ax, strict word 0000bh ; b8 0b 00 9328 call 0165ch ; e8 aeae9348 call 0165ch ; e8 42 ae 9329 9349 and AL, strict byte 001h ; 24 01 9330 9350 mov byte [bp+00eh], al ; 88 46 0e 9331 jmp short 06 7fah ; eb 459332 call 066 46h ; e8 8e fe9351 jmp short 06866h ; eb 45 9352 call 066b2h ; e8 8e fe 9333 9353 test ax, ax ; 85 c0 9334 je short 06 7bfh ; 74 039335 call 066 21h ; e8 62 fe9354 je short 0682bh ; 74 03 9355 call 0668dh ; e8 62 fe 9336 9356 movzx dx, byte [bp+00fh] ; 0f b6 56 0f 9337 9357 xor ax, ax ; 31 c0 9338 call 0166dh ; e8 a5ae9358 call 0166dh ; e8 39 ae 9339 9359 movzx dx, byte [bp+010h] ; 0f b6 56 10 9340 9360 mov ax, strict word 00002h ; b8 02 00 9341 call 0166dh ; e8 9bae9361 call 0166dh ; e8 2f ae 9342 9362 movzx dx, byte [bp+011h] ; 0f b6 56 11 9343 9363 mov ax, strict word 00004h ; b8 04 00 9344 call 0166dh ; e8 91ae9364 call 0166dh ; e8 25 ae 9345 9365 mov ax, strict word 0000bh ; b8 0b 00 9346 call 0165ch ; e8 7aae9366 call 0165ch ; e8 0e ae 9347 9367 mov bl, al ; 88 c3 9348 9368 and bl, 060h ; 80 e3 60 … … 9353 9373 movzx dx, bl ; 0f b6 d3 9354 9374 mov ax, strict word 0000bh ; b8 0b 00 9355 call 0166dh ; e8 73ae9375 call 0166dh ; e8 07 ae 9356 9376 mov byte [bp+013h], 000h ; c6 46 13 00 9357 9377 mov byte [bp+012h], bl ; 88 5e 12 … … 9359 9379 retn ; c3 9360 9380 mov byte [bp+013h], 000h ; c6 46 13 00 9361 call 066 46h ; e8 3c fe9381 call 066b2h ; e8 3c fe 9362 9382 test ax, ax ; 85 c0 9363 je short 068 10h ; 74 029383 je short 0687ch ; 74 02 9364 9384 pop bp ; 5d 9365 9385 retn ; c3 9366 9386 mov ax, strict word 00009h ; b8 09 00 9367 call 0165ch ; e8 46 ae9387 call 0165ch ; e8 da ad 9368 9388 mov byte [bp+010h], al ; 88 46 10 9369 9389 mov ax, strict word 00008h ; b8 08 00 9370 call 0165ch ; e8 3d ae9390 call 0165ch ; e8 d1 ad 9371 9391 mov byte [bp+00fh], al ; 88 46 0f 9372 9392 mov ax, strict word 00007h ; b8 07 00 9373 call 0165ch ; e8 34 ae9393 call 0165ch ; e8 c8 ad 9374 9394 mov byte [bp+00eh], al ; 88 46 0e 9375 9395 mov ax, strict word 00032h ; b8 32 00 9376 call 0165ch ; e8 2b ae9396 call 0165ch ; e8 bf ad 9377 9397 mov byte [bp+011h], al ; 88 46 11 9378 9398 mov byte [bp+012h], al ; 88 46 12 9379 9399 pop bp ; 5d 9380 9400 retn ; c3 9381 call 066 46h ; e8 0a fe9401 call 066b2h ; e8 0a fe 9382 9402 test ax, ax ; 85 c0 9383 je short 068 45h ; 74 059384 call 066 21h ; e8 de fd9403 je short 068b1h ; 74 05 9404 call 0668dh ; e8 de fd 9385 9405 pop bp ; 5d 9386 9406 retn ; c3 9387 9407 movzx dx, byte [bp+010h] ; 0f b6 56 10 9388 9408 mov ax, strict word 00009h ; b8 09 00 9389 call 0166dh ; e8 1e ae9409 call 0166dh ; e8 b2 ad 9390 9410 movzx dx, byte [bp+00fh] ; 0f b6 56 0f 9391 9411 mov ax, strict word 00008h ; b8 08 00 9392 call 0166dh ; e8 14 ae9412 call 0166dh ; e8 a8 ad 9393 9413 movzx dx, byte [bp+00eh] ; 0f b6 56 0e 9394 9414 mov ax, strict word 00007h ; b8 07 00 9395 call 0166dh ; e8 0a ae9415 call 0166dh ; e8 9e ad 9396 9416 movzx dx, byte [bp+011h] ; 0f b6 56 11 9397 9417 mov ax, strict word 00032h ; b8 32 00 9398 call 0166dh ; e8 00 ae9418 call 0166dh ; e8 94 ad 9399 9419 mov ax, strict word 0000bh ; b8 0b 00 9400 call 0165ch ; e8 e9ad9420 call 0165ch ; e8 7d ad 9401 9421 mov bl, al ; 88 c3 9402 9422 and bl, 07fh ; 80 e3 7f 9403 jmp near 06 7f1h ; e9 76 ff9423 jmp near 0685dh ; e9 76 ff 9404 9424 mov ax, strict word 0000bh ; b8 0b 00 9405 call 0165ch ; e8 dbad9425 call 0165ch ; e8 6f ad 9406 9426 mov bl, al ; 88 c3 9407 9427 mov word [bp+012h], strict word 00000h ; c7 46 12 00 00 9408 9428 test AL, strict byte 020h ; a8 20 9409 je short 068 8eh ; 74 029429 je short 068fah ; 74 02 9410 9430 pop bp ; 5d 9411 9431 retn ; c3 9412 call 066 46h ; e8 b5 fd9432 call 066b2h ; e8 b5 fd 9413 9433 test ax, ax ; 85 c0 9414 je short 06 898h ; 74 039415 call 066 21h ; e8 89 fd9434 je short 06904h ; 74 03 9435 call 0668dh ; e8 89 fd 9416 9436 movzx dx, byte [bp+00fh] ; 0f b6 56 0f 9417 9437 mov ax, strict word 00001h ; b8 01 00 9418 call 0166dh ; e8 cbad9438 call 0166dh ; e8 5f ad 9419 9439 movzx dx, byte [bp+010h] ; 0f b6 56 10 9420 9440 mov ax, strict word 00003h ; b8 03 00 9421 call 0166dh ; e8 c1ad9441 call 0166dh ; e8 55 ad 9422 9442 movzx dx, byte [bp+011h] ; 0f b6 56 11 9423 9443 mov ax, strict word 00005h ; b8 05 00 9424 call 0166dh ; e8 b7ad9444 call 0166dh ; e8 4b ad 9425 9445 mov dx, 000a1h ; ba a1 00 9426 9446 in AL, DX ; ec … … 9434 9454 movzx dx, al ; 0f b6 d0 9435 9455 mov ax, strict word 0000bh ; b8 0b 00 9436 call 0166dh ; e8 9fad9456 call 0166dh ; e8 33 ad 9437 9457 pop bp ; 5d 9438 9458 retn ; c3 9439 9459 mov ax, strict word 0000bh ; b8 0b 00 9440 call 0165ch ; e8 86ad9460 call 0165ch ; e8 1a ad 9441 9461 mov bl, al ; 88 c3 9442 9462 and AL, strict byte 057h ; 24 57 9443 9463 movzx dx, al ; 0f b6 d0 9444 jmp near 06 7f4h ; e9 14 ff9445 send_to_mouse_ctrl_: ; 0xf6 8e0LB 0x319464 jmp near 06860h ; e9 14 ff 9465 send_to_mouse_ctrl_: ; 0xf694c LB 0x31 9446 9466 push bx ; 53 9447 9467 push dx ; 52 … … 9454 9474 ; sub ah, ah ; 2a e4 9455 9475 test AL, strict byte 002h ; a8 02 9456 je short 06 8ffh ; 74 0e9476 je short 0696bh ; 74 0e 9457 9477 push 00886h ; 68 86 08 9458 9478 push 010fah ; 68 fa 10 9459 9479 push strict byte 00007h ; 6a 07 9460 call 018e9h ; e8 edaf9480 call 018e9h ; e8 81 af 9461 9481 add sp, strict byte 00006h ; 83 c4 06 9462 9482 mov AL, strict byte 0d4h ; b0 d4 … … 9471 9491 pop bx ; 5b 9472 9492 retn ; c3 9473 get_mouse_data_: ; 0xf69 11LB 0x389493 get_mouse_data_: ; 0xf697d LB 0x38 9474 9494 push bx ; 53 9475 9495 push cx ; 51 … … 9485 9505 and ax, strict word 00021h ; 25 21 00 9486 9506 cmp ax, strict word 00021h ; 3d 21 00 9487 je short 069 32h ; 74 079507 je short 0699eh ; 74 07 9488 9508 test cx, cx ; 85 c9 9489 je short 069 32h ; 74 039509 je short 0699eh ; 74 03 9490 9510 dec cx ; 49 9491 jmp short 069 1dh ; eb eb9511 jmp short 06989h ; eb eb 9492 9512 test cx, cx ; 85 c9 9493 jne short 069 3ah ; 75 049513 jne short 069a6h ; 75 04 9494 9514 mov AL, strict byte 001h ; b0 01 9495 jmp short 069 45h ; eb 0b9515 jmp short 069b1h ; eb 0b 9496 9516 mov dx, strict word 00060h ; ba 60 00 9497 9517 in AL, DX ; ec … … 9504 9524 pop bx ; 5b 9505 9525 retn ; c3 9506 set_kbd_command_byte_: ; 0xf69 49LB 0x2f9526 set_kbd_command_byte_: ; 0xf69b5 LB 0x2f 9507 9527 push bx ; 53 9508 9528 push dx ; 52 … … 9515 9535 ; sub ah, ah ; 2a e4 9516 9536 test AL, strict byte 002h ; a8 02 9517 je short 069 68h ; 74 0e9537 je short 069d4h ; 74 0e 9518 9538 push 00890h ; 68 90 08 9519 9539 push 010fah ; 68 fa 10 9520 9540 push strict byte 00007h ; 6a 07 9521 call 018e9h ; e8 84af9541 call 018e9h ; e8 18 af 9522 9542 add sp, strict byte 00006h ; 83 c4 06 9523 9543 mov AL, strict byte 060h ; b0 60 … … 9531 9551 pop bx ; 5b 9532 9552 retn ; c3 9533 _int74_function: ; 0xf69 78LB 0xc69553 _int74_function: ; 0xf69e4 LB 0xc6 9534 9554 enter 00008h, 000h ; c8 08 00 00 9535 9555 mov dx, strict word 0000eh ; ba 0e 00 9536 9556 mov ax, strict word 00040h ; b8 40 00 9537 call 0161ch ; e8 97ac9557 call 0161ch ; e8 2b ac 9538 9558 mov cx, ax ; 89 c1 9539 9559 mov word [bp+004h], strict word 00000h ; c7 46 04 00 00 … … 9544 9564 and AL, strict byte 021h ; 24 21 9545 9565 cmp AL, strict byte 021h ; 3c 21 9546 jne near 06a 2ch ; 0f 85 92 009566 jne near 06a98h ; 0f 85 92 00 9547 9567 mov dx, strict word 00060h ; ba 60 00 9548 9568 in AL, DX ; ec … … 9552 9572 mov dx, strict word 00026h ; ba 26 00 9553 9573 mov ax, cx ; 89 c8 9554 call 01600h ; e8 56 ac9574 call 01600h ; e8 ea ab 9555 9575 mov byte [bp-006h], al ; 88 46 fa 9556 9576 mov dx, strict word 00027h ; ba 27 00 9557 9577 mov ax, cx ; 89 c8 9558 call 01600h ; e8 4b ac9578 call 01600h ; e8 df ab 9559 9579 mov byte [bp-008h], al ; 88 46 f8 9560 9580 test AL, strict byte 080h ; a8 80 9561 je short 06a 2ch ; 74 709581 je short 06a98h ; 74 70 9562 9582 mov al, byte [bp-008h] ; 8a 46 f8 9563 9583 and AL, strict byte 007h ; 24 07 … … 9570 9590 add dx, strict byte 00028h ; 83 c2 28 9571 9591 mov ax, cx ; 89 c8 9572 call 0160eh ; e8 35 ac9592 call 0160eh ; e8 c9 ab 9573 9593 mov al, byte [bp-004h] ; 8a 46 fc 9574 9594 cmp al, byte [bp-002h] ; 3a 46 fe 9575 jc short 06a 1dh ; 72 3c9595 jc short 06a89h ; 72 3c 9576 9596 mov dx, strict word 00028h ; ba 28 00 9577 9597 mov ax, cx ; 89 c8 9578 call 01600h ; e8 17 ac9598 call 01600h ; e8 ab ab 9579 9599 xor ah, ah ; 30 e4 9580 9600 mov word [bp+00ch], ax ; 89 46 0c 9581 9601 mov dx, strict word 00029h ; ba 29 00 9582 9602 mov ax, cx ; 89 c8 9583 call 01600h ; e8 0a ac9603 call 01600h ; e8 9e ab 9584 9604 xor ah, ah ; 30 e4 9585 9605 mov word [bp+00ah], ax ; 89 46 0a 9586 9606 mov dx, strict word 0002ah ; ba 2a 00 9587 9607 mov ax, cx ; 89 c8 9588 call 01600h ; e8 fdab9608 call 01600h ; e8 91 ab 9589 9609 xor ah, ah ; 30 e4 9590 9610 mov word [bp+008h], ax ; 89 46 08 … … 9593 9613 mov byte [bp-006h], ah ; 88 66 fa 9594 9614 test byte [bp-008h], 080h ; f6 46 f8 80 9595 je short 06a 20h ; 74 0a9615 je short 06a8ch ; 74 0a 9596 9616 mov word [bp+004h], strict word 00001h ; c7 46 04 01 00 9597 jmp short 06a 20h ; eb 039617 jmp short 06a8ch ; eb 03 9598 9618 inc byte [bp-006h] ; fe 46 fa 9599 9619 movzx bx, byte [bp-006h] ; 0f b6 5e fa 9600 9620 mov dx, strict word 00026h ; ba 26 00 9601 9621 mov ax, cx ; 89 c8 9602 call 0160eh ; e8 e2ab9622 call 0160eh ; e8 76 ab 9603 9623 leave ; c9 9604 9624 retn ; c3 9605 sub byte [bp+si-00ah], 06ah ; 80 6a f6 6a9606 jns short 06a9fh ; 79 6b9607 or ch, byte [si+078h] ; 0a 6c 789608 insb ;6c9609 in t3 ; cc9610 push strict byte 0ffa0h ; 6a a09611 ins b ; 6c9612 db 0 65h, 06dh9613 ; gs insw ; 656d9614 _int15_function_mouse: ; 0xf6a 3eLB 0x3869625 in AL, DX ; ec 9626 push strict byte 00062h ; 6a 62 9627 imul sp, bp, strict byte 0006bh ; 6b e5 6b 9628 jbe short 06b0eh ; 76 6c 9629 in AL, strict byte 06ch ; e4 6c 9630 cmp byte [bp+di+00ch], ch ; 38 6b 0c 9631 insw ; 6d 9632 db 0d1h 9633 insw ; 6d 9634 _int15_function_mouse: ; 0xf6aaa LB 0x386 9615 9635 push si ; 56 9616 9636 enter 00006h, 000h ; c8 06 00 00 9617 9637 mov dx, strict word 0000eh ; ba 0e 00 9618 9638 mov ax, strict word 00040h ; b8 40 00 9619 call 0161ch ; e8 d0ab9639 call 0161ch ; e8 64 ab 9620 9640 mov cx, ax ; 89 c1 9621 9641 cmp byte [bp+014h], 007h ; 80 7e 14 07 9622 jbe short 06a 5fh ; 76 0b9642 jbe short 06acbh ; 76 0b 9623 9643 or word [bp+01ah], strict byte 00001h ; 83 4e 1a 01 9624 9644 mov byte [bp+015h], 001h ; c6 46 15 01 … … 9627 9647 retn ; c3 9628 9648 mov ax, strict word 00065h ; b8 65 00 9629 call 069 49h ; e8 e4 fe9649 call 069b5h ; e8 e4 fe 9630 9650 and word [bp+01ah], strict byte 0fffeh ; 83 66 1a fe 9631 9651 mov byte [bp+015h], 000h ; c6 46 15 00 9632 9652 mov al, byte [bp+014h] ; 8a 46 14 9633 9653 cmp AL, strict byte 007h ; 3c 07 9634 jnbe near 06 da8h ; 0f 87 32 039654 jnbe near 06e14h ; 0f 87 32 03 9635 9655 movzx si, al ; 0f b6 f0 9636 9656 add si, si ; 01 f6 9637 jmp word [cs:si+06a 2eh] ; 2e ff a4 2e6a9657 jmp word [cs:si+06a9ah] ; 2e ff a4 9a 6a 9638 9658 cmp byte [bp+00fh], 001h ; 80 7e 0f 01 9639 jnbe near 06 db3h ; 0f 87 2b 039659 jnbe near 06e1fh ; 0f 87 2b 03 9640 9660 mov dx, strict word 00027h ; ba 27 00 9641 9661 mov ax, cx ; 89 c8 9642 call 01600h ; e8 70ab9662 call 01600h ; e8 04 ab 9643 9663 test AL, strict byte 080h ; a8 80 9644 jne short 06 a9fh ; 75 0b9664 jne short 06b0bh ; 75 0b 9645 9665 or word [bp+01ah], strict byte 00001h ; 83 4e 1a 01 9646 9666 mov byte [bp+015h], 005h ; c6 46 15 05 9647 jmp near 06 dbbh ; e9 1c 039667 jmp near 06e27h ; e9 1c 03 9648 9668 cmp byte [bp+00fh], 000h ; 80 7e 0f 00 9649 9669 db 00fh, 094h, 0c0h … … 9651 9671 add AL, strict byte 0f4h ; 04 f4 9652 9672 xor ah, ah ; 30 e4 9653 call 06 8e0h ; e8 33 fe9673 call 0694ch ; e8 33 fe 9654 9674 test al, al ; 84 c0 9655 jne near 06d 41h ; 0f 85 8e 029675 jne near 06dadh ; 0f 85 8e 02 9656 9676 mov dx, ss ; 8c d2 9657 9677 lea ax, [bp-006h] ; 8d 46 fa 9658 call 069 11h ; e8 56 fe9678 call 0697dh ; e8 56 fe 9659 9679 test al, al ; 84 c0 9660 je near 06 dbbh ; 0f 84 fa 029680 je near 06e27h ; 0f 84 fa 02 9661 9681 cmp byte [bp-006h], 0fah ; 80 7e fa fa 9662 jne near 06d 41h ; 0f 85 78 029663 jmp near 06 dbbh ; e9 ef 029682 jne near 06dadh ; 0f 85 78 02 9683 jmp near 06e27h ; e9 ef 02 9664 9684 mov al, byte [bp+00fh] ; 8a 46 0f 9665 9685 cmp AL, strict byte 001h ; 3c 01 9666 jc short 06 ad7h ; 72 049686 jc short 06b43h ; 72 04 9667 9687 cmp AL, strict byte 008h ; 3c 08 9668 jbe short 06 adah ; 76 039669 jmp near 06c 6dh ; e9 93 019688 jbe short 06b46h ; 76 03 9689 jmp near 06cd9h ; e9 93 01 9670 9690 mov dx, strict word 00027h ; ba 27 00 9671 9691 mov ax, cx ; 89 c8 9672 call 01600h ; e8 1e ab9692 call 01600h ; e8 b2 aa 9673 9693 mov ah, byte [bp+00fh] ; 8a 66 0f 9674 9694 db 0feh, 0cch … … 9679 9699 mov dx, strict word 00027h ; ba 27 00 9680 9700 mov ax, cx ; 89 c8 9681 call 0160eh ; e8 18 ab9701 call 0160eh ; e8 ac aa 9682 9702 mov dx, strict word 00026h ; ba 26 00 9683 9703 mov ax, cx ; 89 c8 9684 call 01600h ; e8 02 ab9704 call 01600h ; e8 96 aa 9685 9705 and AL, strict byte 0f8h ; 24 f8 9686 9706 movzx bx, al ; 0f b6 d8 9687 9707 mov dx, strict word 00026h ; ba 26 00 9688 9708 mov ax, cx ; 89 c8 9689 call 0160eh ; e8 03 ab9709 call 0160eh ; e8 97 aa 9690 9710 mov ax, 000ffh ; b8 ff 00 9691 call 06 8e0h ; e8 cf fd9711 call 0694ch ; e8 cf fd 9692 9712 test al, al ; 84 c0 9693 jne near 06d 41h ; 0f 85 2a 029713 jne near 06dadh ; 0f 85 2a 02 9694 9714 mov dx, ss ; 8c d2 9695 9715 lea ax, [bp-002h] ; 8d 46 fe 9696 call 069 11h ; e8 f2 fd9716 call 0697dh ; e8 f2 fd 9697 9717 mov cl, al ; 88 c1 9698 9718 cmp byte [bp-002h], 0feh ; 80 7e fe fe 9699 jne short 06b 32h ; 75 0b9719 jne short 06b9eh ; 75 0b 9700 9720 or word [bp+01ah], strict byte 00001h ; 83 4e 1a 01 9701 9721 mov byte [bp+015h], 004h ; c6 46 15 04 9702 jmp near 06 dbbh ; e9 89 029722 jmp near 06e27h ; e9 89 02 9703 9723 cmp byte [bp-002h], 0fah ; 80 7e fe fa 9704 je short 06b 48h ; 74 109724 je short 06bb4h ; 74 10 9705 9725 movzx ax, byte [bp-002h] ; 0f b6 46 fe 9706 9726 push ax ; 50 9707 9727 push 0089bh ; 68 9b 08 9708 9728 push strict byte 00007h ; 6a 07 9709 call 018e9h ; e8 a4ad9729 call 018e9h ; e8 38 ad 9710 9730 add sp, strict byte 00006h ; 83 c4 06 9711 9731 test cl, cl ; 84 c9 9712 jne near 06d 41h ; 0f 85 f3 019732 jne near 06dadh ; 0f 85 f3 01 9713 9733 mov dx, ss ; 8c d2 9714 9734 lea ax, [bp-006h] ; 8d 46 fa 9715 call 069 11h ; e8 bb fd9735 call 0697dh ; e8 bb fd 9716 9736 test al, al ; 84 c0 9717 jne near 06d 41h ; 0f 85 e5 019737 jne near 06dadh ; 0f 85 e5 01 9718 9738 mov dx, ss ; 8c d2 9719 9739 lea ax, [bp-004h] ; 8d 46 fc 9720 call 069 11h ; e8 ad fd9740 call 0697dh ; e8 ad fd 9721 9741 test al, al ; 84 c0 9722 jne near 06d 41h ; 0f 85 d7 019742 jne near 06dadh ; 0f 85 d7 01 9723 9743 mov al, byte [bp-006h] ; 8a 46 fa 9724 9744 mov byte [bp+00eh], al ; 88 46 0e 9725 9745 mov al, byte [bp-004h] ; 8a 46 fc 9726 9746 mov byte [bp+00fh], al ; 88 46 0f 9727 jmp near 06 dbbh ; e9 42 029747 jmp near 06e27h ; e9 42 02 9728 9748 mov al, byte [bp+00fh] ; 8a 46 0f 9729 9749 cmp AL, strict byte 003h ; 3c 03 9730 jc short 06b 90h ; 72 109731 jbe short 06 baeh ; 76 2c9750 jc short 06bfch ; 72 10 9751 jbe short 06c1ah ; 76 2c 9732 9752 cmp AL, strict byte 006h ; 3c 06 9733 je short 06 bc0h ; 74 3a9753 je short 06c2ch ; 74 3a 9734 9754 cmp AL, strict byte 005h ; 3c 05 9735 je short 06 bbah ; 74 309755 je short 06c26h ; 74 30 9736 9756 cmp AL, strict byte 004h ; 3c 04 9737 je short 06 bb4h ; 74 269738 jmp short 06 bc6h ; eb 369757 je short 06c20h ; 74 26 9758 jmp short 06c32h ; eb 36 9739 9759 cmp AL, strict byte 002h ; 3c 02 9740 je short 06 ba8h ; 74 149760 je short 06c14h ; 74 14 9741 9761 cmp AL, strict byte 001h ; 3c 01 9742 je short 06 ba2h ; 74 0a9762 je short 06c0eh ; 74 0a 9743 9763 test al, al ; 84 c0 9744 jne short 06 bc6h ; 75 2a9764 jne short 06c32h ; 75 2a 9745 9765 mov byte [bp-006h], 00ah ; c6 46 fa 0a 9746 jmp short 06 bcah ; eb 289766 jmp short 06c36h ; eb 28 9747 9767 mov byte [bp-006h], 014h ; c6 46 fa 14 9748 jmp short 06 bcah ; eb 229768 jmp short 06c36h ; eb 22 9749 9769 mov byte [bp-006h], 028h ; c6 46 fa 28 9750 jmp short 06 bcah ; eb 1c9770 jmp short 06c36h ; eb 1c 9751 9771 mov byte [bp-006h], 03ch ; c6 46 fa 3c 9752 jmp short 06 bcah ; eb 169772 jmp short 06c36h ; eb 16 9753 9773 mov byte [bp-006h], 050h ; c6 46 fa 50 9754 jmp short 06 bcah ; eb 109774 jmp short 06c36h ; eb 10 9755 9775 mov byte [bp-006h], 064h ; c6 46 fa 64 9756 jmp short 06 bcah ; eb 0a9776 jmp short 06c36h ; eb 0a 9757 9777 mov byte [bp-006h], 0c8h ; c6 46 fa c8 9758 jmp short 06 bcah ; eb 049778 jmp short 06c36h ; eb 04 9759 9779 mov byte [bp-006h], 000h ; c6 46 fa 00 9760 9780 cmp byte [bp-006h], 000h ; 80 7e fa 00 9761 jbe short 06 bffh ; 76 2f9781 jbe short 06c6bh ; 76 2f 9762 9782 mov ax, 000f3h ; b8 f3 00 9763 call 06 8e0h ; e8 0a fd9783 call 0694ch ; e8 0a fd 9764 9784 test al, al ; 84 c0 9765 jne short 06 bf4h ; 75 1a9785 jne short 06c60h ; 75 1a 9766 9786 mov dx, ss ; 8c d2 9767 9787 lea ax, [bp-004h] ; 8d 46 fc 9768 call 069 11h ; e8 2f fd9788 call 0697dh ; e8 2f fd 9769 9789 movzx ax, byte [bp-006h] ; 0f b6 46 fa 9770 call 06 8e0h ; e8 f7 fc9790 call 0694ch ; e8 f7 fc 9771 9791 mov dx, ss ; 8c d2 9772 9792 lea ax, [bp-004h] ; 8d 46 fc 9773 call 069 11h ; e8 20 fd9774 jmp near 06 dbbh ; e9 c7 019793 call 0697dh ; e8 20 fd 9794 jmp near 06e27h ; e9 c7 01 9775 9795 or word [bp+01ah], strict byte 00001h ; 83 4e 1a 01 9776 9796 mov byte [bp+015h], 003h ; c6 46 15 03 9777 jmp near 06 dbbh ; e9 bc 019797 jmp near 06e27h ; e9 bc 01 9778 9798 or word [bp+01ah], strict byte 00001h ; 83 4e 1a 01 9779 9799 mov byte [bp+015h], 002h ; c6 46 15 02 9780 jmp near 06 dbbh ; e9 b1 019800 jmp near 06e27h ; e9 b1 01 9781 9801 cmp byte [bp+00fh], 004h ; 80 7e 0f 04 9782 jnc short 06c 6dh ; 73 5d9802 jnc short 06cd9h ; 73 5d 9783 9803 mov ax, 000e8h ; b8 e8 00 9784 call 06 8e0h ; e8 ca fc9804 call 0694ch ; e8 ca fc 9785 9805 test al, al ; 84 c0 9786 jne short 06c 62h ; 75 489806 jne short 06cceh ; 75 48 9787 9807 mov dx, ss ; 8c d2 9788 9808 lea ax, [bp-006h] ; 8d 46 fa 9789 call 069 11h ; e8 ef fc9809 call 0697dh ; e8 ef fc 9790 9810 cmp byte [bp-006h], 0fah ; 80 7e fa fa 9791 je short 06c 38h ; 74 109811 je short 06ca4h ; 74 10 9792 9812 movzx ax, byte [bp-006h] ; 0f b6 46 fa 9793 9813 push ax ; 50 9794 9814 push 008c6h ; 68 c6 08 9795 9815 push strict byte 00007h ; 6a 07 9796 call 018e9h ; e8 b4ac9816 call 018e9h ; e8 48 ac 9797 9817 add sp, strict byte 00006h ; 83 c4 06 9798 9818 movzx ax, byte [bp+00fh] ; 0f b6 46 0f 9799 call 06 8e0h ; e8 a1 fc9819 call 0694ch ; e8 a1 fc 9800 9820 mov dx, ss ; 8c d2 9801 9821 lea ax, [bp-006h] ; 8d 46 fa 9802 call 069 11h ; e8 ca fc9822 call 0697dh ; e8 ca fc 9803 9823 cmp byte [bp-006h], 0fah ; 80 7e fa fa 9804 je near 06 dbbh ; 0f 84 6c 019824 je near 06e27h ; 0f 84 6c 01 9805 9825 movzx ax, byte [bp-006h] ; 0f b6 46 fa 9806 9826 push ax ; 50 9807 9827 push 008c6h ; 68 c6 08 9808 9828 push strict byte 00007h ; 6a 07 9809 call 018e9h ; e8 8dac9829 call 018e9h ; e8 21 ac 9810 9830 add sp, strict byte 00006h ; 83 c4 06 9811 jmp near 06 dbbh ; e9 59 019831 jmp near 06e27h ; e9 59 01 9812 9832 or word [bp+01ah], strict byte 00001h ; 83 4e 1a 01 9813 9833 mov byte [bp+015h], 003h ; c6 46 15 03 9814 jmp near 06 dbbh ; e9 4e 019834 jmp near 06e27h ; e9 4e 01 9815 9835 or word [bp+01ah], strict byte 00001h ; 83 4e 1a 01 9816 9836 mov byte [bp+015h], 002h ; c6 46 15 02 9817 jmp near 06 dbbh ; e9 43 019837 jmp near 06e27h ; e9 43 01 9818 9838 mov ax, 000f2h ; b8 f2 00 9819 call 06 8e0h ; e8 62 fc9839 call 0694ch ; e8 62 fc 9820 9840 test al, al ; 84 c0 9821 jne short 06 c95h ; 75 139841 jne short 06d01h ; 75 13 9822 9842 mov dx, ss ; 8c d2 9823 9843 lea ax, [bp-006h] ; 8d 46 fa 9824 call 069 11h ; e8 87 fc9844 call 0697dh ; e8 87 fc 9825 9845 mov dx, ss ; 8c d2 9826 9846 lea ax, [bp-004h] ; 8d 46 fc 9827 call 069 11h ; e8 7f fc9828 jmp near 06b 70h ; e9 db fe9847 call 0697dh ; e8 7f fc 9848 jmp near 06bdch ; e9 db fe 9829 9849 or word [bp+01ah], strict byte 00001h ; 83 4e 1a 01 9830 9850 mov byte [bp+015h], 003h ; c6 46 15 03 9831 jmp near 06 dbbh ; e9 1b 019851 jmp near 06e27h ; e9 1b 01 9832 9852 mov al, byte [bp+00fh] ; 8a 46 0f 9833 9853 test al, al ; 84 c0 9834 jbe short 06 caeh ; 76 079854 jbe short 06d1ah ; 76 07 9835 9855 cmp AL, strict byte 002h ; 3c 02 9836 jbe short 06d 17h ; 76 6c9837 jmp near 06d 4bh ; e9 9d 009856 jbe short 06d83h ; 76 6c 9857 jmp near 06db7h ; e9 9d 00 9838 9858 mov ax, 000e9h ; b8 e9 00 9839 call 06 8e0h ; e8 2c fc9859 call 0694ch ; e8 2c fc 9840 9860 test al, al ; 84 c0 9841 jne near 06d 41h ; 0f 85 87 009861 jne near 06dadh ; 0f 85 87 00 9842 9862 mov dx, ss ; 8c d2 9843 9863 lea ax, [bp-006h] ; 8d 46 fa 9844 call 069 11h ; e8 4f fc9864 call 0697dh ; e8 4f fc 9845 9865 mov cl, al ; 88 c1 9846 9866 cmp byte [bp-006h], 0fah ; 80 7e fa fa 9847 je short 06 cdah ; 74 109867 je short 06d46h ; 74 10 9848 9868 movzx ax, byte [bp-006h] ; 0f b6 46 fa 9849 9869 push ax ; 50 9850 9870 push 008c6h ; 68 c6 08 9851 9871 push strict byte 00007h ; 6a 07 9852 call 018e9h ; e8 12 ac9872 call 018e9h ; e8 a6 ab 9853 9873 add sp, strict byte 00006h ; 83 c4 06 9854 9874 test cl, cl ; 84 c9 9855 jne short 06d 41h ; 75 639875 jne short 06dadh ; 75 63 9856 9876 mov dx, ss ; 8c d2 9857 9877 lea ax, [bp-006h] ; 8d 46 fa 9858 call 069 11h ; e8 2b fc9878 call 0697dh ; e8 2b fc 9859 9879 test al, al ; 84 c0 9860 jne short 06d 41h ; 75 579880 jne short 06dadh ; 75 57 9861 9881 mov dx, ss ; 8c d2 9862 9882 lea ax, [bp-004h] ; 8d 46 fc 9863 call 069 11h ; e8 1f fc9883 call 0697dh ; e8 1f fc 9864 9884 test al, al ; 84 c0 9865 jne short 06d 41h ; 75 4b9885 jne short 06dadh ; 75 4b 9866 9886 mov dx, ss ; 8c d2 9867 9887 lea ax, [bp-002h] ; 8d 46 fe 9868 call 069 11h ; e8 13 fc9888 call 0697dh ; e8 13 fc 9869 9889 test al, al ; 84 c0 9870 jne short 06d 41h ; 75 3f9890 jne short 06dadh ; 75 3f 9871 9891 mov al, byte [bp-006h] ; 8a 46 fa 9872 9892 mov byte [bp+00eh], al ; 88 46 0e … … 9875 9895 mov al, byte [bp-002h] ; 8a 46 fe 9876 9896 mov byte [bp+010h], al ; 88 46 10 9877 jmp near 06 dbbh ; e9 a4 009897 jmp near 06e27h ; e9 a4 00 9878 9898 cmp AL, strict byte 001h ; 3c 01 9879 jne short 06d 20h ; 75 059899 jne short 06d8ch ; 75 05 9880 9900 mov ax, 000e6h ; b8 e6 00 9881 jmp short 06d 23h ; eb 039901 jmp short 06d8fh ; eb 03 9882 9902 mov ax, 000e7h ; b8 e7 00 9883 call 06 8e0h ; e8 ba fb9903 call 0694ch ; e8 ba fb 9884 9904 mov cl, al ; 88 c1 9885 9905 test cl, cl ; 84 c9 9886 jne short 06d 3bh ; 75 0f9906 jne short 06da7h ; 75 0f 9887 9907 mov dx, ss ; 8c d2 9888 9908 lea ax, [bp-006h] ; 8d 46 fa 9889 call 069 11h ; e8 dd fb9909 call 0697dh ; e8 dd fb 9890 9910 cmp byte [bp-006h], 0fah ; 80 7e fa fa 9891 9911 db 00fh, 095h, 0c1h 9892 9912 ; setne cl ; 0f 95 c1 9893 9913 test cl, cl ; 84 c9 9894 je near 06 dbbh ; 0f 84 7a 009914 je near 06e27h ; 0f 84 7a 00 9895 9915 or word [bp+01ah], strict byte 00001h ; 83 4e 1a 01 9896 9916 mov byte [bp+015h], 003h ; c6 46 15 03 9897 jmp short 06 dbbh ; eb 709917 jmp short 06e27h ; eb 70 9898 9918 movzx ax, byte [bp+00fh] ; 0f b6 46 0f 9899 9919 push ax ; 50 9900 9920 push 008f2h ; 68 f2 08 9901 9921 push strict byte 00007h ; 6a 07 9902 call 018e9h ; e8 91ab9922 call 018e9h ; e8 25 ab 9903 9923 add sp, strict byte 00006h ; 83 c4 06 9904 9924 or word [bp+01ah], strict byte 00001h ; 83 4e 1a 01 9905 9925 mov byte [bp+015h], 001h ; c6 46 15 01 9906 jmp short 06 dbbh ; eb 569926 jmp short 06e27h ; eb 56 9907 9927 mov si, word [bp+00eh] ; 8b 76 0e 9908 9928 mov bx, si ; 89 f3 9909 9929 mov dx, strict word 00022h ; ba 22 00 9910 9930 mov ax, cx ; 89 c8 9911 call 0162ah ; e8 b8a89931 call 0162ah ; e8 4c a8 9912 9932 mov bx, word [bp+016h] ; 8b 5e 16 9913 9933 mov dx, strict word 00024h ; ba 24 00 9914 9934 mov ax, cx ; 89 c8 9915 call 0162ah ; e8 ada89935 call 0162ah ; e8 41 a8 9916 9936 mov dx, strict word 00027h ; ba 27 00 9917 9937 mov ax, cx ; 89 c8 9918 call 01600h ; e8 7ba89938 call 01600h ; e8 0f a8 9919 9939 mov ah, al ; 88 c4 9920 9940 test si, si ; 85 f6 9921 jne short 06 d99h ; 75 0e9941 jne short 06e05h ; 75 0e 9922 9942 cmp word [bp+016h], strict byte 00000h ; 83 7e 16 00 9923 jne short 06 d99h ; 75 089943 jne short 06e05h ; 75 08 9924 9944 test AL, strict byte 080h ; a8 80 9925 je short 06 d9bh ; 74 069945 je short 06e07h ; 74 06 9926 9946 and AL, strict byte 07fh ; 24 7f 9927 jmp short 06 d9bh ; eb 029947 jmp short 06e07h ; eb 02 9928 9948 or AL, strict byte 080h ; 0c 80 9929 9949 movzx bx, al ; 0f b6 d8 9930 9950 mov dx, strict word 00027h ; ba 27 00 9931 9951 mov ax, cx ; 89 c8 9932 call 0160eh ; e8 68 a89933 jmp short 06 dbbh ; eb 139952 call 0160eh ; e8 fc a7 9953 jmp short 06e27h ; eb 13 9934 9954 push 0090ch ; 68 0c 09 9935 9955 push strict byte 00007h ; 6a 07 9936 call 018e9h ; e8 39 ab9956 call 018e9h ; e8 cd aa 9937 9957 add sp, strict byte 00004h ; 83 c4 04 9938 9958 or word [bp+01ah], strict byte 00001h ; 83 4e 1a 01 9939 9959 mov byte [bp+015h], 001h ; c6 46 15 01 9940 9960 mov ax, strict word 00047h ; b8 47 00 9941 call 069 49h ; e8 88 fb9961 call 069b5h ; e8 88 fb 9942 9962 leave ; c9 9943 9963 pop si ; 5e 9944 9964 retn ; c3 9945 _int17_function: ; 0xf6 dc4LB 0xb19965 _int17_function: ; 0xf6e30 LB 0xb1 9946 9966 push si ; 56 9947 9967 enter 00002h, 000h ; c8 02 00 00 … … 9951 9971 add dx, strict byte 00008h ; 83 c2 08 9952 9972 mov ax, strict word 00040h ; b8 40 00 9953 call 0161ch ; e8 44 a89973 call 0161ch ; e8 d8 a7 9954 9974 mov bx, ax ; 89 c3 9955 9975 mov si, ax ; 89 c6 9956 9976 cmp byte [bp+015h], 003h ; 80 7e 15 03 9957 jnc near 06e 6eh ; 0f 83 8a 009977 jnc near 06edah ; 0f 83 8a 00 9958 9978 mov ax, word [bp+010h] ; 8b 46 10 9959 9979 cmp ax, strict word 00003h ; 3d 03 00 9960 jnc near 06e 6eh ; 0f 83 80 009980 jnc near 06edah ; 0f 83 80 00 9961 9981 test bx, bx ; 85 db 9962 jbe near 06e 6eh ; 0f 86 7a 009982 jbe near 06edah ; 0f 86 7a 00 9963 9983 mov dx, ax ; 89 c2 9964 9984 add dx, strict byte 00078h ; 83 c2 78 9965 9985 mov ax, strict word 00040h ; b8 40 00 9966 call 01600h ; e8 01 a89986 call 01600h ; e8 95 a7 9967 9987 movzx cx, al ; 0f b6 c8 9968 9988 sal cx, 008h ; c1 e1 08 9969 9989 cmp byte [bp+015h], 000h ; 80 7e 15 00 9970 jne short 06e 38h ; 75 2d9990 jne short 06ea4h ; 75 2d 9971 9991 mov al, byte [bp+014h] ; 8a 46 14 9972 9992 mov dx, bx ; 89 da … … 9988 10008 ; sub ah, ah ; 2a e4 9989 10009 test AL, strict byte 040h ; a8 40 9990 je short 06e 38h ; 74 0710010 je short 06ea4h ; 74 07 9991 10011 test cx, cx ; 85 c9 9992 je short 06e 38h ; 74 0310012 je short 06ea4h ; 74 03 9993 10013 dec cx ; 49 9994 jmp short 06e 27h ; eb ef10014 jmp short 06e93h ; eb ef 9995 10015 cmp byte [bp+015h], 001h ; 80 7e 15 01 9996 jne short 06e 54h ; 75 1610016 jne short 06ec0h ; 75 16 9997 10017 lea dx, [si+002h] ; 8d 54 02 9998 10018 in AL, DX ; ec … … 10013 10033 mov byte [bp+015h], al ; 88 46 15 10014 10034 test cx, cx ; 85 c9 10015 jne short 06e 67h ; 75 0410035 jne short 06ed3h ; 75 04 10016 10036 or byte [bp+015h], 001h ; 80 4e 15 01 10017 10037 and byte [bp+01eh], 0feh ; 80 66 1e fe … … 10023 10043 pop si ; 5e 10024 10044 retn ; c3 10025 wait_: ; 0xf6e 75LB 0xad10045 wait_: ; 0xf6ee1 LB 0xad 10026 10046 push bx ; 53 10027 10047 push cx ; 51 … … 10039 10059 mov dx, 0046ch ; ba 6c 04 10040 10060 xor ax, ax ; 31 c0 10041 call 01638h ; e8 a2a710061 call 01638h ; e8 36 a7 10042 10062 mov word [bp-006h], ax ; 89 46 fa 10043 10063 mov bx, dx ; 89 d3 … … 10045 10065 mov dx, 0046ch ; ba 6c 04 10046 10066 xor ax, ax ; 31 c0 10047 call 01638h ; e8 94a710067 call 01638h ; e8 28 a7 10048 10068 mov word [bp-00ah], ax ; 89 46 f6 10049 10069 mov di, dx ; 89 d7 10050 10070 cmp dx, bx ; 39 da 10051 jnbe short 06 eb4h ; 77 0710052 jne short 06 ebbh ; 75 0c10071 jnbe short 06f20h ; 77 07 10072 jne short 06f27h ; 75 0c 10053 10073 cmp ax, word [bp-006h] ; 3b 46 fa 10054 jbe short 06 ebbh ; 76 0710074 jbe short 06f27h ; 76 07 10055 10075 sub ax, word [bp-006h] ; 2b 46 fa 10056 10076 sbb dx, bx ; 19 da 10057 jmp short 06 ec6h ; eb 0b10077 jmp short 06f32h ; eb 0b 10058 10078 cmp dx, bx ; 39 da 10059 jc short 06 ec6h ; 72 0710060 jne short 06 ecah ; 75 0910079 jc short 06f32h ; 72 07 10080 jne short 06f36h ; 75 09 10061 10081 cmp ax, word [bp-006h] ; 3b 46 fa 10062 jnc short 06 ecah ; 73 0410082 jnc short 06f36h ; 73 04 10063 10083 sub si, ax ; 29 c6 10064 10084 sbb cx, dx ; 19 d1 … … 10068 10088 mov ax, 00100h ; b8 00 01 10069 10089 int 016h ; cd 16 10070 je near 06 ee0h ; 0f 84 05 0010090 je near 06f4ch ; 0f 84 05 00 10071 10091 mov AL, strict byte 001h ; b0 01 10072 jmp near 06 ee2h ; e9 02 0010092 jmp near 06f4eh ; e9 02 00 10073 10093 db 032h, 0c0h 10074 10094 ; xor al, al ; 32 c0 10075 10095 test al, al ; 84 c0 10076 je short 06f 0ah ; 74 2410096 je short 06f76h ; 74 24 10077 10097 db 033h, 0c0h 10078 10098 ; xor ax, ax ; 33 c0 … … 10085 10105 push 0092eh ; 68 2e 09 10086 10106 push strict byte 00004h ; 6a 04 10087 call 018e9h ; e8 eca910107 call 018e9h ; e8 80 a9 10088 10108 add sp, strict byte 00006h ; 83 c4 06 10089 10109 cmp byte [bp-004h], 000h ; 80 7e fc 00 10090 je short 06f 0ah ; 74 0410110 je short 06f76h ; 74 04 10091 10111 mov al, dl ; 88 d0 10092 jmp short 06f 1ch ; eb 1210112 jmp short 06f88h ; eb 12 10093 10113 test cx, cx ; 85 c9 10094 jnle short 06 e9bh ; 7f 8d10095 jne short 06f 14h ; 75 0410114 jnle short 06f07h ; 7f 8d 10115 jne short 06f80h ; 75 04 10096 10116 test si, si ; 85 f6 10097 jnbe short 06 e9bh ; 77 8710117 jnbe short 06f07h ; 77 87 10098 10118 mov ax, word [bp-008h] ; 8b 46 f8 10099 10119 push ax ; 50 … … 10106 10126 pop bx ; 5b 10107 10127 retn ; c3 10108 read_logo_byte_: ; 0xf6f 22LB 0x1310128 read_logo_byte_: ; 0xf6f8e LB 0x13 10109 10129 push dx ; 52 10110 10130 push bp ; 55 … … 10120 10140 pop dx ; 5a 10121 10141 retn ; c3 10122 read_logo_word_: ; 0xf6f 35LB 0x1110142 read_logo_word_: ; 0xf6fa1 LB 0x11 10123 10143 push dx ; 52 10124 10144 push bp ; 55 … … 10132 10152 pop dx ; 5a 10133 10153 retn ; c3 10134 print_detected_harddisks_: ; 0xf6f 46LB 0x12c10154 print_detected_harddisks_: ; 0xf6fb2 LB 0x12c 10135 10155 push bx ; 53 10136 10156 push cx ; 51 … … 10141 10161 mov dx, strict word 0000eh ; ba 0e 00 10142 10162 mov ax, strict word 00040h ; b8 40 00 10143 call 0161ch ; e8 c4a610163 call 0161ch ; e8 58 a6 10144 10164 mov si, ax ; 89 c6 10145 10165 mov byte [bp-002h], 000h ; c6 46 fe 00 … … 10147 10167 xor ch, ch ; 30 ed 10148 10168 mov dx, 002c0h ; ba c0 02 10149 call 01600h ; e8 98a610169 call 01600h ; e8 2c a6 10150 10170 mov byte [bp-004h], al ; 88 46 fc 10151 10171 xor bl, bl ; 30 db 10152 10172 cmp bl, byte [bp-004h] ; 3a 5e fc 10153 jnc near 070 47h ; 0f 83 d3 0010173 jnc near 070b3h ; 0f 83 d3 00 10154 10174 movzx dx, bl ; 0f b6 d3 10155 10175 add dx, 002c1h ; 81 c2 c1 02 10156 10176 mov ax, si ; 89 f0 10157 call 01600h ; e8 80a610177 call 01600h ; e8 14 a6 10158 10178 mov bh, al ; 88 c7 10159 10179 cmp AL, strict byte 00ch ; 3c 0c 10160 jc short 0 6faah ; 72 2410180 jc short 07016h ; 72 24 10161 10181 test cl, cl ; 84 c9 10162 jne short 0 6f97h ; 75 0d10182 jne short 07003h ; 75 0d 10163 10183 push 0093fh ; 68 3f 09 10164 10184 push strict byte 00002h ; 6a 02 10165 call 018e9h ; e8 57 a910185 call 018e9h ; e8 eb a8 10166 10186 add sp, strict byte 00004h ; 83 c4 04 10167 10187 mov CL, strict byte 001h ; b1 01 … … 10171 10191 push 00953h ; 68 53 09 10172 10192 push strict byte 00002h ; 6a 02 10173 call 018e9h ; e8 45 a910193 call 018e9h ; e8 d9 a8 10174 10194 add sp, strict byte 00006h ; 83 c4 06 10175 jmp near 070 42h ; e9 98 0010195 jmp near 070aeh ; e9 98 00 10176 10196 cmp AL, strict byte 008h ; 3c 08 10177 jc short 0 6fc1h ; 72 1310197 jc short 0702dh ; 72 13 10178 10198 test ch, ch ; 84 ed 10179 jne short 0 6fbfh ; 75 0d10199 jne short 0702bh ; 75 0d 10180 10200 push 00966h ; 68 66 09 10181 10201 push strict byte 00002h ; 6a 02 10182 call 018e9h ; e8 2f a910202 call 018e9h ; e8 c3 a8 10183 10203 add sp, strict byte 00004h ; 83 c4 04 10184 10204 mov CH, strict byte 001h ; b5 01 10185 jmp short 0 6f97h ; eb d610205 jmp short 07003h ; eb d6 10186 10206 cmp AL, strict byte 004h ; 3c 04 10187 jnc short 0 6fdch ; 73 1710207 jnc short 07048h ; 73 17 10188 10208 cmp byte [bp-002h], 000h ; 80 7e fe 00 10189 jne short 0 6fdch ; 75 1110209 jne short 07048h ; 75 11 10190 10210 push 0097ah ; 68 7a 09 10191 10211 push strict byte 00002h ; 6a 02 10192 call 018e9h ; e8 16 a910212 call 018e9h ; e8 aa a8 10193 10213 add sp, strict byte 00004h ; 83 c4 04 10194 10214 mov byte [bp-002h], 001h ; c6 46 fe 01 10195 jmp short 0 6ff2h ; eb 1610215 jmp short 0705eh ; eb 16 10196 10216 cmp bh, 004h ; 80 ff 04 10197 jc short 0 6ff2h ; 72 1110217 jc short 0705eh ; 72 11 10198 10218 test cl, cl ; 84 c9 10199 jne short 0 6ff2h ; 75 0d10219 jne short 0705eh ; 75 0d 10200 10220 push 0093fh ; 68 3f 09 10201 10221 push strict byte 00002h ; 6a 02 10202 call 018e9h ; e8 fca810222 call 018e9h ; e8 90 a8 10203 10223 add sp, strict byte 00004h ; 83 c4 04 10204 10224 mov CL, strict byte 001h ; b1 01 … … 10208 10228 push 0098bh ; 68 8b 09 10209 10229 push strict byte 00002h ; 6a 02 10210 call 018e9h ; e8 eaa810230 call 018e9h ; e8 7e a8 10211 10231 add sp, strict byte 00006h ; 83 c4 06 10212 10232 cmp bh, 004h ; 80 ff 04 10213 jc short 070 0ah ; 72 0310233 jc short 07076h ; 72 03 10214 10234 sub bh, 004h ; 80 ef 04 10215 10235 movzx ax, bh ; 0f b6 c7 … … 10219 10239 sar ax, 1 ; d1 f8 10220 10240 test ax, ax ; 85 c0 10221 je short 070 1bh ; 74 0510241 je short 07087h ; 74 05 10222 10242 push 00995h ; 68 95 09 10223 jmp short 070 1eh ; eb 0310243 jmp short 0708ah ; eb 03 10224 10244 push 009a0h ; 68 a0 09 10225 10245 push strict byte 00002h ; 6a 02 10226 call 018e9h ; e8 c6a810246 call 018e9h ; e8 5a a8 10227 10247 add sp, strict byte 00004h ; 83 c4 04 10228 10248 movzx ax, bh ; 0f b6 c7 … … 10231 10251 idiv di ; f7 ff 10232 10252 test dx, dx ; 85 d2 10233 je short 070 38h ; 74 0510253 je short 070a4h ; 74 05 10234 10254 push 009a9h ; 68 a9 09 10235 jmp short 070 3bh ; eb 0310255 jmp short 070a7h ; eb 03 10236 10256 push 009afh ; 68 af 09 10237 10257 push di ; 57 10238 call 018e9h ; e8 aaa810258 call 018e9h ; e8 3e a8 10239 10259 add sp, strict byte 00004h ; 83 c4 04 10240 10260 db 0feh, 0c3h 10241 10261 ; inc bl ; fe c3 10242 jmp near 06f 6dh ; e9 26 ff10262 jmp near 06fd9h ; e9 26 ff 10243 10263 cmp byte [bp-002h], 000h ; 80 7e fe 00 10244 jne short 070 60h ; 75 1310264 jne short 070cch ; 75 13 10245 10265 test cl, cl ; 84 c9 10246 jne short 070 60h ; 75 0f10266 jne short 070cch ; 75 0f 10247 10267 test ch, ch ; 84 ed 10248 jne short 070 60h ; 75 0b10268 jne short 070cch ; 75 0b 10249 10269 push 009b6h ; 68 b6 09 10250 10270 push strict byte 00002h ; 6a 02 10251 call 018e9h ; e8 8ca810271 call 018e9h ; e8 20 a8 10252 10272 add sp, strict byte 00004h ; 83 c4 04 10253 10273 push 009cah ; 68 ca 09 10254 10274 push strict byte 00002h ; 6a 02 10255 call 018e9h ; e8 81a810275 call 018e9h ; e8 15 a8 10256 10276 add sp, strict byte 00004h ; 83 c4 04 10257 10277 leave ; c9 … … 10262 10282 pop bx ; 5b 10263 10283 retn ; c3 10264 get_boot_drive_: ; 0xf70 72LB 0x2510284 get_boot_drive_: ; 0xf70de LB 0x25 10265 10285 push bx ; 53 10266 10286 push dx ; 52 … … 10270 10290 mov dx, strict word 0000eh ; ba 0e 00 10271 10291 mov ax, strict word 00040h ; b8 40 00 10272 call 0161ch ; e8 9aa510292 call 0161ch ; e8 2e a5 10273 10293 mov dx, 002c0h ; ba c0 02 10274 call 01600h ; e8 78a510294 call 01600h ; e8 0c a5 10275 10295 sub bl, 002h ; 80 eb 02 10276 10296 cmp bl, al ; 38 c3 10277 jc short 070 91h ; 72 0210297 jc short 070fdh ; 72 02 10278 10298 mov BL, strict byte 0ffh ; b3 ff 10279 10299 mov al, bl ; 88 d8 … … 10282 10302 pop bx ; 5b 10283 10303 retn ; c3 10284 show_logo_: ; 0xf7 097LB 0x21f10304 show_logo_: ; 0xf7103 LB 0x21f 10285 10305 push bx ; 53 10286 10306 push cx ; 51 … … 10291 10311 mov dx, strict word 0000eh ; ba 0e 00 10292 10312 mov ax, strict word 00040h ; b8 40 00 10293 call 0161ch ; e8 73a510313 call 0161ch ; e8 07 a5 10294 10314 mov si, ax ; 89 c6 10295 10315 xor cl, cl ; 30 c9 … … 10302 10322 out strict byte 040h, AL ; e6 40 10303 10323 movzx ax, dl ; 0f b6 c2 10304 call 06f 35h ; e8 74 fe10324 call 06fa1h ; e8 74 fe 10305 10325 cmp ax, 066bbh ; 3d bb 66 10306 jne near 07 199h ; 0f 85 d1 0010326 jne near 07205h ; 0f 85 d1 00 10307 10327 push SS ; 16 10308 10328 pop ES ; 07 … … 10312 10332 mov word [es:di], bx ; 26 89 1d 10313 10333 cmp ax, strict word 0004fh ; 3d 4f 00 10314 jne near 07 199h ; 0f 85 bd 0010334 jne near 07205h ; 0f 85 bd 00 10315 10335 mov al, dl ; 88 d0 10316 10336 add AL, strict byte 004h ; 04 04 10317 10337 xor ah, ah ; 30 e4 10318 call 06f 22h ; e8 3d fe10338 call 06f8eh ; e8 3d fe 10319 10339 mov ch, al ; 88 c5 10320 10340 mov byte [bp-002h], al ; 88 46 fe … … 10322 10342 add AL, strict byte 005h ; 04 05 10323 10343 xor ah, ah ; 30 e4 10324 call 06f 22h ; e8 2f fe10344 call 06f8eh ; e8 2f fe 10325 10345 mov dh, al ; 88 c6 10326 10346 mov byte [bp-006h], al ; 88 46 fa … … 10328 10348 add AL, strict byte 002h ; 04 02 10329 10349 xor ah, ah ; 30 e4 10330 call 06f 35h ; e8 34 fe10350 call 06fa1h ; e8 34 fe 10331 10351 mov bx, ax ; 89 c3 10332 10352 mov word [bp-00ah], ax ; 89 46 f6 … … 10334 10354 add AL, strict byte 006h ; 04 06 10335 10355 xor ah, ah ; 30 e4 10336 call 06f 22h ; e8 13 fe10356 call 06f8eh ; e8 13 fe 10337 10357 mov byte [bp-008h], al ; 88 46 f8 10338 10358 test ch, ch ; 84 ed 10339 jne short 071 20h ; 75 0a10359 jne short 0718ch ; 75 0a 10340 10360 test dh, dh ; 84 f6 10341 jne short 071 20h ; 75 0610361 jne short 0718ch ; 75 06 10342 10362 test bx, bx ; 85 db 10343 je near 07 199h ; 0f 84 79 0010363 je near 07205h ; 0f 84 79 00 10344 10364 mov bx, 00142h ; bb 42 01 10345 10365 mov ax, 04f02h ; b8 02 4f 10346 10366 int 010h ; cd 10 10347 10367 cmp byte [bp-002h], 000h ; 80 7e fe 00 10348 je short 071 51h ; 74 2310368 je short 071bdh ; 74 23 10349 10369 xor bx, bx ; 31 db 10350 jmp short 071 38h ; eb 0610370 jmp short 071a4h ; eb 06 10351 10371 inc bx ; 43 10352 10372 cmp bx, strict byte 00010h ; 83 fb 10 10353 jnbe short 071 58h ; 77 2010373 jnbe short 071c4h ; 77 20 10354 10374 mov ax, bx ; 89 d8 10355 10375 or ah, 002h ; 80 cc 02 … … 10358 10378 xor dx, dx ; 31 d2 10359 10379 mov ax, strict word 00001h ; b8 01 00 10360 call 06e 75h ; e8 2c fd10380 call 06ee1h ; e8 2c fd 10361 10381 cmp AL, strict byte 086h ; 3c 86 10362 jne short 071 32h ; 75 e510382 jne short 0719eh ; 75 e5 10363 10383 mov CL, strict byte 001h ; b1 01 10364 jmp short 071 58h ; eb 0710384 jmp short 071c4h ; eb 07 10365 10385 mov ax, 00210h ; b8 10 02 10366 10386 mov dx, 003b8h ; ba b8 03 10367 10387 out DX, ax ; ef 10368 10388 test cl, cl ; 84 c9 10369 jne short 071 6eh ; 75 1210389 jne short 071dah ; 75 12 10370 10390 mov ax, word [bp-00ah] ; 8b 46 f6 10371 10391 shr ax, 004h ; c1 e8 04 10372 10392 mov dx, strict word 00001h ; ba 01 00 10373 call 06e 75h ; e8 0d fd10393 call 06ee1h ; e8 0d fd 10374 10394 cmp AL, strict byte 086h ; 3c 86 10375 jne short 071 6eh ; 75 0210395 jne short 071dah ; 75 02 10376 10396 mov CL, strict byte 001h ; b1 01 10377 10397 cmp byte [bp-006h], 000h ; 80 7e fa 00 10378 je short 07 199h ; 74 2510398 je short 07205h ; 74 25 10379 10399 test cl, cl ; 84 c9 10380 jne short 07 199h ; 75 2110400 jne short 07205h ; 75 21 10381 10401 mov bx, strict word 00010h ; bb 10 00 10382 jmp short 071 82h ; eb 0510402 jmp short 071eeh ; eb 05 10383 10403 dec bx ; 4b 10384 10404 test bx, bx ; 85 db 10385 jbe short 07 199h ; 76 1710405 jbe short 07205h ; 76 17 10386 10406 mov ax, bx ; 89 d8 10387 10407 or ah, 002h ; 80 cc 02 … … 10390 10410 xor dx, dx ; 31 d2 10391 10411 mov ax, strict word 00001h ; b8 01 00 10392 call 06e 75h ; e8 e2 fc10412 call 06ee1h ; e8 e2 fc 10393 10413 cmp AL, strict byte 086h ; 3c 86 10394 jne short 071 7dh ; 75 e610414 jne short 071e9h ; 75 e6 10395 10415 mov CL, strict byte 001h ; b1 01 10396 10416 xor bx, bx ; 31 db 10397 10417 mov dx, 00339h ; ba 39 03 10398 10418 mov ax, si ; 89 f0 10399 call 0160eh ; e8 6b a410419 call 0160eh ; e8 ff a3 10400 10420 mov AL, strict byte 003h ; b0 03 10401 10421 mov AH, strict byte 000h ; b4 00 10402 10422 int 010h ; cd 10 10403 10423 cmp byte [bp-008h], 000h ; 80 7e f8 00 10404 je near 07 29ah ; 0f 84 e9 0010424 je near 07306h ; 0f 84 e9 00 10405 10425 cmp byte [bp-002h], 000h ; 80 7e fe 00 10406 jne short 07 1e7h ; 75 3010426 jne short 07253h ; 75 30 10407 10427 cmp byte [bp-006h], 000h ; 80 7e fa 00 10408 jne short 07 1e7h ; 75 2a10428 jne short 07253h ; 75 2a 10409 10429 cmp word [bp-00ah], strict byte 00000h ; 83 7e f6 00 10410 jne short 07 1e7h ; 75 2410430 jne short 07253h ; 75 24 10411 10431 cmp byte [bp-008h], 002h ; 80 7e f8 02 10412 jne short 07 1d4h ; 75 0b10432 jne short 07240h ; 75 0b 10413 10433 push 009cch ; 68 cc 09 10414 10434 push strict byte 00002h ; 6a 02 10415 call 018e9h ; e8 18 a710435 call 018e9h ; e8 ac a6 10416 10436 add sp, strict byte 00004h ; 83 c4 04 10417 10437 test cl, cl ; 84 c9 10418 jne short 07 1e7h ; 75 0f10438 jne short 07253h ; 75 0f 10419 10439 mov dx, strict word 00001h ; ba 01 00 10420 10440 mov ax, 000c0h ; b8 c0 00 10421 call 06e 75h ; e8 94 fc10441 call 06ee1h ; e8 94 fc 10422 10442 cmp AL, strict byte 086h ; 3c 86 10423 jne short 07 1e7h ; 75 0210443 jne short 07253h ; 75 02 10424 10444 mov CL, strict byte 001h ; b1 01 10425 10445 test cl, cl ; 84 c9 10426 je near 07 29ah ; 0f 84 ad 0010446 je near 07306h ; 0f 84 ad 00 10427 10447 mov byte [bp-004h], 000h ; c6 46 fc 00 10428 10448 mov ax, 00100h ; b8 00 01 … … 10443 10463 push 009eeh ; 68 ee 09 10444 10464 push strict byte 00002h ; 6a 02 10445 call 018e9h ; e8 d3a610465 call 018e9h ; e8 67 a6 10446 10466 add sp, strict byte 00004h ; 83 c4 04 10447 call 06f 46h ; e8 2a fd10467 call 06fb2h ; e8 2a fd 10448 10468 push 00a32h ; 68 32 0a 10449 10469 push strict byte 00002h ; 6a 02 10450 call 018e9h ; e8 c5a610470 call 018e9h ; e8 59 a6 10451 10471 add sp, strict byte 00004h ; 83 c4 04 10452 10472 mov dx, strict word 00001h ; ba 01 00 10453 10473 mov ax, strict word 00040h ; b8 40 00 10454 call 06e 75h ; e8 45 fc10474 call 06ee1h ; e8 45 fc 10455 10475 mov bl, al ; 88 c3 10456 10476 test al, al ; 84 c0 10457 je short 072 27h ; 74 f110477 je short 07293h ; 74 f1 10458 10478 cmp AL, strict byte 030h ; 3c 30 10459 je short 072 88h ; 74 4e10479 je short 072f4h ; 74 4e 10460 10480 cmp bl, 002h ; 80 fb 02 10461 jc short 072 61h ; 72 2210481 jc short 072cdh ; 72 22 10462 10482 cmp bl, 009h ; 80 fb 09 10463 jnbe short 072 61h ; 77 1d10483 jnbe short 072cdh ; 77 1d 10464 10484 movzx ax, bl ; 0f b6 c3 10465 call 070 72h ; e8 28 fe10485 call 070deh ; e8 28 fe 10466 10486 cmp AL, strict byte 0ffh ; 3c ff 10467 jne short 072 50h ; 75 0210468 jmp short 072 27h ; eb d710487 jne short 072bch ; 75 02 10488 jmp short 07293h ; eb d7 10469 10489 movzx bx, al ; 0f b6 d8 10470 10490 mov dx, 00338h ; ba 38 03 10471 10491 mov ax, si ; 89 f0 10472 call 0160eh ; e8 b3a310492 call 0160eh ; e8 47 a3 10473 10493 mov byte [bp-004h], 002h ; c6 46 fc 02 10474 jmp short 072 88h ; eb 2710494 jmp short 072f4h ; eb 27 10475 10495 cmp bl, 02eh ; 80 fb 2e 10476 je short 072 76h ; 74 1010496 je short 072e2h ; 74 10 10477 10497 cmp bl, 026h ; 80 fb 26 10478 je short 072 7ch ; 74 1110498 je short 072e8h ; 74 11 10479 10499 cmp bl, 021h ; 80 fb 21 10480 jne short 072 82h ; 75 1210500 jne short 072eeh ; 75 12 10481 10501 mov byte [bp-004h], 001h ; c6 46 fc 01 10482 jmp short 072 88h ; eb 1210502 jmp short 072f4h ; eb 12 10483 10503 mov byte [bp-004h], 003h ; c6 46 fc 03 10484 jmp short 072 88h ; eb 0c10504 jmp short 072f4h ; eb 0c 10485 10505 mov byte [bp-004h], 004h ; c6 46 fc 04 10486 jmp short 072 88h ; eb 0610506 jmp short 072f4h ; eb 06 10487 10507 cmp byte [bp-004h], 000h ; 80 7e fc 00 10488 je short 072 27h ; 74 9f10508 je short 07293h ; 74 9f 10489 10509 movzx bx, byte [bp-004h] ; 0f b6 5e fc 10490 10510 mov dx, 00339h ; ba 39 03 10491 10511 mov ax, si ; 89 f0 10492 call 0160eh ; e8 7aa310512 call 0160eh ; e8 0e a3 10493 10513 mov AL, strict byte 003h ; b0 03 10494 10514 mov AH, strict byte 000h ; b4 00 … … 10503 10523 push DS ; 1e 10504 10524 mov ds, ax ; 8e d8 10505 call 0edbfh ; e8 13 7b10525 call 0edbfh ; e8 a7 7a 10506 10526 pop DS ; 1f 10507 10527 popad ; 66 61 … … 10513 10533 pop bx ; 5b 10514 10534 retn ; c3 10515 delay_boot_: ; 0xf7 2b6LB 0x6410535 delay_boot_: ; 0xf7322 LB 0x64 10516 10536 push bx ; 53 10517 10537 push dx ; 52 … … 10520 10540 mov dx, ax ; 89 c2 10521 10541 test ax, ax ; 85 c0 10522 je short 073 16h ; 74 5510542 je short 07382h ; 74 55 10523 10543 mov AL, strict byte 034h ; b0 34 10524 10544 out strict byte 043h, AL ; e6 43 … … 10530 10550 push 00a7ch ; 68 7c 0a 10531 10551 push strict byte 00002h ; 6a 02 10532 call 018e9h ; e8 13 a610552 call 018e9h ; e8 a7 a5 10533 10553 add sp, strict byte 00006h ; 83 c4 06 10534 10554 mov bx, dx ; 89 d3 10535 10555 test bx, bx ; 85 db 10536 jbe short 07 2f6h ; 76 1710556 jbe short 07362h ; 76 17 10537 10557 push bx ; 53 10538 10558 push 00a9ah ; 68 9a 0a 10539 10559 push strict byte 00002h ; 6a 02 10540 call 018e9h ; e8 01 a610560 call 018e9h ; e8 95 a5 10541 10561 add sp, strict byte 00006h ; 83 c4 06 10542 10562 xor dx, dx ; 31 d2 10543 10563 mov ax, strict word 00040h ; b8 40 00 10544 call 06e 75h ; e8 82 fb10564 call 06ee1h ; e8 82 fb 10545 10565 dec bx ; 4b 10546 jmp short 07 2dbh ; eb e510566 jmp short 07347h ; eb e5 10547 10567 push 009cah ; 68 ca 09 10548 10568 push strict byte 00002h ; 6a 02 10549 call 018e9h ; e8 eba510569 call 018e9h ; e8 7f a5 10550 10570 add sp, strict byte 00004h ; 83 c4 04 10551 10571 mov AL, strict byte 034h ; b0 34 … … 10558 10578 push DS ; 1e 10559 10579 mov ds, ax ; 8e d8 10560 call 0edbfh ; e8 ac7a10580 call 0edbfh ; e8 40 7a 10561 10581 pop DS ; 1f 10562 10582 popad ; 66 61 … … 10565 10585 pop bx ; 5b 10566 10586 retn ; c3 10567 scsi_cmd_data_in_: ; 0xf73 1aLB 0x8810587 scsi_cmd_data_in_: ; 0xf7386 LB 0x88 10568 10588 push si ; 56 10569 10589 push di ; 57 … … 10578 10598 ; sub ah, ah ; 2a e4 10579 10599 test AL, strict byte 001h ; a8 01 10580 jne short 073 2bh ; 75 f710600 jne short 07397h ; 75 f7 10581 10601 mov ax, word [bp+00eh] ; 8b 46 0e 10582 10602 mov dx, word [bp+010h] ; 8b 56 10 … … 10584 10604 shr dx, 1 ; d1 ea 10585 10605 rcr ax, 1 ; d1 d8 10586 loop 073 3dh ; e2 fa10606 loop 073a9h ; e2 fa 10587 10607 and ax, 000f0h ; 25 f0 00 10588 10608 movzx bx, byte [bp+008h] ; 0f b6 5e 08 … … 10602 10622 shr dx, 1 ; d1 ea 10603 10623 rcr ax, 1 ; d1 d8 10604 loop 073 65h ; e2 fa10624 loop 073d1h ; e2 fa 10605 10625 mov dx, si ; 89 f2 10606 10626 out DX, AL ; ee … … 10608 10628 movzx ax, byte [bp+008h] ; 0f b6 46 08 10609 10629 cmp bx, ax ; 39 c3 10610 jnc short 073 86h ; 73 0e10630 jnc short 073f2h ; 73 0e 10611 10631 les di, [bp-006h] ; c4 7e fa 10612 10632 add di, bx ; 01 df … … 10615 10635 out DX, AL ; ee 10616 10636 inc bx ; 43 10617 jmp short 073 70h ; eb ea10637 jmp short 073dch ; eb ea 10618 10638 mov dx, si ; 89 f2 10619 10639 in AL, DX ; ec … … 10621 10641 ; sub ah, ah ; 2a e4 10622 10642 test AL, strict byte 001h ; a8 01 10623 jne short 073 86h ; 75 f710643 jne short 073f2h ; 75 f7 10624 10644 lea dx, [si+001h] ; 8d 54 01 10625 10645 mov cx, word [bp+00eh] ; 8b 4e 0e … … 10631 10651 pop si ; 5e 10632 10652 retn 0000ah ; c2 0a 00 10633 scsi_cmd_data_out_: ; 0xf7 3a2LB 0x8910653 scsi_cmd_data_out_: ; 0xf740e LB 0x89 10634 10654 push si ; 56 10635 10655 push di ; 57 … … 10644 10664 ; sub ah, ah ; 2a e4 10645 10665 test AL, strict byte 001h ; a8 01 10646 jne short 07 3b3h ; 75 f710666 jne short 0741fh ; 75 f7 10647 10667 mov ax, word [bp+00eh] ; 8b 46 0e 10648 10668 mov dx, word [bp+010h] ; 8b 56 10 … … 10650 10670 shr dx, 1 ; d1 ea 10651 10671 rcr ax, 1 ; d1 d8 10652 loop 07 3c5h ; e2 fa10672 loop 07431h ; e2 fa 10653 10673 and ax, 000f0h ; 25 f0 00 10654 10674 movzx bx, byte [bp+008h] ; 0f b6 5e 08 … … 10668 10688 shr dx, 1 ; d1 ea 10669 10689 rcr ax, 1 ; d1 d8 10670 loop 07 3edh ; e2 fa10690 loop 07459h ; e2 fa 10671 10691 mov dx, di ; 89 fa 10672 10692 out DX, AL ; ee … … 10674 10694 movzx ax, byte [bp+008h] ; 0f b6 46 08 10675 10695 cmp bx, ax ; 39 c3 10676 jnc short 074 0eh ; 73 0e10696 jnc short 0747ah ; 73 0e 10677 10697 les si, [bp-006h] ; c4 76 fa 10678 10698 add si, bx ; 01 de … … 10681 10701 out DX, AL ; ee 10682 10702 inc bx ; 43 10683 jmp short 07 3f8h ; eb ea10703 jmp short 07464h ; eb ea 10684 10704 lea dx, [di+001h] ; 8d 55 01 10685 10705 mov cx, word [bp+00eh] ; 8b 4e 0e … … 10692 10712 ; sub ah, ah ; 2a e4 10693 10713 test AL, strict byte 001h ; a8 01 10694 jne short 074 1ah ; 75 f710714 jne short 07486h ; 75 f7 10695 10715 xor ax, ax ; 31 c0 10696 10716 leave ; c9 … … 10698 10718 pop si ; 5e 10699 10719 retn 0000ah ; c2 0a 00 10700 @scsi_read_sectors: ; 0xf74 2bLB 0xb110720 @scsi_read_sectors: ; 0xf7497 LB 0xb1 10701 10721 push si ; 56 10702 10722 push di ; 57 … … 10707 10727 sub bl, 008h ; 80 eb 08 10708 10728 cmp bl, 004h ; 80 fb 04 10709 jbe short 074 52h ; 76 0f10729 jbe short 074beh ; 76 0f 10710 10730 movzx ax, bl ; 0f b6 c3 10711 10731 push ax ; 50 10712 10732 push 00a9eh ; 68 9e 0a 10713 10733 push strict byte 00007h ; 6a 07 10714 call 018e9h ; e8 9aa410734 call 018e9h ; e8 2e a4 10715 10735 add sp, strict byte 00006h ; 83 c4 06 10716 10736 mov es, [bp+00ah] ; 8e 46 0a … … 10739 10759 sal word [bp-004h], 1 ; d1 66 fc 10740 10760 rcl word [bp-002h], 1 ; d1 56 fe 10741 loop 07 49bh ; e2 f810761 loop 07507h ; e2 f8 10742 10762 push dword [bp-004h] ; 66 ff 76 fc 10743 10763 db 066h, 026h, 0ffh, 074h, 004h … … 10747 10767 mov cx, ss ; 8c d1 10748 10768 lea bx, [bp-00eh] ; 8d 5e f2 10749 call 073 1ah ; e8 62 fe10769 call 07386h ; e8 62 fe 10750 10770 mov ah, al ; 88 c4 10751 10771 test al, al ; 84 c0 10752 jne short 07 4d3h ; 75 1510772 jne short 0753fh ; 75 15 10753 10773 mov es, [bp+00ah] ; 8e 46 0a 10754 10774 mov word [es:si+014h], di ; 26 89 7c 14 … … 10762 10782 pop si ; 5e 10763 10783 retn 00004h ; c2 04 00 10764 @scsi_write_sectors: ; 0xf7 4dcLB 0xb110784 @scsi_write_sectors: ; 0xf7548 LB 0xb1 10765 10785 push si ; 56 10766 10786 push di ; 57 … … 10771 10791 sub bl, 008h ; 80 eb 08 10772 10792 cmp bl, 004h ; 80 fb 04 10773 jbe short 075 03h ; 76 0f10793 jbe short 0756fh ; 76 0f 10774 10794 movzx ax, bl ; 0f b6 c3 10775 10795 push ax ; 50 10776 10796 push 00acch ; 68 cc 0a 10777 10797 push strict byte 00007h ; 6a 07 10778 call 018e9h ; e8 e9a310798 call 018e9h ; e8 7d a3 10779 10799 add sp, strict byte 00006h ; 83 c4 06 10780 10800 mov es, [bp+00ah] ; 8e 46 0a … … 10803 10823 sal word [bp-004h], 1 ; d1 66 fc 10804 10824 rcl word [bp-002h], 1 ; d1 56 fe 10805 loop 075 4ch ; e2 f810825 loop 075b8h ; e2 f8 10806 10826 push dword [bp-004h] ; 66 ff 76 fc 10807 10827 db 066h, 026h, 0ffh, 074h, 004h … … 10811 10831 mov cx, ss ; 8c d1 10812 10832 lea bx, [bp-00eh] ; 8d 5e f2 10813 call 07 3a2h ; e8 39 fe10833 call 0740eh ; e8 39 fe 10814 10834 mov ah, al ; 88 c4 10815 10835 test al, al ; 84 c0 10816 jne short 075 84h ; 75 1510836 jne short 075f0h ; 75 15 10817 10837 mov es, [bp+00ah] ; 8e 46 0a 10818 10838 mov word [es:si+014h], di ; 26 89 7c 14 … … 10826 10846 pop si ; 5e 10827 10847 retn 00004h ; c2 04 00 10828 scsi_cmd_packet_: ; 0xf75 8dLB 0x16110848 scsi_cmd_packet_: ; 0xf75f9 LB 0x161 10829 10849 push si ; 56 10830 10850 push di ; 57 … … 10836 10856 mov dx, strict word 0000eh ; ba 0e 00 10837 10857 mov ax, strict word 00040h ; b8 40 00 10838 call 0161ch ; e8 75a010858 call 0161ch ; e8 09 a0 10839 10859 mov si, 00122h ; be 22 01 10840 10860 mov word [bp-00ah], ax ; 89 46 f6 10841 10861 cmp byte [bp+00eh], 002h ; 80 7e 0e 02 10842 jne short 07 5d2h ; 75 1f10862 jne short 0763eh ; 75 1f 10843 10863 mov bx, 00d32h ; bb 32 0d 10844 10864 mov cx, ds ; 8c d9 10845 10865 mov ax, strict word 00004h ; b8 04 00 10846 call 018aeh ; e8 f0a210866 call 018aeh ; e8 84 a2 10847 10867 push 00afbh ; 68 fb 0a 10848 10868 push 00b0bh ; 68 0b 0b 10849 10869 push strict byte 00004h ; 6a 04 10850 call 018e9h ; e8 20 a310870 call 018e9h ; e8 b4 a2 10851 10871 add sp, strict byte 00006h ; 83 c4 06 10852 10872 mov dx, strict word 00001h ; ba 01 00 10853 jmp near 07 6e6h ; e9 14 0110873 jmp near 07752h ; e9 14 01 10854 10874 sub di, strict byte 00008h ; 83 ef 08 10855 10875 sal di, 002h ; c1 e7 02 … … 10865 10885 ; sub ah, ah ; 2a e4 10866 10886 test AL, strict byte 001h ; a8 01 10867 jne short 07 5eeh ; 75 f710887 jne short 0765ah ; 75 f7 10868 10888 xor ax, ax ; 31 c0 10869 10889 mov dx, word [bp+00ah] ; 8b 56 0a … … 10881 10901 shr dx, 1 ; d1 ea 10882 10902 rcr ax, 1 ; d1 d8 10883 loop 076 19h ; e2 fa10903 loop 07685h ; e2 fa 10884 10904 and ax, 000f0h ; 25 f0 00 10885 10905 movzx cx, byte [bp-002h] ; 0f b6 4e fe … … 10899 10919 shr dx, 1 ; d1 ea 10900 10920 rcr ax, 1 ; d1 d8 10901 loop 076 40h ; e2 fa10921 loop 076ach ; e2 fa 10902 10922 mov dx, bx ; 89 da 10903 10923 out DX, AL ; ee … … 10905 10925 movzx ax, byte [bp-002h] ; 0f b6 46 fe 10906 10926 cmp cx, ax ; 39 c1 10907 jnc short 076 61h ; 73 0e10927 jnc short 076cdh ; 73 0e 10908 10928 les di, [bp-008h] ; c4 7e f8 10909 10929 add di, cx ; 01 cf … … 10912 10932 out DX, AL ; ee 10913 10933 inc cx ; 41 10914 jmp short 076 4bh ; eb ea10934 jmp short 076b7h ; eb ea 10915 10935 mov dx, bx ; 89 da 10916 10936 in AL, DX ; ec … … 10918 10938 ; sub ah, ah ; 2a e4 10919 10939 test AL, strict byte 001h ; a8 01 10920 jne short 076 61h ; 75 f710940 jne short 076cdh ; 75 f7 10921 10941 test AL, strict byte 002h ; a8 02 10922 je short 076 7ch ; 74 0e10942 je short 076e8h ; 74 0e 10923 10943 lea dx, [bx+003h] ; 8d 57 03 10924 10944 xor al, al ; 30 c0 … … 10928 10948 ; sub ah, ah ; 2a e4 10929 10949 mov dx, strict word 00003h ; ba 03 00 10930 jmp short 07 6e6h ; eb 6a10950 jmp short 07752h ; eb 6a 10931 10951 mov ax, word [bp+008h] ; 8b 46 08 10932 10952 test ax, ax ; 85 c0 10933 je short 076 8bh ; 74 0810953 je short 076f7h ; 74 08 10934 10954 lea dx, [bx+001h] ; 8d 57 01 10935 10955 mov cx, ax ; 89 c1 10936 10956 in AL, DX ; ec 10937 loop 076 88h ; e2 fd10957 loop 076f4h ; e2 fd 10938 10958 mov ax, word [bp+00ah] ; 8b 46 0a 10939 10959 mov es, [bp-00ah] ; 8e 46 f6 … … 10943 10963 lea ax, [bx+001h] ; 8d 47 01 10944 10964 cmp word [bp+00ch], strict byte 00000h ; 83 7e 0c 00 10945 jne short 07 6ach ; 75 0710965 jne short 07718h ; 75 07 10946 10966 cmp word [bp+00ah], 08000h ; 81 7e 0a 00 80 10947 jbe short 07 6c9h ; 76 1d10967 jbe short 07735h ; 76 1d 10948 10968 mov dx, ax ; 89 c2 10949 10969 mov cx, 08000h ; b9 00 80 … … 10955 10975 add ax, 00800h ; 05 00 08 10956 10976 mov word [bp+012h], ax ; 89 46 12 10957 jmp short 07 69ch ; eb d310977 jmp short 07708h ; eb d3 10958 10978 mov dx, ax ; 89 c2 10959 10979 mov cx, word [bp+00ah] ; 8b 4e 0a … … 10962 10982 mov es, [bp-00ah] ; 8e 46 f6 10963 10983 cmp word [es:si+01ch], strict byte 00000h ; 26 83 7c 1c 00 10964 je short 07 6e4h ; 74 0710984 je short 07750h ; 74 07 10965 10985 mov cx, word [es:si+01ch] ; 26 8b 4c 1c 10966 10986 in AL, DX ; ec 10967 loop 07 6e1h ; e2 fd10987 loop 0774dh ; e2 fd 10968 10988 xor dx, dx ; 31 d2 10969 10989 mov ax, dx ; 89 d0 … … 10972 10992 pop si ; 5e 10973 10993 retn 0000ch ; c2 0c 00 10974 scsi_enumerate_attached_devices_: ; 0xf7 6eeLB 0x36d10994 scsi_enumerate_attached_devices_: ; 0xf775a LB 0x36d 10975 10995 push bx ; 53 10976 10996 push cx ; 51 … … 10982 11002 mov dx, strict word 0000eh ; ba 0e 00 10983 11003 mov ax, strict word 00040h ; b8 40 00 10984 call 0161ch ; e8 1b 9f11004 call 0161ch ; e8 af 9e 10985 11005 mov si, 00122h ; be 22 01 10986 11006 mov word [bp-008h], ax ; 89 46 f8 10987 11007 mov word [bp-00ah], strict word 00000h ; c7 46 f6 00 00 10988 jmp near 07 9ech ; e9 dd 0211008 jmp near 07a58h ; e9 dd 02 10989 11009 mov es, [bp-008h] ; 8e 46 f8 10990 11010 cmp byte [es:si+001e8h], 004h ; 26 80 bc e8 01 04 10991 jnc near 07a 54h ; 0f 83 38 0311011 jnc near 07ac0h ; 0f 83 38 03 10992 11012 mov cx, strict word 0000ah ; b9 0a 00 10993 11013 xor bx, bx ; 31 db 10994 11014 mov dx, ss ; 8c d2 10995 11015 lea ax, [bp-01eh] ; 8d 46 e2 10996 call 090 1ah ; e8 f11811016 call 0907ah ; e8 e5 18 10997 11017 mov byte [bp-01eh], 025h ; c6 46 e2 25 10998 11018 push dword 000000008h ; 66 6a 08 … … 11005 11025 lea bx, [bp-01eh] ; 8d 5e e2 11006 11026 mov ax, word [bp-00220h] ; 8b 86 e0 fd 11007 call 073 1ah ; e8 d2 fb11027 call 07386h ; e8 d2 fb 11008 11028 test al, al ; 84 c0 11009 je short 077 5ah ; 74 0e11029 je short 077c6h ; 74 0e 11010 11030 push 00b2bh ; 68 2b 0b 11011 11031 push 00b64h ; 68 64 0b 11012 11032 push strict byte 00007h ; 6a 07 11013 call 018e9h ; e8 92a111033 call 018e9h ; e8 26 a1 11014 11034 add sp, strict byte 00006h ; 83 c4 06 11015 11035 movzx dx, byte [bp-0021dh] ; 0f b6 96 e3 fd … … 11023 11043 sal ax, 1 ; d1 e0 11024 11044 rcl dx, 1 ; d1 d2 11025 loop 077 75h ; e2 fa11045 loop 077e1h ; e2 fa 11026 11046 or ax, bx ; 09 d8 11027 11047 or di, dx ; 09 d7 … … 11039 11059 sal ax, 1 ; d1 e0 11040 11060 rcl dx, 1 ; d1 d2 11041 loop 07 7a5h ; e2 fa11061 loop 07811h ; e2 fa 11042 11062 or bx, ax ; 09 c3 11043 11063 or dx, word [bp-014h] ; 0b 56 ec … … 11046 11066 mov word [bp-004h], bx ; 89 5e fc 11047 11067 test dx, dx ; 85 d2 11048 jne short 07 7c4h ; 75 0611068 jne short 07830h ; 75 06 11049 11069 cmp bx, 00200h ; 81 fb 00 02 11050 je short 07 7e4h ; 74 2011070 je short 07850h ; 74 20 11051 11071 mov bx, 00d32h ; bb 32 0d 11052 11072 mov cx, ds ; 8c d9 11053 11073 mov ax, strict word 00004h ; b8 04 00 11054 call 018aeh ; e8 dfa011074 call 018aeh ; e8 73 a0 11055 11075 push dx ; 52 11056 11076 push word [bp-004h] ; ff 76 fc … … 11058 11078 push 00b83h ; 68 83 0b 11059 11079 push strict byte 00004h ; 6a 04 11060 call 018e9h ; e8 0b a111080 call 018e9h ; e8 9f a0 11061 11081 add sp, strict byte 0000ah ; 83 c4 0a 11062 jmp near 07 9e3h ; e9 ff 0111082 jmp near 07a4fh ; e9 ff 01 11063 11083 cmp di, strict byte 00040h ; 83 ff 40 11064 jnbe short 07 7ebh ; 77 0211065 jne short 07 7f5h ; 75 0a11084 jnbe short 07857h ; 77 02 11085 jne short 07861h ; 75 0a 11066 11086 mov dword [bp-00eh], strict dword 000ff003fh ; 66 c7 46 f2 3f 00 ff 00 11067 jmp short 078 0eh ; eb 1911087 jmp short 0787ah ; eb 19 11068 11088 cmp di, strict byte 00020h ; 83 ff 20 11069 jnbe short 07 7fch ; 77 0211070 jne short 078 06h ; 75 0a11089 jnbe short 07868h ; 77 02 11090 jne short 07872h ; 75 0a 11071 11091 mov dword [bp-00eh], strict dword 000800020h ; 66 c7 46 f2 20 00 80 00 11072 jmp short 078 0eh ; eb 0811092 jmp short 0787ah ; eb 08 11073 11093 mov dword [bp-00eh], strict dword 000400020h ; 66 c7 46 f2 20 00 40 00 11074 11094 mov bx, word [bp-00ch] ; 8b 5e f4 … … 11077 11097 mov dx, di ; 89 fa 11078 11098 xor cx, cx ; 31 c9 11079 call 0 8fb0h ; e8 911711099 call 09010h ; e8 85 17 11080 11100 mov word [bp-012h], ax ; 89 46 ee 11081 11101 mov word [bp-010h], dx ; 89 56 f0 … … 11106 11126 mov word [es:bx+02ah], ax ; 26 89 47 2a 11107 11127 cmp word [bp-010h], strict byte 00000h ; 83 7e f0 00 11108 jne short 078 88h ; 75 0711128 jne short 078f4h ; 75 07 11109 11129 cmp word [bp-012h], 00400h ; 81 7e ee 00 04 11110 jbe short 078 90h ; 76 0811130 jbe short 078fch ; 76 08 11111 11131 mov word [es:bx+028h], 00400h ; 26 c7 47 28 00 04 11112 jmp short 07 897h ; eb 0711132 jmp short 07903h ; eb 07 11113 11133 mov ax, word [bp-012h] ; 8b 46 ee 11114 11134 mov word [es:bx+028h], ax ; 26 89 47 28 … … 11116 11136 mov cx, ds ; 8c d9 11117 11137 mov ax, strict word 00004h ; b8 04 00 11118 call 018aeh ; e8 0c a011138 call 018aeh ; e8 a0 9f 11119 11139 push di ; 57 11120 11140 push word [bp-006h] ; ff 76 fa … … 11127 11147 push 00bb1h ; 68 b1 0b 11128 11148 push strict byte 00004h ; 6a 04 11129 call 018e9h ; e8 2a a011149 call 018e9h ; e8 be 9f 11130 11150 add sp, strict byte 00012h ; 83 c4 12 11131 11151 movzx ax, dl ; 0f b6 c2 … … 11139 11159 mov word [es:bx+030h], ax ; 26 89 47 30 11140 11160 cmp word [bp-010h], strict byte 00000h ; 83 7e f0 00 11141 jne short 07 8eah ; 75 0711161 jne short 07956h ; 75 07 11142 11162 cmp word [bp-012h], 00400h ; 81 7e ee 00 04 11143 jbe short 07 8f2h ; 76 0811163 jbe short 0795eh ; 76 08 11144 11164 mov word [es:bx+02eh], 00400h ; 26 c7 47 2e 00 04 11145 jmp short 07 8f9h ; eb 0711165 jmp short 07965h ; eb 07 11146 11166 mov ax, word [bp-012h] ; 8b 46 ee 11147 11167 mov word [es:bx+02eh], ax ; 26 89 47 2e … … 11165 11185 mov dx, strict word 00075h ; ba 75 00 11166 11186 mov ax, strict word 00040h ; b8 40 00 11167 call 01600h ; e8 ca9c11187 call 01600h ; e8 5e 9c 11168 11188 db 0feh, 0c0h 11169 11189 ; inc al ; fe c0 … … 11171 11191 mov dx, strict word 00075h ; ba 75 00 11172 11192 mov ax, strict word 00040h ; b8 40 00 11173 call 0160eh ; e8 ca9c11193 call 0160eh ; e8 5e 9c 11174 11194 inc byte [bp-002h] ; fe 46 fe 11175 11195 mov al, byte [bp-002h] ; 8a 46 fe 11176 11196 mov es, [bp-008h] ; 8e 46 f8 11177 11197 mov byte [es:si+001e8h], al ; 26 88 84 e8 01 11178 jmp near 07 9e3h ; e9 8e 0011198 jmp near 07a4fh ; e9 8e 00 11179 11199 mov bx, 00d32h ; bb 32 0d 11180 11200 mov cx, ds ; 8c d9 11181 11201 mov ax, strict word 00004h ; b8 04 00 11182 call 018aeh ; e8 4e 9f11202 call 018aeh ; e8 e2 9e 11183 11203 push word [bp-00ah] ; ff 76 f6 11184 11204 movzx ax, byte [bp-002h] ; 0f b6 46 fe … … 11186 11206 push 00bdbh ; 68 db 0b 11187 11207 push strict byte 00004h ; 6a 04 11188 call 018e9h ; e8 799f11208 call 018e9h ; e8 0d 9f 11189 11209 add sp, strict byte 00008h ; 83 c4 08 11190 11210 mov dl, byte [bp-002h] ; 8a 56 fe … … 11224 11244 inc word [bp-00ah] ; ff 46 f6 11225 11245 cmp word [bp-00ah], strict byte 00010h ; 83 7e f6 10 11226 jnl short 07a 54h ; 7d 6811246 jnl short 07ac0h ; 7d 68 11227 11247 mov byte [bp-01eh], 012h ; c6 46 e2 12 11228 11248 xor al, al ; 30 c0 … … 11241 11261 lea bx, [bp-01eh] ; 8d 5e e2 11242 11262 mov ax, word [bp-00220h] ; 8b 86 e0 fd 11243 call 073 1ah ; e8 fd f811263 call 07386h ; e8 fd f8 11244 11264 test al, al ; 84 c0 11245 je short 07a 2fh ; 74 0e11265 je short 07a9bh ; 74 0e 11246 11266 push 00b2bh ; 68 2b 0b 11247 11267 push 00b4bh ; 68 4b 0b 11248 11268 push strict byte 00007h ; 6a 07 11249 call 018e9h ; e8 bd9e11269 call 018e9h ; e8 51 9e 11250 11270 add sp, strict byte 00006h ; 83 c4 06 11251 11271 test byte [bp-0021eh], 0e0h ; f6 86 e2 fd e0 11252 jne short 07a 3fh ; 75 0911272 jne short 07aabh ; 75 09 11253 11273 test byte [bp-0021eh], 01fh ; f6 86 e2 fd 1f 11254 je near 077 0fh ; 0f 84 d0 fc11274 je near 0777bh ; 0f 84 d0 fc 11255 11275 test byte [bp-0021eh], 0e0h ; f6 86 e2 fd e0 11256 jne short 07 9e3h ; 75 9d11276 jne short 07a4fh ; 75 9d 11257 11277 mov al, byte [bp-0021eh] ; 8a 86 e2 fd 11258 11278 and AL, strict byte 01fh ; 24 1f 11259 11279 cmp AL, strict byte 005h ; 3c 05 11260 je near 079 55h ; 0f 84 03 ff11261 jmp short 07 9e3h ; eb 8f11280 je near 079c1h ; 0f 84 03 ff 11281 jmp short 07a4fh ; eb 8f 11262 11282 leave ; c9 11263 11283 pop di ; 5f … … 11267 11287 pop bx ; 5b 11268 11288 retn ; c3 11269 _scsi_init: ; 0xf7a 5bLB 0x6411289 _scsi_init: ; 0xf7ac7 LB 0x64 11270 11290 push bp ; 55 11271 11291 mov bp, sp ; 89 e5 11272 11292 mov dx, strict word 0000eh ; ba 0e 00 11273 11293 mov ax, strict word 00040h ; b8 40 00 11274 call 0161ch ; e8 b59b11294 call 0161ch ; e8 49 9b 11275 11295 mov bx, 00122h ; bb 22 01 11276 11296 mov es, ax ; 8e c0 … … 11283 11303 ; sub ah, ah ; 2a e4 11284 11304 cmp AL, strict byte 055h ; 3c 55 11285 jne short 07a 8bh ; 75 0c11305 jne short 07af7h ; 75 0c 11286 11306 xor al, al ; 30 c0 11287 11307 mov dx, 00433h ; ba 33 04 11288 11308 out DX, AL ; ee 11289 11309 mov ax, 00430h ; b8 30 04 11290 call 07 6eeh ; e8 63 fc11310 call 0775ah ; e8 63 fc 11291 11311 mov AL, strict byte 055h ; b0 55 11292 11312 mov dx, 00436h ; ba 36 04 … … 11296 11316 ; sub ah, ah ; 2a e4 11297 11317 cmp AL, strict byte 055h ; 3c 55 11298 jne short 07 aa4h ; 75 0c11318 jne short 07b10h ; 75 0c 11299 11319 xor al, al ; 30 c0 11300 11320 mov dx, 00437h ; ba 37 04 11301 11321 out DX, AL ; ee 11302 11322 mov ax, 00434h ; b8 34 04 11303 call 07 6eeh ; e8 4a fc11323 call 0775ah ; e8 4a fc 11304 11324 mov AL, strict byte 055h ; b0 55 11305 11325 mov dx, 0043ah ; ba 3a 04 … … 11309 11329 ; sub ah, ah ; 2a e4 11310 11330 cmp AL, strict byte 055h ; 3c 55 11311 jne short 07 abdh ; 75 0c11331 jne short 07b29h ; 75 0c 11312 11332 xor al, al ; 30 c0 11313 11333 mov dx, 0043bh ; ba 3b 04 11314 11334 out DX, AL ; ee 11315 11335 mov ax, 00438h ; b8 38 04 11316 call 07 6eeh ; e8 31 fc11336 call 0775ah ; e8 31 fc 11317 11337 pop bp ; 5d 11318 11338 retn ; c3 11319 high_bits_save_: ; 0xf7 abfLB 0x1411339 high_bits_save_: ; 0xf7b2b LB 0x14 11320 11340 push bx ; 53 11321 11341 push bp ; 55 … … 11328 11348 pop bx ; 5b 11329 11349 retn ; c3 11330 high_bits_restore_: ; 0xf7 ad3LB 0x1411350 high_bits_restore_: ; 0xf7b3f LB 0x14 11331 11351 push bx ; 53 11332 11352 push bp ; 55 … … 11339 11359 pop bx ; 5b 11340 11360 retn ; c3 11341 ahci_ctrl_set_bits_: ; 0xf7 ae7LB 0x4011361 ahci_ctrl_set_bits_: ; 0xf7b53 LB 0x40 11342 11362 push si ; 56 11343 11363 push di ; 57 … … 11374 11394 pop si ; 5e 11375 11395 retn ; c3 11376 ahci_ctrl_clear_bits_: ; 0xf7b 27LB 0x4411396 ahci_ctrl_clear_bits_: ; 0xf7b93 LB 0x44 11377 11397 push si ; 56 11378 11398 push di ; 57 … … 11411 11431 pop si ; 5e 11412 11432 retn ; c3 11413 ahci_ctrl_is_bit_set_: ; 0xf7b 6bLB 0x3611433 ahci_ctrl_is_bit_set_: ; 0xf7bd7 LB 0x36 11414 11434 push si ; 56 11415 11435 push di ; 57 … … 11433 11453 xchg dx, ax ; 92 11434 11454 test dx, di ; 85 fa 11435 jne short 07 b97h ; 75 0411455 jne short 07c03h ; 75 04 11436 11456 test ax, bx ; 85 d8 11437 je short 07 b9bh ; 74 0411457 je short 07c07h ; 74 04 11438 11458 mov AL, strict byte 001h ; b0 01 11439 jmp short 07 b9dh ; eb 0211459 jmp short 07c09h ; eb 02 11440 11460 xor al, al ; 30 c0 11441 11461 pop bp ; 5d … … 11443 11463 pop si ; 5e 11444 11464 retn ; c3 11445 ahci_ctrl_extract_bits_: ; 0xf7 ba1LB 0x1b11465 ahci_ctrl_extract_bits_: ; 0xf7c0d LB 0x1b 11446 11466 push si ; 56 11447 11467 push bp ; 55 … … 11451 11471 and dx, cx ; 21 ca 11452 11472 movzx cx, byte [bp+006h] ; 0f b6 4e 06 11453 jcxz 07 bb7h ; e3 0611473 jcxz 07c23h ; e3 06 11454 11474 shr dx, 1 ; d1 ea 11455 11475 rcr ax, 1 ; d1 d8 11456 loop 07 bb1h ; e2 fa11476 loop 07c1dh ; e2 fa 11457 11477 pop bp ; 5d 11458 11478 pop si ; 5e 11459 11479 retn 00002h ; c2 02 00 11460 ahci_addr_to_phys_: ; 0xf7 bbcLB 0x1e11480 ahci_addr_to_phys_: ; 0xf7c28 LB 0x1e 11461 11481 push bx ; 53 11462 11482 push cx ; 51 … … 11469 11489 sal ax, 1 ; d1 e0 11470 11490 rcl dx, 1 ; d1 d2 11471 loop 07 bcah ; e2 fa11491 loop 07c36h ; e2 fa 11472 11492 xor cx, cx ; 31 c9 11473 11493 add ax, bx ; 01 d8 … … 11477 11497 pop bx ; 5b 11478 11498 retn ; c3 11479 ahci_port_cmd_sync_: ; 0xf7 bdaLB 0xd011499 ahci_port_cmd_sync_: ; 0xf7c46 LB 0xd0 11480 11500 push cx ; 51 11481 11501 push si ; 56 … … 11489 11509 mov di, word [es:si+00260h] ; 26 8b bc 60 02 11490 11510 cmp AL, strict byte 0ffh ; 3c ff 11491 je near 07 ca5h ; 0f 84 aa 0011511 je near 07d11h ; 0f 84 aa 00 11492 11512 movzx cx, byte [es:si+00263h] ; 26 0f b6 8c 63 02 11493 11513 xor dx, dx ; 31 d2 … … 11501 11521 lea ax, [si+00080h] ; 8d 84 80 00 11502 11522 mov dx, es ; 8c c2 11503 call 07 bbch ; e8 98 ff11523 call 07c28h ; e8 98 ff 11504 11524 mov es, [bp-004h] ; 8e 46 fc 11505 11525 mov word [es:si+008h], ax ; 26 89 44 08 … … 11511 11531 xor cx, cx ; 31 c9 11512 11532 mov ax, di ; 89 f8 11513 call 07 ae7h ; e8 a3 fe11533 call 07b53h ; e8 a3 fe 11514 11534 lea ax, [si+00138h] ; 8d 84 38 01 11515 11535 cwd ; 99 … … 11538 11558 mov dx, si ; 89 f2 11539 11559 mov ax, di ; 89 f8 11540 call 07b 6bh ; e8 e7 fe11560 call 07bd7h ; e8 e7 fe 11541 11561 test al, al ; 84 c0 11542 je short 07c 67h ; 74 df11562 je short 07cd3h ; 74 df 11543 11563 mov bx, strict word 00001h ; bb 01 00 11544 11564 xor cx, cx ; 31 c9 11545 11565 mov dx, si ; 89 f2 11546 11566 mov ax, di ; 89 f8 11547 call 07 ae7h ; e8 53 fe11567 call 07b53h ; e8 53 fe 11548 11568 mov dx, word [bp-006h] ; 8b 56 fa 11549 11569 add dx, 00118h ; 81 c2 18 01 … … 11551 11571 xor cx, cx ; 31 c9 11552 11572 mov ax, di ; 89 f8 11553 call 07b 27h ; e8 82 fe11573 call 07b93h ; e8 82 fe 11554 11574 leave ; c9 11555 11575 pop di ; 5f … … 11557 11577 pop cx ; 59 11558 11578 retn ; c3 11559 ahci_cmd_data_: ; 0xf7 caaLB 0x1c511579 ahci_cmd_data_: ; 0xf7d16 LB 0x1c5 11560 11580 push cx ; 51 11561 11581 push si ; 56 … … 11579 11599 mov ax, 00080h ; b8 80 00 11580 11600 mov dx, word [bp-004h] ; 8b 56 fc 11581 call 090 1ah ; e8 331311601 call 0907ah ; e8 27 13 11582 11602 mov es, [bp-004h] ; 8e 46 fc 11583 11603 mov word [es:si+00080h], 08027h ; 26 c7 84 80 00 27 80 … … 11595 11615 shr bx, 1 ; d1 eb 11596 11616 rcr ax, 1 ; d1 d8 11597 loop 07d 1ah ; e2 fa11617 loop 07d86h ; e2 fa 11598 11618 mov es, [bp-004h] ; 8e 46 fc 11599 11619 mov byte [es:si+00085h], al ; 26 88 84 85 00 … … 11620 11640 mov bx, word [bp-010h] ; 8b 5e f0 11621 11641 xor cx, cx ; 31 c9 11622 call 0 8fe9h ; e8 661211642 call 09049h ; e8 5a 12 11623 11643 push dx ; 52 11624 11644 push ax ; 50 … … 11628 11648 mov ax, 0026ah ; b8 6a 02 11629 11649 mov dx, word [bp-004h] ; 8b 56 fc 11630 call 08 effh ; e8 66 1111650 call 08f6bh ; e8 66 11 11631 11651 mov es, [bp-004h] ; 8e 46 fc 11632 11652 movzx ax, byte [es:si+00263h] ; 26 0f b6 84 63 02 … … 11648 11668 mov es, [bp-00ch] ; 8e 46 f4 11649 11669 cmp word [es:di+01ch], strict byte 00000h ; 26 83 7d 1c 00 11650 je short 07e 12h ; 74 2c11670 je short 07e7eh ; 74 2c 11651 11671 mov dx, word [es:di+01ch] ; 26 8b 55 1c 11652 11672 dec dx ; 4a … … 11667 11687 movzx dx, byte [es:bx+00263h] ; 26 0f b6 97 63 02 11668 11688 cmp ax, dx ; 39 d0 11669 jnc short 07e 2ch ; 73 0311689 jnc short 07e98h ; 73 03 11670 11690 inc ax ; 40 11671 jmp short 07e 1ch ; eb f011691 jmp short 07e88h ; eb f0 11672 11692 mov al, byte [bp-002h] ; 8a 46 fe 11673 11693 cmp AL, strict byte 035h ; 3c 35 11674 jne short 07e 39h ; 75 0611694 jne short 07ea5h ; 75 06 11675 11695 mov byte [bp-002h], 040h ; c6 46 fe 40 11676 jmp short 07e 4dh ; eb 1411696 jmp short 07eb9h ; eb 14 11677 11697 cmp AL, strict byte 0a0h ; 3c a0 11678 jne short 07e 49h ; 75 0c11698 jne short 07eb5h ; 75 0c 11679 11699 or byte [bp-002h], 020h ; 80 4e fe 20 11680 11700 or byte [es:bx+00083h], 001h ; 26 80 8f 83 00 01 11681 jmp short 07e 4dh ; eb 0411701 jmp short 07eb9h ; eb 04 11682 11702 mov byte [bp-002h], 000h ; c6 46 fe 00 11683 11703 or byte [bp-002h], 005h ; 80 4e fe 05 … … 11685 11705 mov ax, word [bp-008h] ; 8b 46 f8 11686 11706 mov dx, word [bp-006h] ; 8b 56 fa 11687 call 07 bdah ; e8 7c fd11707 call 07c46h ; e8 7c fd 11688 11708 mov ax, word [bp-008h] ; 8b 46 f8 11689 11709 add ax, 0026ah ; 05 6a 02 11690 11710 mov dx, word [bp-006h] ; 8b 56 fa 11691 call 08f 75h ; e8 0b 1111711 call 08fe1h ; e8 0b 11 11692 11712 leave ; c9 11693 11713 pop di ; 5f … … 11695 11715 pop cx ; 59 11696 11716 retn ; c3 11697 ahci_port_deinit_current_: ; 0xf7e 6fLB 0x13f11717 ahci_port_deinit_current_: ; 0xf7edb LB 0x13f 11698 11718 push bx ; 53 11699 11719 push cx ; 51 … … 11708 11728 mov byte [bp-002h], al ; 88 46 fe 11709 11729 cmp AL, strict byte 0ffh ; 3c ff 11710 je near 0 7fa8h ; 0f 84 17 0111730 je near 08014h ; 0f 84 17 01 11711 11731 movzx dx, al ; 0f b6 d0 11712 11732 sal dx, 007h ; c1 e2 07 … … 11715 11735 xor cx, cx ; 31 c9 11716 11736 mov ax, si ; 89 f0 11717 call 07b 27h ; e8 82 fc11737 call 07b93h ; e8 82 fc 11718 11738 movzx ax, byte [bp-002h] ; 0f b6 46 fe 11719 11739 sal ax, 007h ; c1 e0 07 … … 11724 11744 xor cx, cx ; 31 c9 11725 11745 mov ax, si ; 89 f0 11726 call 07b 6bh ; e8 ac fc11746 call 07bd7h ; e8 ac fc 11727 11747 cmp AL, strict byte 001h ; 3c 01 11728 je short 07 ea5h ; 74 e211748 je short 07f11h ; 74 e2 11729 11749 mov cx, strict word 00020h ; b9 20 00 11730 11750 xor bx, bx ; 31 db 11731 11751 mov ax, di ; 89 f8 11732 11752 mov dx, word [bp-004h] ; 8b 56 fc 11733 call 090 1ah ; e8 4a1111753 call 0907ah ; e8 3e 11 11734 11754 lea ax, [di+00080h] ; 8d 85 80 00 11735 11755 mov cx, strict word 00040h ; b9 40 00 11736 11756 xor bx, bx ; 31 db 11737 11757 mov dx, word [bp-004h] ; 8b 56 fc 11738 call 090 1ah ; e8 3b1111758 call 0907ah ; e8 2f 11 11739 11759 lea ax, [di+00200h] ; 8d 85 00 02 11740 11760 mov cx, strict word 00060h ; b9 60 00 11741 11761 xor bx, bx ; 31 db 11742 11762 mov dx, word [bp-004h] ; 8b 56 fc 11743 call 090 1ah ; e8 2c1111763 call 0907ah ; e8 20 11 11744 11764 mov ax, word [bp-006h] ; 8b 46 fa 11745 11765 add ax, 00108h ; 05 08 01 … … 11842 11862 pop bx ; 5b 11843 11863 retn ; c3 11844 ahci_port_init_: ; 0xf 7faeLB 0x20111864 ahci_port_init_: ; 0xf801a LB 0x201 11845 11865 push cx ; 51 11846 11866 push si ; 56 … … 11850 11870 mov word [bp-004h], dx ; 89 56 fc 11851 11871 mov byte [bp-002h], bl ; 88 5e fe 11852 call 07e 6fh ; e8 af fe11872 call 07edbh ; e8 af fe 11853 11873 movzx dx, bl ; 0f b6 d3 11854 11874 sal dx, 007h ; c1 e2 07 … … 11858 11878 mov bx, strict word 00011h ; bb 11 00 11859 11879 xor cx, cx ; 31 c9 11860 call 07b 27h ; e8 4d fb11880 call 07b93h ; e8 4d fb 11861 11881 movzx di, byte [bp-002h] ; 0f b6 7e fe 11862 11882 sal di, 007h ; c1 e7 07 … … 11866 11886 mov bx, 0c011h ; bb 11 c0 11867 11887 xor cx, cx ; 31 c9 11868 call 07b 6bh ; e8 76 fb11888 call 07bd7h ; e8 76 fb 11869 11889 cmp AL, strict byte 001h ; 3c 01 11870 je short 0 7fdah ; 74 e111890 je short 08046h ; 74 e1 11871 11891 mov cx, strict word 00020h ; b9 20 00 11872 11892 xor bx, bx ; 31 db 11873 11893 mov ax, si ; 89 f0 11874 11894 mov dx, word [bp-004h] ; 8b 56 fc 11875 call 090 1ah ; e8 141011895 call 0907ah ; e8 08 10 11876 11896 lea ax, [si+00080h] ; 8d 84 80 00 11877 11897 mov cx, strict word 00040h ; b9 40 00 11878 11898 xor bx, bx ; 31 db 11879 11899 mov dx, word [bp-004h] ; 8b 56 fc 11880 call 090 1ah ; e8 05 1011900 call 0907ah ; e8 f9 0f 11881 11901 mov ax, si ; 89 f0 11882 11902 add ah, 002h ; 80 c4 02 … … 11885 11905 xor bx, bx ; 31 db 11886 11906 mov dx, word [bp-004h] ; 8b 56 fc 11887 call 090 1ah ; e8 f20f11907 call 0907ah ; e8 e6 0f 11888 11908 lea ax, [di+00108h] ; 8d 85 08 01 11889 11909 cwd ; 99 … … 11899 11919 mov ax, word [bp-006h] ; 8b 46 fa 11900 11920 mov dx, word [bp-004h] ; 8b 56 fc 11901 call 07 bbch ; e8 71 fb11921 call 07c28h ; e8 71 fb 11902 11922 mov es, [bp-004h] ; 8e 46 fc 11903 11923 mov bx, word [es:si+00260h] ; 26 8b 9c 60 02 … … 11944 11964 mov ax, si ; 89 f0 11945 11965 mov dx, word [bp-004h] ; 8b 56 fc 11946 call 07 bbch ; e8 05 fb11966 call 07c28h ; e8 05 fb 11947 11967 mov es, [bp-004h] ; 8e 46 fc 11948 11968 mov bx, word [es:si+00260h] ; 26 8b 9c 60 02 … … 12048 12068 pop cx ; 59 12049 12069 retn ; c3 12050 @ahci_read_sectors: ; 0xf8 1afLB 0x9112070 @ahci_read_sectors: ; 0xf821b LB 0x91 12051 12071 push si ; 56 12052 12072 push di ; 57 … … 12057 12077 sub di, strict byte 0000ch ; 83 ef 0c 12058 12078 cmp di, strict byte 00004h ; 83 ff 04 12059 jbe short 08 1d3h ; 76 0f12079 jbe short 0823fh ; 76 0f 12060 12080 push di ; 57 12061 12081 push 00bf6h ; 68 f6 0b 12062 12082 push 00c08h ; 68 08 0c 12063 12083 push strict byte 00007h ; 6a 07 12064 call 018e9h ; e8 19 9712084 call 018e9h ; e8 ad 96 12065 12085 add sp, strict byte 00008h ; 83 c4 08 12066 12086 les bx, [bp+008h] ; c4 5e 08 12067 12087 mov dx, word [es:bx+001eeh] ; 26 8b 97 ee 01 12068 12088 xor ax, ax ; 31 c0 12069 call 07 abfh ; e8 df f812089 call 07b2bh ; e8 df f8 12070 12090 mov es, [bp+00ah] ; 8e 46 0a 12071 12091 add di, bx ; 01 df … … 12074 12094 mov dx, word [es:di+001eeh] ; 26 8b 95 ee 01 12075 12095 xor ax, ax ; 31 c0 12076 call 0 7faeh ; e8 b6 fd12096 call 0801ah ; e8 b6 fd 12077 12097 mov bx, strict word 00025h ; bb 25 00 12078 12098 mov ax, di ; 89 f8 12079 12099 mov dx, word [bp+00ah] ; 8b 56 0a 12080 call 07 caah ; e8 a7 fa12100 call 07d16h ; e8 a7 fa 12081 12101 mov es, [bp+00ah] ; 8e 46 0a 12082 12102 mov bx, di ; 89 fb … … 12098 12118 mov dx, word [es:bx+001eeh] ; 26 8b 97 ee 01 12099 12119 xor ax, ax ; 31 c0 12100 call 07 ad3h ; e8 9b f812120 call 07b3fh ; e8 9b f8 12101 12121 xor ax, ax ; 31 c0 12102 12122 pop bp ; 5d … … 12104 12124 pop si ; 5e 12105 12125 retn 00004h ; c2 04 00 12106 @ahci_write_sectors: ; 0xf82 40LB 0x6d12126 @ahci_write_sectors: ; 0xf82ac LB 0x6d 12107 12127 push si ; 56 12108 12128 push bp ; 55 … … 12114 12134 sub bx, strict byte 0000ch ; 83 eb 0c 12115 12135 cmp bx, strict byte 00004h ; 83 fb 04 12116 jbe short 082 68h ; 76 0f12136 jbe short 082d4h ; 76 0f 12117 12137 push bx ; 53 12118 12138 push 00c27h ; 68 27 0c 12119 12139 push 00c08h ; 68 08 0c 12120 12140 push strict byte 00007h ; 6a 07 12121 call 018e9h ; e8 849612141 call 018e9h ; e8 18 96 12122 12142 add sp, strict byte 00008h ; 83 c4 08 12123 12143 mov es, cx ; 8e c1 12124 12144 mov dx, word [es:si+001eeh] ; 26 8b 94 ee 01 12125 12145 xor ax, ax ; 31 c0 12126 call 07 abfh ; e8 4b f812146 call 07b2bh ; e8 4b f8 12127 12147 mov es, cx ; 8e c1 12128 12148 add bx, si ; 01 f3 … … 12130 12150 mov dx, word [es:si+001eeh] ; 26 8b 94 ee 01 12131 12151 xor ax, ax ; 31 c0 12132 call 0 7faeh ; e8 26 fd12152 call 0801ah ; e8 26 fd 12133 12153 mov bx, strict word 00035h ; bb 35 00 12134 12154 mov ax, si ; 89 f0 12135 12155 mov dx, cx ; 89 ca 12136 call 07 caah ; e8 18 fa12156 call 07d16h ; e8 18 fa 12137 12157 mov es, cx ; 8e c1 12138 12158 mov dx, word [es:si+00ah] ; 26 8b 54 0a … … 12140 12160 mov dx, word [es:si+001eeh] ; 26 8b 94 ee 01 12141 12161 xor ax, ax ; 31 c0 12142 call 07 ad3h ; e8 2d f812162 call 07b3fh ; e8 2d f8 12143 12163 xor ax, ax ; 31 c0 12144 12164 pop bp ; 5d 12145 12165 pop si ; 5e 12146 12166 retn 00004h ; c2 04 00 12147 ahci_cmd_packet_: ; 0xf8 2adLB 0x16e12167 ahci_cmd_packet_: ; 0xf8319 LB 0x16e 12148 12168 push si ; 56 12149 12169 push di ; 57 … … 12155 12175 mov dx, strict word 0000eh ; ba 0e 00 12156 12176 mov ax, strict word 00040h ; b8 40 00 12157 call 0161ch ; e8 56 9312177 call 0161ch ; e8 ea 92 12158 12178 mov si, 00122h ; be 22 01 12159 12179 mov word [bp-004h], ax ; 89 46 fc 12160 12180 cmp byte [bp+00eh], 002h ; 80 7e 0e 02 12161 jne short 08 2f1h ; 75 1f12181 jne short 0835dh ; 75 1f 12162 12182 mov bx, 00d32h ; bb 32 0d 12163 12183 mov cx, ds ; 8c d9 12164 12184 mov ax, strict word 00004h ; b8 04 00 12165 call 018aeh ; e8 d19512185 call 018aeh ; e8 65 95 12166 12186 push 00c3ah ; 68 3a 0c 12167 12187 push 00c4ah ; 68 4a 0c 12168 12188 push strict byte 00004h ; 6a 04 12169 call 018e9h ; e8 01 9612189 call 018e9h ; e8 95 95 12170 12190 add sp, strict byte 00006h ; 83 c4 06 12171 12191 mov ax, strict word 00001h ; b8 01 00 12172 jmp near 084 15h ; e9 24 0112192 jmp near 08481h ; e9 24 01 12173 12193 test byte [bp+008h], 001h ; f6 46 08 01 12174 jne short 08 2ebh ; 75 f412194 jne short 08357h ; 75 f4 12175 12195 mov ax, word [bp+00ah] ; 8b 46 0a 12176 12196 mov dx, word [bp+00ch] ; 8b 56 0c … … 12178 12198 sal ax, 1 ; d1 e0 12179 12199 rcl dx, 1 ; d1 d2 12180 loop 083 00h ; e2 fa12200 loop 0836ch ; e2 fa 12181 12201 mov es, [bp-004h] ; 8e 46 fc 12182 12202 mov word [es:si], ax ; 26 89 04 … … 12190 12210 mov dx, word [bp+00ch] ; 8b 56 0c 12191 12211 xor cx, cx ; 31 c9 12192 call 0 8fb0h ; e8 830c12212 call 09010h ; e8 77 0c 12193 12213 mov word [es:si+00ah], ax ; 26 89 44 0a 12194 12214 xor di, di ; 31 ff … … 12200 12220 xor ax, ax ; 31 c0 12201 12221 mov dx, word [bp-006h] ; 8b 56 fa 12202 call 07 abfh ; e8 72 f712222 call 07b2bh ; e8 72 f7 12203 12223 mov es, [bp-004h] ; 8e 46 fc 12204 12224 mov bx, word [bp-010h] ; 8b 5e f0 … … 12207 12227 mov dx, word [es:si+001eeh] ; 26 8b 94 ee 01 12208 12228 xor ax, ax ; 31 c0 12209 call 0 7faeh ; e8 49 fc12229 call 0801ah ; e8 49 fc 12210 12230 movzx ax, byte [bp-002h] ; 0f b6 46 fe 12211 12231 push ax ; 50 … … 12214 12234 mov ax, 000c0h ; b8 c0 00 12215 12235 mov dx, word [bp-006h] ; 8b 56 fa 12216 call 090 27h ; e8 ae0c12236 call 09087h ; e8 a2 0c 12217 12237 mov es, [bp-004h] ; 8e 46 fc 12218 12238 mov word [es:si+014h], di ; 26 89 7c 14 … … 12221 12241 mov ax, word [es:si+01ah] ; 26 8b 44 1a 12222 12242 test ax, ax ; 85 c0 12223 je short 08 3b7h ; 74 2712243 je short 08423h ; 74 27 12224 12244 dec ax ; 48 12225 12245 mov es, [bp-006h] ; 8e 46 fa … … 12234 12254 mov ax, si ; 89 f0 12235 12255 mov dx, word [bp-004h] ; 8b 56 fc 12236 call 07 caah ; e8 e8 f812256 call 07d16h ; e8 e8 f8 12237 12257 les bx, [bp-00ah] ; c4 5e f6 12238 12258 mov ax, word [es:bx+004h] ; 26 8b 47 04 … … 12257 12277 mov ax, word [bp-00ah] ; 8b 46 f6 12258 12278 mov dx, word [bp-008h] ; 8b 56 f8 12259 call 07 ad3h ; e8 d2 f612279 call 07b3fh ; e8 d2 f6 12260 12280 les bx, [bp-00ah] ; c4 5e f6 12261 12281 mov ax, word [es:bx+006h] ; 26 8b 47 06 12262 12282 or ax, word [es:bx+004h] ; 26 0b 47 04 12263 jne short 084 13h ; 75 0512283 jne short 0847fh ; 75 05 12264 12284 mov ax, strict word 00004h ; b8 04 00 12265 jmp short 084 15h ; eb 0212285 jmp short 08481h ; eb 02 12266 12286 xor ax, ax ; 31 c0 12267 12287 leave ; c9 … … 12269 12289 pop si ; 5e 12270 12290 retn 0000ch ; c2 0c 00 12271 ahci_port_detect_device_: ; 0xf84 1bLB 0x3cb12291 ahci_port_detect_device_: ; 0xf8487 LB 0x3cb 12272 12292 push cx ; 51 12273 12293 push si ; 56 … … 12279 12299 movzx cx, bl ; 0f b6 cb 12280 12300 mov bx, cx ; 89 cb 12281 call 0 7faeh ; e8 7c fb12301 call 0801ah ; e8 7c fb 12282 12302 mov dx, strict word 0000eh ; ba 0e 00 12283 12303 mov ax, strict word 00040h ; b8 40 00 12284 call 0161ch ; e8 e19112304 call 0161ch ; e8 75 91 12285 12305 mov word [bp-01ah], ax ; 89 46 e6 12286 12306 mov si, 00122h ; be 22 01 … … 12355 12375 mov bx, strict word 0000fh ; bb 0f 00 12356 12376 xor cx, cx ; 31 c9 12357 call 07 ba1h ; e8 b2 f612377 call 07c0dh ; e8 b2 f6 12358 12378 cmp ax, strict word 00003h ; 3d 03 00 12359 jne near 08 7e1h ; 0f 85 eb 0212379 jne near 0884dh ; 0f 85 eb 02 12360 12380 mov es, [bp-008h] ; 8e 46 f8 12361 12381 mov al, byte [es:si+001edh] ; 26 8a 84 ed 01 12362 12382 mov byte [bp-004h], al ; 88 46 fc 12363 12383 cmp AL, strict byte 004h ; 3c 04 12364 jnc near 08 7e1h ; 0f 83 da 0212384 jnc near 0884dh ; 0f 83 da 02 12365 12385 mov dx, word [bp-016h] ; 8b 56 ea 12366 12386 add dx, 00118h ; 81 c2 18 01 … … 12369 12389 mov bx, strict word 00010h ; bb 10 00 12370 12390 xor cx, cx ; 31 c9 12371 call 07 ae7h ; e8 c9 f512391 call 07b53h ; e8 c9 f5 12372 12392 mov ax, word [bp-016h] ; 8b 46 ea 12373 12393 add ax, 00124h ; 05 24 01 … … 12395 12415 add cl, 00ch ; 80 c1 0c 12396 12416 test dx, dx ; 85 d2 12397 jne near 087 33h ; 0f 85 d5 0112417 jne near 0879fh ; 0f 85 d5 01 12398 12418 cmp bx, 00101h ; 81 fb 01 01 12399 jne near 087 33h ; 0f 85 cd 0112419 jne near 0879fh ; 0f 85 cd 01 12400 12420 mov es, [bp-008h] ; 8e 46 f8 12401 12421 db 066h, 026h, 0c7h, 004h, 000h, 000h, 000h, 000h … … 12409 12429 mov ax, si ; 89 f0 12410 12430 mov dx, word [bp-01ah] ; 8b 56 e6 12411 call 07 caah ; e8 19 f712431 call 07d16h ; e8 19 f7 12412 12432 mov byte [bp-006h], cl ; 88 4e fa 12413 12433 test byte [bp-00222h], 080h ; f6 86 de fd 80 … … 12425 12445 mov word [bp-00eh], dx ; 89 56 f2 12426 12446 cmp dx, 00fffh ; 81 fa ff 0f 12427 jne short 08 5d4h ; 75 1012447 jne short 08640h ; 75 10 12428 12448 cmp di, strict byte 0ffffh ; 83 ff ff 12429 jne short 08 5d4h ; 75 0b12449 jne short 08640h ; 75 0b 12430 12450 mov di, word [bp-0015ah] ; 8b be a6 fe 12431 12451 mov dx, word [bp-00158h] ; 8b 96 a8 fe … … 12456 12476 mov al, byte [bp-004h] ; 8a 46 fc 12457 12477 cmp AL, strict byte 001h ; 3c 01 12458 jc short 086 3fh ; 72 0c12459 jbe short 086 47h ; 76 1212478 jc short 086abh ; 72 0c 12479 jbe short 086b3h ; 76 12 12460 12480 cmp AL, strict byte 003h ; 3c 03 12461 je short 086 4fh ; 74 1612481 je short 086bbh ; 74 16 12462 12482 cmp AL, strict byte 002h ; 3c 02 12463 je short 086 4bh ; 74 0e12464 jmp short 08 698h ; eb 5912483 je short 086b7h ; 74 0e 12484 jmp short 08704h ; eb 59 12465 12485 test al, al ; 84 c0 12466 jne short 08 698h ; 75 5512486 jne short 08704h ; 75 55 12467 12487 mov DL, strict byte 040h ; b2 40 12468 jmp short 086 51h ; eb 0a12488 jmp short 086bdh ; eb 0a 12469 12489 mov DL, strict byte 048h ; b2 48 12470 jmp short 086 51h ; eb 0612490 jmp short 086bdh ; eb 06 12471 12491 mov DL, strict byte 050h ; b2 50 12472 jmp short 086 51h ; eb 0212492 jmp short 086bdh ; eb 02 12473 12493 mov DL, strict byte 058h ; b2 58 12474 12494 mov al, dl ; 88 d0 … … 12476 12496 movzx bx, al ; 0f b6 d8 12477 12497 mov ax, bx ; 89 d8 12478 call 0165ch ; e8 ff8f12498 call 0165ch ; e8 93 8f 12479 12499 test al, al ; 84 c0 12480 je short 08 698h ; 74 3712500 je short 08704h ; 74 37 12481 12501 mov al, dl ; 88 d0 12482 12502 db 0feh, 0c0h 12483 12503 ; inc al ; fe c0 12484 12504 xor ah, ah ; 30 e4 12485 call 0165ch ; e8 f28f12505 call 0165ch ; e8 86 8f 12486 12506 xor ah, ah ; 30 e4 12487 12507 mov cx, ax ; 89 c1 12488 12508 sal cx, 008h ; c1 e1 08 12489 12509 movzx ax, dl ; 0f b6 c2 12490 call 0165ch ; e8 e58f12510 call 0165ch ; e8 79 8f 12491 12511 xor ah, ah ; 30 e4 12492 12512 add ax, cx ; 01 c8 … … 12495 12515 add AL, strict byte 002h ; 04 02 12496 12516 xor ah, ah ; 30 e4 12497 call 0165ch ; e8 d58f12517 call 0165ch ; e8 69 8f 12498 12518 xor ah, ah ; 30 e4 12499 12519 mov word [bp-022h], ax ; 89 46 de 12500 12520 mov ax, bx ; 89 d8 12501 call 0165ch ; e8 cb8f12521 call 0165ch ; e8 5f 8f 12502 12522 xor ah, ah ; 30 e4 12503 12523 mov word [bp-01eh], ax ; 89 46 e2 12504 jmp short 08 6a5h ; eb 0d12524 jmp short 08711h ; eb 0d 12505 12525 mov bx, di ; 89 fb 12506 12526 mov cx, word [bp-00eh] ; 8b 4e f2 12507 12527 mov dx, ss ; 8c d2 12508 12528 lea ax, [bp-022h] ; 8d 46 de 12509 call 052 a4h ; e8 ffcb12529 call 0529eh ; e8 8d cb 12510 12530 mov bx, 00d32h ; bb 32 0d 12511 12531 mov cx, ds ; 8c d9 12512 12532 mov ax, strict word 00004h ; b8 04 00 12513 call 018aeh ; e8 fe9112533 call 018aeh ; e8 92 91 12514 12534 push word [bp-00eh] ; ff 76 f2 12515 12535 push di ; 57 … … 12528 12548 push 00c6ah ; 68 6a 0c 12529 12549 push strict byte 00004h ; 6a 04 12530 call 018e9h ; e8 10 9212550 call 018e9h ; e8 a4 91 12531 12551 add sp, strict byte 00018h ; 83 c4 18 12532 12552 movzx di, byte [bp-006h] ; 0f b6 7e fa … … 12556 12576 mov dx, strict word 00075h ; ba 75 00 12557 12577 mov ax, strict word 00040h ; b8 40 00 12558 call 01600h ; e8 de8e12578 call 01600h ; e8 72 8e 12559 12579 db 0feh, 0c0h 12560 12580 ; inc al ; fe c0 … … 12562 12582 mov dx, strict word 00075h ; ba 75 00 12563 12583 mov ax, strict word 00040h ; b8 40 00 12564 call 0160eh ; e8 de8e12565 jmp near 08 7d0h ; e9 9d 0012584 call 0160eh ; e8 72 8e 12585 jmp near 0883ch ; e9 9d 00 12566 12586 cmp dx, 0eb14h ; 81 fa 14 eb 12567 jne near 08 7d0h ; 0f 85 95 0012587 jne near 0883ch ; 0f 85 95 00 12568 12588 cmp bx, 00101h ; 81 fb 01 01 12569 jne near 08 7d0h ; 0f 85 8d 0012589 jne near 0883ch ; 0f 85 8d 00 12570 12590 mov es, [bp-008h] ; 8e 46 f8 12571 12591 db 066h, 026h, 0c7h, 004h, 000h, 000h, 000h, 000h … … 12579 12599 mov ax, si ; 89 f0 12580 12600 mov dx, word [bp-01ah] ; 8b 56 e6 12581 call 07 caah ; e8 3c f512601 call 07d16h ; e8 3c f5 12582 12602 test byte [bp-00222h], 080h ; f6 86 de fd 80 12583 12603 db 00fh, 095h, 0c0h … … 12619 12639 pop cx ; 59 12620 12640 retn ; c3 12621 ahci_mem_alloc_: ; 0xf8 7e6LB 0x4012641 ahci_mem_alloc_: ; 0xf8852 LB 0x40 12622 12642 push bx ; 53 12623 12643 push cx ; 51 … … 12629 12649 mov dx, 00413h ; ba 13 04 12630 12650 xor ax, ax ; 31 c0 12631 call 0161ch ; e8 26 8e12651 call 0161ch ; e8 ba 8d 12632 12652 test ax, ax ; 85 c0 12633 je short 088 1fh ; 74 2512653 je short 0888bh ; 74 25 12634 12654 dec ax ; 48 12635 12655 mov bx, ax ; 89 c3 … … 12638 12658 sal ax, 1 ; d1 e0 12639 12659 rcl dx, 1 ; d1 d2 12640 loop 088 02h ; e2 fa12660 loop 0886eh ; e2 fa 12641 12661 mov si, ax ; 89 c6 12642 12662 mov di, dx ; 89 d7 … … 12644 12664 shr di, 1 ; d1 ef 12645 12665 rcr si, 1 ; d1 de 12646 loop 088 0fh ; e2 fa12666 loop 0887bh ; e2 fa 12647 12667 mov dx, 00413h ; ba 13 04 12648 12668 xor ax, ax ; 31 c0 12649 call 0162ah ; e8 0d 8e12669 call 0162ah ; e8 a1 8d 12650 12670 mov ax, si ; 89 f0 12651 12671 pop bp ; 5d … … 12656 12676 pop bx ; 5b 12657 12677 retn ; c3 12658 ahci_hba_init_: ; 0xf88 26LB 0x12012678 ahci_hba_init_: ; 0xf8892 LB 0x120 12659 12679 push bx ; 53 12660 12680 push cx ; 51 … … 12666 12686 mov dx, strict word 0000eh ; ba 0e 00 12667 12687 mov ax, strict word 00040h ; b8 40 00 12668 call 0161ch ; e8 e28d12688 call 0161ch ; e8 76 8d 12669 12689 mov bx, 00122h ; bb 22 01 12670 12690 mov word [bp-006h], ax ; 89 46 fa … … 12683 12703 shr eax, 010h ; 66 c1 e8 10 12684 12704 xchg dx, ax ; 92 12685 call 08 7e6h ; e8 87 ff12705 call 08852h ; e8 87 ff 12686 12706 mov di, ax ; 89 c7 12687 12707 test ax, ax ; 85 c0 12688 je near 089 28h ; 0f 84 c1 0012708 je near 08994h ; 0f 84 c1 00 12689 12709 mov es, [bp-006h] ; 8e 46 fa 12690 12710 mov word [es:bx+001eeh], di ; 26 89 bf ee 01 … … 12700 12720 mov dx, strict word 00004h ; ba 04 00 12701 12721 mov ax, si ; 89 f0 12702 call 07 ae7h ; e8 4c f212722 call 07b53h ; e8 4c f2 12703 12723 mov ax, strict word 00004h ; b8 04 00 12704 12724 xor cx, cx ; 31 c9 … … 12717 12737 xchg dx, ax ; 92 12718 12738 test AL, strict byte 001h ; a8 01 12719 jne short 08 89bh ; 75 de12739 jne short 08907h ; 75 de 12720 12740 xor ax, ax ; 31 c0 12721 12741 xor cx, cx ; 31 c9 … … 12735 12755 mov bx, strict word 0001fh ; bb 1f 00 12736 12756 xor cx, cx ; 31 c9 12737 call 07 ba1h ; e8 c0 f212757 call 07c0dh ; e8 c0 f2 12738 12758 db 0feh, 0c0h 12739 12759 ; inc al ; fe c0 12740 12760 mov byte [bp-004h], al ; 88 46 fc 12741 12761 mov byte [bp-002h], 000h ; c6 46 fe 00 12742 jmp short 08 8f5h ; eb 0912762 jmp short 08961h ; eb 09 12743 12763 inc byte [bp-002h] ; fe 46 fe 12744 12764 cmp byte [bp-002h], 020h ; 80 7e fe 20 12745 jnc short 089 26h ; 73 3112765 jnc short 08992h ; 73 31 12746 12766 movzx cx, byte [bp-002h] ; 0f b6 4e fe 12747 12767 mov ax, strict word 00001h ; b8 01 00 12748 12768 xor dx, dx ; 31 d2 12749 jcxz 089 06h ; e3 0612769 jcxz 08972h ; e3 06 12750 12770 sal ax, 1 ; d1 e0 12751 12771 rcl dx, 1 ; d1 d2 12752 loop 089 00h ; e2 fa12772 loop 0896ch ; e2 fa 12753 12773 mov bx, ax ; 89 c3 12754 12774 mov cx, dx ; 89 d1 12755 12775 mov dx, strict word 0000ch ; ba 0c 00 12756 12776 mov ax, si ; 89 f0 12757 call 07b 6bh ; e8 59 f212777 call 07bd7h ; e8 59 f2 12758 12778 test al, al ; 84 c0 12759 je short 08 8ech ; 74 d612779 je short 08958h ; 74 d6 12760 12780 movzx bx, byte [bp-002h] ; 0f b6 5e fe 12761 12781 xor ax, ax ; 31 c0 12762 12782 mov dx, di ; 89 fa 12763 call 084 1bh ; e8 fa fa12783 call 08487h ; e8 fa fa 12764 12784 dec byte [bp-004h] ; fe 4e fc 12765 jne short 08 8ech ; 75 c612785 jne short 08958h ; 75 c6 12766 12786 xor ax, ax ; 31 c0 12767 12787 leave ; c9 … … 12772 12792 pop bx ; 5b 12773 12793 retn ; c3 12774 db 00bh, 005h, 004h, 003h, 002h, 001h, 000h, 0 13h, 08ah, 0f1h, 089h, 0f7h, 089h, 0fdh, 089h, 003h12775 db 08ah, 0 09h, 08ah, 00fh, 08ah, 013h, 08ah12776 _ahci_init: ; 0xf89 46LB 0xf912794 db 00bh, 005h, 004h, 003h, 002h, 001h, 000h, 07fh, 08ah, 05dh, 08ah, 063h, 08ah, 069h, 08ah, 06fh 12795 db 08ah, 075h, 08ah, 07bh, 08ah, 07fh, 08ah 12796 _ahci_init: ; 0xf89b2 LB 0xf9 12777 12797 push si ; 56 12778 12798 push di ; 57 … … 12780 12800 mov ax, 00601h ; b8 01 06 12781 12801 mov dx, strict word 00001h ; ba 01 00 12782 call 08e 38h ; e8 e3 0412802 call 08ea4h ; e8 e3 04 12783 12803 mov dx, ax ; 89 c2 12784 12804 cmp ax, strict word 0ffffh ; 3d ff ff 12785 je near 08a 3bh ; 0f 84 dd 0012805 je near 08aa7h ; 0f 84 dd 00 12786 12806 xor al, al ; 30 c0 12787 12807 shr ax, 008h ; c1 e8 08 … … 12791 12811 xor ah, ah ; 30 e4 12792 12812 mov bx, strict word 00034h ; bb 34 00 12793 call 08e 60h ; e8 ed 0412813 call 08ecch ; e8 ed 04 12794 12814 mov cl, al ; 88 c1 12795 12815 test cl, cl ; 84 c9 12796 je short 08 99ch ; 74 2312816 je short 08a08h ; 74 23 12797 12817 movzx bx, cl ; 0f b6 d9 12798 12818 movzx di, byte [bp-004h] ; 0f b6 7e fc … … 12800 12820 mov dx, di ; 89 fa 12801 12821 mov ax, si ; 89 f0 12802 call 08e 60h ; e8 d5 0412822 call 08ecch ; e8 d5 04 12803 12823 cmp AL, strict byte 012h ; 3c 12 12804 je short 08 99ch ; 74 0d12824 je short 08a08h ; 74 0d 12805 12825 mov al, cl ; 88 c8 12806 12826 db 0feh, 0c0h … … 12809 12829 mov dx, di ; 89 fa 12810 12830 mov ax, si ; 89 f0 12811 jmp short 089 70h ; eb d412831 jmp short 089dch ; eb d4 12812 12832 test cl, cl ; 84 c9 12813 je near 08a 3bh ; 0f 84 99 0012833 je near 08aa7h ; 0f 84 99 00 12814 12834 add cl, 002h ; 80 c1 02 12815 12835 movzx bx, cl ; 0f b6 d9 … … 12818 12838 mov dx, di ; 89 fa 12819 12839 mov ax, si ; 89 f0 12820 call 08e 60h ; e8 a9 0412840 call 08ecch ; e8 a9 04 12821 12841 cmp AL, strict byte 010h ; 3c 10 12822 jne near 08a 3bh ; 0f 85 7e 0012842 jne near 08aa7h ; 0f 85 7e 00 12823 12843 mov byte [bp-002h], 000h ; c6 46 fe 00 12824 12844 mov al, cl ; 88 c8 … … 12827 12847 mov dx, di ; 89 fa 12828 12848 mov ax, si ; 89 f0 12829 call 08e 81h ; e8 b2 0412849 call 08eedh ; e8 b2 04 12830 12850 mov dx, ax ; 89 c2 12831 12851 and ax, strict word 0000fh ; 25 0f 00 12832 12852 sub ax, strict word 00004h ; 2d 04 00 12833 12853 cmp ax, strict word 0000bh ; 3d 0b 00 12834 jnbe short 08a 13h ; 77 3712854 jnbe short 08a7fh ; 77 37 12835 12855 push CS ; 0e 12836 12856 pop ES ; 07 12837 12857 mov cx, strict word 00008h ; b9 08 00 12838 mov di, 089 2fh ; bf 2f8912858 mov di, 0899bh ; bf 9b 89 12839 12859 repne scasb ; f2 ae 12840 12860 sal cx, 1 ; d1 e1 12841 12861 mov di, cx ; 89 cf 12842 mov ax, word [cs:di-076 cah] ; 2e 8b 85 368912862 mov ax, word [cs:di-0765eh] ; 2e 8b 85 a2 89 12843 12863 jmp ax ; ff e0 12844 12864 mov byte [bp-002h], 010h ; c6 46 fe 10 12845 jmp short 08a 13h ; eb 1c12865 jmp short 08a7fh ; eb 1c 12846 12866 mov byte [bp-002h], 014h ; c6 46 fe 14 12847 jmp short 08a 13h ; eb 1612867 jmp short 08a7fh ; eb 16 12848 12868 mov byte [bp-002h], 018h ; c6 46 fe 18 12849 jmp short 08a 13h ; eb 1012869 jmp short 08a7fh ; eb 10 12850 12870 mov byte [bp-002h], 01ch ; c6 46 fe 1c 12851 jmp short 08a 13h ; eb 0a12871 jmp short 08a7fh ; eb 0a 12852 12872 mov byte [bp-002h], 020h ; c6 46 fe 20 12853 jmp short 08a 13h ; eb 0412873 jmp short 08a7fh ; eb 04 12854 12874 mov byte [bp-002h], 024h ; c6 46 fe 24 12855 12875 mov si, dx ; 89 d6 … … 12858 12878 mov al, byte [bp-002h] ; 8a 46 fe 12859 12879 test al, al ; 84 c0 12860 je short 08a 3bh ; 74 1912880 je short 08aa7h ; 74 19 12861 12881 movzx bx, al ; 0f b6 d8 12862 12882 movzx dx, byte [bp-004h] ; 0f b6 56 fc 12863 12883 movzx ax, byte [bp-006h] ; 0f b6 46 fa 12864 call 08 ea0h ; e8 70 0412884 call 08f0ch ; e8 70 04 12865 12885 test AL, strict byte 001h ; a8 01 12866 je short 08a 3bh ; 74 0712886 je short 08aa7h ; 74 07 12867 12887 and AL, strict byte 0f0h ; 24 f0 12868 12888 add ax, si ; 01 f0 12869 call 088 26h ; e8 eb fd12889 call 08892h ; e8 eb fd 12870 12890 leave ; c9 12871 12891 pop di ; 5f 12872 12892 pop si ; 5e 12873 12893 retn ; c3 12874 apm_out_str_: ; 0xf8a 3fLB 0x3612894 apm_out_str_: ; 0xf8aab LB 0x36 12875 12895 push bx ; 53 12876 12896 push bp ; 55 … … 12878 12898 mov bx, ax ; 89 c3 12879 12899 cmp byte [bx], 000h ; 80 3f 00 12880 je short 08a 54h ; 74 0a12900 je short 08ac0h ; 74 0a 12881 12901 mov al, byte [bx] ; 8a 07 12882 12902 out DX, AL ; ee … … 12885 12905 db 00ah, 0c0h 12886 12906 ; or al, al ; 0a c0 12887 jne short 08a 4ch ; 75 f812907 jne short 08ab8h ; 75 f8 12888 12908 pop bp ; 5d 12889 12909 pop bx ; 5b 12890 12910 retn ; c3 12891 db 098h, 08ah, 067h, 08bh, 0aah, 08ah, 0c5h, 08ah, 067h, 08bh, 0f0h, 08ah, 067h, 08bh, 0f5h, 08ah 12892 db 03ch, 08bh, 03ch, 08bh, 03ch, 08bh, 037h, 08bh, 03ch, 08bh, 03ch, 08bh, 02fh, 08bh 12893 _apm_function: ; 0xf8a75 LB 0xf5 12911 add AL, strict byte 08bh ; 04 8b 12912 ror word [bp+di-074eah], CL ; d3 8b 16 8b 12913 xor word [bp+di-0742dh], cx ; 31 8b d3 8b 12914 pop sp ; 5c 12915 db 08bh, 0d3h 12916 ; mov dx, bx ; 8b d3 12917 mov sp, word [bx+di-075h] ; 8b 61 8b 12918 test AL, strict byte 08bh ; a8 8b 12919 test AL, strict byte 08bh ; a8 8b 12920 test AL, strict byte 08bh ; a8 8b 12921 mov word [0a88bh], ax ; a3 8b a8 12922 mov bp, word [bx+si-06475h] ; 8b a8 8b 9b 12923 db 08bh 12924 _apm_function: ; 0xf8ae1 LB 0xf5 12894 12925 push si ; 56 12895 12926 push bp ; 55 … … 12899 12930 xor ah, ah ; 30 e4 12900 12931 cmp ax, strict word 0000eh ; 3d 0e 00 12901 jnbe near 08b 3ch ; 0f 87 b3 0012932 jnbe near 08ba8h ; 0f 87 b3 00 12902 12933 mov bx, ax ; 89 c3 12903 12934 add bx, ax ; 01 c3 12904 12935 mov dx, word [bp+01ah] ; 8b 56 1a 12905 12936 or dl, 001h ; 80 ca 01 12906 jmp word [cs:bx-075 a9h] ; 2e ff a7 578a12937 jmp word [cs:bx-0753dh] ; 2e ff a7 c3 8a 12907 12938 mov word [bp+014h], 00102h ; c7 46 14 02 01 12908 12939 mov word [bp+00eh], 0504dh ; c7 46 0e 4d 50 … … 12912 12943 retn ; c3 12913 12944 mov word [bp+014h], 0f000h ; c7 46 14 00 f0 12914 mov word [bp+00eh], 090 94h ; c7 46 0e 94 9012945 mov word [bp+00eh], 090f4h ; c7 46 0e f4 90 12915 12946 mov word [bp+012h], 0f000h ; c7 46 12 00 f0 12916 12947 mov ax, strict word 0fff0h ; b8 f0 ff … … 12941 12972 retn ; c3 12942 12973 cmp word [bp+012h], strict byte 00003h ; 83 7e 12 03 12943 je short 08b 1bh ; 74 2012974 je short 08b87h ; 74 20 12944 12975 cmp word [bp+012h], strict byte 00002h ; 83 7e 12 02 12945 je short 08b 13h ; 74 1212976 je short 08b7fh ; 74 12 12946 12977 cmp word [bp+012h], strict byte 00001h ; 83 7e 12 01 12947 jne short 08b 23h ; 75 1c12978 jne short 08b8fh ; 75 1c 12948 12979 mov dx, 08900h ; ba 00 89 12949 12980 mov ax, 00ca2h ; b8 a2 0c 12950 call 08a 3fh ; e8 2f ff12981 call 08aabh ; e8 2f ff 12951 12982 pop bp ; 5d 12952 12983 pop si ; 5e … … 12954 12985 mov dx, 08900h ; ba 00 89 12955 12986 mov ax, 00caah ; b8 aa 0c 12956 jmp short 08b 0dh ; eb f212987 jmp short 08b79h ; eb f2 12957 12988 mov dx, 08900h ; ba 00 89 12958 12989 mov ax, 00cb2h ; b8 b2 0c 12959 jmp short 08b 0dh ; eb ea12990 jmp short 08b79h ; eb ea 12960 12991 or ah, 00ah ; 80 cc 0a 12961 12992 mov word [bp+014h], ax ; 89 46 14 … … 12969 13000 retn ; c3 12970 13001 or ah, 080h ; 80 cc 80 12971 jmp short 08b 26h ; eb ea13002 jmp short 08b92h ; eb ea 12972 13003 mov bx, 00d32h ; bb 32 0d 12973 13004 mov cx, ds ; 8c d9 12974 13005 mov ax, strict word 00004h ; b8 04 00 12975 call 018aeh ; e8 67 8d13006 call 018aeh ; e8 fb 8c 12976 13007 push word [bp+00eh] ; ff 76 0e 12977 13008 push word [bp+014h] ; ff 76 14 12978 13009 push 00cbbh ; 68 bb 0c 12979 13010 push strict byte 00004h ; 6a 04 12980 call 018e9h ; e8 948d13011 call 018e9h ; e8 28 8d 12981 13012 add sp, strict byte 00008h ; 83 c4 08 12982 13013 mov ax, word [bp+014h] ; 8b 46 14 … … 12988 13019 pop si ; 5e 12989 13020 retn ; c3 12990 pci16_select_reg_: ; 0xf8b 6aLB 0x2113021 pci16_select_reg_: ; 0xf8bd6 LB 0x21 12991 13022 push bx ; 53 12992 13023 push bp ; 55 … … 13004 13035 pop bx ; 5b 13005 13036 retn ; c3 13006 pci16_find_device_: ; 0xf8b 8bLB 0xf213037 pci16_find_device_: ; 0xf8bf7 LB 0xf2 13007 13038 push si ; 56 13008 13039 push di ; 57 … … 13016 13047 mov byte [bp-004h], 000h ; c6 46 fc 00 13017 13048 test bl, 007h ; f6 c3 07 13018 jne short 08 bd1h ; 75 2d13049 jne short 08c3dh ; 75 2d 13019 13050 mov dx, strict word 0000eh ; ba 0e 00 13020 13051 mov ax, bx ; 89 d8 13021 call 08b 6ah ; e8 be ff13052 call 08bd6h ; e8 be ff 13022 13053 mov dx, 00cfeh ; ba fe 0c 13023 13054 in AL, DX ; ec … … 13026 13057 mov byte [bp-002h], al ; 88 46 fe 13027 13058 cmp AL, strict byte 0ffh ; 3c ff 13028 jne short 08 bbfh ; 75 0613059 jne short 08c2bh ; 75 06 13029 13060 add bx, strict byte 00008h ; 83 c3 08 13030 jmp near 08c 52h ; e9 93 0013061 jmp near 08cbeh ; e9 93 00 13031 13062 test byte [bp-002h], 080h ; f6 46 fe 80 13032 je short 08 bcch ; 74 0713063 je short 08c38h ; 74 07 13033 13064 mov word [bp-006h], strict word 00001h ; c7 46 fa 01 00 13034 jmp short 08 bd1h ; eb 0513065 jmp short 08c3dh ; eb 05 13035 13066 mov word [bp-006h], strict word 00008h ; c7 46 fa 08 00 13036 13067 mov al, byte [bp-002h] ; 8a 46 fe 13037 13068 and AL, strict byte 007h ; 24 07 13038 13069 cmp AL, strict byte 001h ; 3c 01 13039 jne short 08 bf9h ; 75 1f13070 jne short 08c65h ; 75 1f 13040 13071 mov ax, bx ; 89 d8 13041 13072 shr ax, 008h ; c1 e8 08 13042 13073 test ax, ax ; 85 c0 13043 jne short 08 bf9h ; 75 1613074 jne short 08c65h ; 75 16 13044 13075 mov dx, strict word 0001ah ; ba 1a 00 13045 13076 mov ax, bx ; 89 d8 13046 call 08b 6ah ; e8 7f ff13077 call 08bd6h ; e8 7f ff 13047 13078 mov dx, 00cfeh ; ba fe 0c 13048 13079 in AL, DX ; ec … … 13050 13081 ; sub ah, ah ; 2a e4 13051 13082 cmp al, byte [bp-004h] ; 3a 46 fc 13052 jbe short 08 bf9h ; 76 0313083 jbe short 08c65h ; 76 03 13053 13084 mov byte [bp-004h], al ; 88 46 fc 13054 13085 test di, di ; 85 ff 13055 je short 08c 02h ; 74 0513086 je short 08c6eh ; 74 05 13056 13087 mov dx, strict word 00008h ; ba 08 00 13057 jmp short 08c 04h ; eb 0213088 jmp short 08c70h ; eb 02 13058 13089 xor dx, dx ; 31 d2 13059 13090 mov ax, bx ; 89 d8 13060 call 08b 6ah ; e8 61 ff13091 call 08bd6h ; e8 61 ff 13061 13092 mov dx, 00cfch ; ba fc 0c 13062 13093 in eax, DX ; 66 ed … … 13069 13100 mov word [bp-00ch], strict word 00000h ; c7 46 f4 00 00 13070 13101 test di, di ; 85 ff 13071 je short 08c 33h ; 74 0f13102 je short 08c9fh ; 74 0f 13072 13103 mov cx, strict word 00008h ; b9 08 00 13073 13104 shr dx, 1 ; d1 ea 13074 13105 rcr ax, 1 ; d1 d8 13075 loop 08c 27h ; e2 fa13106 loop 08c93h ; e2 fa 13076 13107 mov word [bp-00ah], ax ; 89 46 f6 13077 13108 mov word [bp-008h], dx ; 89 56 f8 13078 13109 mov ax, word [bp-008h] ; 8b 46 f8 13079 13110 cmp ax, word [bp-010h] ; 3b 46 f0 13080 jne short 08c 43h ; 75 0813111 jne short 08cafh ; 75 08 13081 13112 mov ax, word [bp-00ah] ; 8b 46 f6 13082 13113 cmp ax, word [bp-00eh] ; 3b 46 f2 13083 je short 08c 49h ; 74 0613114 je short 08cb5h ; 74 06 13084 13115 cmp word [bp-00ch], strict byte 00000h ; 83 7e f4 00 13085 je short 08c 4fh ; 74 0613116 je short 08cbbh ; 74 06 13086 13117 dec si ; 4e 13087 13118 cmp si, strict byte 0ffffh ; 83 fe ff 13088 je short 08c 61h ; 74 1213119 je short 08ccdh ; 74 12 13089 13120 add bx, word [bp-006h] ; 03 5e fa 13090 13121 mov dx, bx ; 89 da … … 13092 13123 movzx ax, byte [bp-004h] ; 0f b6 46 fc 13093 13124 cmp dx, ax ; 39 c2 13094 jbe near 08 b9fh ; 0f 86 3e ff13125 jbe near 08c0bh ; 0f 86 3e ff 13095 13126 cmp si, strict byte 0ffffh ; 83 fe ff 13096 jne short 08c 6ah ; 75 0413127 jne short 08cd6h ; 75 04 13097 13128 mov ax, bx ; 89 d8 13098 jmp short 08c 6dh ; eb 0313129 jmp short 08cd9h ; eb 03 13099 13130 mov ax, strict word 0ffffh ; b8 ff ff 13100 13131 leave ; c9 … … 13102 13133 pop si ; 5e 13103 13134 retn ; c3 13104 pop bp ; 5d 13105 lea si, [bx-073h] ; 8d 77 8d 13106 mov cl, byte [di-07261h] ; 8a 8d 9f 8d 13107 mov DL, strict byte 08dh ; b2 8d 13108 db 0c4h 13109 db 08dh 13110 _pci16_function: ; 0xf8c7d LB 0x1bb 13135 db 0c9h, 08dh, 0e3h, 08dh, 0f6h, 08dh, 00bh, 08eh, 01eh, 08eh, 030h, 08eh 13136 _pci16_function: ; 0xf8ce9 LB 0x1bb 13111 13137 push si ; 56 13112 13138 push di ; 57 … … 13120 13146 xor ah, ah ; 30 e4 13121 13147 cmp bx, strict byte 00003h ; 83 fb 03 13122 jc short 08 cb4h ; 72 1a13123 jbe short 08d 0ch ; 76 7013148 jc short 08d20h ; 72 1a 13149 jbe short 08d78h ; 76 70 13124 13150 cmp bx, strict byte 0000eh ; 83 fb 0e 13125 je near 08 dd8h ; 0f 84 35 0113151 je near 08e44h ; 0f 84 35 01 13126 13152 cmp bx, strict byte 00008h ; 83 fb 08 13127 jc near 08e 07h ; 0f 82 5d 0113153 jc near 08e73h ; 0f 82 5d 01 13128 13154 cmp bx, strict byte 0000dh ; 83 fb 0d 13129 jbe near 08d 31h ; 0f 86 80 0013130 jmp near 08e 07h ; e9 53 0113155 jbe near 08d9dh ; 0f 86 80 00 13156 jmp near 08e73h ; e9 53 01 13131 13157 cmp bx, strict byte 00002h ; 83 fb 02 13132 je short 08 cdch ; 74 2313158 je short 08d48h ; 74 23 13133 13159 cmp bx, strict byte 00001h ; 83 fb 01 13134 jne near 08e 07h ; 0f 85 47 0113160 jne near 08e73h ; 0f 85 47 01 13135 13161 mov word [bp+024h], strict word 00001h ; c7 46 24 01 00 13136 13162 mov word [bp+018h], 00210h ; c7 46 18 10 02 … … 13138 13164 mov word [bp+01ch], 04350h ; c7 46 1c 50 43 13139 13165 mov word [bp+01eh], 02049h ; c7 46 1e 49 20 13140 jmp near 08e 34h ; e9 58 0113166 jmp near 08ea0h ; e9 58 01 13141 13167 cmp word [bp+01ch], strict byte 0ffffh ; 83 7e 1c ff 13142 jne short 08 ce8h ; 75 0613168 jne short 08d54h ; 75 06 13143 13169 or ah, 083h ; 80 cc 83 13144 jmp near 08e 2dh ; e9 45 0113170 jmp near 08e99h ; e9 45 01 13145 13171 mov bx, word [bp+00ch] ; 8b 5e 0c 13146 13172 mov dx, word [bp+020h] ; 8b 56 20 13147 13173 mov ax, word [bp+01ch] ; 8b 46 1c 13148 13174 xor cx, cx ; 31 c9 13149 call 08b 8bh ; e8 95 fe13175 call 08bf7h ; e8 95 fe 13150 13176 cmp ax, strict word 0ffffh ; 3d ff ff 13151 jne short 08d 06h ; 75 0b13177 jne short 08d72h ; 75 0b 13152 13178 mov ax, word [bp+024h] ; 8b 46 24 13153 13179 xor ah, ah ; 30 e4 13154 13180 or ah, 086h ; 80 cc 86 13155 jmp near 08e 2dh ; e9 27 0113181 jmp near 08e99h ; e9 27 01 13156 13182 mov word [bp+018h], ax ; 89 46 18 13157 jmp near 08e 34h ; e9 28 0113183 jmp near 08ea0h ; e9 28 01 13158 13184 mov bx, word [bp+00ch] ; 8b 5e 0c 13159 13185 mov ax, word [bp+020h] ; 8b 46 20 13160 13186 mov dx, word [bp+022h] ; 8b 56 22 13161 13187 mov cx, strict word 00001h ; b9 01 00 13162 call 08b 8bh ; e8 70 fe13188 call 08bf7h ; e8 70 fe 13163 13189 cmp ax, strict word 0ffffh ; 3d ff ff 13164 jne short 08d 2bh ; 75 0b13190 jne short 08d97h ; 75 0b 13165 13191 mov ax, word [bp+024h] ; 8b 46 24 13166 13192 xor ah, ah ; 30 e4 13167 13193 or ah, 086h ; 80 cc 86 13168 jmp near 08e 2dh ; e9 02 0113194 jmp near 08e99h ; e9 02 01 13169 13195 mov word [bp+018h], ax ; 89 46 18 13170 jmp near 08e 34h ; e9 03 0113196 jmp near 08ea0h ; e9 03 01 13171 13197 cmp word [bp+008h], 00100h ; 81 7e 08 00 01 13172 jc short 08d 3eh ; 72 0613198 jc short 08daah ; 72 06 13173 13199 or ah, 087h ; 80 cc 87 13174 jmp near 08e 2dh ; e9 ef 0013200 jmp near 08e99h ; e9 ef 00 13175 13201 mov dx, word [bp+008h] ; 8b 56 08 13176 13202 mov ax, word [bp+018h] ; 8b 46 18 13177 call 08b 6ah ; e8 23 fe13203 call 08bd6h ; e8 23 fe 13178 13204 mov bx, word [bp+024h] ; 8b 5e 24 13179 13205 xor bh, bh ; 30 ff 13180 13206 sub bx, strict byte 00008h ; 83 eb 08 13181 13207 cmp bx, strict byte 00005h ; 83 fb 05 13182 jnbe near 08e 34h ; 0f 87 de 0013208 jnbe near 08ea0h ; 0f 87 de 00 13183 13209 add bx, bx ; 01 db 13184 jmp word [cs:bx-073 8fh] ; 2e ff a7 718c13210 jmp word [cs:bx-07323h] ; 2e ff a7 dd 8c 13185 13211 mov bx, word [bp+020h] ; 8b 5e 20 13186 13212 xor bl, bl ; 30 db … … 13193 13219 or bx, ax ; 09 c3 13194 13220 mov word [bp+020h], bx ; 89 5e 20 13195 jmp near 08e 34h ; e9 bd 0013221 jmp near 08ea0h ; e9 bd 00 13196 13222 mov dx, word [bp+008h] ; 8b 56 08 13197 13223 xor dh, dh ; 30 f6 … … 13200 13226 in ax, DX ; ed 13201 13227 mov word [bp+020h], ax ; 89 46 20 13202 jmp near 08e 34h ; e9 aa 0013228 jmp near 08ea0h ; e9 aa 00 13203 13229 mov dx, 00cfch ; ba fc 0c 13204 13230 in eax, DX ; 66 ed … … 13209 13235 mov word [bp+020h], ax ; 89 46 20 13210 13236 mov word [bp+022h], dx ; 89 56 22 13211 jmp near 08e 34h ; e9 95 0013237 jmp near 08ea0h ; e9 95 00 13212 13238 mov ax, word [bp+020h] ; 8b 46 20 13213 13239 mov dx, word [bp+008h] ; 8b 56 08 … … 13216 13242 add dx, 00cfch ; 81 c2 fc 0c 13217 13243 out DX, AL ; ee 13218 jmp near 08e 34h ; e9 82 0013244 jmp near 08ea0h ; e9 82 00 13219 13245 mov ax, word [bp+020h] ; 8b 46 20 13220 13246 mov dx, word [bp+008h] ; 8b 56 08 … … 13223 13249 add dx, 00cfch ; 81 c2 fc 0c 13224 13250 out DX, ax ; ef 13225 jmp short 08e 34h ; eb 7013251 jmp short 08ea0h ; eb 70 13226 13252 mov ax, word [bp+020h] ; 8b 46 20 13227 13253 mov cx, word [bp+022h] ; 8b 4e 22 … … 13232 13258 ; mov ax, cx ; 8b c1 13233 13259 out DX, eax ; 66 ef 13234 jmp short 08e 34h ; eb 5c13260 jmp short 08ea0h ; eb 5c 13235 13261 mov bx, word [bp+008h] ; 8b 5e 08 13236 13262 mov es, [bp+028h] ; 8e 46 28 13237 13263 mov cx, word [word 00000h] ; 8b 0e 00 00 13238 13264 cmp cx, word [es:bx] ; 26 3b 0f 13239 jbe short 08 df1h ; 76 0a13265 jbe short 08e5dh ; 76 0a 13240 13266 mov ax, word [bp+024h] ; 8b 46 24 13241 13267 xor ah, ah ; 30 e4 13242 13268 or ah, 089h ; 80 cc 89 13243 jmp short 08e 2dh ; eb 3c13269 jmp short 08e99h ; eb 3c 13244 13270 les di, [es:bx+002h] ; 26 c4 7f 02 13245 13271 mov si, 0f2c0h ; be c0 f2 … … 13250 13276 pop DS ; 1f 13251 13277 mov word [bp+018h], 00a00h ; c7 46 18 00 0a 13252 jmp short 08e 34h ; eb 2d13278 jmp short 08ea0h ; eb 2d 13253 13279 mov bx, 00d32h ; bb 32 0d 13254 13280 mov cx, ds ; 8c d9 13255 13281 mov ax, strict word 00004h ; b8 04 00 13256 call 018aeh ; e8 9c8a13282 call 018aeh ; e8 30 8a 13257 13283 mov ax, word [bp+018h] ; 8b 46 18 13258 13284 push ax ; 50 … … 13261 13287 push 00ceeh ; 68 ee 0c 13262 13288 push strict byte 00004h ; 6a 04 13263 call 018e9h ; e8 c78a13289 call 018e9h ; e8 5b 8a 13264 13290 add sp, strict byte 00008h ; 83 c4 08 13265 13291 mov ax, word [bp+024h] ; 8b 46 24 … … 13272 13298 pop si ; 5e 13273 13299 retn ; c3 13274 pci_find_classcode_: ; 0xf8e 38LB 0x2813300 pci_find_classcode_: ; 0xf8ea4 LB 0x28 13275 13301 push bx ; 53 13276 13302 push cx ; 51 … … 13287 13313 int 01ah ; cd 1a 13288 13314 cmp ah, 000h ; 80 fc 00 13289 je near 08e 59h ; 0f 84 03 0013315 je near 08ec5h ; 0f 84 03 00 13290 13316 mov bx, strict word 0ffffh ; bb ff ff 13291 13317 mov ax, bx ; 89 d8 … … 13295 13321 pop bx ; 5b 13296 13322 retn ; c3 13297 pci_read_config_byte_: ; 0xf8e 60LB 0x2113323 pci_read_config_byte_: ; 0xf8ecc LB 0x21 13298 13324 push cx ; 51 13299 13325 push di ; 57 … … 13313 13339 pop cx ; 59 13314 13340 retn ; c3 13315 pci_read_config_word_: ; 0xf8e 81LB 0x1f13341 pci_read_config_word_: ; 0xf8eed LB 0x1f 13316 13342 push cx ; 51 13317 13343 push di ; 57 … … 13331 13357 pop cx ; 59 13332 13358 retn ; c3 13333 pci_read_config_dword_: ; 0xf8 ea0LB 0x2413359 pci_read_config_dword_: ; 0xf8f0c LB 0x24 13334 13360 push cx ; 51 13335 13361 push di ; 57 … … 13351 13377 pop cx ; 59 13352 13378 retn ; c3 13353 vds_is_present_: ; 0xf8 ec4LB 0x1d13379 vds_is_present_: ; 0xf8f30 LB 0x1d 13354 13380 push bx ; 53 13355 13381 push bp ; 55 … … 13359 13385 mov es, ax ; 8e c0 13360 13386 test byte [es:bx], 020h ; 26 f6 07 20 13361 je short 08 edch ; 74 0613387 je short 08f48h ; 74 06 13362 13388 mov ax, strict word 00001h ; b8 01 00 13363 13389 pop bp ; 5d … … 13368 13394 pop bx ; 5b 13369 13395 retn ; c3 13370 vds_real_to_lin_: ; 0xf8 ee1LB 0x1e13396 vds_real_to_lin_: ; 0xf8f4d LB 0x1e 13371 13397 push bx ; 53 13372 13398 push cx ; 51 … … 13379 13405 sal ax, 1 ; d1 e0 13380 13406 rcl dx, 1 ; d1 d2 13381 loop 08 eefh ; e2 fa13407 loop 08f5bh ; e2 fa 13382 13408 xor cx, cx ; 31 c9 13383 13409 add ax, bx ; 01 d8 … … 13387 13413 pop bx ; 5b 13388 13414 retn ; c3 13389 vds_build_sg_list_: ; 0xf8 effLB 0x7613415 vds_build_sg_list_: ; 0xf8f6b LB 0x76 13390 13416 push si ; 56 13391 13417 push di ; 57 … … 13401 13427 mov bx, word [bp+00ah] ; 8b 5e 0a 13402 13428 mov word [es:di+002h], bx ; 26 89 5d 02 13403 call 08 ee1h ; e8 c3 ff13429 call 08f4dh ; e8 c3 ff 13404 13430 mov es, si ; 8e c6 13405 13431 mov word [es:di+004h], ax ; 26 89 45 04 13406 13432 mov word [es:di+006h], dx ; 26 89 55 06 13407 13433 mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00 13408 call 08 ec4h ; e8 93 ff13434 call 08f30h ; e8 93 ff 13409 13435 test ax, ax ; 85 c0 13410 je short 08f 48h ; 74 1313436 je short 08fb4h ; 74 13 13411 13437 mov es, si ; 8e c6 13412 13438 mov ax, 08105h ; b8 05 81 13413 13439 mov dx, strict word 00000h ; ba 00 00 13414 13440 int 04bh ; cd 4b 13415 jc near 08f 45h ; 0f 82 02 0013441 jc near 08fb1h ; 0f 82 02 00 13416 13442 db 032h, 0c0h 13417 13443 ; xor al, al ; 32 c0 13418 13444 cbw ; 98 13419 jmp short 08f 6fh ; eb 2713445 jmp short 08fdbh ; eb 27 13420 13446 mov es, si ; 8e c6 13421 13447 mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00 … … 13433 13459 pop si ; 5e 13434 13460 retn 00004h ; c2 04 00 13435 vds_free_sg_list_: ; 0xf8f 75 LB 0x3b13461 vds_free_sg_list_: ; 0xf8fe1 LB 0x2f 13436 13462 push bx ; 53 13437 13463 push di ; 57 … … 13439 13465 mov bp, sp ; 89 e5 13440 13466 mov bx, ax ; 89 c3 13441 call 08 ec4h ; e8 45 ff13467 call 08f30h ; e8 45 ff 13442 13468 test ax, ax ; 85 c0 13443 je short 0 8f96h ; 74 1313469 je short 09002h ; 74 13 13444 13470 mov di, bx ; 89 df 13445 13471 mov es, dx ; 8e c2 … … 13447 13473 mov dx, strict word 00000h ; ba 00 00 13448 13474 int 04bh ; cd 4b 13449 jc near 0 8f95h ; 0f 82 02 0013475 jc near 09001h ; 0f 82 02 00 13450 13476 db 032h, 0c0h 13451 13477 ; xor al, al ; 32 c0 … … 13457 13483 pop bx ; 5b 13458 13484 retn ; c3 13459 times 0x edb 013460 __U4D: ; 0xf 8fb0 LB 0x3913485 times 0x2 db 0 13486 __U4D: ; 0xf9010 LB 0x39 13461 13487 pushfw ; 9c 13462 13488 push eax ; 66 50 … … 13488 13514 popfw ; 9d 13489 13515 retn ; c3 13490 __U4M: ; 0xf 8fe9 LB 0x3113516 __U4M: ; 0xf9049 LB 0x31 13491 13517 pushfw ; 9c 13492 13518 push eax ; 66 50 … … 13513 13539 popfw ; 9d 13514 13540 retn ; c3 13515 _fmemset_: ; 0xf90 1a LB 0xd13541 _fmemset_: ; 0xf907a LB 0xd 13516 13542 push di ; 57 13517 13543 mov es, dx ; 8e c2 … … 13523 13549 pop di ; 5f 13524 13550 retn ; c3 13525 _fmemcpy_: ; 0xf90 27 LB 0x3313551 _fmemcpy_: ; 0xf9087 LB 0x33 13526 13552 push bp ; 55 13527 13553 db 08bh, 0ech … … 13543 13569 leave ; c9 13544 13570 retn ; c3 13545 add byte [bx+si-070h], dh ; 00 70 90 13546 jc short 08fd4h ; 72 90 13547 jbe short 08fd6h ; 76 90 13548 jbe short 08fd8h ; 76 90 13549 jbe short 08fdah ; 76 90 13550 js short 08fdch ; 78 90 13551 js short 08fdeh ; 78 90 13552 jp short 08fe0h ; 7a 90 13553 jle short 08fe2h ; 7e 90 13554 jle short 08fe4h ; 7e 90 13555 adc byte [bx+si-06f7bh], 087h ; 80 90 85 90 87 13571 add al, dl ; 00 d0 13556 13572 nop ; 90 13557 apm_worker: ; 0xf905a LB 0x3a 13573 rcl byte [bx+si-06f2ah], CL ; d2 90 d6 90 13574 db 0d6h 13575 nop ; 90 13576 db 0d6h 13577 nop ; 90 13578 fcom dword [bx+si-06f28h] ; d8 90 d8 90 13579 ficom dword [bx+si-06f22h] ; da 90 de 90 13580 ficom word [bx+si-06f20h] ; de 90 e0 90 13581 in ax, 090h ; e5 90 13582 out 090h, ax ; e7 90 13583 apm_worker: ; 0xf90ba LB 0x3a 13558 13584 sti ; fb 13559 13585 push ax ; 50 … … 13567 13593 pop ax ; 58 13568 13594 mov AH, strict byte 053h ; b4 53 13569 jnc short 090 90h ; 73 2513570 jmp word [cs:bp-06f c0h] ; 2e ff a6 40 9013571 jmp short 090 8eh ; eb 1c13595 jnc short 090f0h ; 73 25 13596 jmp word [cs:bp-06f60h] ; 2e ff a6 a0 90 13597 jmp short 090eeh ; eb 1c 13572 13598 sti ; fb 13573 13599 hlt ; f4 13574 jmp short 090 8eh ; eb 1813575 jmp short 090 8eh ; eb 1613576 jmp short 090 90h ; eb 1613600 jmp short 090eeh ; eb 18 13601 jmp short 090eeh ; eb 16 13602 jmp short 090f0h ; eb 16 13577 13603 mov AH, strict byte 080h ; b4 80 13578 jmp short 090 92h ; eb 1413579 jmp short 090 90h ; eb 1013604 jmp short 090f2h ; eb 14 13605 jmp short 090f0h ; eb 10 13580 13606 mov ax, 00102h ; b8 02 01 13581 jmp short 090 8eh ; eb 0913582 jmp short 090 8eh ; eb 0713607 jmp short 090eeh ; eb 09 13608 jmp short 090eeh ; eb 07 13583 13609 mov BL, strict byte 000h ; b3 00 13584 13610 mov cx, strict word 00000h ; b9 00 00 13585 jmp short 090 8eh ; eb 0013611 jmp short 090eeh ; eb 00 13586 13612 clc ; f8 13587 13613 retn ; c3 … … 13589 13615 stc ; f9 13590 13616 retn ; c3 13591 apm_pm16_entry: ; 0xf90 94 LB 0x1113617 apm_pm16_entry: ; 0xf90f4 LB 0x11 13592 13618 mov AH, strict byte 002h ; b4 02 13593 13619 push DS ; 1e … … 13597 13623 add bp, strict byte 00008h ; 83 c5 08 13598 13624 mov ds, bp ; 8e dd 13599 call 090 5ah ; e8 b8 ff13625 call 090bah ; e8 b8 ff 13600 13626 pop bp ; 5d 13601 13627 pop DS ; 1f 13602 13628 retf ; cb 13603 13629 13604 ; Padding 0x4 95b bytes at 0xf90a513605 times 18 779db 013630 ; Padding 0x48fb bytes at 0xf9105 13631 times 18683 db 0 13606 13632 13607 13633 section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3aa class=CODE group=AUTO … … 13650 13676 add bp, strict byte 00008h ; 83 c5 08 13651 13677 push ebp ; 66 55 13652 mov bp, 090 96h ; bd 96 9013678 mov bp, 090f6h ; bd f6 90 13653 13679 add byte [bx+si], al ; 00 00 13654 13680 push ebp ; 66 55 … … 14243 14269 pop DS ; 1f 14244 14270 cld ; fc 14245 call 048 d0h ; e8 166714271 call 048cah ; e8 10 67 14246 14272 pop DS ; 1f 14247 14273 mov AL, strict byte 014h ; b0 14 … … 14311 14337 mov word [001c2h], ax ; a3 c2 01 14312 14338 call 0edbfh ; e8 58 0b 14313 mov ax, 0f8a 4h ; b8 a4f814339 mov ax, 0f8a9h ; b8 a9 f8 14314 14340 mov word [001d0h], ax ; a3 d0 01 14315 14341 mov ax, 0f000h ; b8 00 f0 … … 14330 14356 pop DS ; 1f 14331 14357 cld ; fc 14332 call 01b 25h ; e8 883814333 call 01f 13h ; e8 733c14334 call 089 46h ; e8 a3 a614335 call 07a 5bh ; e8 b5 9714358 call 01b1fh ; e8 82 38 14359 call 01f0dh ; e8 6d 3c 14360 call 089b2h ; e8 0f a7 14361 call 07ac7h ; e8 21 98 14336 14362 call 0ed2fh ; e8 86 0a 14337 14363 call 0e2d2h ; e8 26 00 … … 14340 14366 cld ; fc 14341 14367 call 01725h ; e8 73 34 14342 call 035 e0h ; e8 2b5314368 call 035dah ; e8 25 53 14343 14369 sti ; fb 14344 14370 int 019h ; cd 19 … … 14376 14402 mov ax, 0f000h ; b8 00 f0 14377 14403 mov word [0004eh], ax ; a3 4e 00 14378 mov ax, 0f8d 2h ; b8 d2f814404 mov ax, 0f8d7h ; b8 d7 f8 14379 14405 mov word [001d8h], ax ; a3 d8 01 14380 14406 mov ax, 0f000h ; b8 00 f0 … … 14460 14486 pop DS ; 1f 14461 14487 cld ; fc 14462 call 05c4 6h ; e8 04 7514488 call 05c40h ; e8 fe 74 14463 14489 popaw ; 61 14464 14490 pop ES ; 07 … … 14576 14602 pop DS ; 1f 14577 14603 cld ; fc 14578 call 04f c2h ; e8 806714604 call 04fbch ; e8 7a 67 14579 14605 popaw ; 61 14580 14606 pop DS ; 1f … … 14593 14619 pop DS ; 1f 14594 14620 cld ; fc 14595 call 04f c2h ; e8 626714621 call 04fbch ; e8 5c 67 14596 14622 popaw ; 61 14597 14623 pop DS ; 1f … … 14692 14718 pop DS ; 1f 14693 14719 cld ; fc 14694 call 04bd ah ; e8 0b6214720 call 04bd4h ; e8 05 62 14695 14721 pop ES ; 07 14696 14722 popaw ; 61 … … 14718 14744 cld ; fc 14719 14745 push 0ece9h ; 68 e9 ec 14720 jmp near 0361 eh ; e9 ad4914746 jmp near 03618h ; e9 a7 49 14721 14747 push ES ; 06 14722 14748 push ax ; 50 … … 14724 14750 push cx ; 51 14725 14751 push dx ; 52 14726 call 035f 6h ; e8 7d4914752 call 035f0h ; e8 77 49 14727 14753 cmp AL, strict byte 000h ; 3c 00 14728 14754 je short 0ecabh ; 74 2e 14729 call 0360 ah ; e8 8a4914755 call 03604h ; e8 84 49 14730 14756 pop dx ; 5a 14731 14757 push dx ; 52 … … 14745 14771 cld ; fc 14746 14772 push 0ece9h ; 68 e9 ec 14747 jmp near 03be 6h ; e9 4f4f14773 jmp near 03be0h ; e9 49 4f 14748 14774 and dl, 0e0h ; 80 e2 e0 14749 14775 db 03ah, 0c2h … … 14785 14811 jne short 0ecc8h ; 75 06 14786 14812 push 0ece9h ; 68 e9 ec 14787 jmp near 02e 51h ; e9 894114813 jmp near 02e4bh ; e9 83 41 14788 14814 int13_notfloppy: ; 0xfecc8 LB 0x14 14789 14815 cmp dl, 0e0h ; 80 fa e0 … … 14791 14817 shr ebx, 010h ; 66 c1 eb 10 14792 14818 push bx ; 53 14793 call 040 15h ; e8 405314819 call 0400fh ; e8 3a 53 14794 14820 pop bx ; 5b 14795 14821 sal ebx, 010h ; 66 c1 e3 10 … … 14798 14824 cmp ah, 040h ; 80 fc 40 14799 14825 jnbe short 0ece6h ; 77 05 14800 call 053 42h ; e8 5e6614826 call 0533ch ; e8 58 66 14801 14827 jmp short 0ece9h ; eb 03 14802 call 0577 eh ; e8 956a14828 call 05778h ; e8 8f 6a 14803 14829 int13_out: ; 0xfece9 LB 0x4 14804 14830 pop DS ; 1f … … 15013 15039 pop DS ; 1f 15014 15040 cld ; fc 15015 call 06 dc4h ; e8 e7 7d15041 call 06e30h ; e8 53 7e 15016 15042 popaw ; 61 15017 15043 pop ES ; 07 … … 15061 15087 mov ax, strict word 00001h ; b8 01 00 15062 15088 push ax ; 50 15063 call 0466 eh ; e8 9e5515089 call 04668h ; e8 98 55 15064 15090 inc sp ; 44 15065 15091 inc sp ; 44 … … 15068 15094 mov ax, strict word 00002h ; b8 02 00 15069 15095 push ax ; 50 15070 call 0466 eh ; e8 915515096 call 04668h ; e8 8b 55 15071 15097 inc sp ; 44 15072 15098 inc sp ; 44 … … 15075 15101 mov ax, strict word 00003h ; b8 03 00 15076 15102 push strict byte 00003h ; 6a 03 15077 call 0466 eh ; e8 835515103 call 04668h ; e8 7d 55 15078 15104 inc sp ; 44 15079 15105 inc sp ; 44 … … 15082 15108 mov ax, strict word 00004h ; b8 04 00 15083 15109 push ax ; 50 15084 call 0466 eh ; e8 765515110 call 04668h ; e8 70 55 15085 15111 inc sp ; 44 15086 15112 inc sp ; 44 … … 15410 15436 pop DS ; 1f 15411 15437 iret ; cf 15412 int15_handler: ; 0xff859 LB 0x2 915438 int15_handler: ; 0xff859 LB 0x2e 15413 15439 pushfw ; 9c 15414 15440 push DS ; 1e … … 15418 15444 cld ; fc 15419 15445 cmp ah, 086h ; 80 fc 86 15420 je short 0f88 7h ; 74 2315446 je short 0f88ch ; 74 28 15421 15447 cmp ah, 0e8h ; 80 fc e8 15422 je short 0f887h ; 74 1e 15448 je short 0f88ch ; 74 23 15449 cmp ah, 0d0h ; 80 fc d0 15450 je short 0f88ch ; 74 1e 15423 15451 pushaw ; 60 15424 15452 cmp ah, 053h ; 80 fc 53 15425 je short 0f8 7dh ; 74 0e15453 je short 0f882h ; 74 0e 15426 15454 cmp ah, 0c2h ; 80 fc c2 15427 je short 0f88 2h ; 74 0e15428 call 05e4 fh ; e8 d86515455 je short 0f887h ; 74 0e 15456 call 05e49h ; e8 cd 65 15429 15457 popaw ; 61 15430 15458 pop ES ; 07 15431 15459 pop DS ; 1f 15432 15460 popfw ; 9d 15433 jmp short 0f89 0h ; eb 1315434 call 08a 75h ; e8 f5 9115435 jmp short 0f87 7h ; eb f515436 int15_handler_mouse: ; 0xff88 2LB 0x515437 call 06a 3eh ; e8 b9 7115438 jmp short 0f87 7h ; eb f015439 int15_handler32: ; 0xff88 7LB 0x915461 jmp short 0f895h ; eb 13 15462 call 08ae1h ; e8 5c 92 15463 jmp short 0f87ch ; eb f5 15464 int15_handler_mouse: ; 0xff887 LB 0x5 15465 call 06aaah ; e8 20 72 15466 jmp short 0f87ch ; eb f0 15467 int15_handler32: ; 0xff88c LB 0x9 15440 15468 pushad ; 66 60 15441 call 0631 8h ; e8 8c6a15469 call 06312h ; e8 81 6a 15442 15470 popad ; 66 61 15443 jmp short 0f87 8h ; eb e815444 iret_modify_cf: ; 0xff89 0LB 0x1415445 jc short 0f8 9bh ; 72 0915471 jmp short 0f87dh ; eb e8 15472 iret_modify_cf: ; 0xff895 LB 0x14 15473 jc short 0f8a0h ; 72 09 15446 15474 push bp ; 55 15447 15475 db 08bh, 0ech … … 15456 15484 pop bp ; 5d 15457 15485 iret ; cf 15458 int74_handler: ; 0xff8a 4LB 0x2e15486 int74_handler: ; 0xff8a9 LB 0x2e 15459 15487 sti ; fb 15460 15488 pushaw ; 60 … … 15469 15497 pop DS ; 1f 15470 15498 cld ; fc 15471 call 069 78h ; e8 c0 7015499 call 069e4h ; e8 27 71 15472 15500 pop cx ; 59 15473 jcxz 0f8c 7h ; e3 0c15501 jcxz 0f8cch ; e3 0c 15474 15502 push strict byte 00000h ; 6a 00 15475 15503 pop DS ; 1f … … 15478 15506 call far [word 00022h] ; ff 1e 22 00 15479 15507 cli ; fa 15480 call 0e03bh ; e8 70e715508 call 0e03bh ; e8 6b e7 15481 15509 add sp, strict byte 00008h ; 83 c4 08 15482 15510 pop DS ; 1f … … 15484 15512 popaw ; 61 15485 15513 iret ; cf 15486 int76_handler: ; 0xff8d 2 LB 0x19c15514 int76_handler: ; 0xff8d7 LB 0x197 15487 15515 push ax ; 50 15488 15516 push DS ; 1e … … 15490 15518 mov ds, ax ; 8e d8 15491 15519 mov byte [0008eh], 0ffh ; c6 06 8e 00 ff 15492 call 0e03bh ; e8 5 ae715520 call 0e03bh ; e8 55 e7 15493 15521 pop DS ; 1f 15494 15522 pop ax ; 58 15495 15523 iret ; cf 15496 times 0x18 8db 015524 times 0x183 db 0 15497 15525 db 'XM' 15498 15526 font8x8: ; 0xffa6e LB 0x421 … … 15561 15589 db 018h, 018h, 018h, 000h, 018h, 018h, 018h, 000h, 0e0h, 030h, 030h, 01ch, 030h, 030h, 0e0h, 000h 15562 15590 db 076h, 0dch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 010h, 038h, 06ch, 0c6h, 0c6h, 0feh, 000h 15563 db 080h, 0fch, 0b1h, 075h, 00fh, 006h, 01eh, 00eh, 01fh, 0fch, 066h, 060h, 0e8h, 0 00h, 08eh, 066h15564 db 061h, 01fh, 007h, 0cfh, 006h, 01eh, 060h, 00eh, 01fh, 0fch, 0e8h, 0 95h, 068h, 061h, 01fh, 007h15591 db 080h, 0fch, 0b1h, 075h, 00fh, 006h, 01eh, 00eh, 01fh, 0fch, 066h, 060h, 0e8h, 06ch, 08eh, 066h 15592 db 061h, 01fh, 007h, 0cfh, 006h, 01eh, 060h, 00eh, 01fh, 0fch, 0e8h, 001h, 069h, 061h, 01fh, 007h 15565 15593 db 0cfh 15566 15594 int70_handler: ; 0xffe8f LB 0x16 … … 15571 15599 pop DS ; 1f 15572 15600 cld ; fc 15573 call 066 65h ; e8 cd 6715601 call 066d1h ; e8 39 68 15574 15602 popaw ; 61 15575 15603 pop DS ; 1f … … 15658 15686 dec cx ; 49 15659 15687 pop di ; 5f 15660 sbb AL, strict byte 000h ; 1c 00 15688 and ax, strict word 00000h ; 25 00 00 15689 add byte [bx+si], dl ; 00 10 15690 push CS ; 0e 15661 15691 add byte [bx+si], al ; 00 00 15662 adc byte [00900h], cl ; 10 0e 00 0915663 15692 add byte [di], ah ; 00 25 15664 15693 times 0x6f db 0 … … 15666 15695 cpu_reset: ; 0xffff0 LB 0x10 15667 15696 jmp far 0f000h:0e05bh ; ea 5b e0 00 f0 15668 db 030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 0 39h15697 db 030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 010h -
trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative.md5sum
r44751 r45670 1 672b75ae8ab89eb41cf55264d313f4c1*VBoxPcBios.rom1 0067f8599e411e0d5c3226b8f9cd523d *VBoxPcBios.rom
Note:
See TracChangeset
for help on using the changeset viewer.