home *** CD-ROM | disk | FTP | other *** search
/ The Datafile PD-CD 3 / PDCD_3.iso / pocketbk / developmen / oplexamp / SINUS.OPL < prev    next >
Text File  |  1993-10-18  |  2KB  |  83 lines

  1. Rem ** Sinus **
  2. Rem (c)1993 Roberto Zilli
  3. Rem Via Aprica,7 21100 Varese
  4. Rem Tel. 0332-236521
  5. Rem This Software is Public !
  6.  
  7. PROC MAIN:
  8. LOCAL a%(63),b%(30),c%(30)
  9.  
  10. Rem Build the Look-Up Table
  11.  
  12. b%(1)=0 : b%(2)=1
  13. b%(3)=2 : b%(4)=3
  14. b%(5)=4 : b%(6)=5
  15. b%(7)=6 : b%(8)=7
  16. b%(9)=6 : b%(10)=5
  17. b%(11)=4 : b%(12)=3
  18. b%(13)=2 : b%(14)=1
  19. b%(15)=0 : b%(16)=0
  20. b%(17)=-1 : b%(18)=-2
  21. b%(19)=-3 : b%(20)=-4
  22. b%(21)=-5 : b%(22)=-6
  23. b%(23)=-7 : b%(24)=-6
  24. b%(25)=-5 : b%(26)=-4
  25. b%(27)=-3 : b%(28)=-2
  26. b%(29)=-1 : b%(30)=0
  27. rem
  28. DO
  29. a%(1)=0 : a%(2)=40
  30. a%(3)=30
  31.  
  32. a%(4)=8*2 : a%(5)=b%(1)
  33. a%(6)=8*2 : a%(7)=b%(2)
  34. a%(8)=8*2 : a%(9)=b%(3)
  35. a%(10)=8*2 : a%(11)=b%(4)
  36. a%(12)=8*2 : a%(13)=b%(5)
  37. a%(14)=8*2 : a%(15)=b%(6)
  38. a%(16)=8*2 : a%(17)=b%(7)
  39. rem *
  40. a%(18)=8*2 : a%(19)=b%(8)
  41. a%(20)=8*2 : a%(21)=b%(9)
  42. a%(22)=8*2 : a%(23)=b%(10)
  43. a%(24)=8*2 : a%(25)=b%(11)
  44. a%(26)=8*2 : a%(27)=b%(12)
  45. a%(28)=8*2 : a%(29)=b%(13)
  46. a%(30)=8*2 : a%(31)=b%(14)
  47. a%(32)=8*2 : a%(33)=b%(15)
  48. rem *
  49. a%(34)=8*2 : a%(35)=b%(16)
  50. a%(36)=8*2 : a%(37)=b%(17)
  51. a%(38)=8*2 : a%(39)=b%(18)
  52. a%(40)=8*2 : a%(41)=b%(19)
  53. a%(42)=8*2 : a%(43)=b%(20)
  54. a%(44)=8*2 : a%(45)=b%(21)
  55. a%(46)=8*2 : a%(47)=b%(22)
  56. a%(48)=8*2 : a%(49)=b%(23)
  57. rem *
  58. a%(50)=8*2 : a%(51)=b%(24)
  59. a%(52)=8*2 : a%(53)=b%(25)
  60. a%(54)=8*2 : a%(55)=b%(26)
  61. a%(56)=8*2 : a%(57)=b%(27)
  62. a%(58)=8*2 : a%(59)=b%(28)
  63. a%(60)=8*2 : a%(61)=b%(29)
  64. a%(62)=8*2 : a%(63)=b%(30)
  65.  
  66. Rem Rotate b%() to Right
  67.  
  68.     call ($a1,0,58,0,addr(b%(1)),addr(c%(2)))
  69.     call ($a1,0,02,0,addr(b%(30)),addr(c%(1)))
  70.     call ($a1,0,60,0,addr(c%(1)),addr(b%(1)))
  71.      
  72. Rem Rotate b%() to Left
  73.  
  74. rem call ($a1,0,58,0,addr(b%(2)),addr(c%(1)))
  75. rem call ($a1,0,02,0,addr(b%(1)),addr(c%(30)))
  76. rem call ($a1,0,60,0,addr(c%(1)),addr(b%(1)))
  77. gUpdate off
  78.     gcls
  79.     gPoly a%()
  80.     gUpdate on
  81. until key
  82. ENDP
  83.