home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / Assembler / dse-src5.dms / in.adf / joystick1.s < prev    next >
Encoding:
Text File  |  1990-05-07  |  4.6 KB  |  164 lines

  1. custom:     equ         $dff000
  2. bplcon0:    equ         $100
  3. bplcon1:    equ         $102
  4. bplcon2:    equ         $104
  5. bpl1mod:    equ         $108
  6. ddfstrt:    equ         $092
  7. ddfstop:    equ         $094
  8. diwstrt:    equ         $08e
  9. diwstop:    equ         $090
  10. vposr:      equ         $004
  11. color00:    equ         $180
  12. color01:    equ         $182
  13. color17:    equ         $1a2
  14. color18:    equ         $1a4
  15. color19:    equ         $1a6
  16. dmacon:     equ         $096
  17. cop1lc:     equ         $080
  18. copjmp1:    equ         $08
  19. joy1dat:    equ         $dff00c
  20. pat:        equ         $bfe001
  21.  
  22.             lea         custom,a0
  23.             move.w      #$1200,bplcon0(a0)
  24.             move.w      #$0000,bpl1mod(a0)
  25.             move.w      #$0000,bplcon1(a0)
  26.             move.w      #$0024,bplcon2(a0)
  27.             move.w      #$0025,ddfstrt(a0)
  28.             move.w      #$00d0,ddfstop(a0)
  29.             move.w      #$1f18,diwstrt(a0)
  30.             move.w      #$00d8,diwstop(a0)
  31.  
  32.             move.w      #$0008,color00(a0)
  33.             move.w      #$0000,color01(a0)
  34.             move.w      #$0fff,color17(a0)
  35.             move.w      #$0fff,color18(a0)
  36.             move.w      #$0fff,color19(a0)
  37.  
  38.             move.l      #$20000,a1
  39.             lea         copperl,a2
  40. cloop:
  41.             move.l      (a2),(a1)+
  42.             cmp.l       #$fffffffe,(a2)+
  43.             bne         cloop
  44.  
  45.             move.l      #$25000,a1
  46.             lea         sprite,a2
  47. sprloop:
  48.             move.l      (a2),(a1)+
  49.             cmp.l       #$00000000,(a2)+
  50.             bne         sprloop
  51.  
  52.             move.l      #$00000000,$30000
  53.  
  54.             move.l      #$21000,a1
  55.             move.w      #2000,d0
  56. floop:
  57.             move.l      #$ffffffff,(a1)+
  58.             subq.w      #1,d0
  59.             bne         floop
  60.  
  61.             move.w      #$0080,custom+dmacon
  62.             move.l      #$20000,custom+cop1lc
  63.             move.w      custom+copjmp1,d0
  64.             move.w      #$83a0,custom+dmacon
  65.  
  66. hopp:       jsr         readjoy1
  67.  
  68.             cmp.b       #4,d0
  69.             beq.s       mainh
  70.             cmp.b       #8,d0
  71.             beq.s       mainv
  72.             jmp         hopp
  73. mainh:                       
  74.             jsr         compare1(pc)
  75.             jsr         loop1
  76.             bra         hopp
  77. mainv:                       
  78.             jsr         compare1(pc)
  79.             jsr         loop2
  80.             bra         hopp
  81.  
  82. loop1:
  83.             lea         $25001,a0
  84.             jsr         aloop(pc) 
  85.             rts
  86. loop2:
  87.             lea         $25001,a0
  88.             jsr         sloop(pc) 
  89.             rts   
  90.     
  91. aloop: 
  92.             move.b      (a0),d0
  93.             add.b       #1,d0
  94.             move.b      d0,(a0)
  95.             rts
  96. sloop:
  97.             move.b      (a0),d0
  98.             subq.b      #1,d0
  99.             move.b      d0,(a0)
  100.             rts
  101.  
  102. compare1:
  103.             move.b      $dff006,d0
  104.             cmp.b       #$d0,d0
  105.             bne         compare1
  106.             rts
  107.  
  108. readjoy1:   movem.l     d1-d3/a0,-(a7)
  109.             lea         joy1dat,a0
  110.             moveq       #7,d2
  111.             moveq       #0,d0
  112.             move.b      pat,d1
  113.             btst        d2,d1
  114.             bne.s       roj1
  115.             bset        #4,d0
  116. roj1:       move.w      (a0),d1
  117.             btst        d2,d1
  118.             beq.s       roj2
  119.             bset        #3,d0
  120. roj2:       btst        #1,d1
  121.             beq.s       roj3
  122.             bset        #3,d0
  123. roj3:       move.b      d1,d3
  124.             and.b       #%10,d1
  125.             lsr.b       #1,d1
  126.             or.b        d1,d0
  127.             and.b       #%1,d3
  128.             eor.b       d3,d0
  129.             move.w      (a0),d1
  130.             lsr.w       #8,d1
  131.             move.b      d1,d3
  132.             and.b       #%10,d1
  133.             or.b        d1,d0
  134.             and.b       #%1,d3
  135.             lsl.b       #1,d3
  136.             eor.b       d3,d0
  137.             movem.l     (a7)+,d1-d3/a0
  138.             rts
  139.  
  140. copperl:
  141.             dc.w        $00e0,$0002
  142.             dc.w        $00e2,$1000
  143.             dc.w        $0120,$0002
  144.             dc.w        $0122,$5000
  145.             dc.w        $0124,$0003
  146.             dc.w        $0126,$0000
  147.             dc.w        $0128,$0003
  148.             dc.w        $012a,$0000
  149.             dc.w        $012c,$0003
  150.             dc.w        $012e,$0000
  151.             dc.w        $0130,$0003
  152.             dc.w        $0132,$0000
  153.             dc.w        $0134,$0003
  154.             dc.w        $0136,$0000
  155.             dc.w        $0138,$0003
  156.             dc.w        $013a,$0000
  157.             dc.w        $013c,$0003
  158.             dc.w        $013e,$0000
  159.             dc.w        $ffff,$fffe
  160. sprite:
  161.             dc.w        $2d60,$2e00
  162.             dc.w        $0001,$0000
  163.             dc.w        $0000,$0000
  164.