Advertisement
Sosowski

PONK 512

May 3rd, 2013
285
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2.  
  3.  
  4.  
  5. *= $0801
  6. .word (+), 2013   ;pointer, line number
  7. .null $9e, ^start ;will be sys 2081
  8. +   .word 0       ;basic line end
  9.  
  10.  
  11. sprites=$38
  12. sprdata=(sprites*$40)
  13.  
  14. vars=$f9
  15. vx=$fa
  16. vy=$fb
  17. score1=$fc
  18. time=$fd
  19. score2=$fe
  20.  
  21. start  
  22.         jsr reball
  23.         LDA #$00
  24.         STA $D020
  25.         STA $D021
  26.         STA vx
  27.         STA vy
  28.         STA score1
  29.         STA score2
  30.        
  31.         LDA #$20
  32.         STA $D000
  33.         STA $D002
  34.         LDA #$82
  35.         STA $D001
  36.         STA $D003
  37.        
  38.        
  39.        
  40.        
  41.         LDA #$32
  42.         STA $D007
  43.        
  44.         LDX #sprites
  45.         STx $07FB
  46.         inx
  47.         STx $07F8
  48.         STx $07F9
  49.         INX
  50.         STx $07FA
  51.        
  52.        
  53.         LDA #$0F
  54.         STA $D017
  55.         STA $D015
  56.         STA $D01D
  57.         STA $D418
  58.        
  59.        
  60.         LDA #$01
  61.         ldx #05
  62. -       STA $D026,x
  63.         dex
  64.         bne -
  65.        
  66.        
  67.        
  68.        
  69.        
  70.        
  71.         lda #147
  72.         jsr $FFD2
  73.        
  74.        
  75.         lsr $D011
  76.         LDX #$C0
  77. -       LDY #$00
  78. -       JSR bleep
  79.         INY
  80.         BNE -
  81.         INC $D020
  82.         INX
  83.         BNE --
  84.         asl $D011
  85.        
  86.        
  87.         LDA #$00
  88.         LDX #$c0
  89. -       STA sprdata,X
  90.         dex
  91.         BNE -
  92.         LDA #$18
  93.         STA sprdata+$A
  94.         ;STA sprdata+$d
  95.         sta sprdata+$81
  96.         sta sprdata+$84
  97.         lda #$bd
  98.         ldx #$00
  99. -       sta sprdata+$41,x
  100.         inx
  101.         inx
  102.         inx
  103.         cpx #$3f
  104.         bcc -
  105.         lda #$ff
  106.         sta sprdata+$41
  107.         sta sprdata+$7d
  108.         lda #$81
  109.         sta sprdata+$44
  110.         sta sprdata+$7a
  111.         sei
  112.        
  113. main    inc time
  114.         LDX #$02  ; JOY
  115.         LDY #$01
  116. -       LDA $DC00,y
  117.         AND #$02
  118.         BNE +
  119.         INC $D001,x
  120. +       LDA $DC00,y
  121.         AND #$01
  122.         BNE +
  123.         DEC $D001,x
  124. +       LDA $D001,X
  125.         CMP #$32
  126.         BCS +
  127.         LDA #$32
  128.         STA $D001,X
  129. +       LDA $D001,X
  130.         CMP #$CF
  131.         BCC +
  132.         LDA #$CF
  133.         STA $D001,X
  134. +       DEX
  135.         DEX
  136.         DEY
  137.         BEQ -
  138.         LDA $DC00
  139.         EOR $DC01
  140.         AND #$10
  141.         bne +
  142.         asl time
  143.         asl time
  144. +       lda time
  145.         and #$3
  146.         bne slow
  147. +       LDA vx
  148.         BEQ +
  149.         INC $D004
  150.         JMP ++
  151. +       DEC $D004
  152. +       LDA vy
  153.         BEQ +
  154.         INC $D005
  155.         JMP ++
  156. +       DEC $D005
  157. +       LDA $D004
  158.         LDX vx
  159.         BEQ +
  160.         EOR #$FF
  161. +       AND #$FF
  162.         BNE +
  163.         lda $d004
  164.         eor #$ff
  165.         sta $d004
  166.         LDA $D010
  167.         EOR #$04
  168.         STA $D010
  169. +       LDY #$20
  170.         LDA $D005
  171.         CMP #$32
  172.         BCS +
  173.         LDA #$01
  174.         STA vy
  175.         JSR bleep
  176. +       LDA $D005
  177.         CMP #$F8
  178.         BCC slow
  179.         lsr vy
  180.         JSR bleep
  181. slow    lda $d012
  182.         and #$cf
  183.         bne slow
  184.        
  185.         LDA $D010 ; GOAL
  186.         AND #$04
  187.         BNE ++
  188.         LDA $D004
  189.         CMP #$08
  190.         BCS +
  191.         INC score2
  192.         JSR reball
  193. +       jmp ++
  194. +       LDA $D004
  195.         CMP #$38
  196.         BCC +
  197.         INC score1
  198.         JSR reball
  199.        
  200. +       ldy #02
  201.         JSR score
  202.         ldy #00
  203.         JSR score
  204.        
  205.         ldx #02
  206. -       LDA score1,x
  207.         CMP #$0A
  208.         BCC +
  209.         JMP start
  210. +       dex
  211.         dex
  212.         beq -
  213.        
  214. +       LDY #$40
  215.         LDA $D01E
  216.         TAX
  217.         AND #$01
  218.         BEQ +
  219.         LDA #$01
  220.         STA vx
  221.         JSR bleep
  222. +       TXA
  223.         AND #$02
  224.         BEQ +
  225.         lsr vx
  226.         JSR bleep
  227. +       jmp main
  228.        
  229. bleep   STY $D401
  230.         LDA #$F4
  231.         STA $D406
  232.         LDA #$11
  233.         STA $D404
  234.         LDA #$10
  235.         STA $D404
  236.         RTS
  237.  
  238. score   ;sei
  239.         lda #$33
  240.         sta $01
  241.         LDA score1,y
  242.         AND #$0F
  243.         ASL
  244.         ASL
  245.         ASL
  246.         TAX
  247.         LDA #$08
  248.         STA $ff
  249. -       LDA $d180,X
  250.         STA sprdata,Y
  251.         INX
  252.         INY
  253.         INY
  254.         INY
  255.         DEC $ff
  256.         BNE -
  257.         lda #$37
  258.         sta $01
  259.         rts
  260.            
  261. reball  LDA #$A0
  262.         STA $D004
  263.         STA $D006
  264.         LDA #$8A
  265.         STA $D005
  266.         LDA #$02
  267.         STA $D010
  268.         LDA vx
  269.         EOR #$01
  270.         STA vx
  271.         LDY #$10
  272.         JSR bleep
  273.         RTS
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement