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

  1.  
  2. ; Konstanter
  3.  
  4. joy0dat:    equ         $dff00a
  5. joy1dat:    equ         $dff00c
  6. pra:        equ         $bfe001
  7.  
  8. hopp:       jsr         readjoy1
  9.  
  10. utfor:      cmp.b       #1,d0
  11.             beq         ner
  12.             cmp.b       #2,d0
  13.             beq         upp
  14.             nop
  15.             andi.b      #64,$bfe001
  16.             beq         quit
  17.             jmp         hopp
  18.  
  19. ner:
  20. loop1:      move.w      #65535,d0
  21. loop2:      move.w      d0,$dff180
  22.             dbf         d0,loop2
  23.             rts 
  24.  
  25. upp:
  26. loop11:     move.w      #1000,d0
  27. loop21:     move.w      d0,$dff180
  28.             dbf         d0,loop21
  29.             rts 
  30.  
  31. ; Avlas joystick i port 1
  32.  
  33. readjoy1:   movem.l     d2/a0,-(a7)
  34.             lea         joy1dat,a0
  35.             moveq       #7,d2
  36.             bsr         readonejoy
  37.             movem.l     (a7)+,d2/a0
  38.             rts
  39.  
  40. ; Gemensam underrutin
  41.  
  42. readonejoy: movem.l     d1/d3,-(a7)
  43.             moveq       #0,d0
  44.             move.b      pra,d1
  45.             btst        d2,d1
  46.             bne         roj1
  47.             bset        #4,d0
  48. roj1:       move.w      (a0),d1
  49.             btst        d2,d1
  50.             beq         roj2
  51.             bset        #3,d0
  52. roj2:       btst        #1,d1
  53.             beq         roj3
  54.             bset        #3,d0
  55. roj3:       move.b      d1,d3
  56.             and.b       #%10,d1
  57.             lsr.b       #1,d1
  58.             or.b        d1,d0
  59.             and.b       #%1,d3
  60.             eor.b       d3,d0
  61.             move.w      (a0),d1
  62.             lsr.w       #8,d1
  63.             move.b      d1,d3
  64.             and.b       #%10,d1
  65.             or.b        d1,d0
  66.             and.b       #%1,d3
  67.             lsl.b       #1,d3
  68.  
  69.             eor.b       d3,d0
  70.             movem.l     (a7)+,d1/d3
  71.             rts
  72.  
  73. quit:       moveq       #0,d0
  74.             rts
  75.  
  76.             end
  77.                     
  78.