home *** CD-ROM | disk | FTP | other *** search
/ Dream 55 / Amiga_Dream_55.iso / RISCOS / MAGAZINE / LABOS / KING.ZIP / King / !FUNQTM / !RunImage (.txt) < prev    next >
RISC OS BBC BASIC V Source  |  1998-01-11  |  32KB  |  1,394 lines

  1.  FUNQTM by -KING- (a french TECHNO & HARD-ROCK lover guy). 
  2.  Bubles code by STONER
  3.  All code in this basic file by KING. Exept some screen deformations.
  4.  Bugs: _VU=0 is forgotten in the equalizer.
  5.        _Position malfunction in the last sequences.
  6.        _WHITH in the intro.
  7.        _Volume fade (default).
  8.        _Sequence sur le compteur fausse (essayer avec un scud court)
  9.  "<KINGBasicLib$Dir>.General"
  10.  "<KINGBasicLib$Dir>.Disk"
  11.  "<FUNQTM$Dir>.Share"
  12. PathApp$="<FUNQTM$Dir>"
  13. Assemble_Shell
  14. OS_SpriteOp%=&2E
  15. General
  16. Error
  17. DefColours
  18. Rnd(2000))
  19. mode("X1024 Y768 C256")
  20. Cycle%=0
  21.  Block% 100
  22.  PTable%(36)
  23.  a%=0 
  24.  PTable%(a%)
  25.  Ugly ACORN, ugly...
  26. '&!Block%=7:Block%!4=150:Block%!8=-1
  27.  "OS_ReadVduVariables",Block%,Block%
  28.  (Block%!4<2*!Block%) 
  29.  "OS_ChangeDynamicArea",2,N*!Block%-Block%!4
  30.  Amiga stereo
  31.  "QTM_Stereo",1,-127
  32.  "QTM_Stereo",4,-127
  33.  "QTM_Stereo",2,127
  34.  "QTM_Stereo",3,127
  35.  "QTM_RestoreChannel",1
  36.  "QTM_RestoreChannel",2
  37.  "QTM_RestoreChannel",3
  38.  "QTM_RestoreChannel",4
  39.  "QTM_VUBarControl",2,-1
  40. Bank%=0
  41.  "<FUNQTM$Dir>.Balls"
  42. InitBalls
  43.  ScreenArea% 1024*768*2
  44. ScreenArea%!0=1024*768*2
  45. ScreenArea%!4=0
  46. ScreenArea%!8=16
  47. ScreenArea%!12=16
  48.  OS_SpriteOp%,9+512,ScreenArea%
  49.  RGam% 255
  50.  GGam% 255
  51.  BGam% 255
  52.  Arrow% 5000
  53.  Cross% 5000
  54.  Radar% 5000
  55.  RadioActive% 5000
  56.  Star% 5000
  57.  World% 5000
  58. Bub%=10
  59.  lx(Bub%),ly(Bub%),lz(Bub%),depth(1024)
  60.  Matrix% 4*6
  61. U/ColourOffset%=152:
  62.  Oh my god!!!!! 40+24+82
  63. W+Patterns$="<FUNQTM$Dir>.Draw.Patterns."
  64. Load(Arrow%,Patterns$+"Arrow")
  65. Load(Cross%,Patterns$+"Cross")
  66. Load(Radar%,Patterns$+"Radar")
  67. Load(RadioActive%,Patterns$+"RadioActive")
  68. Load(Star%,Patterns$+"Star")
  69. Load(World%,Patterns$+"World")
  70. FadeSpeed%=10
  71. setpal(-90,-90,-90)
  72. Write(1)
  73.  128,0,0,0
  74.  "QTM_DMABuffer" 
  75.  V%<=0 
  76. h. *QTMLoad "<FUNQTM$Dir>.Mods.IN_YA_FACE" x
  77. *QTMStart
  78. k5*Render "<FUNQTM$Dir>.Draw.Intro" 1.5 0 0 1.5 0 0
  79. Screen(1)
  80. angle=-90
  81.  angle+=FadeSpeed%
  82. setpal(angle,angle,angle)
  83.  angle>=0
  84. setpal(0,0,0)
  85.  EXIT%(4)
  86.  BACK%(4)
  87.  PAUSE%(4)
  88.  BALLS%(4)
  89.  SAMPLES%(4)
  90.  WAVES%(4)
  91.  AUTHOR%(4)
  92.  XNEXT%(4)
  93. EXIT%(0)=1700
  94. EXIT%(1)=1900
  95. EXIT%(2)=1400
  96. EXIT%(3)=1500
  97. BALLS%(0)=200
  98. BALLS%(1)=400
  99. BALLS%(2)=700
  100. BALLS%(3)=850
  101. SAMPLES%(0)=500
  102. SAMPLES%(1)=800
  103. SAMPLES%(2)=700
  104. SAMPLES%(3)=800
  105. AUTHOR%(0)=900
  106. AUTHOR%(1)=1100
  107. AUTHOR%(2)=700
  108. AUTHOR%(3)=800
  109. WAVES%(0)=1200
  110. WAVES%(1)=1400
  111. WAVES%(2)=700
  112. WAVES%(3)=800
  113. PAUSE%(0)=1700
  114. PAUSE%(1)=1800
  115. PAUSE%(2)=700
  116. PAUSE%(3)=800
  117. PauseFlag%=
  118.  Debug%=TRUE
  119. Flag%=
  120. VUSpeed%=5
  121. X%=XScreen%*2
  122. Y%=YScreen%*2
  123. MargeX%=1/10*X%
  124. MargeY%=1/20*Y%
  125. Space%=1/10*Y%
  126. EqualW%=(X%-2*MargeX%)/2
  127. %EqualH%=(Y%-2*MargeY%-3*Space%)/4
  128. Max%=743 : 
  129. Counter%=0
  130. Digit%=EqualW%/36
  131. VUR%=EqualH%/2
  132. Eyes%=0
  133. Last1%=0
  134. Last2%=0
  135. LastSeq1%=0
  136. LastSeq2%=0
  137. Timer%=0
  138.  EqCR%=255
  139.  EqCG%=150
  140.  EqCB%=100
  141.  EqCR%=180
  142.  EqCG%=180
  143.  EqCB%=255
  144.  EqCR%=100
  145.  EqCG%=255
  146.  EqCB%=150
  147.  EqCR%=100
  148.  EqCG%=150
  149.  EqCB%=255
  150. )EqCol%=
  151. FindColour(EqCR%,EqCG%,EqCB%)
  152.  CurrentSpl%(5)
  153. CurrentSpl%()=1
  154.  BR%=255
  155.  BG%=150
  156.  BB%=100
  157.  Light purple
  158.  BR%=255
  159.  BG%=150
  160.  BB%=255
  161.  Blue-Green
  162.  BR%=100
  163.  BG%=255
  164.  BB%=150
  165.  Deep Blue
  166.  BR%=0
  167.  BG%=0
  168.  BB%=150
  169.  Yellow
  170.  BR%=255
  171.  BG%=255
  172.  BB%=150
  173.  "ColourTrans_ConvertHSVToRGB",
  174. (360)<<16,
  175. (32768)+32768,65536 
  176.  BR%,BG%,BB%
  177. BR%=BR%/65536*255
  178. BG%=BG%/65536*255
  179. BB%=BB%/65536*255
  180. RLim%=50
  181.  PRINT BR%,BG%,BB%
  182.  "QTM_Info" 
  183.  Track%,Author%,Origin%,Channels%,Length%
  184.  "QTM_ReadSongLength" 
  185.  NbSeq%,NbPat%
  186. Counter=0
  187. Coci%=1
  188.  Piano%(36,4,4)
  189.  Block% 100
  190. (2)=1 
  191.  BA%=10 
  192.  BA%=5 
  193.  PROCsetpal(-90,-90,-90)
  194.  Background drawing loop. **************************************
  195. Write(2)
  196.  n%=0 
  197.  Z%=n%
  198.  Flag%=
  199.  K%=100
  200.  Iy%=Y%/K%
  201.  IC=256/K%
  202.  r%=0 : g%=0 : b%=0
  203.  y%=0 
  204.  Y%-Iy% 
  205.   r%=r
  206.  r%,g%,b%
  207.  0,y%,r%,y%+Iy%
  208.   r=r%
  209.   r+=IC
  210.  128,BR%,BG%,BB%
  211. BStar,
  212. BCircle,
  213. Patterns
  214. 8*Render "<FUNQTM$Dir>.Draw.LOGO" 0.5 0 0 0.5 1550 50
  215.  1800,1100
  216.  0,255,0
  217.  0,0,160+50+10
  218. SetCol(Black%)
  219. (A)*160,
  220. (A)*160,50
  221.  255,255,0
  222. (A)*160,
  223. (A)*160,40
  224. SetCol(Black%)
  225.  0,0,175
  226.  255,0,0
  227.  0,0,160
  228.  0,0,100
  229. /2+2*
  230. /NbSeq%
  231. (A)*160,
  232. (A)*160
  233.  Drawing PANEL.
  234. 3= *Render "<FUNQTM$Dir>.Draw.Panel" 0.35 0 0 0.35 1550 700
  235.  Drawing END button.
  236. 5: *Render "<FUNQTM$Dir>.Draw.END" 0.3 0 0 0.3 1600 1400
  237.  Button to 3D world.
  238. ("Render <FUNQTM$Dir>.Draw.Balls 0.2 0 0 0.2 "+
  239. (BALLS%(0))+" "+
  240. (BALLS%(2)))
  241.  Button to samples.
  242. ("Render <FUNQTM$Dir>.Draw.Samples 0.2 0 0 0.2 "+
  243. (SAMPLES%(0))+" "+
  244. (SAMPLES%(2)))
  245.  Button to KING's page.
  246. ("Render <FUNQTM$Dir>.Draw.Author 0.2 0 0 0.2 "+
  247. (AUTHOR%(0))+" "+
  248. (AUTHOR%(2)))
  249.  Button to the Waves part.
  250. ("Render <FUNQTM$Dir>.Draw.Waves 0.2 0 0 0.2 "+
  251. (WAVES%(0))+" "+
  252. (WAVES%(2)))
  253. R%=255:G%=0:B%=0
  254. VoicePanel(MargeX%,MargeY%+0*(EqualH%+Space%))
  255. R%=0:G%=255:B%=0
  256. VoicePanel(MargeX%,MargeY%+1*(EqualH%+Space%)-50)
  257. R%=0:G%=0:B%=255
  258. VoicePanel(MargeX%,MargeY%+2*(EqualH%+Space%)+50)
  259. R%=255:G%=0:B%=255
  260. VoicePanel(MargeX%,MargeY%+3*(EqualH%+Space%))
  261.  PROCDrawButtons
  262.  0 : *ScreenSave "<FUNQTM$Dir>.Scr1"
  263.  1 : *ScreenSave "<FUNQTM$Dir>.Scr2"
  264. Angle=0
  265. angle-=FadeSpeed%
  266. setpal(-angle,angle,angle)
  267.  angle<=-90
  268. Write(1)
  269.  OS_SpriteOp%,10+512,ScreenArea%,"<FUNQTM$Dir>.Scr1"
  270.  OS_SpriteOp%,34+512,ScreenArea%,ScreenArea%+16,0,0,0
  271. Write(2)
  272.  OS_SpriteOp%,10+512,ScreenArea%,"<FUNQTM$Dir>.Scr2"
  273.  OS_SpriteOp%,34+512,ScreenArea%,ScreenArea%+16,0,0,0
  274. Screen(1)
  275. Bank%=0
  276. angle=-90
  277. angle+=FadeSpeed%
  278. setpal(-angle,angle,angle)
  279.  angle>=0
  280.  "OS_RemoveCursors"
  281.  "QTM_Info" 
  282.  ,,origin%,,,,address%
  283.  origin%>=16 
  284.  0,"Oi! I can't recognise this song!"
  285. m'patterns%=address%+20+30*31+2+128+4
  286. n!sequence%=address%+20+30*31+2
  287.  "QTM_VUBarControl",2,3
  288. *QTMStart
  289. rAngle = 0
  290. gAngle = 0
  291. bAngle = 0
  292.  Begining of the GIGA LOOOOOOOOOOP. ***************************************
  293.  CycleCol%=
  294. CycleColor
  295.  "QTM_ReadSpeed" 
  296.  Speed%
  297.  A%,B%,C%
  298.  C%=4 
  299. (A%-1800)<160 
  300. (B%-1100)<160 
  301. -   Q=(B%-1100)/
  302. ((A%-1800)^2+(B%-1100)^2)
  303.  A%-1800<0 
  304.     Angle=
  305.     Angle=2*
  306.    P%=Angle/(2*
  307. )*NbSeq%+1
  308.  "QTM_Pos",P%-1,0
  309.  Buttons
  310. BBox(EXIT%()) : 
  311. BBox(PAUSE%())
  312.  PauseFlag%=
  313. ("QTMStart") : PauseFlag%=
  314. ("QTMPause") : PauseFlag%=
  315. BBox(SAMPLES%())
  316. Boom("<FUNQTM$Dir>.Draw.Samples 1 0 0 1 100 500",0)
  317. Samples
  318. ScreenFade
  319. BBox(WAVES%())
  320. Boom("<FUNQTM$Dir>.Draw.Waves 1.6 0 0 1.6 200 200",1)
  321. Shell("Run <FUNQTM$Dir>.Waves")
  322. mode("X1024 Y768 G256")
  323. ScreenFade
  324. BBox(BALLS%())
  325. Boom("<FUNQTM$Dir>.Draw.Balls 1.6 0 0 1.6 200 200",0)
  326.  128,0,0,0
  327. Write(1)
  328. Write(2)
  329. ScreenFade
  330. BBox(AUTHOR%())
  331. Boom("<FUNQTM$Dir>.Draw.AUTHOR 1.6 0 0 1.6 200 200",0)
  332. Shell("Run <FUNQTM$Dir>.KING")
  333. mode("X1024 Y768 G256")
  334. ScreenFade 
  335.   C%=0
  336.  "QTM_Pos",-1,-1 
  337.  seq%,event%
  338.  &47E4F,seq% 
  339.  pat%
  340. pos%=1024*pat%+event%*16
  341. pos%+=patterns%
  342. ShadowSwitch
  343. Z%=1-Z%
  344.  VUBars
  345.  "QTM_ReadVULevels",0 
  346.  XVU%
  347. Eyes%+=10
  348.  Eyes%>100 
  349.  Eyes%=0
  350. VU%=XVU% 
  351. G%=pos%
  352. VoiceUpdate(MargeX%,MargeY%+0*(EqualH%+Space%),0,Red%)
  353. VoiceUpdate(MargeX%,MargeY%+1*(EqualH%+Space%)-50,1,Green%)
  354. VoiceUpdate(MargeX%,MargeY%+2*(EqualH%+Space%)+50,2,Blue%)
  355. VoiceUpdate(MargeX%,MargeY%+3*(EqualH%+Space%),3,Purple%)
  356. TimeTrack
  357. NbFPS 
  358. Timer%+=1
  359.  End of GIGA Loooooop. -------------------------------------------------
  360. YOU(p%)
  361.  p%=0 
  362.  p%>=&71 
  363.  p%<=&358 
  364.  a%=-1
  365.   a%+=1
  366.  a%>36 
  367.  PTable%(a%)=p%
  368.  =36-a%
  369. plot(p%)
  370.  p%=-1 
  371.  p%=-2 
  372. SetCol(Black%)
  373.  500+Piano%(0,c%,2+Z%)*Digit%+2,-10,14,10
  374.   p%=Piano%(0,c%,3-Z%)
  375.   Piano%(0,c%,2+Z%)=p%
  376. SetCol(White%)
  377.  500+p%*Digit%+2,-10,14,10
  378.   S%=Piano%(0,c%,2+Z%)
  379.  VU%<>0 
  380.  Piano%(S%,c%,0)=VU% : Piano%(S%,c%,1)=255
  381.   p%=36-p%
  382.  VU%<>0 
  383.  Piano%(p%,c%,0)=VU% : Piano%(p%,c%,1)=255
  384. SetCol(Black%)
  385.  500+Piano%(0,c%,2+Z%)*Digit%+2,-10,14,10
  386.   Piano%(0,c%,2+Z%)=p%
  387. SetCol(White%)
  388.  500+p%*Digit%+2,-10,14,10
  389. Smiley
  390.  PROCSetCol(White%)
  391.  IF FNreadpitch(pos%+c%*4)<>0 THEN PROCSetCol(Red%)
  392.  CIRCLE FILL VUR%,VUR%,VUR%+10
  393. SetCol(White%)
  394.  VUR%,VUR%,VUR%
  395.  VU%<2 
  396.  Q=R%/VUR%
  397.  GCOL 255-(255-NR%)*Q,255-(255-NG%)*Q,255-(255-NB%)*Q
  398. SetCol(VoiceCol%)
  399.  VUR%,VUR%,R%
  400. SetCol(White%)
  401.  CIRCLE FILL VUR%,VUR%-R%/2,R%/5*R%/100
  402.  A%=VUR%-R%/2
  403.  B%=VUR%+R%/2
  404.  C%=VUR%-R%/3
  405.  D%=VUR%+R%/3
  406.  R%>10 
  407.  VUR%,A%,R%/4,R%/5,0
  408.  C%,B%,R%/4
  409.  D%,B%,R%/4
  410. SetCol(Black%)
  411.  C%,B%,R%/4
  412.  D%,B%,R%/4
  413.  VUR%,VUR%,R%
  414.  R%>10 
  415.  VUR%,A%,R%/4,R%/5,0
  416.  CIRCLE FILL VUR%-R%/3,VUR%+R%/3.2,R%/6
  417.  CIRCLE FILL VUR%+R%/3,VUR%+R%/3.2,R%/6
  418.  Eyes% < 50 
  419.   Eye1%=Eyes%
  420.   Eye2%=50-Eyes%
  421.   Eye1%=100-Eyes%
  422.   Eye2%=50-Eyes%
  423.  GCOL 0,0,0 : REMEyeColorR%,EyeColorG%,EyeColorB%
  424.  Speed%<=3 
  425. SetCol(CycleCol%)
  426.  255,0,0 : 
  427.  Black%
  428.  C%,B%,(R%/6)*Eye1%/50
  429.  D%,B%,(R%/6)*Eye2%/50
  430.  A%=VUR%-R%/8
  431.  B%=VUR%+R%/8
  432. SetCol(White%)
  433.  84,A%,VUR%
  434.  84,B%,VUR%
  435.  85,VUR%,B%
  436. SetCol(Black%)
  437.  A%,VUR%
  438.  B%,VUR%
  439.  VUR%,B%
  440.  A%,VUR%
  441. StarX
  442. SetCol(White%)
  443.  VUR%,VUR%,VUR%
  444.  seq%+5>=NbSeq% 
  445. (255),
  446. (255),
  447. (255)
  448.  A=2*
  449.  F=R%*2*
  450.  200,255,255,255
  451. SetCol(Black%)
  452.  T%=R%
  453.  VUR%+
  454. (F)*T%,VUR%+
  455. (F)*T%
  456.  VUR%+
  457. (F+2*
  458. /10)*T%/2,VUR%+
  459. (F+2*
  460. /10)*T%/2
  461.  a=F+A 
  462.  F+A+2*
  463.  VUR%+
  464. (a)*T%,VUR%+
  465. (a)*T%
  466.  VUR%+
  467. (a+2*
  468. /10)*T%/2,VUR%+
  469. (a+2*
  470. /10)*T%/2
  471. (255),
  472. (255),
  473. (255)
  474.  VUR%,VUR%
  475.  200,0,0,0
  476.  GCOL 100,C%
  477.  FILL VUR%,VUR%
  478.  PLOT 128+5,VUR%,VUR%
  479. BStar
  480.   I%=0
  481.   Color%=
  482.   I%+=1
  483. `'  R%=
  484. (255) : G%=
  485. (255) : B%=
  486. (255)
  487.  Color%=1 
  488.  9,R%,G%,B% 
  489. SetCol(White%)
  490.  Mode$="Dark" 
  491. (100): 
  492.  9,D%,D%,D%
  493.   R%=RLim%
  494.   A=2*
  495. (1000)/1000*2*
  496.   U%=
  497.   V%=
  498.  U%,V%
  499.  T%=R% 
  500.  R%+20
  501. (F)*T%,
  502. (F)*T%
  503. (F+A/2)*T%/2,
  504. (F+A/2)*T%/2
  505.  a=F+A 
  506.  F+A+2*
  507. (a)*T%,
  508. (a)*T%
  509. r$   
  510. (a+A/2)*T%/2,
  511. (a+A/2)*T%/2
  512.  I%=50
  513. Trans(IN%,N%)
  514.  St$=""
  515.  C%=0 
  516.   a$=
  517. (IN%?C%)
  518.   St$ += a$ 
  519.  IN%?(C%+1)=0 
  520.  =St$
  521. Equalizer
  522.  p%=0 
  523.   VU%=Piano%(p%,c%,0)
  524.  VU% > 0 
  525. SetCol(EqCol%)
  526.  x%+6,6,Digit%-14,EqualH%-10   
  527.  255,255-Piano%(p%,c%,1),0
  528.    Piano%(p%,c%,1)-=30
  529.  Piano%(p%,c%,1)<0 
  530.  Piano%(p%,c%,1)=0
  531.    V%=EqualH%*VU%/64-10
  532.  V%<0 
  533.  V%=0
  534.  x%+6,6,Digit%-14,V%
  535.     Piano%(p%,c%,0)-=VUSpeed%
  536.  Piano%(p%,c%,0)<=0 
  537.  Piano%(p%,c%,0)=-2
  538.  VU%=-2 
  539.  VU%=-1 
  540. SetCol(EqCol%)   
  541.  x%+6,6,Digit%-14,EqualH%-10
  542.    Piano%(p%,c%,0)+=1
  543.   x%+=Digit%
  544. Position
  545.  A%,Pos%
  546. SetCol(Black%)
  547.  450,0,50,EqualH%
  548.  Pos%=0 
  549.   A%=pos%+Pos%*16+c%*4
  550. readpitch(A%)<>0 
  551.  event%+Pos%<=64-5 
  552. SetCol(VoiceCol%)
  553.  450,EqualH%-EqualH%/5*(Pos%+1),50,EqualH%/5-5
  554.  event%+Pos%>64-5 
  555.  "OS_SetColour",3,CycleCol%
  556.  450,EqualH%-EqualH%/5*(Pos%+1),50,EqualH%/5-5
  557. DrawSamples
  558.  Sample%=
  559. sa(pos%+(c%-1)*4)
  560. SetCol(Black%)
  561.  500,-60,EqualW%,50
  562.  "ColourTrans_SetFontColours",SampleFont%,0,0<<24 
  563.  255<<16 
  564.  255<<8,14
  565.  Sample%<>CurrentSpl%(c%) 
  566.  Sample%<>0 
  567.  CurrentSpl%(c%)=Sample% 
  568.  "QTM_ReadSampleTable",CurrentSpl%(c%) 
  569.  Name%
  570.   String$=
  571. Trans(Name%,27)
  572.  String$="" 
  573.  String$="Unknown"
  574.  "XFont_Paint",SampleFont%,
  575. (CurrentSpl%(c%))+". "+String$,&10,FOX%+500,FOY%-50
  576.  3,255,0,0
  577.  500+EqualW%/31*(CurrentSpl%(c%)-1),-60,EqualW%/31,50
  578. Samples
  579.  angle=0
  580.   angle-=FadeSpeed%
  581. setpal(angle,angle,angle)
  582.  "QTM_Volume",(90+angle)/90*64
  583.  angle<=-90
  584.  *QTMPause
  585.  "QTM_Volume",64
  586.  Handle%
  587.  X%=XScreen%*2
  588.  Y%=YScreen%*2
  589.  0,0 
  590. Write(1)
  591.  128,0,0,0
  592. Screen(1)
  593.  "Font_FindFont",,"Sassoon.Primary",500,500,0 
  594.  Handle%
  595.  "ColourTrans_SetFontColours",Handle%,0,255<<24 
  596.  0<<16 
  597.  0<<8,5
  598.  "Font_Paint",Handle%,"Track name:",&10,0,Y%-100
  599.  "Font_Paint",Handle%,"Author name:",&10,0,Y%-300
  600.  "Font_Paint",Handle%,"Song origin:",&10,0,Y%-500
  601.  "Font_Paint",Handle%,"Track size:",&10,0,Y%-700
  602. *Render "<FUNQTM$Dir>.Draw.Back" 0.3 0 0 0.3 100 900 
  603.  "ColourTrans_SetFontColours",Handle%,0,255<<24 
  604.  255<<16 
  605.  255<<8,14
  606.  "Font_Paint",Handle%,Track%,&10,0,Y%-200
  607.  Author%<>0 
  608.  "Font_Paint",Handle%,Author%,&10,0,Y%-400 
  609.  "Font_Paint",,"Unknown",&10,0,Y%-400 
  610.  Origin% 
  611.  0 : Type$="15 inst. Sound Tracker"
  612.  1 : Type$="31 inst. Sound Tracker"
  613.  2 : Type$="31 inst. ProTracker"
  614.  3 : Type$="31 inst. Startrekker"
  615.  "Font_Paint",Handle%,Type$,&10,0,Y%-600
  616.  "Font_Paint",Handle%,
  617. (Length%),&10,0,Y%-800
  618.  "Font_FindFont",,"Bauhaus.Demi",250,250,0 
  619.  Handle%
  620.  S%=1 
  621.  "QTM_ReadSampleTable",S% 
  622.  Name%,Length%
  623.  Length%<>0 
  624.  200,200,200
  625.  1000-50,Y%-(S%+1)*40+10,20
  626. SetCol(White%)
  627.  1000-50-2,Y%-(S%+1)*40+10+2,20
  628. SetCol(Black%)
  629.  1000-50+2,Y%-(S%+1)*40+10-2,20
  630.  "ColourTrans_SetFontColours",Handle%,0, 
  631. (255)<<24 
  632.  255<<16 
  633.  255<<8,14
  634.   String$=
  635. Trans(Name%,28)
  636.  S%>=10 
  637.  Number$=
  638. (S%)+"." 
  639.  Number$="  "+
  640. (S%)+"."
  641.  "Font_Paint",Handle%,Number$,&10,800,Y%-(S%+1)*40
  642.  String$<>"" 
  643.  "XFont_Paint",Handle%,String$,&10,1000,Y%-(S%+1)*40
  644.   Length$=
  645. (Length%)
  646.  Length$=STRING$(5-LEN(Length$),"0")+Length$
  647.  2000,Y%-(S%+1)*40
  648.  "Font_Paint",Handle%,Length$,&10,1600,Y%-(S%+1)*40
  649.  "Font_LoseFont",Handle%
  650.  255,0,0
  651.  A%=0 
  652.  A%*20+1000,20,20,200
  653.      X1=0
  654.      N%=0
  655.  Channel%=1
  656.  Pitch%=0
  657. (1)-0.5
  658. (1)-0.5
  659. (1)-0.5
  660. (1)-0.5
  661.  angle=-90
  662.   angle+=FadeSpeed%
  663. setpal(angle,angle,angle)
  664.  angle>=0 
  665. s%=1:lines%=Bub%
  666.  a%=-512 
  667. ,"depth(a%+512) = 1/((a%/640)+1)
  668. ang%=0
  669.  a%=0 
  670.  lines%
  671. 0"lx(a%)=(50+
  672. (290))*
  673. (360))
  674. ly(a%)=a%*1024/lines%-512
  675. 2"lz(a%)=50+(
  676. (290))*
  677. (360))
  678.  XS%,YS%
  679.  XS%,YS%
  680. rotate
  681.  0=1 
  682. SetCol(Black%)
  683.  0,200,800,800
  684. (X1)*255,
  685. (X1)*255,255
  686.   V1=X1*Pitch%
  687.  I=0 
  688. Gm   
  689.  1.5*
  690. ((I+V1)+A)*
  691. ((I+V1)+B)*
  692. (V1)*300+400,200+1.5*
  693. (((I+V1)+C))*
  694. ((I+V1)+D)*
  695. (V1)*300+400,
  696. (I*2)*50
  697. Hn   
  698. ((I+X1+A))+
  699. (((I+X1)+B)*10)/10)*
  700. (X1)*300+400,(
  701. ((I+X1)+C)+
  702. (((I+X1)+D)*10)/10)*
  703. (X1)*300+400,5
  704.  A%,B%,C%
  705.  C%=0 
  706.  Mouse%=0
  707.  A%>1000 
  708.  B%>200 
  709.    NF%=-(B%-Y%)/40
  710. Q<   
  711.  "QTM_ReadSampleTable",NF% 
  712.  Name%,Length%,,,,,Adr%
  713.  Length%<>0 
  714.  255,0,0
  715.  Mouse%=7 
  716.      MGCOL 0,0,0
  717.      
  718.  0,0,800,200
  719. Y         
  720.      
  721.  0,255,255,255
  722.      
  723.      Incr%=Length%/200
  724.      P%=0
  725. ^         
  726.      
  727.  U%=0 
  728.       P%+=Incr%
  729.       
  730.  U%,?(P%+Adr%)/5+50
  731.      
  732. c        
  733.  N%<>NF% 
  734.  Mouse%=0
  735.  Red light
  736. SetCol(Black%)
  737. k(    
  738.  1000-50,Y%-(N%+1)*40+10,18
  739.     N%=NF%
  740. SetCol(Black%)
  741. o(    
  742.  1000-50,Y%-(N%+1)*40+10,18
  743. p%    
  744.  255,
  745. /100*2*
  746. /3))*255,0
  747. q)    
  748.  1000-50,Y%-(NF%+1)*40+10,18
  749. SetCol(White%)
  750. s(    
  751.  1000-55,Y%-(NF%+1)*40+15,8
  752.     NPitch%=(A%-1000)/20+1
  753. SetCol(Black%)
  754. w(    
  755.  1000+Pitch%*20+2,22,16,196
  756. x$    
  757.  Pitch%<>NPitch% 
  758.  Mouse%=0
  759.     Pitch%=NPitch%
  760.  255,255,0
  761. {(    
  762.  1000+Pitch%*20+2,22,16,196
  763.  C%=4 
  764.  Mouse%=0 
  765. ~         
  766. 2     
  767.  "QTM_PlaySample",Channel%,N%,Pitch%,64
  768.      Mouse%=1
  769.         
  770.  C%=1 
  771.  Mouse%=0 
  772. .     
  773.  "QTM_PlaySample",Channel%,N%,25,64
  774.      Mouse%=1
  775.         
  776.  C%=2 
  777.  Mouse%=0 
  778. ?     
  779. Save(Adr%,Length%,"<FUNQTM$Dir>.Samples."+
  780. (N%),&FFD)
  781.      Mouse%=1
  782.         
  783. SetCol(Black%)
  784. (    
  785.  1000-50,Y%-(N%+1)*40+10,18
  786.     NPitch%=(A%-1000)/20+1
  787. %     
  788.  NPitch%<>Pitch% 
  789.  Mouse%=0
  790. SetCol(Black%)
  791. (    
  792.  1000+Pitch%*20+2,22,16,196
  793.     Pitch%=NPitch%
  794.   X1+=0.005
  795.  C%=2
  796.  "QTM_Volume",0
  797.  *QTMStart
  798.  "QTM_Volume",
  799. /100*64
  800. >100 
  801. TimeTrack
  802.  1800,1100
  803.  3,200,255,0
  804.  Z%=0 
  805.  Last%=LastSeq1% 
  806.  Last%=LastSeq2% 
  807.  0,150
  808.  Angle=Last%*
  809. *2/NbSeq%+
  810.  &B5,
  811. (Angle)*500,
  812. (Angle)*500
  813.  0,150
  814.  Angle=seq%*
  815. *2/NbSeq%+
  816.  &B5,
  817. (Angle)*500,
  818. (Angle)*500
  819.  Z%=0 
  820.  LastSeq1%=seq% 
  821.  LastSeq2%=seq% 
  822. SetCol(Black%)
  823.  0,0,98
  824.  PROCSpeed
  825.  3,0,0,255
  826.  0,75
  827.  Angle=event%*
  828. *2/63+
  829.  &B5,
  830. (Angle)*500,
  831. (Angle)*500
  832. SetCol(Black%)
  833.  0,0,30
  834.  "OS_SetColour",3,CycleCol%
  835.  Angle=event%*
  836. *2/63*2+
  837.  Scale%=98*event%/63
  838.  seq% 
  839.  0,0,Scale%
  840. (Angle)*Scale%,
  841. (Angle)*Scale%
  842. (Angle+2*
  843. /3)*Scale%,
  844. (Angle+2*
  845. /3)*Scale%
  846. (Angle+4*
  847. /3)*Scale%,
  848. (Angle+4*
  849. /3)*Scale%
  850.  Scale%>2 
  851.  0,0,Scale%,Scale%/5,Angle
  852.  0,0,Scale%/5,Scale%,Angle
  853.  Star
  854. (Angle)*Scale%,
  855. (Angle)*Scale%
  856. (Angle+2*
  857. /3)*Scale%,
  858. (Angle+2*
  859. /3)*Scale%
  860. (Angle+4*
  861. /3)*Scale%,
  862. (Angle+4*
  863. /3)*Scale%
  864.   Angle+=
  865. (Angle)*Scale%,
  866. (Angle)*Scale%
  867. (Angle+2*
  868. /3)*Scale%,
  869. (Angle+2*
  870. /3)*Scale%
  871. (Angle+4*
  872. /3)*Scale%,
  873. (Angle+4*
  874. /3)*Scale%
  875.  0,0,Scale%
  876.  0,0,Scale%
  877. (Angle)*(Scale%/2),
  878. (Angle)*(Scale%/2),Scale%/2-2
  879.   Angle+=
  880. (Angle)*(Scale%/2),
  881. (Angle)*(Scale%/2),Scale%/2-2
  882.   Angle+=
  883. (Angle)*(Scale%/2),
  884. (Angle)*(Scale%/2),Scale%/2-2
  885.   Angle+=
  886. (Angle)*(Scale%/2),
  887. (Angle)*(Scale%/2),Scale%/2-2
  888.  Scale%>2 
  889. (Angle)*Scale%/8,-
  890. (Angle)*Scale%/10,Scale%/3,Scale%/6,Angle
  891. (Angle)*Scale%/8,
  892. (Angle)*Scale%/10,Scale%/10
  893. Speed
  894.  "QTM_ReadSpeed" 
  895.  Speed%
  896.  Counter%+=Speed%/10
  897.  Counter%>15 
  898.  Counter%=0
  899.  Z%=0 
  900.  Last%=Last1% 
  901.  Last%=Last2% 
  902. SetCol(White%)
  903.  R%=200
  904. (Last%/15*2*
  905. )*R%,
  906. (Last%/15*2*
  907. )*R%,30
  908. ((Last%-1)/15*2*
  909. )*R%,
  910. ((Last%-1)/15*2*
  911. )*R%,30
  912. ((Last%-2)/15*2*
  913. )*R%,
  914. ((Last%-2)/15*2*
  915. )*R%,30
  916.  255,0,0
  917. (Counter%/15*2*
  918. )*R%,
  919. (Counter%/15*2*
  920. )*R%,30
  921.  255,100,0
  922. ((Counter%-1)/15*2*
  923. )*R%,
  924. ((Counter%-1)/15*2*
  925. )*R%,30
  926.  255,255,0
  927. ((Counter%-2)/15*2*
  928. )*R%,
  929. ((Counter%-2)/15*2*
  930. )*R%,30
  931.  Z%=0 
  932.  Last1%=Counter% 
  933.  Last2%=Counter% 
  934. CycleColor
  935.  (Cycle% 
  936.  0: C%=Red%
  937.  1: C%=Green%
  938.  2: C%=Blue%
  939.  3: C%=Yellow%
  940.  4: C%=Purple%
  941.  5: C%=Green%
  942. Cycle%+=1
  943. setpal(rangle,gangle,bangle)
  944.  rf = 
  945.  rangle
  946.  gf = 
  947.  gangle
  948.  bf = 
  949.  bangle
  950.  c% = 0 
  951.  rf >= 0 
  952. #&   RGam%?c% = c% + (255 - c%) * rf
  953.    RGam%?c% = c%*(rf+1)
  954.  gf >= 0 
  955. )&   GGam%?c% = c% + (255 - c%) * gf
  956.    GGam%?c% = c%*(gf+1)
  957.  bf >= 0 
  958. /&   BGam%?c% = c% + (255 - c%) * bf
  959.    BGam%?c% = c%*(bf+1)
  960.  "OS_CallAVector",RGam%,GGam%,BGam%,0,9,0,0,0,0,&23
  961. Screen(1)
  962. Write(1)
  963. I    
  964. (255),
  965. (255),
  966. (255)
  967. J,   
  968. (XScreen%*2),
  969. (YScreen%*2),
  970. N      A=0
  971.   Ad=
  972. (1)*2
  973.   F%=
  974. (XS%*XS%+YS%*YS%/4)
  975.   R%=
  976. (100)+100
  977.  XS%,YS%
  978. V    
  979. (255),
  980. (255),
  981. (255)
  982.    D%=
  983. /100*F%
  984.  B=A 
  985. Z     
  986. (B)*D%,
  987. (B)*D%,R%
  988.    A+=Ad
  989.  XS%,YS%
  990.  Col%=
  991. CycleColor
  992.  Angle=0
  993.   VU%=
  994.   R%=VU%
  995.  "OS_SetColour",0,Col%
  996.  0,0,R%
  997. SetCol(White%)
  998.   A%=-R%/2
  999.   B%=+R%/2
  1000.   C%=-R%/3
  1001.   D%=+R%/3
  1002.  R%>10 
  1003.  0,A%,R%/4,R%/5,0
  1004.  C%,B%,R%/4
  1005.  D%,B%,R%/4
  1006. SetCol(Black%)
  1007.  C%,B%,R%/4
  1008.  D%,B%,R%/4
  1009.  0,0,R%
  1010.  R%>10 
  1011.  0,A%,R%/4,R%/5,0
  1012. (Angle)*R%/20,B%+
  1013. (Angle)*R%/12,R%/10
  1014. (Angle)*R%/20,B%+
  1015. (Angle)*R%/12,R%/10
  1016.   A%=-R%/8
  1017.   B%=+R%/8
  1018. SetCol(White%)
  1019.  84,A%,0
  1020.  84,B%,0
  1021.  85,0,B%
  1022. SetCol(Black%)
  1023.  A%,0
  1024.  B%,0
  1025.  0,B%
  1026.  A%,0
  1027. ShadowSwitch
  1028.   Angle+=0.8
  1029. Screen(1)
  1030. Write(1)
  1031.  128,0,0,0
  1032. setpal(0,0,0)
  1033. DrawButtons
  1034.  0,0,0
  1035. Draw(EXIT%())
  1036. Draw(PAUSE%())
  1037. Draw(BALLS%())
  1038. Draw(AUTHOR%())
  1039. Draw(SAMPLES%())
  1040. Draw(WAVES%())
  1041. Draw(Button%())
  1042.  Button%(0),Button%(2),Button%(1)-Button%(0),Button%(3)-Button%(2)
  1043. sa(addr%)=(?addr% 
  1044.  &F0)+((addr%?3 
  1045.  &F0)>>4)
  1046. readpitch(addr%)=addr%?1+((?addr% 
  1047.  &F)<<8)
  1048. BBox(But%())
  1049.  (But%(0)<A% 
  1050.  A%<But%(1)) 
  1051.  (But%(2)<B% 
  1052.  B%<But%(3)) 
  1053.  Scale IN+Rotation
  1054.   Cos=
  1055.   Sin=
  1056.   Scale=1.01
  1057.   angle=0
  1058.     X%=
  1059. (1024*2-50)
  1060.     Y%=
  1061. (768*2-50)
  1062.     U%=(X%-XS%)
  1063.     V%=(Y%-YS%)
  1064. K    
  1065.  X%,Y%,200 
  1066.  1024+(Cos*U%+Sin*V%)*Scale,768+(Cos*V%-Sin*U%)*Scale
  1067.  PROCsetpal(angle,angle,angle)
  1068.  angle=-TIME/500*90
  1069.          
  1070. >=150
  1071.  Scale IN
  1072.   Scale=1.01
  1073.     X%=
  1074. (1024*2-50)
  1075.     Y%=
  1076. (768*2-50) 
  1077. <    
  1078.  X%,Y%,200 
  1079.  XS%+(X%-XS%)*Scale,YS%+(Y%-YS%)*Scale
  1080.          
  1081. >=150
  1082.  Scale OUT
  1083.   Scale=0.99
  1084.     X%=
  1085. (1024*2-50)
  1086.     Y%=
  1087. (768*2-50) 
  1088. <    
  1089.  X%,Y%,200 
  1090.  XS%+(X%-XS%)*Scale,YS%+(Y%-YS%)*Scale
  1091.          
  1092. >=150
  1093.  Code: Vibe
  1094.   X%=
  1095. (XS%*2):Y%=
  1096. (YS%*2)
  1097.   O%=8
  1098. X%-O%,Y%-O%:
  1099. &BD,O%,O%
  1100. 0,Y%+O%:
  1101. X%-O%,YS%*2:
  1102. &BD,O%,Y%
  1103. X%+O%,Y%+O%:
  1104. XS%*2,YS%*2:
  1105. &BD,X%,Y%
  1106. X%+O%,0:
  1107. XS%*2,Y%-O%:
  1108. &BD,X%,O%
  1109. O%,O%:
  1110. X%,Y%:
  1111. &BE,0,0
  1112. O%,Y%:
  1113. X%,YS%*2-O%:
  1114. &BE,0,Y%+O%
  1115. X%,Y%:
  1116. XS%*2-O%,YS%*2-O%:
  1117. &BE,X%+O%,Y%+O%
  1118. X%,O%:
  1119. XS%*2-O%,Y%:
  1120. &BE,X%+O%,0
  1121. >=150
  1122. StarFX
  1123. (255),
  1124. (255),
  1125. (255)
  1126.  XS%,YS%
  1127.   Angle=
  1128. /200*5*2*
  1129.   Scale%=
  1130. /200*3000
  1131. (Angle)*Scale%,
  1132. (Angle)*Scale%
  1133. (Angle+2*
  1134. /3)*Scale%,
  1135. (Angle+2*
  1136. /3)*Scale%
  1137. (Angle+4*
  1138. /3)*Scale%,
  1139. (Angle+4*
  1140. /3)*Scale%
  1141.   Angle=Angle+
  1142. (Angle)*Scale%,
  1143. (Angle)*Scale%
  1144. (Angle+2*
  1145. /3)*Scale%,
  1146. (Angle+2*
  1147. /3)*Scale%
  1148. (Angle+4*
  1149. /3)*Scale%,
  1150. (Angle+4*
  1151. /3)*Scale%
  1152. >200  
  1153. ScreenFade
  1154.  Bank%=1
  1155. Screen(1)
  1156. Write(2)
  1157.  OS_SpriteOp%,10+512,ScreenArea%,"<FUNQTM$Dir>.Scr1"
  1158.  OS_SpriteOp%,28+512,ScreenArea%,ScreenArea%+16,0
  1159.  CASE 1 OF
  1160.  Bouncing.
  1161. Write(1)
  1162. )*   Y%=YScreen%*2-((
  1163. /50)^2*YScreen%*2)
  1164. *?   
  1165.  OS_SpriteOp%,34+512,ScreenArea%,ScreenArea%+16,0,Y%,0
  1166. 0,   Y%=YScreen%/4-((1-
  1167. /20)^2*YScreen%/4)
  1168. 1?   
  1169.  OS_SpriteOp%,34+512,ScreenArea%,ScreenArea%+16,0,Y%,0
  1170.  0,0,0
  1171.  0,0,XScreen%*2,Y%
  1172. 8*   Y%=YScreen%/4-((
  1173. /20)^2*YScreen%/4)
  1174. 9?   
  1175.  OS_SpriteOp%,34+512,ScreenArea%,ScreenArea%+16,0,Y%,0
  1176.  Boing!.
  1177. Write(1)
  1178. A&   X%=(1-
  1179. /150)*
  1180. /150*2*
  1181. *5)*500
  1182. B?   
  1183.  OS_SpriteOp%,34+512,ScreenArea%,ScreenArea%+16,X%,0,0
  1184. >=150
  1185.  Boing2!.
  1186. Write(1)
  1187. J&   X%=(1-
  1188. /150)*
  1189. /150*2*
  1190. *5)*500
  1191. K&   Y%=(1-
  1192. /150)*
  1193. /150*2*
  1194. *5)*500
  1195. L@   
  1196.  OS_SpriteOp%,34+512,ScreenArea%,ScreenArea%+16,X%,Y%,0
  1197. >=150
  1198.  Brush
  1199. R-  X%=(
  1200. /200*2*
  1201. *5))*XScreen%+XScreen%)
  1202.   Y%=(1-
  1203. /200)*YScreen%*2
  1204.  OS_SpriteOp%,9+512,ScreenArea%
  1205. Write(2)
  1206.  OS_SpriteOp%,16+512,ScreenArea%,ScreenArea%+16,0,X%,Y%,X%+300,Y%+300
  1207. Write(1)
  1208.  OS_SpriteOp%,34+512,ScreenArea%,ScreenArea%+16,X%,Y%,0
  1209. >=200
  1210.  !!!  
  1211.  OS_SpriteOp%,10+512,ScreenArea%,"<FUNQTM$Dir>.Scr1"
  1212.  OS_SpriteOp%,34+512,ScreenArea%,ScreenArea%+16,0,200,0
  1213.  Scaled.
  1214. Write(1)
  1215.   T%=0
  1216.   Y%=0
  1217.   Block%!0=1
  1218.   Block%!4=1
  1219.   Block%!8=100-T%/500*99
  1220.   Block%!12=100-T%/500*99
  1221.  OS_SpriteOp%,52+512,ScreenArea%,ScreenArea%+16,0,0,0,Block%,0
  1222.   T%+=1
  1223.  T%>=500
  1224.    X%=
  1225. (XScreen%)*2
  1226.    Y%=
  1227. (YScreen%)*2
  1228. w(   
  1229.  OS_SpriteOp%,9+512,ScreenArea%
  1230. Write(2)
  1231. yN   
  1232.  OS_SpriteOp%,16+512,ScreenArea%,ScreenArea%+16,0,X%,Y%,X%+100,Y%+100
  1233. Write(1)
  1234. {@   
  1235.  OS_SpriteOp%,34+512,ScreenArea%,ScreenArea%+16,X%,Y%,0
  1236. >=150
  1237. Write(1)
  1238.  OS_SpriteOp%,28+512,ScreenArea%,ScreenArea%+16,0
  1239. Write(2)
  1240.  OS_SpriteOp%,10+512,ScreenArea%,"<FUNQTM$Dir>.Scr2"
  1241.  OS_SpriteOp%,28+512,ScreenArea%,ScreenArea%+16,0
  1242. ShadowSwitch
  1243. setpal(0,0,0)
  1244. rotate
  1245.  vtx%= 0 
  1246.  lines%
  1247. Uxnew=lx(vtx%)*c-lz(vtx%)*s:znew=lx(vtx%)*s+lz(vtx%)*c:lx(vtx%)=xnew:lz(vtx%)=znew
  1248. 6ly(vtx%)=ly(vtx%)+4+(vtx%/2)-(1024 
  1249.  ly(vtx%)>512)
  1250.  vtx%
  1251.  f=1/((lz(a%)/640)+1)
  1252.  a%=0 
  1253.  lines%
  1254. f=depth(
  1255. (lz(a%))+512)
  1256.  PRINT f
  1257.  3,255,0,255
  1258.  lx(a%)*f,ly(a%)*f,f*32
  1259.  3,255,255,255
  1260.  (lx(a%)-15)*f,(ly(a%)+15)*f,f*5
  1261. Patterns
  1262.  1 : Pattern%=Cross% : Size%=332
  1263.  2 : Pattern%=Radar% : Size%=1812
  1264.  3 : Pattern%=RadioActive% : Size%=532
  1265.  4 : Pattern%=Star% : Size%=444
  1266.  5 : Pattern%=World% : Size%=1860
  1267.  6 : Pattern%=Arrow% : Size%=456
  1268. 6 Pattern%!ColourOffset%=255<<24 
  1269.  255<<16 
  1270.  255<<8
  1271. (XScreen%*2)
  1272. (YScreen%*2)
  1273.  Angle=
  1274. (1)*2*
  1275.  Size=
  1276. K Matrix%!0=(1<<16)*
  1277. (Angle)*Size      : Matrix%!4=(1<<16)*
  1278. (Angle)*Size
  1279. L Matrix%!8=-(1<<16)*
  1280. (Angle)*Size     : Matrix%!12=(1<<16)*
  1281. (Angle)*Size
  1282. * Matrix%!16=256*X% : Matrix%!20=256*Y%
  1283.  "DrawFile_Render",0,Pattern%,Size%,Matrix%,0,0
  1284.  A%+=1
  1285.  A%=20
  1286. VoicePanel(X%,Y%)
  1287.  X%,Y%
  1288.  R%,G%,B%
  1289.  VUR%,VUR%,300,VUR%/2,0
  1290.  VUR%,VUR%,200,VUR%/2,
  1291.  VUR%,VUR%,200,VUR%/2,-
  1292.  X%+500,Y%
  1293.  x%=0 
  1294.  EqCR%,EqCG%,EqCB%
  1295.  x%*Digit%,0,Digit%,EqualH%
  1296. SetCol(Black%)
  1297.  x%*Digit%,0,Digit%,EqualH%
  1298.  x%*Digit%+8,2
  1299.  x%*Digit%+Digit%-2,2
  1300.  x%*Digit%+Digit%-2,EqualH%-8
  1301. SetCol(White%)
  1302.  x%*Digit%+2,2
  1303.  x%*Digit%+2,EqualH%
  1304.  x%*Digit%+Digit%-2,EqualH%
  1305. SetCol(Black%)
  1306.  0,-10,EqualW%-6,10
  1307. VoiceUpdate(X%,Y%,c%,VoiceCol%) 
  1308.  X%,Y%
  1309.  FOX%=X% : FOY%=Y%
  1310. plot(
  1311. readpitch(G%)))
  1312.  R%=VUR%*VU%/64
  1313. Smiley
  1314.  x%=500
  1315. Equalizer
  1316. Position
  1317.  PROCSamples
  1318.  XVU%=XVU%>>8
  1319.  VU%=XVU% 
  1320.  G%+=4
  1321. NbFPS 
  1322. SetCol(White%)
  1323.  0,0,120,15
  1324. SetCol(Black%)
  1325.  T%=1/(
  1326. /100)
  1327.  0,15
  1328.  "FPS: ";T%
  1329. Boom(String$,B%)
  1330. Write(1)
  1331. $ *ScreenSave "<FUNQTM$Dir>.Scr1"
  1332. Write(2)
  1333. $ *ScreenSave "<FUNQTM$Dir>.Scr2"
  1334. Screen(1)
  1335. Write(2)
  1336.  B%=0 
  1337.  128,0,0,0
  1338.  128,0,0,0  
  1339.  XS%,YS%
  1340.  I=0 
  1341.  100 
  1342.   S%=(1-(I/100)^2)*XS%
  1343.   A%=(I/100)^2*255
  1344.  0,0,255
  1345.  A=I/100 
  1346. +I/100 
  1347. (A)*S%,
  1348. (A)*S%,10
  1349.  255,0,A%
  1350. &  O%=
  1351. (I/100*2*
  1352. *10)*150*(1-I/100)
  1353.  S%-O%,S%+O%,30
  1354.  -S%+O%,S%+O%,30
  1355.  -S%-O%,-S%+O%,30
  1356.  S%+O%,-S%+O%,30
  1357. ("Render "+String$)
  1358.  OS_SpriteOp%,9+512,ScreenArea%
  1359.  OS_SpriteOp%,16+256,ScreenArea%,"L",0,0,0,XS%,YScreen%*2 
  1360.  ,,AdrL%
  1361.  OS_SpriteOp%,16+256,ScreenArea%,"R",0,XS%,0,XScreen%*2,YScreen%*2 
  1362.  ,,AdrR%
  1363. Write(1)
  1364.   X%=(
  1365. /20)^2*XS%
  1366.  OS_SpriteOp%,34+512,ScreenArea%,AdrL%,X%-XS%,0,0
  1367.  OS_SpriteOp%,34+512,ScreenArea%,AdrR%,XScreen%*2-X%,0,0
  1368.  OS_SpriteOp%,34+512,ScreenArea%,AdrL%,0,0,0
  1369.  OS_SpriteOp%,34+512,ScreenArea%,AdrR%,XS%,0,0
  1370.  OS_SpriteOp%,9+512,ScreenArea%
  1371.  OS_SpriteOp%,16+256,ScreenArea%,"Screen",0,0,0,XScreen%*2,YScreen%*2 
  1372.  ,,Adr%
  1373. /#  X%=
  1374. /50*2*
  1375. *10)*50*(1-
  1376.   Y%=0
  1377.  OS_SpriteOp%,34+512,ScreenArea%,Adr%,X%,0,0
  1378. Error
  1379. =% Error$=
  1380. $+" Error at line "+
  1381.  Error$
  1382.  File% 
  1383. (Error$)
  1384.  $File%=Error$
  1385.  "OS_File",10,"<FUNQTM$Dir>.Error",&FFF,,File%,File%+
  1386. (Error$)
  1387.  *QTMStop
  1388. setpal(0,0,0)
  1389.  DATA &6B0,&650,&5F5,&5A0,&54F,&503,&4BB,&477,&436,&3FA,&3C1,&386
  1390.  &358,&328,&2FA,&2D0,&2A6,&280,&25C,&23A,&21A,&1FC,&1E0,&1C5
  1391.  &1AC,&194,&17D,&168,&153,&140,&12E,&11D,&10D,&0FE,&0F0,&0E2
  1392.  &0D6,&0CA,&0BE,&0B4,&0AA,&0A0,&097,&08F,&087,&07F,&078,&071
  1393.  DATA &06B,&065,&05F,&05A,&055,&04C,&047,&043,&040,&03C,&039,&036
  1394.