?login_element?

Subversion Repositories NedoOS

Rev

Blame | Last modification | View Log | Download

  1.  
  2.         if 1==0
  3. _TST#8  LD HL,isTST8 ;[**]
  4.         LD A,(HL)
  5.         AND %1111
  6.         RET NZ
  7.         DEC (HL)
  8.         ;
  9.         LD C,0
  10.         LD DE,invBUF
  11.         PUSH DE
  12.         CALL t8dst
  13.         LD C,(HL)
  14.         POP HL
  15.         CP C
  16.         JR Z,t8ex_
  17.         LD DE,KUNGE-invBUF+#100
  18.         ADD HL,DE       ;err
  19. t8ex_   LD BC,#40FF
  20. t8ex    LD (HL),C
  21.         INC HL
  22.         DJNZ t8ex
  23.         SCF
  24.         RET
  25.  
  26. t8dst   PUSH DE ;[**]
  27.         LD HL,t8tab
  28. t8d0    LD A,(HL)
  29.         INC HL
  30.         CP #80
  31.         JR Z,t8d1
  32.         JR NC,t8d2
  33.         CP #38
  34.         JR Z,t8d1
  35.         JR t8d3
  36. t8d2    CP #FE
  37.         RET Z
  38. t8d3    INC C
  39.         LD (DE),A
  40.         INC DE
  41. t8d1    JR t8d0
  42.         ;
  43.         POP DE
  44.         LD A,C
  45.         RET
  46.  
  47.         endif
  48.  
  49.  
  50. ;звуковые эффекты   (C) Copper Feet [sept.1997]
  51. ;--------------- Звук (в осн.стр)-----------------
  52.  
  53. ;частотаМЛ (FF-конец),частотаСТ,громкость,шум (FF-НЕТ)
  54.  
  55. SOU4    ;выстрел из катапульты
  56.         DEFW 1096
  57.         DEFB 11,31
  58.         DEFW 946
  59.         DEFB 12,20
  60.         DEFW 2096
  61.         DEFB 14,17
  62.         DEFW 796
  63.         DEFB 15,20
  64.         DEFW 3094
  65.         DEFB 15,22
  66.         DEFW 646
  67.         DEFB 15,26
  68.         DEFW 4094
  69.         DEFB 15,28
  70.         DEFW 596
  71.         DEFB 14,29
  72.         ;
  73. SOU3    ;выстрел из лука
  74.         DEFW 4094
  75.         DEFB 14,30
  76.         DEFW 596
  77.         DEFB 14,27
  78.         DEFW 4094
  79.         DEFB 13,25
  80.         DEFW 596
  81.         DEFB 11,20
  82.         DEFW 3094
  83.         DEFB 09,10
  84.         DEFB #FF
  85.  
  86.  
  87. ;0-меч,1-топор,2-взрыв катапульты,3-выстрел из лука,
  88. ;4-выстрел из катапульты, 5-колдовство, 6-волшебники стреляют
  89. ;7-укус, 8-малый взрыв
  90. tSOUND  DEFW SOU0,SOU1,SOU2,SOU3,SOU4,SOU5,SOU6,SOU7,SOU8
  91. prvSND  ; приоритет
  92.         DEFB   10,   5,  20,   6,   15, 12,   9,   8,  14
  93. typSND  ;кто какой звук при ударе даёт (#FF-нет)
  94.         DEFB 1,#FF,#FF,3,0,#FF,#FF,#FF,0
  95.         DEFB 1,#FF,#FF,3,0,#FF,#FF,#FF,0
  96.         DEFB 7,1,7,1,#FF,#FF,1,0,#FF
  97.  
  98. ;#EEC9(стр.6) - адрес хранения упр. регистра AY для протрекера
  99. ;часть эффектов в стр.3
  100.  
  101.  
  102. SOUNDy  ;играть звук A (IY+5,IY+6 - коорд источника)
  103.         PUSH HL
  104.         LD L,(IY+5)
  105.         LD H,(IY+6)
  106.         LD (sIY56),HL
  107.         POP HL
  108. SOUND9  LD IX,sIY56
  109.         ;
  110. SOUNDn  ;играть звук A (IX+0,IX+1 - коорд источника)
  111.         CP #FF
  112.         RET Z ;пустой звук
  113.         PUSH HL
  114.         PUSH BC
  115.         PUSH AF
  116.         LD C,A
  117.         LD A,(AY_FX)
  118.         OR A
  119.         JR Z,son1 ;эфф запрещ
  120.         LD A,C
  121.         LD HL,prvSND
  122.         CALL BA
  123.         LD A,(priv_S)
  124.         CP (HL)
  125.         JR NC,son1 ;приоритет эффекта ниже проигрываемой
  126.         LD A,(HL)
  127.         LD (priv_2),A
  128.         LD A,C
  129.         LD HL,tSOUND  ;инициализ мелодии #A
  130.         CALL WT
  131.         LD (NOTA2),HL
  132.         ;
  133.         ;опр видимости источника звука
  134.         CALL HL_IX0
  135.         CALL GMAP
  136.         BIT 7,(HL)
  137.         JR NZ,son1
  138.         ;опред громкости в зависимости от дальности
  139.         LD HL,(X0)
  140.         LD A,L
  141.         ADD A,6
  142.         LD L,A
  143.         LD A,H
  144.         ADD A,7
  145.         LD H,A ;центр экр
  146.         CALL DIST2
  147.         SUB 6
  148.         JR NC,lso1
  149.         ;в экране - макс громкость
  150.         XOR A
  151. lso0    LD (levSND),A
  152.         LD HL,(NOTA2)
  153.         LD (NOTA),HL
  154.         LD A,(priv_2)
  155.         LD (priv_S),A
  156.         JR son1
  157. lso1    CP 6
  158.         JR C,lso0;в радиусе 12
  159. son1    POP AF
  160.         POP BC
  161.         POP HL
  162.         RET
  163.  
  164. ;форматы нот
  165. ;(#ff) - конец мелодии
  166. ;(N4,N5,N10,Nшум) - значение 4,5,10  и 6  регистров для С
  167.  
  168.  
  169. pSOUND  ;вып. ноту мелодии
  170.         LD A,(priv_S) ;проигрыватель не занят
  171.         OR A
  172.         RET Z
  173.         LD A,(#EEC9) ;из протрекера
  174.         LD E,A
  175.         if 1==0
  176.         LD A,3   ;стр. с эффектами
  177.         CALL MEM
  178.         else
  179.         call MEM_snd
  180.         endif
  181.         LD HL,(NOTA)
  182.         LD A,(HL)
  183.         CP #FF
  184.         JR NZ,ppsC ;конец эффекта?
  185.         XOR  A
  186.         LD (priv_S),A ;завершение мелодии
  187.         RET
  188. ppsC    ;
  189.         LD BC,#FFFD
  190.         LD A,4 ;частотаМЛ
  191.         OUT (C),A
  192.         LD B,#BF
  193.         OUTI
  194.         ;
  195.         LD B,#FF
  196.         INC A ;частотаCT
  197.         OUT (C),A
  198.         LD B,#BF
  199.         OUTI
  200.         ;
  201.         LD B,#FF
  202.         LD A,10 ;громкость
  203.         OUT (C),A
  204.         LD A,(levSND)
  205.         LD B,A
  206.         LD A,(HL)
  207.         INC HL
  208.         SUB B ;коррект громкости по расстоянию
  209.         JR NC,pps1
  210.         XOR A
  211. pps1    LD B,#BF
  212.         OUT (C),A
  213.         ;
  214.         LD B,#FF
  215.         LD A,7 ;управление
  216.         OUT (C),A
  217.         LD B,#BF
  218.         LD A,E ;из протрекера
  219.         BIT 7,(HL)
  220.         JR Z,pps2
  221.         AND %11111011 ;без шума
  222.         JR pps3
  223. pps2    AND %11011011
  224. pps3    OUT (C),A
  225.         ;
  226.         LD B,#FF
  227.         LD A,6 ;шум
  228.         OUT (C),A
  229.         BIT 7,(HL)
  230.         JR NZ,pps4
  231.         OUTI
  232.         JR pps5
  233. pps4    INC HL
  234. pps5    LD (NOTA),HL
  235.         RET
  236.  
  237.         if 1==0
  238. yw  EQU #38
  239. yv  EQU #80
  240. t8tab   DEFB yv,#AF,yv,yw      ;   TST#8   XOR A [**]
  241.         DEFB #21,yv,#50,yw,yv,#40  ;           LD HL,#4050
  242.         DEFB #01,#00,yv,#36  ;           LD BC,#3600
  243.         DEFB #AE,yv,yv,yv      ;   tst80   XOR (HL)
  244.         DEFB #86,yw      ;           ADD A,(HL)
  245.         DEFB #23      ;           INC HL
  246.         DEFB #0D,yw      ;           DEC C
  247.         DEFB #20,#FA    ;           JR NZ,tst80
  248.         DEFB #05      ;           DEC B
  249.         DEFB #20,yv,yv,#F7    ;           JR NZ,tst80
  250.         DEFB #21,yv,#00,yv,#FF  ;           LD HL,#FF00
  251.         DEFB #C9,yw,yw,  #FE          ;RET (!cp(hl))
  252.         endif
  253.