home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / Assembler / dse-src5.dms / in.adf / BOBS.S < prev    next >
Encoding:
Text File  |  1986-07-11  |  7.0 KB  |  261 lines

  1. ;******************************
  2. ;*  " BOBS " BY INFECTION     *
  3. ;*        ....MOVE....        *
  4. ;******************************
  5. BLTWAIT:    MACRO
  6. BLTBUSY?0:  BTST     #6,$02(A5)
  7.         BNE.S    BLTBUSY?0
  8.         ENDM
  9.  
  10. OPENLIB:    EQU -408
  11. ALLOCMEM:   EQU -198
  12. FREEMEM:    EQU -210
  13. MEMF_CHIP:  EQU $10002
  14.  
  15. BEGIN:         MOVEM.L D0-D7/A0-A6,-(SP)
  16.          MOVE.L  $4.W,A6
  17.          MOVE.L  #COPSIZE+PICSIZE,D0
  18.          MOVE.L  #MEMF_CHIP,D1
  19.          JSR ALLOCMEM(A6)
  20.          MOVE.L  D0,NEWCOPPER
  21.          BEQ.L   ALLOCERROR
  22.          ADD.L   #COPSIZE,D0
  23.          MOVE.L  D0,BPLPTR
  24.  
  25. INITBPL:     SWAP    D0
  26.          MOVE.W  D0,BPL1H
  27.          SWAP    D0
  28.          MOVE.W  D0,BPL1L
  29.          ADD.L   #BPLSIZE,D0
  30.          SWAP    D0
  31.          MOVE.W  D0,BPL2H
  32.          SWAP    D0
  33.          MOVE.W  D0,BPL2L
  34.  
  35.          MOVE.L  NEWCOPPER(PC),A0
  36.          LEA.L   COPPERLIST(PC),A1
  37.          MOVE.W  #COPSIZE/4-1,D7
  38. MOVETOCHIP:  MOVE.L  (A1)+,(A0)+
  39.          DBF D7,MOVETOCHIP
  40.  
  41.          LEA.L   GFXNAME(PC),A1
  42.          JSR OPENLIB(A6)
  43.          TST.L   D0
  44.          BEQ.L   GFXERROR
  45.          MOVE.L  D0,A0
  46.          MOVE.L  $26(A0),OLDCOPPER
  47.          LEA.L   $DFF000,A5
  48. DISABLE:     TST.B   $06(A5)
  49.          BNE.S   DISABLE
  50.          MOVE.W  #$4000,$9A(A5)
  51.          MOVE.W  $02(A5),DMABITS
  52.          BSET    #7,DMABITS
  53.          MOVE.W  #$7FFF,$96(A5)
  54.          MOVE.W  #$83C0,$96(A5)
  55.  
  56.          MOVE.L  NEWCOPPER(PC),$80(A5)
  57.          MOVE.L  #$FFFFFFFF,$44(A5)
  58.          MOVE.L  #$00240008,$60(A5)
  59.          MOVE.W  #$0008,$64(A5)
  60.  
  61. MAIN:         BTST    #6,$BFE001
  62.          BEQ.L   EXIT
  63.  
  64. SYNC:        cmp.b    #$C8,$06(A5)
  65.         bne.s    SYNC
  66.         move.l    #$01000000,$40(A5)
  67.         CLR.W    $66(A5)
  68.         MOVE.L    BPLPTR(PC),$54(A5)
  69.         MOVE.W    #$40*2*200+20,$58(A5)
  70.         BLT    WAIT
  71.         MOVE.W  #$0024,$66(A5)
  72.         LEA.L   BOBDATA(PC),A0
  73.         LEA.L   SINTBL(PC),A1
  74.         MOVEQ   #31,D7
  75. PUTBOBS:MOVE.L  #BOBBPL1,D5
  76.     MOVE.W  6(A0),D0
  77.     ADDQ.B  #1,7(A0)
  78.     cmp.w  #128,D0
  79.     BLS.S   BELOW90
  80.     NEG.W   D0
  81.     ADD.W   #256,D0
  82. BELOW90:ADD.W   D0,D0
  83.     MOVEQ   #0,D2
  84.     MOVE.W  (A0),D2
  85.     ADD.W   2(A0),D2
  86.     BPL.S   NOTLEFT
  87.     NEG.W   2(A0)
  88.     CLR.W   D2
  89. NOTLEFT:CMP.W   #304,D2
  90.     BLS.S   NOTRIGHT
  91.     NEG.W   2(A0)
  92.     MOVE.W  #304,D2
  93. NOTRIGHT:    MOVE.W  D2,(A0)
  94.          MOVE.W  4(A0),D3
  95.          MULU    $00(A1,D0.W),D3
  96.          CMP.L   #$3FFF,D3
  97.          BHI.S   NOBOUNCE
  98.          CMP.L   #$1FFF,D3
  99.          BHI.S   BOUNCE1
  100. BOUNCE2:     MOVE.L  #BOBBPL1+8,D5
  101.          BRA.S   NOBOUNCE
  102. BOUNCE1:     MOVE.L  #BOBBPL1+4,D5
  103. NOBOUNCE:    MOVE.L  D5,D6
  104.          ADD.L   #144,D6
  105.          ASL.L   #2,D3
  106.          SWAP    D3
  107.          SUB.W   #188,D3
  108.          NEG.W   D3
  109.          MULU    #40,D3
  110.          MOVE.W  D2,D4
  111.          ROR.L   #4,D2
  112.          ADD.W   D2,D2
  113.          ADD.W   D2,D3
  114.          ADD.L   BPLPTR(PC),D3
  115.          SWAP    D2
  116.          MOVE.W  D2,$42(A5)
  117.          OR.W    #$0FF2,D2
  118.          MOVE.W  D2,$40(A5)
  119.          MOVE.L  D3,$48(A5)
  120.          MOVE.L  D6,$4C(A5)
  121.          MOVE.L  D5,$50(A5)
  122.          MOVE.L  D3,$54(A5)
  123.          MOVE.W  #$40*12+2,$58(A5)
  124.          BLT    WAIT
  125.          AND.W   #$F000,D2
  126.          OR.W    #$0FCE,D2
  127.          MOVE.W  D2,$40(A5)
  128.          ADD.L   #BPLSIZE,D3
  129.          MOVE.L  D6,$4C(A5)
  130.          MOVE.L  D5,$50(A5)
  131.          MOVE.L  D3,$48(A5)
  132.          MOVE.L  D3,$54(A5)
  133.          MOVE.W  #$40*12+2,$58(A5)
  134.          BLT    WAIT
  135.          ADDQ.L  #8,A0
  136.          DBF D7,PUTBOBS
  137.          BRA.L   MAIN
  138.  
  139. EXIT:         MOVE.L  OLDCOPPER(PC),$80(A5)
  140.          MOVE.W  DMABITS(PC),$96(A5)
  141.          MOVE.W  #$C000,$9A(A5)
  142. GFXERROR:    MOVE.L  NEWCOPPER(PC),A1
  143.          MOVE.L  #COPSIZE+PICSIZE,D0
  144.          JSR FREEMEM(A6)
  145. ALLOCERROR:  MOVEM.L (SP)+,D0-D7/A0-A6
  146.          RTS
  147.  
  148. OLDCOPPER:   DC.L    0
  149. NEWCOPPER:   DC.L    0
  150. BPLPTR:      DC.L    0
  151. DMABITS:     DC.W    0
  152. GFXNAME:     DC.B    'GRAPHICS.LIBRARY',0
  153.         EVEN
  154.  
  155. COPPERLIST:  DC.W    $008E,$2C81
  156.          DC.W    $0090,$F4C1
  157.          DC.W    $0092,$0038
  158.          DC.W    $0094,$00D0
  159.          DC.W    $0100,$2000
  160.          DC.W    $0102,$0000
  161.          DC.W    $0104,$0000
  162.          DC.W    $0108,$0000
  163.          DC.W    $010A,$0000
  164.          DC.W    $00E0
  165.  
  166. BPL1H:         DC.W    $0000
  167.          DC.W    $00E2
  168. BPL1L:       DC.W    $0000
  169.          DC.W    $00E4
  170. BPL2H:       DC.W    $0000
  171.          DC.W    $00E6
  172. BPL2L:       DC.W    $0000
  173. COLORS:      DC.W    $0180,$000
  174.          DC.W    $0182,$009
  175.          DC.W    $0184,$22C
  176.          DC.W    $0186,$44F
  177.          DC.W    $F407,$FFFE,$0180,$F00
  178.          DC.W    $F507,$FFFE,$0180,$000
  179.          DC.W    $FFFF,$FFFE
  180. COPEND:
  181. COPSIZE:     EQU COPEND-COPPERLIST
  182. BPLSIZE:     EQU 320/8*200
  183. PICSIZE:     EQU 2*BPLSIZE
  184.  
  185. BOBDATA:     DC.W    0,1,100,0
  186.          DC.W    10,3,40,5
  187.          DC.W    20,0,20,10
  188.          DC.W    30,-2,50,15
  189.          DC.W    40,-1,150,20
  190.          DC.W    50,0,80,25
  191.          DC.W    60,4,120,30
  192.          DC.W    70,-3,60,35
  193.          DC.W    80,-1,70,40
  194.          DC.W    90,0,50,45
  195.          DC.W    100,2,180,50
  196.          DC.W    110,-2,20,55
  197.          DC.W    120,-4,130,60
  198.          DC.W    130,1,160,65
  199.          DC.W    140,5,170,70
  200.          DC.W    150,0,140,75
  201.          DC.W    160,-4,30,80
  202.          DC.W    170,-1,60,85
  203.          DC.W    180,-3,130,90
  204.          DC.W    190,2,50,95
  205.          DC.W    200,4,80,100
  206.          DC.W    210,-1,90,105
  207.          DC.W    220,-3,120,110
  208.          DC.W    230,0,110,115
  209.          DC.W    240,2,40,120
  210.          DC.W    250,-2,10,125
  211.          DC.W    260,0,40,130
  212.          DC.W    270,-4,50,135
  213.          DC.W    280,-2,120,140
  214.          DC.W    290,4,140,145
  215.          DC.W    300,1,90,150
  216.          DC.W    300,3,170,155
  217.  
  218. SINTBL:      DC.W    $0000,$00C9,$0192,$025B,$0324,$03ED,$04B5,$057E
  219.          DC.W    $0646,$070E,$07D6,$089D,$0964,$0A2B,$0AF1,$0BB7
  220.          DC.W    $0C7C,$0D41,$0E06,$0ECA,$0F8D,$1050,$1112,$11D3
  221.          DC.W    $1294,$1354,$1413,$14D2,$1590,$164C,$1709,$17C4
  222.          DC.W    $187E,$1937,$19EF,$1AA7,$1B5D,$1C12,$1CC6,$1D79
  223.          DC.W    $1E2B,$1EDC,$1F8C,$203A,$20E7,$2193,$223D,$22E7
  224.           DC.W    $238E,$2435,$24DA,$257E,$2620,$26C1,$2760,$27FE
  225.          DC.W    $289A,$2935,$29CE,$2A65,$2AFB,$2B8F,$2C21,$2CB2
  226.          DC.W    $2D41,$2DCF,$2E5A,$2EE4,$2F6C,$2FF2,$3076,$3078
  227.          DC.W    $3179,$31F8,$3274,$32EF,$3368,$33DF,$3453,$34C6
  228.          DC.W    $3537,$35A5,$3612,$367D,$36E5,$374B,$37B0,$3812
  229.          DC.W    $3871,$38CF,$392B,$3984,$39DB,$3A30,$3A82,$3AD3
  230.          DC.W    $3B21,$3B6D,$3BB6,$3BFD,$3C42,$3C85,$3CC5,$3D03
  231.          DC.W    $3D3F,$3D78,$3DAF,$3DE3,$3E15,$3E45,$3E72,$3E9D
  232.          DC.W    $3EC5,$3EEB,$3F0F,$3F30,$3F4F,$3F6B,$3F85,$3F9C
  233.          DC.W    $3FB1,$3FC4,$3FD4,$3FE1,$3FEC,$3FF5,$3FFB,$3FFF
  234.          DC.W    $4000
  235.     
  236. BOBBPL1:     DC.L    $00000000,$00000000,$00000000
  237.          DC.L    $03C00000,$00000000,$00000000
  238.          DC.L    $0FF00000,$07E00000,$00000000
  239.          DC.L    $0FF00000,$1FF80000,$0FF00000
  240.          DC.L    $1FF80000,$1FF80000,$3FFC0000
  241.          DC.L    $1FF80000,$3FFC0000,$7FFE0000
  242.          DC.L    $1FF80000,$3FFC0000,$7FFE0000
  243.          DC.L    $1FF80000,$3FFC0000,$7FFE0000
  244.          DC.L    $0FF00000,$1FF80000,$7FFE0000
  245.          DC.L    $0FF00000,$1FF80000,$3FFC0000
  246.          DC.L    $03C00000,$07E00000,$0FF00000
  247.          DC.L    $00000000,$00000000,$00000000
  248. BOBBPL2:     DC.L    $03C00000,$00000000,$00000000
  249.          DC.L    $0C300000,$07E00000,$00000000
  250.          DC.L    $16080000,$18180000,$0FF00000
  251.          DC.L    $1E080000,$2C040000,$300C0000
  252.          DC.L    $2C0C0000,$3C040000,$58020000
  253.          DC.L    $200C0000,$58060000,$B0030000
  254.          DC.L    $201C0000,$40060000,$B0030000
  255.          DC.L    $201C0000,$400E0000,$80070000
  256.          DC.L    $10380000,$201C0000,$800F0000
  257.          DC.L    $10F80000,$207C0000,$403E0000
  258.          DC.L    $0FF00000,$1FF80000,$3FFC0000
  259.          DC.L    $03C00000,$07E00000,$0FF00000
  260.  
  261.