?login_element?

Subversion Repositories NedoOS

Rev

Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1.         export _sfx_play
  2.         export _sfx_stop
  3.         export _music_play
  4.         export _music_stop
  5.         export _sample_play
  6.  
  7.  
  8.  
  9. ;т√ъы■ўхэшх чтєър эр єърчрээюь ўшях
  10. ;a=0 шыш 1
  11.  
  12. reset_ay
  13. ;шёяюы№чєхЄё  т _sfx_stop, _music_stop
  14.         ifdef TFM
  15.         push af
  16.         di
  17.  
  18.         call turbo_off
  19.  
  20.         ld a,SND_PAGE
  21.         call setSlot1
  22.         ld a,(TURBOFMON)
  23.         or a
  24.         call nz,#400f;tfmshut
  25.         ld a,CC_PAGE1
  26.         call setSlot1
  27.         pop af
  28.         call reset_ay_ay
  29.  
  30.         call turbo_on
  31.  
  32.         ei
  33.         ret
  34.  
  35.         else
  36.  
  37.         di
  38.         call reset_ay_ay
  39.         ei
  40.         ret
  41.  
  42.         endif
  43.  
  44. turbo_on
  45.         ld a,%10101000 ;Ёхцшь EGA ё ЄєЁсю
  46.         ld bc,#bd77
  47.         out (c),a
  48.         ret
  49.  
  50. turbo_off
  51.         ld a,%10100000 ;Ёхцшь EGA схч ЄєЁсю, Єръ ъръ т 14 ╠├Ў ёъюЁюёЄ№ эхёЄрсшы№эр
  52.         ld bc,#bd77
  53.         out (c),a
  54.         ret
  55.  
  56. reset_ay_ay
  57. ;т TFM эєцэю фы  уыє°хэш  AY яхЁхф т√тюфюь ¤ЇЇхъЄют
  58.         push af
  59.         ifdef TFM
  60.         or %11111000
  61.         ;or %11111010           ;no wait sync
  62.         else
  63.         or #fe
  64.         endif
  65.         ld bc,#fffd
  66.         out (c),a
  67.  
  68.         xor a
  69.         ld l,a
  70. .l0
  71.         ld b,#ff
  72.         ifdef TFM
  73.         call libstartup_waitstatus
  74.         endif
  75.         out (c),a
  76.         ifdef TFM
  77.         call libstartup_waitstatus
  78.         endif
  79.         ld b,#bf
  80.         out (c),l
  81.         inc a
  82.         cp 14
  83.         jr nz,.l0
  84.         pop af
  85.         ret
  86.  
  87.  
  88.        
  89.  
  90. ;чряєёъ чтєъютюую ¤ЇЇхъЄр
  91.  
  92. _sfx_play
  93.         push bc
  94.         ld a,SND_PAGE
  95.         call setSlot1
  96.         pop bc
  97.         ld a,b
  98.         call AFX_PLAY
  99.         ld a,CC_PAGE1
  100.         jp setSlot1
  101.  
  102.  
  103.  
  104. ;юёЄрэют чтєъют√ї ¤ЇЇхъЄют
  105.  
  106. _sfx_stop
  107.         xor a
  108.         jp reset_ay
  109.  
  110.  
  111.  
  112. ;чряєёъ ьєч√ъш
  113.  
  114. _music_play
  115.         push ix
  116.         push iy
  117.         push af
  118.         ld a,SND_PAGE
  119.         call setSlot1
  120.  
  121.         ld a,(MUS_COUNT)
  122.         ld l,a
  123.         pop af
  124.  
  125.         cp l
  126.         jr nc,.skip
  127.  
  128.         ld h,high MUS_LIST
  129.         ld l,a
  130.  
  131.         ld e,(hl)
  132.         inc h
  133.         ld d,(hl)
  134.         inc h
  135.         ld a,(hl)
  136.         ex de,hl
  137.        
  138.         ifdef EVO
  139.         cpl
  140.         else
  141.         xor 127
  142.         endif
  143.        
  144.         call setSlot2
  145.         di
  146.         ld (musicPage),a
  147.         ifdef TFM
  148.         ld a,(TURBOFMON)
  149.         or a
  150.         call nz,PT3_INIT
  151.         else
  152.         ld bc,#fffd
  153.         ld a,#fe
  154.         out (c),a
  155.         call PT3_INIT
  156.         endif
  157.         ei
  158.         ld a,CC_PAGE2
  159.         call setSlot2
  160.  
  161. .skip
  162.         pop iy
  163.         pop ix
  164.  
  165.         ld a,CC_PAGE1
  166.         jp setSlot1
  167.  
  168.  
  169.  
  170. ;т√ъы■ўхэшх ьєч√ъш
  171.  
  172. _music_stop
  173.         xor a
  174.         ld (musicPage),a
  175.         jp reset_ay
  176.  
  177.  
  178. ;яЁюшуЁ√трэшх ё¤ьяыр
  179. ;l=эюьхЁ ё¤ьяыр
  180.  
  181. _sample_play
  182.         ;ld bc,MEM_SLOT0
  183.         ;ld a,SND_PAGE
  184.         ;out (c),a
  185.         ;ld a,(SMP_COUNT&#3fff)
  186.         ;ld e,a
  187.         ;ld a,l
  188.         ;cp e
  189.         ;jr nc,.skip
  190.  
  191.         ;ld h,high (SMP_LIST&#3f00)
  192.  
  193.         ;ld e,(hl)      ;lsb
  194.         ;inc h
  195.         ;ld d,(hl)      ;msb
  196.         ;inc h
  197.         ;ld a,(hl)      ;page
  198.         ;inc h
  199.         ;ld h,(hl)      ;delay
  200.         ;ex de,hl
  201.  
  202.         ;ifdef ATM
  203.         ;xor 128
  204.         ;endif
  205.         ;out (c),a
  206.         ;ld e,a
  207.         ;di
  208.         ;ld a,%10100000 ;Ёхцшь EGA схч ЄєЁсю, Єръ ъръ т 14 ╠├Ў ёъюЁюёЄ№ эхёЄрсшы№эр
  209.         ;ld bc,#bd77
  210.         ;out (c),a
  211.         ;call turbo_off
  212.         ;ld bc,MEM_SLOT0
  213. .l0
  214.         ;ld a,(hl)      ;7
  215.         ;out (#fb),a    ;11
  216.         ;or a           ;4
  217.         ;jr z,.done     ;7/12
  218.         ;inc hl         ;6
  219.         ;bit 6,h                ;8
  220.         ;jr nz,.page    ;7/12
  221. .delay
  222.         ;ld a,d         ;4
  223.         ;dec a          ;4
  224.         ;jp nz,$-1      ;10
  225.         ;jp .l0         ;10=78t яЁш d=1, °ру чрфхЁцъш 14 ЄръЄют
  226. .page
  227.         ;ld h,0
  228.         ;dec e
  229. ;       out (c),e
  230. ;       jp .delay
  231. .done
  232.         ;ld a,%10101000 ;Ёхцшь EGA ё ЄєЁсю
  233.         ;ld bc,#bd77
  234.         ;out (c),a
  235.         ;call turbo_on
  236.         ;ei
  237.  
  238. .skip
  239.         ;ld bc,MEM_SLOT0
  240.         ;ld a,CC_PAGE0
  241.         ;out (c),a
  242.         ret