home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / Assembler / dse-src6.dms / in.adf / BOUNCHSRCS.LZH / SINUSSTARS.S < prev    next >
Encoding:
Text File  |  1991-01-26  |  4.9 KB  |  308 lines

  1. >EXTERN "DF1:OBJECTS/KORDS",KORDS
  2. HOWMANY2 = 80
  3. PICX=320 ; PIXELS
  4. PICY=200 ; PIXELS
  5. ANTAL_BPL=1
  6. PICXWORD=PICX/16
  7. PICXBYTE=PICX/8
  8. BPLSIZE=PICXBYTE*PICY
  9. PICSIZE=BPLSIZE*ANTAL_BPL
  10.  
  11. START:
  12.     JSR    INITIALIZE
  13.     MOVE.L    #SCREENBUFFER1+[60*40],BAKSCR
  14.     JSR    SETUP_COPPERLIST1
  15.     JSR    SETUPSCREEN
  16.     
  17.     MOVE.L    #0,STATUSPOS    
  18. MAIN_LOOP:
  19.     CMP.B    #$FF,$DFF006
  20.     BNE    MAIN_LOOP
  21.     JSR    DOT2(PC)
  22.     BTST    #6,$BFE001
  23.     BNE    MAIN_LOOP
  24.     JSR    RESTORE
  25.     RTS
  26.  
  27. CLOSELIB=-414
  28. EXECBASE=4
  29. FORBID=-132
  30. OPENLIB=-408
  31. PERMIT=-138
  32.  
  33. ;;; DOS.LIBRARY
  34.  
  35. CLOSE=-36
  36. OPEN=-30
  37. READ=-42
  38.  
  39.  
  40. SETUP_COPPERLIST1:
  41.  
  42.     MOVE.L    #BPL11,D0
  43.     MOVE.W    D0,LO1+2
  44.     LSR.L    #8,D0
  45.     LSR.L    #8,D0
  46.     MOVE.W    D0,HI1+2
  47.     RTS
  48.  
  49. SETUP_COPPERLIST2:
  50.  
  51.     MOVE.L    #BPL12,D0
  52.     MOVE.W    D0,LO1+2
  53.     LSR.L    #8,D0
  54.     LSR.L    #8,D0
  55.     MOVE.W    D0,HI1+2
  56.     RTS
  57.  
  58. CHANGEPIC:
  59.     CMP.L   #0,STATUSSCR
  60.     BEQ    SECOND_FRONT
  61.     CMP.L   #1,STATUSSCR
  62.     BEQ    FIRST_FRONT
  63. CONT:    
  64.     RTS
  65. FIRST_FRONT:
  66.     MOVE.L    #0,STATUSSCR
  67.     LEA    RESSCR(PC),A0
  68.     MOVE.L    (A0),D0
  69.     MOVE.L    4(A0),(A0)
  70.     MOVE.L    D0,4(A0)
  71.     JSR    SETUP_COPPERLIST1(PC)
  72.     BRA    CONT
  73. SECOND_FRONT:
  74.     MOVE.L    #1,STATUSSCR
  75.     LEA    RESSCR(PC),A0
  76.     MOVE.L    (A0),D0
  77.     MOVE.L    4(A0),(A0)
  78.     MOVE.L    D0,4(A0)
  79.     JSR    SETUP_COPPERLIST2(PC)
  80.     BRA    CONT
  81. SETUPSCREEN:
  82.     MOVE.W    #$8100,DMACON        ;ENABLE BPL DMA
  83.     MOVE.W    #$8040,DMACON        ;ENABLE BLITTER DMA
  84.     MOVE.W    #$0020,DMACON        ;DISABLE SPRITE DMA
  85.  
  86.     MOVE.W    #ANTAL_BPL,D0        ;ANTAL BIT PLANER
  87.     MULU    #$1000,D0        ;LORES
  88.     ORI.W    #$0280,D0        ;EXTRA_HALFBRITE
  89.     MOVE.W    D0,BPLCON0
  90.     MOVE.W    #0,BPLCON1
  91.     MOVE.W    #0,BPL1MOD
  92.     MOVE.W    #$0080,DMACON            ;SETUP COPPER
  93.     MOVE.L    #COPPERLIST,COP1LCH    
  94.     MOVE.W    COPJMP1,D0
  95.     MOVE.W    #$8080,DMACON
  96.     RTS
  97. STARTLIST=38
  98.  
  99. INITIALIZE:
  100.     MOVE.L    EXECBASE,A6
  101. RESTORE_COPPER:
  102.     LEA    GRAPHICS_LIBRARY,A1
  103.     CLR.L    D0
  104.     JSR    OPENLIB(A6)
  105.     MOVE.L    D0,A1
  106.     MOVE.L    STARTLIST(A1),OLDCOPPER
  107.     JSR    CLOSELIB(A6)
  108.     JSR    FORBID(A6)
  109.  
  110.     MOVE.L    EXECBASE,A6
  111.     RTS
  112.  
  113. RESTORE:
  114.     MOVE.L    EXECBASE,A6
  115. RESTORE_SOUND:
  116.     MOVE.W    #$000F,DMACON
  117.     MOVE.L    OLDCOPPER,$DFF080
  118.     CLR.W    COPJMP1
  119.     MOVE.W    #$83E0,DMACON
  120.     JSR    PERMIT(A6)
  121.  
  122.     RTS
  123.  
  124. OLDCOPPER:    DC.L 0
  125. GRAPHICS_LIBRARY:
  126.     DC.B    'graphics.library',0
  127. BLTCPTH=$DFF048
  128. BLTBPTH=$DFF04C
  129. BLTAPTH=$DFF050
  130. BLTDPTH=$DFF054
  131.  
  132. BLTCMOD=$DFF060
  133. BLTBMOD=$DFF062
  134. BLTAMOD=$DFF064
  135. BLTDMOD=$DFF066
  136.  
  137. BLTCON0=$DFF040
  138. BLTCON1=$DFF042
  139. BLTSIZE=$DFF058
  140.  
  141. BPL1MOD=$DFF108
  142. BPLCON0=$DFF100
  143. BPLCON1=$DFF102
  144.  
  145. COP1LCH=$DFF080
  146. COPJMP1=$DFF088
  147.  
  148. DDFSTRT=$DFF092
  149. DDFSTOP=$DFF094
  150. DIWSTRT=$DFF08E
  151. DIWSTOP=$DFF090
  152. DMACON=$DFF096
  153. DMACONR=$DFF002
  154.  
  155. INTREQR=$DFF01E
  156.  
  157. JOYXDAT=$DFF00C
  158.  
  159. VHPOSR=$DFF006
  160. VPOSR=$DFF004
  161.  
  162. EVEN
  163.  
  164. STATUSSCR:    DC.L    0
  165. RESSCR:     DC.L    SCREENBUFFER1
  166. BAKSCR:     DC.L     SCREENBUFFER2
  167. STATUSPOS:    DC.L    0
  168. COPPERLIST:
  169.     DC.W    $1001,$FFFE
  170.     DC.W    $0100,$0200
  171.     DC.W    $2001,$FFFE
  172.     DC.W    $008E,$1C61
  173.     DC.W    $0090,$10F1
  174.     DC.W     $0092,$0038
  175.     DC.W    $0094,$00D0
  176.     DC.W    $0108,$0000
  177.     DC.W    $0100,$1200
  178. HI1:    DC.W    $00E0,0
  179. LO1:    DC.W    $00E2,0
  180. COLOUR1:
  181.     DC.W    $0180,$0000
  182.     DC.W    $0182,$0FFF
  183.     DC.W    $F601,$FFFE
  184.     DC.W    $0100,$0200
  185.     DC.W    $FFFF,$FFFE    ;END COPPER LIST
  186.  
  187. DOT2:
  188.     CLR.L   D0
  189.     CLR.L   D1
  190.     CLR.L   D2
  191.     CLR.L   D3
  192.     CLR.L   D4
  193.     CLR.L   D5
  194.     CLR.L   D6
  195.     LEA     USEKORDS2(PC),A0
  196.     LEA     KORDPOS2(PC),A2
  197.     MOVE.B  #HOWMANY2,D6
  198.     LEA    GETX2(PC),A5
  199.     MOVE.B  (A5),D0
  200.     MOVE.B  1(A5),D1
  201.     MOVE.B  2(A5),D2
  202.     MOVE.B  3(A5),D3
  203. MAKELOOP12:
  204.     MOVE.L  (A2),A1
  205.     ADDA.L  D0,A1
  206.     MOVE.B  (A1),D4
  207.     LSR.B   #1,D4
  208.     MOVE.L  (A2),A1
  209.     ADDA.L  D1,A1
  210.     MOVE.B  (A1),D7
  211.     LSR.B   #1,D7
  212.     ADD.B   D7,D4
  213.     MOVE.W  D4,(A0)+
  214.     MOVE.L  (A2),A1
  215.     ADDA.L  D2,A1
  216.     MOVE.B  (A1),D5
  217.     LSR.B   #1,D5
  218.     MOVE.L  (A2),A1
  219.     ADD.L   D3,A1
  220.     MOVE.B  (A1),D7
  221.     LSR.B   #1,D7
  222.     ADD.B   D7,D5
  223.     LSR.B   #1,D5
  224.     ADDI.B  #$05,D5
  225.     MOVE.W  D5,(A0)+
  226.     LEA     SINUSPARMS2(PC),A6
  227.     MOVE.L  (A6),A6
  228.     ADD.B   2(A6),D0
  229.     ADD.B   3(A6),D1
  230.     SUB.B   4(A6),D2
  231.     SUB.B   5(A6),D3
  232.     DBF     D6,MAKELOOP12
  233.     LEA     SPEED222(PC),A1
  234.     MOVE.L  (A1),A1
  235.     MOVE.B  #$04,D0
  236. MAKELOOP22:
  237.     MOVE.B  (A5),D1
  238.     MOVE.B  (A1)+,D2
  239.     ADD.B   D2,D1
  240.     MOVE.B  D1,(A5)+
  241.     DBF     D0,MAKELOOP22
  242.     BRA.L   WRITEDOT
  243.  
  244. GETX2:     DC.L    $00000000
  245. SPEEDPARMS2:
  246. SPEED12:DC.B $01        ; SPEED X1
  247. SPEED22:DC.B $02        ; SPEED X2
  248. SPEED32:DC.B $02        ; SPEED Y1
  249. SPEED42:DC.B $01        ; SPEED Y2
  250. SINUSPARAMETERS2:
  251. PARM12:    DC.W $00    ; UNUSED
  252. PARM22:    DC.B $04    ; WITH BETWEEN DOTS X1
  253. PARM32:    DC.B $05    ; WITH BETWEEN DOTS X2
  254. PARM42:    DC.B $06    ; WITH BETWEEN DOTS Y1
  255. PARM52:    DC.B $05    ; WITH BETWEEN DOTS Y2
  256. PARM62:    DC.B $00    ; UNUSED
  257. EVEN
  258. DUMMY2:    DC.L $00000000
  259.  
  260. SPEED222:    DC.L    SPEEDPARMS2
  261. SINUSPARMS2:    DC.L    SINUSPARAMETERS2
  262. KORDPOS2:    DC.L    KORDS
  263. USEKORDS2:
  264. BLK.W  HOWMANY2*8+4,$0004
  265. WRITEDOT:
  266.     CLR.L   D0
  267.     LEA     USEKORDS2+[HOWMANY2*4+4](PC),A0
  268.     MOVE.B  #HOWMANY2,D0
  269. LOOP1:    MOVE.L  (A0)+,A1
  270.     CLR.W   (A1)
  271.     DBF     D0,LOOP1
  272.     LEA     USEKORDS2(PC),A0
  273.     LEA     USEKORDS2+[HOWMANY2*4+4](PC),A3
  274.     CLR.L   D6
  275.     MOVE.B  #HOWMANY2-7,D6
  276. LOOP2:    MOVE.W  (A0)+,D0
  277.     DIVU    #$0010,D0
  278.     MOVE.W  D0,D4
  279.     LSL.W   #1,D4
  280.     ADDI.W  #$0006,D4
  281.     SWAP    D0
  282.     CLR.L   D1
  283.     MOVE.W  D0,D1
  284.     CLR.L   D0
  285.     MOVE.B  D1,D0
  286.     CLR.L   D0
  287.     MOVE.W  (A0)+,D0
  288.     MULU    #$0028,D0
  289.     MOVE.W  D0,D5
  290.     MOVE.L  BAKSCR(PC),A2
  291.     ADDA.L  D5,A2
  292.     ADDA.L  D4,A2
  293.     MOVE.L  A2,(A3)+
  294.     CLR.L   D2
  295.     MOVE.B  #$0F,D2
  296.     SUB.B   D1,D2
  297.     CLR.L   D3
  298.     BSET    D2,D3
  299.     OR.W    D3,(A2)
  300.     DBF     D6,LOOP2
  301.     RTS
  302.  
  303. KORDS:  BLK.B   260,0
  304. SCREENBUFFER1:
  305. BPL11:    BLK.B    BPLSIZE,0
  306. SCREENBUFFER2:
  307. BPL12:    BLK.B    BPLSIZE,0
  308.