Rev 4641 | Rev 4711 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 4641 | Rev 4700 | ||
---|---|---|---|
Line 69... | Line 69... | ||
69 | format binary as "mnt" |
69 | format binary as "mnt" |
Line 70... | Line 70... | ||
70 | 70 | ||
71 | include 'macros.inc' |
71 | include 'macros.inc' |
Line 72... | Line 72... | ||
72 | include 'struct.inc' |
72 | include 'struct.inc' |
Line 73... | Line 73... | ||
73 | 73 | ||
74 | $Revision: 4641 $ |
74 | $Revision: 4700 $ |
Line 367... | Line 367... | ||
367 | call mutex_init |
367 | call mutex_init |
368 | mov ecx, ide_channel1_mutex |
368 | mov ecx, ide_channel1_mutex |
369 | call mutex_init |
369 | call mutex_init |
370 | mov ecx, ide_channel2_mutex |
370 | mov ecx, ide_channel2_mutex |
371 | call mutex_init |
371 | call mutex_init |
- | 372 | mov ecx, ide_channel3_mutex |
|
- | 373 | call mutex_init |
|
- | 374 | mov ecx, ide_channel4_mutex |
|
- | 375 | call mutex_init |
|
- | 376 | mov ecx, ide_channel5_mutex |
|
- | 377 | call mutex_init |
|
- | 378 | mov ecx, ide_channel6_mutex |
|
- | 379 | call mutex_init |
|
372 | ;----------------------------------------------------------------------------- |
380 | ;----------------------------------------------------------------------------- |
373 | ; SAVE REAL MODE VARIABLES |
381 | ; SAVE REAL MODE VARIABLES |
374 | ;----------------------------------------------------------------------------- |
382 | ;----------------------------------------------------------------------------- |
375 | ; --------------- APM --------------------- |
383 | ; --------------- APM --------------------- |
Line 1502... | Line 1510... | ||
1502 | mov ecx, [esp+64+32-12+4] |
1510 | mov ecx, [esp+64+32-12+4] |
1503 | and ecx, not 0x80000000 ; force counted string |
1511 | and ecx, not 0x80000000 ; force counted string |
1504 | mov eax, [esp+64+8] ; background color (if given) |
1512 | mov eax, [esp+64+8] ; background color (if given) |
1505 | mov edi, [esp+64+4] |
1513 | mov edi, [esp+64+4] |
1506 | jmp dtext |
1514 | jmp dtext |
- | 1515 | ;----------------------------------------------------------------------------- |
|
- | 1516 | iglobal |
|
- | 1517 | midi_base dw 0 |
|
1507 | 1518 | endg |
|
- | 1519 | ;----------------------------------------------------------------------------- |
|
1508 | align 4 |
1520 | align 4 |
1509 | - | ||
1510 | sys_setup: |
1521 | sys_setup: |
1511 | - | ||
1512 | ; 1=roland mpu midi base , base io address |
1522 | ; 1 = roland mpu midi base , base io address |
1513 | ; 2=keyboard 1, base kaybap 2, shift keymap, 9 country 1eng 2fi 3ger 4rus |
1523 | ; 2 = keyboard 1, base kaybap 2, shift keymap, 9 country 1eng 2fi 3ger 4rus |
1514 | ; 3=cd base 1, pri.master 2, pri slave 3 sec master, 4 sec slave |
1524 | ; 3 = not used |
- | 1525 | ; 4 = not used |
|
1515 | ; 5=system language, 1eng 2fi 3ger 4rus |
1526 | ; 5 = system language, 1eng 2fi 3ger 4rus |
- | 1527 | ; 6 = not used |
|
1516 | ; 7=hd base 1, pri.master 2, pri slave 3 sec master, 4 sec slave |
1528 | ; 7 = not used |
1517 | ; 8=fat32 partition in hd |
1529 | ; 8 = not used |
1518 | ; 9 |
1530 | ; 9 = not used |
1519 | ; 10 = sound dma channel |
1531 | ; 10 = not used |
1520 | ; 11 = enable lba read |
1532 | ; 11 = enable lba read |
1521 | ; 12 = enable pci access |
1533 | ; 12 = enable pci access |
1522 | - | ||
1523 | - | ||
- | 1534 | ;----------------------------------------------------------------------------- |
|
1524 | and [esp+32], dword 0 |
1535 | and [esp+32], dword 0 |
- | 1536 | ; F.21.1 - set MPU MIDI base port |
|
1525 | dec ebx ; MIDI |
1537 | dec ebx |
1526 | jnz nsyse1 |
1538 | jnz @f |
- | 1539 | ||
1527 | cmp ecx, 0x100 |
1540 | cmp ecx, 0x100 |
- | 1541 | jb @f |
|
Line 1528... | Line -... | ||
1528 | - | ||
1529 | jb nsyse1 |
1542 | |
1530 | mov esi, 65535 |
1543 | mov esi, 65535 |
- | 1544 | cmp esi, ecx |
|
Line 1531... | Line -... | ||
1531 | cmp esi, ecx |
- | |
1532 | 1545 | jb @f |
|
1533 | jb nsyse1 |
1546 | |
1534 | mov [midi_base], cx ;bx |
1547 | mov [midi_base], cx |
1535 | mov word [mididp], cx;bx |
1548 | mov word [mididp], cx |
1536 | inc cx ;bx |
1549 | inc cx |
- | 1550 | mov word [midisp], cx |
|
- | 1551 | ret |
|
- | 1552 | ;-------------------------------------- |
|
- | 1553 | @@: |
|
- | 1554 | ; F.21.2 - set keyboard layout |
|
Line 1537... | Line -... | ||
1537 | mov word [midisp], cx;bx |
- | |
1538 | ret |
- | |
1539 | - | ||
1540 | iglobal |
- | |
1541 | midi_base dw 0 |
- | |
1542 | endg |
- | |
1543 | - | ||
1544 | nsyse1: |
1555 | dec ebx |
1545 | dec ebx ; KEYBOARD |
1556 | jnz @f |
1546 | jnz nsyse2 |
1557 | |
1547 | mov edi, [TASK_BASE] |
- | |
- | 1558 | mov edi, [TASK_BASE] |
|
1548 | mov eax, [edi+TASKDATA.mem_start] |
1559 | mov eax, [edi+TASKDATA.mem_start] |
1549 | add eax, edx |
1560 | add eax, edx |
- | 1561 | ; 1 = normal layout |
|
1550 | 1562 | dec ecx |
|
1551 | dec ecx |
1563 | jnz .shift |
1552 | jnz kbnobase |
1564 | |
1553 | mov ebx, keymap |
1565 | mov ebx, keymap |
- | 1566 | mov ecx, 128 |
|
1554 | mov ecx, 128 |
1567 | call memmove |
- | 1568 | ret |
|
1555 | call memmove |
1569 | ;-------------------------------------- |
1556 | ret |
1570 | .shift: |
Line 1557... | Line 1571... | ||
1557 | kbnobase: |
1571 | ; 2 = layout at pressed Shift |
1558 | dec ecx |
1572 | dec ecx |
1559 | jnz kbnoshift |
1573 | jnz .alt |
1560 | 1574 | ||
- | 1575 | mov ebx, keymap_shift |
|
- | 1576 | mov ecx, 128 |
|
1561 | mov ebx, keymap_shift |
1577 | call memmove |
1562 | mov ecx, 128 |
1578 | ret |
1563 | call memmove |
1579 | ;-------------------------------------- |
- | 1580 | .alt: |
|
1564 | ret |
1581 | ; 3 = layout at pressed Alt |
1565 | kbnoshift: |
1582 | dec ecx |
1566 | dec ecx |
1583 | jnz .country |
1567 | jnz kbnoalt |
1584 | |
- | 1585 | mov ebx, keymap_alt |
|
1568 | mov ebx, keymap_alt |
1586 | mov ecx, 128 |
- | 1587 | call memmove |
|
1569 | mov ecx, 128 |
1588 | ret |
1570 | call memmove |
- | |
1571 | ret |
- | |
1572 | kbnoalt: |
- | |
1573 | sub ecx, 6 |
- | |
1574 | jnz kbnocountry |
- | |
1575 | mov word [keyboard], dx |
- | |
1576 | ret |
- | |
1577 | kbnocountry: |
- | |
1578 | mov [esp+32], dword 1 |
- | |
1579 | ret |
- | |
1580 | nsyse2: |
- | |
1581 | dec ebx ; CD |
- | |
1582 | jnz nsyse4 |
- | |
1583 | - | ||
1584 | test ecx, ecx |
- | |
1585 | jz nosesl |
- | |
1586 | - | ||
1587 | cmp ecx, 4 |
- | |
1588 | ja nosesl |
1589 | ;-------------------------------------- |
1589 | mov [cd_base], cl |
- | |
1590 | - | ||
1591 | dec ecx |
- | |
1592 | jnz noprma |
- | |
Line 1593... | Line -... | ||
1593 | mov eax, [hd_address_table] |
- | |
1594 | mov [cdbase], eax ;0x1f0 |
- | |
1595 | mov [cdid], 0xa0 |
- | |
1596 | noprma: |
- | |
1597 | 1590 | .country: |
|
1598 | dec ecx |
- | |
1599 | jnz noprsl |
- | |
1600 | mov eax, [hd_address_table] |
- | |
1601 | mov [cdbase], eax ;0x1f0 |
- | |
1602 | mov [cdid], 0xb0 |
- | |
1603 | noprsl: |
- | |
1604 | dec ecx |
- | |
1605 | jnz nosema |
- | |
1606 | mov eax, [hd_address_table+16] |
- | |
1607 | mov [cdbase], eax ;0x170 |
- | |
1608 | mov [cdid], 0xa0 |
- | |
1609 | nosema: |
- | |
1610 | dec ecx |
- | |
1611 | jnz nosesl |
1591 | ; country identifier |
- | 1592 | sub ecx, 6 |
|
- | 1593 | jnz .error |
|
- | 1594 | ||
- | 1595 | mov word [keyboard], dx |
|
- | 1596 | ret |
|
Line 1612... | Line -... | ||
1612 | mov eax, [hd_address_table+16] |
- | |
1613 | mov [cdbase], eax ;0x170 |
- | |
1614 | mov [cdid], 0xb0 |
- | |
1615 | nosesl: |
- | |
1616 | ret |
- | |
1617 | - | ||
1618 | iglobal |
- | |
1619 | cd_base db 0 |
- | |
1620 | 1597 | ;-------------------------------------- |
|
1621 | endg |
1598 | @@: |
1622 | nsyse4: |
- | |
1623 | - | ||
1624 | sub ebx, 2 ; SYSTEM LANGUAGE |
1599 | ; F.21.5 - set system language |
1625 | jnz nsyse5 |
- | |
1626 | mov [syslang], ecx |
1600 | sub ebx, 3 |
1627 | ret |
- | |
1628 | nsyse5: |
- | |
1629 | - | ||
1630 | sub ebx, 2 ; HD BASE - obsolete |
- | |
1631 | jnz nsyse7 |
- | |
1632 | - | ||
1633 | nosethd: |
- | |
1634 | ret |
- | |
1635 | - | ||
1636 | nsyse7: |
- | |
1637 | - | ||
1638 | ; cmp eax,8 ; HD PARTITION - obsolete |
1601 | jnz @f |
1639 | dec ebx |
1602 | |
1640 | jnz nsyse8 |
1603 | mov [syslang], ecx |
1641 | ret |
1604 | ret |
- | 1605 | ;-------------------------------------- |
|
1642 | 1606 | @@: |
|
1643 | nsyse8: |
1607 | ; F.21.11 - enable/disable low-level access to HD |
- | 1608 | and ecx, 1 |
|
1644 | ; cmp eax,11 ; ENABLE LBA READ |
1609 | sub ebx, 6 |
1645 | and ecx, 1 |
- | |
1646 | sub ebx, 3 |
1610 | jnz @f |
1647 | jnz no_set_lba_read |
1611 | |
1648 | mov [lba_read_enabled], ecx |
1612 | mov [lba_read_enabled], ecx |
- | 1613 | ret |
|
1649 | ret |
1614 | ;-------------------------------------- |
1650 | 1615 | @@: |
|
1651 | no_set_lba_read: |
- | |
- | 1616 | ; F.21.12 - enable/disable low-level access to PCI |
|
1652 | ; cmp eax,12 ; ENABLE PCI ACCESS |
1617 | dec ebx |
1653 | dec ebx |
1618 | jnz .error |
1654 | jnz sys_setup_err |
1619 | |
1655 | mov [pci_access_enabled], ecx |
- | |
- | 1620 | mov [pci_access_enabled], ecx |
|
1656 | ret |
1621 | ret |
1657 | - | ||
1658 | sys_setup_err: |
1622 | ;-------------------------------------- |
1659 | or [esp+32], dword -1 |
- | |
1660 | ret |
1623 | .error: |
1661 | 1624 | or [esp+32], dword -1 |
|
1662 | align 4 |
1625 | ret |
- | 1626 | ;----------------------------------------------------------------------------- |
|
1663 | 1627 | align 4 |
|
- | 1628 | sys_getsetup: |
|
1664 | sys_getsetup: |
1629 | ; 1 = roland mpu midi base , base io address |
1665 | 1630 | ; 2 = keyboard 1, base kaybap 2, shift keymap, 9 country 1eng 2fi 3ger 4rus |
|
1666 | ; 1=roland mpu midi base , base io address |
1631 | ; 3 = not used |
1667 | ; 2=keyboard 1, base kaybap 2, shift keymap, 9 country 1eng 2fi 3ger 4rus |
- | |
1668 | ; 3=cd base 1, pri.master 2, pri slave 3 sec master, 4 sec slave |
1632 | ; 4 = not used |
- | 1633 | ; 5 = system language, 1eng 2fi 3ger 4rus |
|
- | 1634 | ; 6 = not used |
|
- | 1635 | ; 7 = not used |
|
- | 1636 | ; 8 = not used |
|
1669 | ; 5=system language, 1eng 2fi 3ger 4rus |
1637 | ; 9 = get hs timer tic |
1670 | ; 7=hd base 1, pri.master 2, pri slave 3 sec master, 4 sec slave |
1638 | ; 10 = not used |
- | 1639 | ; 11 = get the state "lba read" |
|
1671 | ; 8=fat32 partition in hd |
1640 | ; 12 = get the state "pci access" |
1672 | ; 9=get hs timer tic |
1641 | ;----------------------------------------------------------------------------- |
1673 | 1642 | ; F.26.1 - get MPU MIDI base port |
|
- | 1643 | dec ebx |
|
1674 | ; cmp eax,1 |
1644 | jnz @f |
1675 | dec ebx |
1645 | |
1676 | jnz ngsyse1 |
1646 | movzx eax, [midi_base] |
1677 | movzx eax, [midi_base] |
1647 | mov [esp+32], eax |
Line 1678... | Line 1648... | ||
1678 | mov [esp+32], eax |
1648 | ret |
1679 | ret |
1649 | ;-------------------------------------- |
1680 | ngsyse1: |
1650 | @@: |
1681 | ; cmp eax,2 |
- | |
1682 | dec ebx |
1651 | ; F.26.2 - get keyboard layout |
1683 | jnz ngsyse2 |
1652 | dec ebx |
1684 | 1653 | jnz @f |
|
- | 1654 | ||
1685 | mov edi, [TASK_BASE] |
1655 | mov edi, [TASK_BASE] |
1686 | mov ebx, [edi+TASKDATA.mem_start] |
1656 | mov ebx, [edi+TASKDATA.mem_start] |
1687 | add ebx, edx |
1657 | add ebx, edx |
1688 | 1658 | ; 1 = normal layout |
|
- | 1659 | dec ecx |
|
1689 | ; cmp ebx,1 |
1660 | jnz .shift |
1690 | dec ecx |
1661 | |
1691 | jnz kbnobaseret |
1662 | mov eax, keymap |
1692 | mov eax, keymap |
1663 | mov ecx, 128 |
Line 1693... | Line 1664... | ||
1693 | mov ecx, 128 |
1664 | call memmove |
1694 | call memmove |
1665 | ret |
1695 | ret |
1666 | ;-------------------------------------- |
1696 | kbnobaseret: |
1667 | .shift: |
- | 1668 | ; 2 = layout with pressed Shift |
|
1697 | ; cmp ebx,2 |
1669 | dec ecx |
1698 | dec ecx |
1670 | jnz .alt |
1699 | jnz kbnoshiftret |
1671 | |
1700 | 1672 | mov eax, keymap_shift |
|
Line 1701... | Line 1673... | ||
1701 | mov eax, keymap_shift |
1673 | mov ecx, 128 |
1702 | mov ecx, 128 |
1674 | call memmove |
1703 | call memmove |
1675 | ret |
1704 | ret |
1676 | ;-------------------------------------- |
- | 1677 | .alt: |
|
1705 | kbnoshiftret: |
1678 | ; 3 = layout with pressed Alt |
1706 | ; cmp ebx,3 |
1679 | dec ecx |
1707 | dec ecx |
1680 | jne .country |
1708 | jne kbnoaltret |
1681 | |
- | 1682 | mov eax, keymap_alt |
|
1709 | 1683 | mov ecx, 128 |
|
1710 | mov eax, keymap_alt |
1684 | call memmove |
1711 | mov ecx, 128 |
1685 | ret |
- | 1686 | ;-------------------------------------- |
|
- | 1687 | .country: |
|
- | 1688 | ; 9 = country identifier |
|
- | 1689 | sub ecx, 6 |
|
- | 1690 | jnz .error |
|
Line 1712... | Line -... | ||
1712 | call memmove |
- | |
1713 | ret |
- | |
1714 | kbnoaltret: |
- | |
1715 | ; cmp ebx,9 |
- | |
1716 | sub ecx, 6 |
- | |
1717 | jnz ngsyse2 |
- | |
1718 | movzx eax, word [keyboard] |
- | |
1719 | mov [esp+32], eax |
- | |
1720 | ret |
- | |
1721 | - | ||
1722 | - | ||
1723 | ngsyse2: |
- | |
1724 | ; cmp eax,3 |
1691 | |
1725 | dec ebx |
1692 | movzx eax, word [keyboard] |
1726 | jnz ngsyse3 |
1693 | mov [esp+32], eax |
- | 1694 | ret |
|
1727 | movzx eax, [cd_base] |
1695 | ;-------------------------------------- |
1728 | mov [esp+32], eax |
1696 | @@: |
1729 | ret |
1697 | ; F.26.5 - get system language |
1730 | ngsyse3: |
1698 | sub ebx, 3 |
- | 1699 | jnz @f |
|
1731 | ; cmp eax,5 |
1700 | |
1732 | sub ebx, 2 |
1701 | mov eax, [syslang] |
1733 | jnz ngsyse5 |
1702 | mov [esp+32], eax |
- | 1703 | ret |
|
1734 | mov eax, [syslang] |
1704 | ;-------------------------------------- |
1735 | mov [esp+32], eax |
1705 | @@: |
1736 | ret |
1706 | ; F.26.9 - get the value of the time counter |
1737 | ngsyse5: |
1707 | sub ebx, 4 |
- | 1708 | jnz @f |
|
1738 | ; cmp eax,9 |
1709 | |
1739 | sub ebx, 4 |
1710 | mov eax, [timer_ticks] |
1740 | jnz ngsyse9 |
1711 | mov [esp+32], eax |
- | 1712 | ret |
|
1741 | mov eax, [timer_ticks];[0xfdf0] |
1713 | ;-------------------------------------- |
1742 | mov [esp+32], eax |
1714 | @@: |
1743 | ret |
1715 | ; F.26.11 - Find out whether low-level HD access is enabled |
1744 | ngsyse9: |
1716 | sub ebx, 2 |
- | 1717 | jnz @f |
|
1745 | ; cmp eax,11 |
1718 | |
1746 | sub ebx, 2 |
1719 | mov eax, [lba_read_enabled] |
1747 | jnz ngsyse11 |
1720 | mov [esp+32], eax |
- | 1721 | ret |
|
1748 | mov eax, [lba_read_enabled] |
1722 | ;-------------------------------------- |
1749 | mov [esp+32], eax |
1723 | @@: |
1750 | ret |
1724 | ; F.26.12 - Find out whether low-level PCI access is enabled |
1751 | ngsyse11: |
- | |
1752 | ; cmp eax,12 |
- | |
- | 1725 | dec ebx |
|
1753 | dec ebx |
1726 | jnz .error |
1754 | jnz ngsyse12 |
1727 | |
1755 | mov eax, [pci_access_enabled] |
1728 | mov eax, [pci_access_enabled] |
1756 | mov [esp+32], eax |
- | |
- | 1729 | mov [esp+32], eax |
|
1757 | ret |
1730 | ret |
1758 | ngsyse12: |
1731 | ;-------------------------------------- |
1759 | mov [esp+32], dword 1 |
1732 | .error: |
1760 | ret |
1733 | or [esp+32], dword -1 |
1761 | 1734 | ret |
|
1762 | 1735 | ;----------------------------------------------------------------------------- |
|
1763 | get_timer_ticks: |
1736 | get_timer_ticks: |
1764 | mov eax, [timer_ticks] |
1737 | mov eax, [timer_ticks] |
1765 | ret |
- | |
- | 1738 | ret |
|
1766 | 1739 | ;----------------------------------------------------------------------------- |
|
Line 1767... | Line 1740... | ||
1767 | iglobal |
1740 | iglobal |
1768 | align 4 |
1741 | align 4 |
1769 | mousefn dd msscreen, mswin, msbutton, msset |
1742 | mousefn dd msscreen, mswin, msbutton, msset |
Line 5078... | Line 5051... | ||
5078 | mov ax, word [Screen_Max_X] |
5051 | mov ax, word [Screen_Max_X] |
5079 | shl eax, 16 |
5052 | shl eax, 16 |
5080 | mov ax, word [Screen_Max_Y] |
5053 | mov ax, word [Screen_Max_Y] |
5081 | mov [esp + 32], eax |
5054 | mov [esp + 32], eax |
5082 | ret |
5055 | ret |
5083 | - | ||
- | 5056 | ;----------------------------------------------------------------------------- |
|
5084 | align 4 |
5057 | align 4 |
5085 | - | ||
5086 | syscall_cdaudio: ; CD |
5058 | syscall_cdaudio: ; CD |
5087 | - | ||
5088 | cmp ebx, 4 |
5059 | cmp ebx, 4 |
5089 | jb .audio |
- | |
5090 | jz .eject |
5060 | je .eject |
- | 5061 | ||
5091 | cmp ebx, 5 |
5062 | cmp ebx, 5 |
5092 | jnz .ret |
5063 | je .load |
- | 5064 | ||
- | 5065 | ret |
|
- | 5066 | ;-------------------------------------- |
|
5093 | .load: |
5067 | .load: |
5094 | call .reserve |
5068 | call .reserve |
5095 | call LoadMedium |
5069 | call LoadMedium |
5096 | ;call .free |
- | |
5097 | jmp .free |
5070 | jmp .free |
5098 | ; ret |
5071 | ;-------------------------------------- |
5099 | .eject: |
5072 | .eject: |
5100 | call .reserve |
5073 | call .reserve |
5101 | call clear_CD_cache |
5074 | call clear_CD_cache |
5102 | call allow_medium_removal |
5075 | call allow_medium_removal |
5103 | call EjectMedium |
5076 | call EjectMedium |
5104 | ; call .free |
- | |
5105 | jmp .free |
5077 | jmp .free |
5106 | ; ret |
- | |
5107 | .audio: |
- | |
5108 | call sys_cd_audio |
- | |
5109 | mov [esp+36-4], eax |
5078 | ;-------------------------------------- |
5110 | .ret: |
- | |
5111 | ret |
- | |
5112 | - | ||
5113 | .reserve: |
5079 | .reserve: |
5114 | call reserve_cd |
5080 | call reserve_cd |
- | 5081 | ||
- | 5082 | mov ebx, ecx |
|
- | 5083 | inc ebx |
|
- | 5084 | mov [cdpos], ebx |
|
- | 5085 | mov eax, ebx |
|
- | 5086 | ||
- | 5087 | mov ebx, ecx |
|
- | 5088 | and ebx, 11b |
|
- | 5089 | shl ebx, 1 |
|
- | 5090 | mov cl, 8 |
|
- | 5091 | sub cl, bl |
|
- | 5092 | ||
- | 5093 | dec eax |
|
- | 5094 | shr eax, 2 |
|
- | 5095 | lea eax, [eax*5] |
|
- | 5096 | mov al, [eax+DRIVE_DATA+1] |
|
- | 5097 | ||
- | 5098 | shr al, cl |
|
- | 5099 | test al, 2 ; it's not an ATAPI device |
|
- | 5100 | jz .ret |
|
- | 5101 | ||
5115 | mov eax, ecx |
5102 | mov eax, ecx |
5116 | shr eax, 1 |
5103 | shr eax, 1 |
5117 | and eax, 1 |
5104 | and eax, 1 |
5118 | inc eax |
5105 | inc eax |
5119 | mov [ChannelNumber], ax |
5106 | mov [ChannelNumber], ax |
5120 | mov eax, ecx |
5107 | mov eax, ecx |
5121 | and eax, 1 |
5108 | and eax, 1 |
5122 | mov [DiskNumber], al |
5109 | mov [DiskNumber], al |
5123 | call reserve_cd_channel |
5110 | call reserve_cd_channel |
5124 | and ebx, 3 |
- | |
5125 | inc ebx |
- | |
5126 | mov [cdpos], ebx |
- | |
5127 | add ebx, ebx |
- | |
5128 | mov cl, 8 |
- | |
5129 | sub cl, bl |
- | |
5130 | mov al, [DRIVE_DATA+1] |
5111 | ;-------------------------------------- |
5131 | shr al, cl |
- | |
5132 | test al, 2 |
5112 | .ret: |
5133 | jz .free;.err |
- | |
5134 | ret |
5113 | ret |
- | 5114 | ;-------------------------------------- |
|
5135 | .free: |
5115 | .free: |
5136 | call free_cd_channel |
5116 | call free_cd_channel |
5137 | and [cd_status], 0 |
5117 | and [cd_status], 0 |
5138 | ret |
5118 | ret |
5139 | .err: |
- | |
5140 | call .free |
- | |
5141 | ; pop eax |
- | |
5142 | ret |
- | |
5143 | ;----------------------------------------------------------------------------- |
5119 | ;----------------------------------------------------------------------------- |
5144 | align 4 |
5120 | align 4 |
5145 | syscall_getpixel_WinMap: ; GetPixel WinMap |
5121 | syscall_getpixel_WinMap: ; GetPixel WinMap |
5146 | cmp ebx, [Screen_Max_X] |
5122 | cmp ebx, [Screen_Max_X] |
5147 | jbe @f |
5123 | jbe @f |
Line 5535... | Line 5511... | ||
5535 | cmp byte [BOOT_VARS+0x9030], 1 |
5511 | cmp byte [BOOT_VARS+0x9030], 1 |
5536 | jne @F |
5512 | jne @F |
5537 | ret |
5513 | ret |
5538 | @@: |
5514 | @@: |
5539 | call stop_all_services |
5515 | call stop_all_services |
5540 | movi eax, 3 |
- | |
5541 | call sys_cd_audio |
- | |
Line 5542... | Line 5516... | ||
5542 | 5516 | ||
5543 | yes_shutdown_param: |
5517 | yes_shutdown_param: |
Line 5544... | Line 5518... | ||
5544 | cli |
5518 | cli |