Subversion Repositories Kolibri OS

Rev

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