Advertisement
Guest User

Untitled

a guest
Jul 9th, 2017
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2.     .inesprg 1   ; 1 bank of program code
  3.     .ineschr 1   ; 1 bank of picture data
  4.     .inesmap 0   ; mapper 0
  5.     .inesmir 1   ; mirror setting always 1
  6.  
  7.     .bank 0      ; code
  8.     .org $0000
  9. posX       db 0
  10. posY       db 60
  11. numproj    db 0
  12. blankstate db 0
  13. scratchpad0 db 0
  14. scratchpad1 db 0
  15. tmpaddr dw 0
  16. tmplen  db 0
  17.     .org $0300   ; oam copy
  18. sprite0:
  19.     db 0 ; Y
  20.     db 0 ; N
  21.     db 0 ; C
  22.     db 0 ; X
  23. sprite1:
  24.     db 0
  25.     db 0
  26.     db 0
  27.     db 0
  28. sprite2:
  29.     db 0
  30.     db 0
  31.     db 0
  32.     db 0
  33.     .org $8000
  34.    
  35. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  36. main:
  37.     sei
  38.    
  39.     bit $2002
  40.     .vblank_wait1:
  41.         bit $2002
  42.     bpl .vblank_wait1
  43.     .vblank_wait2:
  44.         bit $2002
  45.     bpl .vblank_wait2
  46.    
  47.     ldx #$3F
  48.     stx $2006
  49.     ldx #$00
  50.     stx $2006       ;pallate control reg 1, location
  51.        
  52.     .pal_load_top:
  53.         lda pal, x
  54.         sta $2007       ; pallate control reg 2, data
  55.         inx
  56.         cpx #32
  57.     bne .pal_load_top
  58.    
  59.     jsr load_background
  60.    
  61.    
  62.     ldx #%10001000
  63.     stx $2000           ;;init and enable ppu
  64.     ldx #%00011110
  65.     stx $2001
  66.    
  67.     .main_loop:
  68.         lda blankstate      ; wait for vblank
  69.         cmp #1
  70.         bne .main_loop
  71.         dec blankstate
  72.        
  73.         ;;;;;;gamepad check
  74.         lda #$01    ; reset gamepad
  75.         sta $4016   ;
  76.         lda #$00    ;
  77.         sta $4016   ;
  78.        
  79.             lda $4016 ; A
  80.             and #1
  81.             beq .not_A_button
  82.                 jsr button_A_press
  83.         .not_A_button:
  84.             lda $4016 ; B
  85.             lda $4016 ; select
  86.             lda $4016 ; start
  87.             and #1
  88.             beq .not_start_button
  89.                 jsr button_start_press
  90.         .not_start_button:
  91.             lda $4016 ; up
  92.             and #1
  93.             beq .not_up_button
  94.                 dec posY
  95.         .not_up_button:
  96.             lda $4016 ; down
  97.             and #1
  98.             beq .not_down_button
  99.                 inc posY
  100.         .not_down_button:
  101.             lda $4016 ; left
  102.             and #1
  103.             beq .not_left_button
  104.                 dec posX
  105.         .not_left_button:
  106.             lda $4016 ; right
  107.             and #1
  108.             beq .not_right_button
  109.                 inc posX
  110.         .not_right_button:
  111.  
  112.         ;;;;;;draw sprites
  113.         lda posX
  114.         sta sprite0 + 3
  115.         lda posY
  116.         sta sprite0 + 0
  117.        
  118.         lda sprite1 + 1
  119.         cmp #1
  120.         bne .no_projectile
  121.        
  122.             lda sprite1 + 3
  123.             cmp #$FA
  124.             bcc .not_over
  125.            
  126.                 lda #0
  127.                 sta sprite1 + 0
  128.                 sta sprite1 + 1
  129.                 sta sprite1 + 3
  130.                 jmp .no_projectile
  131.            
  132.             .not_over:
  133.                
  134.                 clc
  135.                 adc #6
  136.                 sta sprite1 + 3
  137.                 eor #%11000000
  138.                 sta sprite1 + 2
  139.            
  140.         .no_projectile:
  141.        
  142.         lda #3      ;reload OAM addrs
  143.         sta $4014
  144.        
  145.     jmp .main_loop
  146.  
  147. .freeze:
  148.     jmp .freeze
  149.  
  150. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  151. button_A_press:
  152.     lda numproj
  153.     cmp #32
  154.     bcs .exit
  155.         asl a
  156.         asl a
  157.         sta tmplen
  158.    
  159.         ldx #(sprite1 >> 8)
  160.         stx tmpaddr + 1
  161.         ldx #(sprite1 & $FF)
  162.         stx tmpaddr
  163.        
  164.         lda tmpaddr
  165.         adc tmplen
  166.         bcc .no_carry
  167.             inc tmpaddr + 1
  168.         .no_carry:
  169.        
  170.         lda posY
  171.         ldy #0
  172.         sta [tmpaddr], y
  173.         lda posX
  174.         clc
  175.         adc #3
  176.         ldy #3
  177.         sta [tmpaddr], y
  178.         lda #1
  179.         ldy #1
  180.         sta [tmpaddr], y
  181.    
  182.         inc numproj
  183.     .exit:
  184.     rts
  185.  
  186. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  187. button_start_press: ;;;work on this too
  188.     rts
  189.  
  190. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  191. primm: ;;;;work on this
  192.    
  193.     rts
  194.  
  195. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  196. load_background:
  197.     lda #$20
  198.     sta $2006 ; bg location loading
  199.     ;lda #$00
  200.     sta $2006
  201.    
  202.     ldx #0
  203.     lda #0
  204.     .bkg_load_buffer_space:
  205.         sta $2007
  206.         inx
  207.         cpx #32
  208.     bne .bkg_load_buffer_space
  209.    
  210.     ldx #0
  211.     .bkg_load_nametable_x:
  212.         lda nametablemap, x
  213.         inx
  214.         sta $2007
  215.         cpx #0
  216.     bne .bkg_load_nametable_x
  217.     .bkg_load_nametable_x2:
  218.         lda nametablemap + $100, x
  219.         inx
  220.         sta $2007
  221.         cpx #0
  222.     bne .bkg_load_nametable_x2
  223.     .bkg_load_nametable_x3:
  224.         lda nametablemap + $200, x
  225.         inx
  226.         sta $2007
  227.         cpx #0
  228.     bne .bkg_load_nametable_x3
  229.     .bkg_load_nametable_x4:
  230.         lda nametablemap + $300, x
  231.         inx
  232.         sta $2007
  233.         cpx #160
  234.     bne .bkg_load_nametable_x4
  235.     rts
  236.  
  237. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  238. irq:
  239.     rti
  240.    
  241. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  242. vblank:
  243.     inc blankstate
  244.     rti
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement