home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 18 / CD_ASCQ_18_111294_W.iso / dos / prg / pas / gfxfx / effect.pas < prev    next >
Pascal/Delphi Source File  |  1994-06-22  |  17KB  |  365 lines

  1.  
  2. program Effect;
  3. { Bitmap effect, no1, by Bas van Gaalen, Holland, PD }
  4. { Needs SVGABGI }
  5. uses
  6.   crt,dos,graph;
  7.  
  8. const
  9.   Len  = 750;                                             { Sinus constantes }
  10.   Amp  = 150;
  11.   Ofs  = 250;
  12.   Palette : array[0..$2ff] of byte = (
  13. 0,0,0,2,2,2,4,4,4,6,6,6,8,8,8,
  14. 10,10,10,12,12,12,14,14,14,16,16,16,18,18,18,20,
  15. 20,20,22,22,22,24,24,24,26,26,26,28,28,28,30,30,
  16. 30,33,33,33,35,35,35,37,37,37,39,39,39,41,41,41,
  17. 43,43,43,45,45,45,47,47,47,49,49,49,51,51,51,53,
  18. 53,53,55,55,55,57,57,57,59,59,59,61,61,61,63,63,
  19. 63,63,51,51,63,63,51,51,63,51,51,63,63,51,51,63,
  20. 63,51,63,63,39,39,63,51,39,63,63,39,51,63,39,39,
  21. 63,39,39,63,51,39,63,63,39,51,63,39,39,63,51,39,
  22. 63,63,39,63,63,39,51,63,27,27,63,39,27,63,51,27,
  23. 63,63,27,51,63,27,39,63,27,27,63,27,27,63,39,27,
  24. 63,51,27,63,63,27,51,63,27,39,63,27,27,63,39,27,
  25. 63,51,27,63,63,27,63,63,27,51,63,27,39,63,15,15,
  26. 63,27,15,63,39,15,63,51,15,63,63,15,51,63,15,39,
  27. 63,15,27,63,15,15,63,15,15,63,27,15,63,39,15,63,
  28. 51,15,63,63,15,51,63,15,39,63,15,27,63,15,15,63,
  29. 27,15,63,39,15,63,51,15,63,63,15,63,63,15,51,63,
  30. 15,39,63,15,27,63,3,15,63,3,3,63,15,3,63,27,
  31. 3,63,39,3,63,51,3,63,63,3,51,63,3,39,63,3,
  32. 27,63,3,15,63,3,3,63,3,3,63,15,3,63,27,3,
  33. 63,39,3,63,51,3,63,63,3,51,63,3,39,63,3,27,
  34. 63,3,15,63,3,3,63,15,3,63,27,3,63,39,3,63,
  35. 51,3,63,63,3,63,63,3,51,63,3,39,63,3,27,51,
  36. 3,15,51,3,3,51,15,3,51,27,3,51,39,3,51,51,
  37. 3,39,51,3,27,51,3,15,51,3,3,51,3,3,51,15,
  38. 3,51,27,3,51,39,3,51,51,3,39,51,3,27,51,3,
  39. 15,51,3,3,51,15,3,51,27,3,51,39,3,51,51,3,
  40. 51,51,3,39,51,3,27,39,3,15,39,3,3,39,15,3,
  41. 39,27,3,39,39,3,27,39,3,15,39,3,3,39,3,3,
  42. 39,15,3,39,27,3,39,39,3,27,39,3,15,39,3,3,
  43. 39,15,3,39,27,3,39,39,3,39,39,3,27,27,3,15,
  44. 27,3,3,27,15,3,27,27,3,15,27,3,3,27,3,3,
  45. 27,15,3,27,27,3,15,27,3,3,27,15,3,27,27,3,
  46. 27,15,3,3,15,15,3,3,15,3,3,15,15,3,3,15,
  47. 15,3,15,27,15,15,27,27,15,15,27,15,15,27,27,15,
  48. 15,27,27,15,27,39,15,15,39,27,15,39,39,15,27,39,
  49. 15,15,39,15,15,39,27,15,39,39,15,27,39,15,15,39,
  50. 27,15,39,39,15,39,39,15,27,51,15,15,51,27,15,51,
  51. 39,15,51,51,15,39,51,15,27,51,15,15,51,15,15,51,
  52. 27,15,51,39,15,51,51,15,39,51,15,27,51,15,15,51,
  53. 27,15,51,39,15,51,51,15,51,51,15,39,51,15,27,51,
  54. 27,27,51,39,27,51,51,27,39,51,27,27,51,27,27,51,
  55. 39,27,51,51,27,39,51,27,27,51,39,27,51,51,27,51,
  56. 51,27,39,51,39,39,51,51,39,39,51,39,39,51,51,39,
  57. 39,51,51,39,51,39,27,27,39,39,27,27,39,27,27,39,
  58. 39,27,27,39,39,27,39,3,3,3,15,15,15,27,27,27,
  59. 39,39,39,51,51,51,63,63,63,63,22,3,39,7,5,36,
  60. 36,63,0,0,0,22,22,22,38,38,38,52,52,52,63,0,0);
  61.  
  62.   Picture : array[0..102*32] of byte = (
  63. 0,0,0,0,242,242,2,180,180,180,180,180,180,180,180,180,
  64. 180,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,
  65. 0,0,0,0,0,0,0,1,2,180,180,180,180,180,180,180,
  66. 180,180,180,242,0,0,0,0,0,0,0,0,0,0,0,0,
  67. 0,0,0,0,1,242,242,242,242,242,242,1,1,1,242,242,
  68. 242,242,242,180,180,173,173,173,173,173,159,159,159,159,159,180,
  69. 173,173,180,1,0,0,0,0,0,173,173,173,173,159,139,139,
  70. 139,139,139,139,139,139,159,173,180,180,242,242,242,242,1,0,
  71. 0,0,0,0,0,0,0,0,0,0,0,0,1,180,173,159,
  72. 139,139,138,138,159,139,139,139,159,173,242,0,0,0,1,1,
  73. 242,242,242,1,1,0,1,242,2,2,180,180,180,180,180,180,
  74. 180,180,180,173,173,173,173,173,173,173,173,159,159,138,138,138,
  75. 113,113,113,113,139,173,158,158,173,2,0,0,0,0,173,139,
  76. 139,138,138,138,112,112,112,112,112,112,112,112,138,159,159,173,
  77. 173,173,173,173,180,2,242,242,242,242,242,242,242,1,0,0,
  78. 1,242,180,159,138,112,112,112,112,112,138,112,112,112,139,173,
  79. 180,242,242,242,180,173,173,173,173,173,180,2,3,3,180,180,
  80. 179,173,173,173,173,173,173,173,159,139,139,137,139,138,138,139,
  81. 138,138,138,112,112,112,111,110,110,110,137,111,138,158,172,180,
  82. 1,0,0,180,159,112,112,112,112,112,111,138,138,138,138,138,
  83. 138,138,138,138,159,159,159,138,138,139,159,173,173,173,173,173,
  84. 173,173,173,173,180,180,173,173,159,139,112,111,138,138,138,138,
  85. 138,138,138,138,138,159,173,180,173,173,159,139,138,138,139,159,
  86. 173,180,4,180,173,172,172,158,159,159,158,137,139,139,139,111,
  87. 111,111,112,112,112,112,112,112,111,138,138,138,138,138,138,138,
  88. 138,138,138,138,158,180,2,1,0,180,139,112,111,138,138,138,
  89. 138,138,138,138,138,138,138,138,138,138,138,138,138,112,112,138,
  90. 138,159,138,138,138,138,138,138,139,159,173,173,159,139,138,138,
  91. 112,138,138,138,138,138,138,138,138,138,138,159,159,158,138,138,
  92. 138,112,112,112,138,139,173,173,173,159,158,158,138,138,138,159,
  93. 111,112,112,111,111,111,138,138,138,138,138,138,138,138,138,138,
  94. 138,138,138,138,138,138,138,138,138,138,158,172,180,242,0,180,
  95. 139,112,138,138,138,138,138,138,138,138,138,138,138,138,138,138,
  96. 138,138,138,138,138,138,138,138,138,112,112,112,112,112,138,138,
  97. 159,139,138,112,112,111,111,138,138,138,138,138,138,138,138,138,
  98. 138,138,111,111,111,111,111,111,138,138,138,138,159,159,158,138,
  99. 138,138,112,112,112,112,111,138,138,138,138,138,138,138,138,138,
  100. 138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,
  101. 138,158,172,180,1,180,139,112,138,138,138,138,138,138,138,138,
  102. 138,138,138,211,211,211,211,138,138,138,138,138,138,138,138,138,
  103. 138,138,138,138,138,138,138,159,111,111,138,138,138,138,138,138,
  104. 138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,
  105. 138,138,158,138,138,138,112,112,138,138,138,138,138,138,138,138,
  106. 138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,
  107. 138,138,138,138,138,138,138,138,158,180,2,180,139,112,138,138,
  108. 138,138,138,211,211,211,211,211,225,46,46,46,62,212,138,138,
  109. 138,138,138,138,138,138,138,138,138,138,138,138,138,138,111,138,
  110. 138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,
  111. 138,138,138,138,138,138,138,138,138,112,112,112,112,138,138,138,
  112. 138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,
  113. 138,138,138,138,138,138,138,138,138,138,138,138,138,138,158,172,
  114. 180,180,159,138,138,138,138,138,211,46,46,46,46,46,45,36,
  115. 46,250,62,212,138,138,138,138,138,138,138,138,138,138,138,138,
  116. 138,138,138,138,138,138,211,211,211,211,138,138,138,138,211,211,
  117. 211,211,211,211,138,138,138,138,138,138,138,138,138,138,138,138,
  118. 138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,
  119. 138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,
  120. 138,138,138,138,138,158,172,1,180,173,159,158,138,138,225,36,
  121. 46,46,46,46,46,250,62,62,84,138,138,138,211,211,138,138,
  122. 138,138,138,138,211,138,138,138,138,138,226,46,46,46,46,250,
  123. 211,138,138,211,46,46,46,46,46,226,212,138,138,138,138,138,
  124. 211,211,138,138,138,138,138,138,138,138,138,211,211,211,211,211,
  125. 211,138,138,138,138,138,138,138,138,138,138,138,211,211,138,138,
  126. 211,211,211,211,211,211,211,138,138,138,138,158,172,0,242,180,
  127. 173,158,137,211,61,46,250,62,62,62,62,62,62,212,138,138,
  128. 138,211,46,250,211,138,138,138,138,211,226,211,138,138,138,226,
  129. 45,36,46,250,250,250,62,212,138,211,46,46,46,250,62,212,
  130. 138,138,138,138,138,226,46,46,46,46,46,250,211,138,138,211,
  131. 225,46,46,46,46,46,250,211,211,138,138,138,138,138,211,211,
  132. 211,225,46,250,212,211,46,46,46,46,46,46,61,212,138,138,
  133. 138,158,172,0,2,173,159,138,111,137,211,250,250,62,212,212,
  134. 212,212,138,138,138,138,138,211,46,46,62,138,138,138,138,226,
  135. 225,212,138,138,211,46,36,250,62,212,212,62,62,62,138,211,
  136. 46,46,250,62,212,138,138,138,138,138,226,45,36,46,250,250,
  137. 250,250,62,138,212,225,46,36,46,46,46,46,250,250,61,211,
  138. 138,138,138,226,46,46,46,45,36,250,212,226,36,46,250,62,
  139. 250,250,250,211,138,138,138,158,179,1,180,159,138,111,111,137,
  140. 226,46,46,62,212,138,138,138,138,138,137,138,138,211,250,250,
  141. 62,212,138,138,211,225,226,138,138,138,225,36,46,62,212,138,
  142. 138,211,250,62,212,211,46,46,250,62,138,138,137,138,138,211,
  143. 46,36,250,84,212,212,62,250,62,212,138,211,46,250,62,62,
  144. 62,62,62,250,250,62,212,138,211,46,36,46,46,46,250,62,
  145. 211,46,36,62,212,138,212,62,62,62,138,138,138,158,179,242,
  146. 173,139,112,111,138,211,46,36,250,62,211,211,211,137,138,138,
  147. 138,138,138,138,211,62,62,62,211,137,225,46,211,138,138,211,
  148. 61,46,62,212,138,138,137,211,46,250,212,211,46,46,62,212,
  149. 138,138,138,138,138,225,36,250,212,138,138,138,211,62,62,211,
  150. 138,211,46,250,212,212,212,212,211,62,250,250,62,138,211,46,
  151. 46,62,62,62,62,84,211,250,250,84,138,138,137,211,62,62,
  152. 212,138,138,158,179,2,173,138,112,138,138,211,46,46,250,250,
  153. 250,46,61,212,138,138,138,138,138,138,138,212,62,62,62,62,
  154. 46,46,212,138,138,138,211,250,62,212,138,137,138,211,46,62,
  155. 212,211,45,46,62,212,138,137,138,138,211,46,45,62,138,138,
  156. 138,137,138,211,250,62,137,211,46,250,212,138,138,138,138,211,
  157. 250,46,62,212,211,46,250,212,212,212,212,138,211,250,62,212,
  158. 138,137,211,211,61,62,212,138,138,158,172,180,159,138,112,138,
  159. 138,211,46,46,250,250,250,250,62,212,138,138,138,138,138,138,
  160. 138,138,211,62,250,46,46,226,138,138,138,138,211,46,62,212,
  161. 138,138,138,225,45,62,138,211,45,46,62,212,138,138,138,138,
  162. 211,46,250,212,138,138,138,138,138,211,46,250,212,211,46,250,
  163. 62,137,138,138,137,225,46,46,62,138,211,46,250,212,138,138,
  164. 138,138,211,46,62,212,137,225,45,46,46,62,212,138,138,158,
  165. 172,173,138,112,111,138,138,211,46,46,250,62,212,212,138,138,
  166. 138,138,138,138,138,138,138,226,46,46,46,46,250,211,211,137,
  167. 138,138,211,46,250,211,211,211,225,45,45,62,138,211,45,46,
  168. 62,212,138,138,138,138,211,46,62,138,138,137,138,138,138,211,
  169. 46,62,212,211,46,46,62,212,138,138,226,45,36,62,212,138,
  170. 225,45,250,62,211,211,137,138,211,46,250,62,61,45,36,46,
  171. 62,212,138,138,138,158,172,173,138,111,138,138,138,226,46,250,
  172. 250,62,212,138,138,138,137,211,211,138,138,211,225,45,36,46,
  173. 250,62,62,250,61,211,138,138,211,46,250,62,46,46,46,46,
  174. 62,212,138,211,45,46,62,212,138,138,138,138,211,46,62,138,
  175. 138,138,138,138,138,211,46,62,138,211,45,46,62,211,138,211,
  176. 46,36,250,84,138,211,45,36,250,250,250,61,211,138,211,46,
  177. 46,250,46,45,46,62,84,138,138,137,138,158,172,173,138,138,
  178. 138,138,226,45,45,250,250,62,211,137,137,211,225,46,250,212,
  179. 211,46,36,36,46,250,62,212,212,62,250,62,212,138,211,46,
  180. 46,250,250,62,62,212,212,138,138,210,46,46,62,212,138,138,
  181. 138,138,211,46,250,211,211,138,138,138,138,211,46,62,138,211,
  182. 45,46,250,62,211,225,36,46,62,212,138,211,46,46,62,62,
  183. 62,62,211,138,211,46,46,250,250,250,250,62,62,211,211,211,
  184. 211,158,158,173,158,138,138,211,61,45,46,250,250,250,62,211,
  185. 225,46,36,36,250,212,211,45,46,250,62,62,62,138,138,211,
  186. 250,250,62,138,211,46,46,62,212,212,138,138,138,138,137,225,
  187. 45,46,62,212,138,138,138,138,211,46,250,62,61,211,138,138,
  188. 138,211,46,62,138,211,45,46,250,250,250,46,45,62,84,138,
  189. 138,137,211,250,62,212,212,212,138,138,211,46,46,250,62,62,
  190. 250,250,250,62,61,61,226,196,158,173,159,138,138,211,61,46,
  191. 250,250,250,250,250,250,46,36,46,250,62,212,225,45,46,250,
  192. 62,212,138,138,138,211,46,46,62,138,211,46,46,62,212,138,
  193. 138,138,137,137,226,45,36,250,62,211,211,211,211,211,211,46,
  194. 46,250,250,211,211,211,211,226,46,62,138,211,45,46,250,250,
  195. 250,250,62,62,62,211,137,138,211,46,62,212,138,138,138,138,
  196. 211,46,46,62,212,212,61,250,250,250,250,250,211,196,172,180,
  197. 159,139,138,211,225,250,62,62,62,250,250,46,46,250,250,250,
  198. 62,211,61,45,250,62,62,138,138,138,138,211,46,250,212,138,
  199. 225,45,46,62,212,138,138,138,138,211,46,36,46,250,250,250,
  200. 46,46,250,62,62,250,250,250,250,250,46,46,250,61,46,62,
  201. 212,225,45,46,250,62,212,212,211,250,250,62,211,138,211,46,
  202. 250,211,211,211,137,138,211,46,46,62,212,138,211,62,250,250,
  203. 250,62,212,172,1,180,159,138,138,138,211,211,212,212,211,62,
  204. 62,62,250,250,250,250,62,212,211,62,62,212,138,138,138,138,
  205. 138,211,61,62,138,211,45,36,250,62,211,138,138,138,138,225,
  206. 36,46,250,250,250,46,46,46,250,250,62,83,62,250,250,46,
  207. 46,46,250,250,46,62,211,46,36,250,62,212,138,138,211,61,
  208. 250,250,62,211,211,250,250,62,46,250,211,211,226,46,46,62,
  209. 212,138,138,211,250,46,250,83,138,172,1,180,139,112,111,138,
  210. 138,138,138,138,138,137,212,211,62,62,62,62,212,138,138,138,
  211. 138,138,138,138,138,138,138,138,212,212,138,225,36,46,250,250,
  212. 62,137,138,138,211,225,46,62,62,62,62,62,250,250,250,250,
  213. 62,212,212,62,250,250,250,250,250,250,250,83,211,250,46,250,
  214. 62,212,138,137,137,211,250,250,250,62,212,211,62,62,46,250,
  215. 250,62,226,61,250,62,211,138,138,211,61,62,62,212,158,172,
  216. 180,180,139,112,138,138,138,138,138,138,138,138,138,138,137,212,
  217. 212,138,138,138,137,138,138,138,137,138,138,138,138,138,138,138,
  218. 211,225,46,62,62,62,62,138,138,138,138,211,211,212,212,212,
  219. 212,211,62,250,250,62,212,138,138,211,62,62,62,62,62,62,
  220. 62,212,138,211,62,62,62,211,211,137,138,212,62,250,250,62,
  221. 212,138,138,212,62,62,250,62,211,212,211,62,211,138,138,138,
  222. 211,212,138,138,138,158,180,180,139,112,138,138,138,138,138,138,
  223. 138,138,138,138,138,138,138,138,138,137,138,138,138,138,138,138,
  224. 138,138,138,138,138,138,138,211,211,212,212,212,138,138,138,138,
  225. 138,138,138,138,138,138,138,138,211,62,62,62,138,138,137,138,
  226. 138,212,212,212,212,212,138,138,138,138,211,62,62,62,226,212,
  227. 138,138,211,62,250,62,212,138,138,138,138,211,62,62,138,138,
  228. 138,138,138,138,138,138,138,138,138,138,138,158,180,180,139,112,
  229. 138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,
  230. 138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,
  231. 138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,
  232. 212,138,138,138,138,138,138,138,138,138,138,138,138,138,137,138,
  233. 138,138,212,212,212,138,138,138,138,211,62,62,138,138,138,138,
  234. 138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,
  235. 138,158,179,180,139,112,138,138,138,138,138,138,138,138,138,138,
  236. 138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,
  237. 138,138,138,138,138,158,158,159,159,159,138,138,138,138,138,138,
  238. 138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,
  239. 138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,
  240. 138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,
  241. 138,138,138,138,138,138,138,158,172,180,159,139,138,138,138,138,
  242. 138,138,138,138,138,138,138,138,138,158,158,172,159,159,138,138,
  243. 138,138,138,138,138,138,138,138,138,159,173,180,180,180,180,173,
  244. 159,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,
  245. 138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,
  246. 138,138,138,138,138,138,139,139,138,138,138,138,138,138,138,138,
  247. 138,138,138,138,138,138,138,138,138,158,159,159,159,159,173,242,
  248. 173,173,159,159,159,138,138,138,138,159,159,159,158,158,172,172,
  249. 179,180,180,173,159,159,159,159,159,159,158,159,159,159,173,180,
  250. 180,242,1,0,1,180,173,159,138,138,138,138,138,138,138,138,
  251. 138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,
  252. 138,138,138,138,138,138,159,159,159,159,159,173,173,173,159,159,
  253. 158,159,159,159,158,159,159,159,158,158,138,138,138,158,159,173,
  254. 180,180,180,180,180,0,242,180,180,180,173,159,159,159,173,173,
  255. 180,180,180,180,180,2,1,0,1,180,180,180,180,180,180,180,
  256. 180,180,180,180,180,242,1,0,0,0,0,242,180,173,159,159,
  257. 159,159,159,158,158,158,158,158,158,158,158,158,158,158,138,138,
  258. 138,138,138,138,138,138,158,158,158,158,159,173,180,180,180,180,
  259. 180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,172,
  260. 158,159,159,173,180,180,2,2,2,2,2,0,0,1,1,1,
  261. 180,180,180,180,180,2,242,0,0,0,0,0,0,0,0,1,
  262. 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  263. 0,0,242,180,180,180,180,180,180,180,180,180,180,180,180,180,
  264. 180,180,180,173,173,173,173,173,173,173,173,173,173,180,180,180,
  265. 180,180,242,1,0,0,0,0,0,0,0,0,0,0,0,0,
  266. 0,0,1,242,180,180,180,180,180,180,2,242,1,1,1,1,1);
  267.  
  268. var
  269.   Tab : array[0..Len] of word;
  270.  
  271. {----------------------------------------------------------------------------}
  272.  
  273. procedure CalcSinus; var I : word; begin
  274.   for I := Len downto 0 do Tab[I] := round(sin(I*(2*pi)/Len)*Amp)+Ofs; end;
  275.  
  276. {----------------------------------------------------------------------------}
  277.  
  278. procedure Setvideo;
  279. var AutoDetect : pointer; GrMd,GrDr : integer;
  280.  
  281. {$F+}
  282. function DetectVGA : Integer; var Vid : integer; begin
  283.   DetectVGA := 2; end;
  284. {$F-}
  285.  
  286. begin
  287.   AutoDetect := @DetectVGA;
  288.   GrDr := InstallUserDriver('SVGA256',AutoDetect);
  289.   GrDr := Detect;
  290.   InitGraph(GrDr,GrMd,'I:\BGI');
  291. end;
  292.  
  293. {----------------------------------------------------------------------------}
  294.  
  295. procedure InstallColors;
  296.  
  297. var I : byte; C : word;
  298.  
  299. begin
  300.   C := 0;
  301.   for I := 0 to $ff do begin
  302.     port[$3C8] := I;
  303.     port[$3C9] := Palette[C];
  304.     port[$3C9] := Palette[C+1];
  305.     port[$3C9] := Palette[C+2];
  306.     inc(C,3);
  307.   end;
  308. end;
  309.  
  310. {----------------------------------------------------------------------------}
  311.  
  312. procedure PutPicture;
  313.  
  314. const
  315.   Xstep : word = 5;
  316.   Ystep : word = 5;
  317.   Xspd : byte = 5;
  318.   Yspd : byte = 7;
  319.  
  320. var
  321.   I,J,Xidx,Yidx,Xstart,Ystart : word;
  322.   X,Y : integer;
  323.  
  324. begin
  325.   Xstart := 100; Ystart := 500;
  326.   repeat
  327.     {while (port[$3da] and 8) <> 8 do;
  328.     while (port[$3da] and 8) = 8 do;}
  329.     {Xidx := Xstart;
  330.     Y := 0; while Y <= 31 do begin
  331.       I := Tab[Xidx]; Xidx := (Xidx+Xstep) mod Len;
  332.       Yidx := Ystart;
  333.       X := 101; while X >= 0 do begin
  334.         J := Tab[Yidx]; Yidx := (Yidx+Ystep) mod Len;
  335.         putpixel(X+I,Y+J,0);
  336.         dec(X,2);
  337.       end;
  338.       inc(Y,2);
  339.     end;}
  340.     Xstart := (Xstart+Xspd) mod Len;
  341.     Ystart := (Ystart+Yspd) mod Len;
  342.     Xidx := Xstart;
  343.     Y := 0; while Y <= 31 do begin
  344.       I := Tab[Xidx]; Xidx := (Xidx+Xstep) mod Len;
  345.       Yidx := Ystart;
  346.       X := 101; while X >= 0 do begin
  347.         J := Tab[Yidx]; Yidx := (Yidx+Ystep) mod Len;
  348.         putpixel(X+I,Y+J,Picture[Y*102+X]);
  349.         dec(X,2);
  350.       end;
  351.       inc(Y,2);
  352.     end;
  353.   until keypressed;
  354. end;
  355.  
  356. {----------------------------------------------------------------------------}
  357.  
  358. begin
  359.   CalcSinus;
  360.   Setvideo;
  361.   InstallColors;
  362.   PutPicture;
  363.   textmode(lastmode);
  364. end.
  365.