home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 4: Demo 1 / almathera_demo1.bin / sourcecode / dexion / circle.s < prev    next >
Text File  |  1995-03-17  |  2KB  |  199 lines

  1. scr=$7a000
  2. struc=$7d000
  3. rastport=struc+100
  4.  
  5. setupsystem:
  6.  
  7. bsr getgfx
  8. bsr cleanitdown
  9.  
  10.  
  11. move.w #8000-1 ,d0
  12. move.l #scr ,a0
  13. slet: move.b #0 ,(a0)+
  14. dbra d0 ,slet
  15.  
  16. move.l #scr ,a0
  17. move.l a0 ,struc+8
  18. move.l #struc ,a0
  19. moveq #1 ,d0
  20. move.l #320 ,d1
  21. move.l #200 ,d2
  22. move.l gfxbase ,a6
  23. jsr -390(a6)
  24. move.l #rastport ,a1
  25. jsr -198(a6)
  26. move.l #struc,rastport+4
  27.  
  28. move.l #copper0,newcop
  29. bsr changecop
  30.  
  31. ;--DEMO
  32.  
  33. move=-240
  34. draw=-246
  35. setapen=-342
  36.  
  37. move.l #rastport,a1
  38.  
  39. ;/////// my demo!!! ///////
  40. clr.l    d0
  41. clr.l    d1
  42. clr.l    d2
  43. clr.l    d3
  44. clr.l    d4
  45. clr.l    d5
  46. clr.l    d6
  47. clr.l    d7
  48.  
  49. move    #100,yc
  50. ohno:
  51.  
  52. ;move    #7999,d0
  53. ;move.l    #scr,a0
  54. ;clrloop:
  55. ;move.b    #0,(a0)+
  56. ;dbra    d0,clrloop
  57.  
  58. clr    d0
  59. clr    d1
  60. clr    d4
  61. clr    d5
  62. move.b    $dff00b,xc+1
  63. move.b    $dff00a,rad+1
  64. jsr    drawcircle
  65. btst    #6,$bfe001
  66. bne    ohno
  67. rts
  68.  
  69. drawcircle:
  70.  
  71. move    rad,d7
  72. findsum:
  73. add    d7,d5
  74. dbra    d7,findsum
  75.  
  76. sub    d5,d1
  77.  
  78. move    rad,d2
  79. move    #0,d3
  80.  
  81. loop:
  82. add    d2,d0
  83. add    d3,d1
  84.  
  85. add    #1,d3
  86.  
  87. move    d0,d6
  88. move    d1,d7
  89. muls    rad,d6
  90. muls    rad,d7
  91. divs    d5,d6
  92. divs    d5,d7
  93. ext.l    d6
  94. ext.l    d7
  95.  
  96. move    d6,x
  97. move    d7,y
  98.  
  99. add    xc,d6
  100. add    yc,d7
  101. jsr    putpoint
  102.  
  103. move    x,d7
  104. clr    d6
  105. sub    y,d6
  106. add    xc,d6
  107. add    yc,d7
  108. jsr    putpoint
  109.  
  110. clr    d7
  111. sub    x,d7
  112. move    y,d6
  113. add    xc,d6
  114. add    yc,d7
  115. jsr    putpoint
  116.  
  117. clr    d6
  118. clr    d7
  119. sub    x,d6
  120. sub    y,d7
  121. add    xc,d6
  122. add    yc,d7
  123. jsr    putpoint
  124.  
  125. dbra    d2,loop
  126. rts
  127. ;---------
  128. putpoint:
  129. mulu    #40,d7
  130. move    d7,a0
  131. ror.l    #3,d6
  132. add    d6,a0
  133. clr    d6
  134. rol.l    #3,d6
  135. cmp    #8000,a0
  136. bge    no
  137. add.l    #scr,a0
  138. move    #7,d7
  139. sub    d6,d7
  140. bset    d7,(a0)
  141. no:
  142. rts        
  143. ;/////// my demo's over. //
  144.  
  145. copper0:dc.w    $0100,$1200
  146.  
  147.     dc.w    $008e,$2c81
  148.     dc.w    $0090,$f4c1
  149.     dc.w     $0092,$38
  150.     dc.w    $0094,$d0
  151.  
  152.     dc.w    $0108,$0000
  153.     dc.w    $010a,$0000
  154.  
  155.     dc.w    $00e0,$0007
  156.     dc.w    $00e2,$a000
  157.  
  158.     dc.w    $0180,$00f
  159.     dc.w    $0182,$f00
  160.  
  161. dc.w $ffff,$fffe
  162.  
  163. ;*** gfx ***
  164. gfxbase:    dc.l    0
  165. gfxname:    dc.b    'graphics.library',0,0
  166.  
  167. getgfx:
  168.     move.l    4    ,a6
  169.     move.l    #gfxname,a1
  170.     jsr    -408(a6)
  171.     move.l    d0    ,gfxbase
  172. rts
  173.  
  174. ;*** change copper list ***
  175.  
  176. newcop: dc.l 0
  177. ;***
  178. changecop:
  179.     move.l    gfxbase    ,a0
  180.     move.l    newcop    ,50(a0)
  181. rts
  182.  
  183. ;*********
  184.  
  185. forbid =-132
  186. oldcopper:    dc.l 0
  187.  
  188. cleanitdown:
  189. move.l 4,a6
  190. jsr    -132(a6)
  191. rts
  192.  
  193. rad:dc.w    0
  194. xc:dc.w    0
  195. yc:dc.w    0
  196. x:dc.w    0
  197. y:dc.w    0
  198.  
  199.