Advertisement
jamiepfuller

notworking

Sep 30th, 2018
143
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. VIC_SPRITE_MSB=$D010
  3. VIC_SPRITE_ENABLE=$D015
  4. VIC_SPRITE_YEXPAND=$D017
  5. VIC_SPRITE_PRIORITY=$D01B
  6. VIC_SPRITE_MULTICOLOUR=$D01C
  7. VIC_SPRITE_XEXPAND=$D01D
  8. VIC_BORDERCOLOUR=$D020
  9. VIC_BGCOLOUR=   $D021
  10. VIC_BGCOLOUR_MC1=$D022
  11. VIC_BGCOLOUR_MC2=$D023
  12.  
  13. VIC_SPRITE_MC1= $D025
  14. VIC_SPRITE_MC2= $D026
  15.  
  16. CIA_1  =        $dc00            ; CIA#1 (Port Register A)
  17. CIA_2  =        $dc01            ; CIA#2 (Port Register B)
  18.  
  19. CIA_ddra =      $dc02            ; CIA#1 (Data Direction Register A)
  20. CIA_ddrb =      $dc03            ; CIA#2 (Data Direction Register B)
  21. XPADDLE=        $d419
  22. MOUSEX=         $0400
  23. MOUSEY=         $0401
  24. MOUSEX_SPEED=   $0428 ;$19
  25. MOUSEY_SPEED=   $0429 ;$1a
  26. MDBUTTON=       $0459
  27.  
  28. ; 10 SYS2064
  29.  
  30. *=$0801
  31.  
  32.         BYTE    $0B, $08, $0A, $00, $9E, $32, $30, $36, $34, $00, $00, $00
  33.  
  34.  
  35.  
  36. *=$0810
  37.  
  38.  
  39.  
  40. init    
  41.  
  42.         ; copy sprite data to sprite location
  43.         ldy     #$3F
  44. @in10   lda     spritedata,y
  45.         sta     $0340,y
  46.         dey
  47.         bpl     @in10
  48.  
  49.         lda     #$0D    ;set sprite pointer
  50.         sta     $07F8
  51.         lda     #$01    ;switch on sprite 1
  52.         sta     VIC_SPRITE_ENABLE
  53.         lda     #$07    ;set sprite colour to yellow
  54.         sta     $D027
  55.  
  56.  
  57.         lda     #%01111111
  58.         sta     $DC0D       ;"Switch off" interrupts signals from CIA-1
  59.         and     $D011
  60.         sta     $D011       ;Clear most significant bit in VIC's raster register
  61.  
  62.         lda     #$51        
  63.         sta     $D012       ; set raster to occour 1 lines down
  64.  
  65.         lda     #<irq_handler
  66.         sta     $0314       ; set low bit of start
  67.         lda     #>irq_handler
  68.         sta     $0315       ; set high bit of start
  69.  
  70.         lda     #%00000001
  71.         sta     $D01A
  72. @endloop
  73.         jmp @endloop
  74.  
  75.  
  76. irq_handler
  77.         LDA     #$00
  78.         STA     VIC_BORDERCOLOUR
  79.         jsr     handlekeyboard
  80.         jsr     handlemouseneos
  81.         JSR     DRAWSPRITE
  82.         INC     VIC_BORDERCOLOUR
  83.  
  84.         asl     $D019
  85.         JMP     $EA31
  86.  
  87.  
  88. DRAWSPRITE
  89.         lda     MOUSEX
  90.         clc
  91.         adc     #$0C
  92.         asl     a
  93.         pha
  94.         bcc     @ds10
  95.         lda     VIC_SPRITE_MSB
  96.         ora     #$01
  97.         bne     @ds20
  98. @ds10   lda     VIC_SPRITE_MSB
  99.         and     #$FE
  100. @ds20   sta     VIC_SPRITE_MSB
  101.         pla
  102.         sta     $D000   ; sprite X
  103.         clc
  104.         lda     MOUSEY
  105.         adc     #$32
  106.         sta     $D001   ; sprite y
  107.         rts
  108.  
  109.  
  110.  
  111.  
  112.  
  113. handlekeyboard
  114.         lda     #$0
  115.         sta     CIA_ddra   ;Port A data direction register.
  116.         lda     #$0
  117.         sta     CIA_ddrb   ;Port B data direction register.
  118. @up  
  119.         lda     #%11111101  ;
  120.         sta     CIA_1
  121.         lda     CIA_2       ; load column information
  122.         and     #%00000010  ; test 'w' key  
  123.         bne     @noup       ; zero flag is not set -> skip next command
  124.         inc     VIC_BGCOLOUR
  125. @noup    
  126.         rts
  127.  
  128.  
  129.  
  130.  
  131.  
  132. handlemouseneos
  133. @LC020  jsr     @LC100
  134.         lda     #$00
  135.         bcc     @LC029
  136.         lda     #$02
  137. @LC029  sta     MDBUTTON
  138.         jsr     @LC190
  139.         lda     CIA_2 ; left button
  140.         and     #$10
  141.         BNE     @RT
  142.         INC     MDBUTTON
  143. @RT
  144.         rts
  145.  
  146. @LC100   ; READ MOUSE
  147.         lda     #$10
  148.         sta     CIA_ddrb   ;Port B data direction register.
  149.         LDA     #$ef  
  150.         sta     CIA_2   ;PORT B
  151.         lda     CIA_2   ;PORT B, read 4 bits
  152.         asl     a
  153.         asl     a
  154.         asl     a
  155.         asl     a
  156.         sta     MOUSEX_SPEED     ; TIMES BY 16 AND STORE AT $19
  157.         LDA     #$10
  158.         sta     CIA_2
  159.         lda     CIA_2   ; read 4 bits
  160.         and     #$0F
  161.         ora     MOUSEX_SPEED
  162.         sta     MOUSEX_SPEED
  163.         LDA     #$EF
  164.         sta     CIA_2
  165.         lda     CIA_2
  166.         asl     a
  167.         asl     a
  168.         asl     a
  169.         asl     a
  170.         sta     MOUSEY_SPEED
  171.         LDA     #$10
  172.         sta     CIA_2
  173.         lda     CIA_2
  174.         and     #$0F
  175.         ora     MOUSEY_SPEED
  176.         sta     MOUSEY_SPEED
  177.         lda     XPADDLE
  178.         cmp     #$FF
  179.         rts
  180.  
  181.  
  182. @LC190   ; TRANSLATE BASED ON SPEED
  183.         lda     MOUSEX_SPEED
  184.         bmi     @LC1A2
  185.         sec
  186.         lda     MOUSEX
  187.         sbc     MOUSEX_SPEED
  188.         bcs     @LC1AF
  189.         lda     #$00
  190.         beq     @LC1AF
  191. @LC1A2  sec
  192.         lda     MOUSEX
  193.         sbc     MOUSEX_SPEED
  194.         bcs     @LC1AD
  195.         cmp     #$A0
  196.         bcc     @LC1AF
  197. @LC1AD  lda     #$9F
  198. @LC1AF  sta     MOUSEX
  199.         lda     MOUSEY_SPEED
  200.         bmi     @LC1C0
  201.         sec
  202.         lda     MOUSEY
  203.         sbc     MOUSEY_SPEED
  204.         bcs     @LC1CD
  205.         lda     #$00
  206.         beq    @LC1CD
  207. @LC1C0  sec
  208.         lda     MOUSEY
  209.         sbc     MOUSEY_SPEED
  210.         bcs     @LC1CB
  211.         cmp     #$C8
  212.         bcc     @LC1CD
  213. @LC1CB  lda     #$C7
  214. @LC1CD  sta     MOUSEY
  215.         rts
  216.  
  217.  
  218.  
  219. spritedata
  220.         byte    $FC,$00,$00,$F0,$00,$00,$F0,$00,$00,$D8,$00,$00,$8C,$00,$00,$86,$00,$00,$03
  221.         bytes   63
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement