Guest User

Untitled

a guest
Sep 10th, 2018
187
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. .segment "INES"
  2.     .byte "NES", $1A,1,1,9
  3.  
  4. .segment "VECTORS"
  5.     .word NMI
  6.     .word Start
  7.     .word IRQ
  8.  
  9. .segment "GFX"
  10. spr_tiles:
  11.     .incbin "sprites.spr"
  12. bg_tiles:
  13.     .incbin "bakgrunn.chr"
  14.    
  15. .segment "CODE"
  16.  
  17. Start:
  18.  
  19.     ; ---[ VENTER 2 FRAMES TIL PPU KOMMER SEG ]---
  20.     LDA $2002
  21.     BPL Start
  22. :   LDA $2002
  23.     BPL :-
  24.  
  25.     ; ---[ START LAST PALETT]---
  26.     LDA #$3F
  27.     STA $2006   ; PPU output skal
  28.     LDA #0      ; settes til $3F00
  29.     STA $2006      
  30.    
  31.     LDX #0
  32. LastPalett:
  33.     LDA palett, x
  34.     STA $2007
  35.     INX
  36.     CPX #32
  37.     BNE LastPalett
  38.     ; ---[ SLUTT LAST PALETT]---
  39.    
  40.     ; ---[ SETTER OPP PPU ]---
  41.     LDA #%10010000
  42.     STA $2000       ; kontrollregister 1
  43.     LDA #%00011110
  44.     STA $2001       ; kontrollregister 2
  45.    
  46.     ; ---[ SETTER OPP STACKEN ]---
  47.     LDX #$FF
  48.     TXS
  49.    
  50.    
  51.     LDA #0
  52.     STA right_racket_pos
  53.    
  54.     ; ---[ SETT POSISJON TIL SPRITES ]---
  55.  
  56.     ; ---[ POSISJONER OG VEKTORER TIL BALLEN]---
  57.     LDA #0
  58.     STA x_pos
  59.     LDA #50
  60.     STA y_pos
  61.     LDA #3
  62.     STA x_vector
  63.     LDA #1
  64.     STA y_vector
  65.    
  66. Sprite:
  67.     LDA $2002
  68.     BPL Sprite
  69.  
  70.  
  71.     ; ---[ BALL ]---
  72.  
  73.     ; ---[ Y-KOORDINAT ]---
  74.     LDA y_pos
  75.     STA $0200
  76.    
  77.     ; ---[ TILENUMMER FRA CHR-ROM ]---
  78.     LDA #3
  79.     STA $0201
  80.     ; ---[ ATRIBUTT-BYTE ]---
  81.     LDA #0; (setter ingen flagg)
  82.     STA $0202
  83.     ; ---[ X-KOORDINAT ]---
  84.     LDA x_pos
  85.     STA $0203
  86.  
  87.  
  88.     ; ---[ RIGHT RACKET ]---
  89.     ;LDA #4
  90.     ;STA $2003
  91.     ; ---[ Y-KOORDINAT ]---
  92.     LDA right_racket_pos
  93.     STA $0204
  94.     ; ---[ TILENUMMER FRA CHR-ROM ]---
  95.     LDA #5
  96.     STA $0205
  97.     ; ---[ ATRIBUTT-BYTE ]---
  98.     LDA #0; (setter ingen flagg)
  99.     STA $0206
  100.     ; ---[ X-KOORDINAT ]---
  101.     LDA #250
  102.     STA $0207
  103.    
  104.    
  105.     ; ---[RIGHT RACKET POSITION ]---
  106.     ;A, B, Select, Start, Up, Down, Left, Right
  107.     LDA #1
  108.     STA $4016
  109.     LDA #0
  110.     STA $4016
  111.     LDA $4016 ; A
  112.     LDA $4016 ; B
  113.     LDA $4016 ; Select
  114.     LDA $4016 ; Start
  115.     LDA $4016 ; Up
  116.     CMP #$41
  117.     BNE NotUp
  118.     LDA right_racket_pos
  119.     SEC
  120.     SBC #2
  121.     STA right_racket_pos
  122.     JMP NoMove
  123.    
  124. NotUp:
  125.     LDA $4016 ; Down
  126.     CMP #$41
  127.     BNE NoMove
  128.     LDA right_racket_pos
  129.     CLC
  130.     ADC #2
  131.     STA right_racket_pos
  132.    
  133. NoMove:
  134.    
  135.  
  136.    
  137.     ; ---[ OPPDATERER X ]---
  138.     LDA x_pos
  139.     CLC
  140.     ADC x_vector
  141.     TAX
  142.     STA x_pos
  143.    
  144.     ; ---[ OPPDATERER Y ]---
  145.     LDA y_pos
  146.     CLC
  147.     ADC y_vector
  148.     TAY
  149.     STA y_pos
  150.    
  151.     ; ---[ TRUFFET KANTEN? ]---
  152. ;TestEdgeX
  153.     CPX #250    ; if (x >= 250)
  154.     BCS TurnX   ; then TurnX
  155.     CPX #0      ; if (x == 0)
  156.     BEQ TurnX   ; then TurnX
  157.  
  158. TestEdgeY:
  159.     CPY #232    ; if (y >= 232)
  160.     BCS TurnY   ; then TurnY
  161.     CPY #0      ; if (y == 0)
  162.     BEQ TurnY   ; then TurnY
  163.    
  164.     JMP Sprite ; ikke truffet kanten, flytt mer
  165.  
  166.  
  167. TurnX: ; SNUR X-VEKTOREN
  168.     LDA #0
  169.     SEC
  170.     SBC x_vector
  171.     STA x_vector
  172.     JMP TestEdgeY
  173.  
  174.    
  175. TurnY: ; SNUR Y-VEKTOREN
  176.     LDA #0
  177.     SEC
  178.     SBC y_vector
  179.     STA y_vector
  180.     JMP Sprite
  181.    
  182.    
  183.    
  184. palett:
  185.     ; Bakgrunnsgrafikk
  186.     .byte 0, $2E, $2D, $04
  187.     .byte 0, $2E, $2D, $04
  188.     .byte 0, $2E, $2D, $04
  189.     .byte 0, $2E, $2D, $04
  190.    
  191.     .byte $11, $2A, $28, $21    ; bakgrunn og sprite 0
  192.     .byte 0, 0, 0, 0            ; sprite 1
  193.     .byte 0, 0, 0, 0            ; sprite 2
  194.     .byte 0, 0, 0, 0            ; sprite 3
  195.    
  196.    
  197.  
  198.    
  199.  
  200. NMI: ; ---[ V-BLANK INTERRUPT ]---
  201.     STA a_tmp
  202.     ;STX x_tmp
  203.     ;STY y_tmp
  204.  
  205.     LDA #$00
  206.     STA $2003
  207.     LDA #$02
  208.     STA $4014
  209.    
  210.     LDA a_tmp
  211.     ;LDX x_tmp
  212.     ;LDY y_tmp
  213.     RTI ; ReTurn from Interrupt
  214.    
  215. IRQ:
  216.     jmp IRQ
  217.    
  218. .segment "RAM"
  219.     ; Midlertidige minneposisjoner for interrupt handling
  220.     a_tmp:              .byte 0
  221.     x_tmp:              .byte 0
  222.     y_tmp:              .byte 0
  223.    
  224.     ; Ballen
  225.     x_pos:              .byte 0
  226.     y_pos:              .byte 0
  227.     x_vector:           .byte 0
  228.     y_vector:           .byte 0
  229.    
  230.     ; Racketen
  231.     right_racket_pos:   .byte 0
Add Comment
Please, Sign In to add comment