Advertisement
yugorin

Sprite po sinusie

Jun 8th, 2016
148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. :BasicUpstart2(main)
  2.  
  3. .var brkFile = createFile("breakpoints.txt")
  4.  
  5. .macro break() {
  6.   .eval brkFile.writeln("break " + toHexString(*))
  7. }
  8.  
  9. main:
  10.  
  11.     lda CYAN
  12.     sta $d027
  13.     jsr opoznienie
  14.  
  15.    
  16. ruszaj:
  17.  
  18.     lda #$01            // bit 0 zapalony
  19.     sta $d015           // sprite 0 wyświetlony
  20.     ldx #$00            // ustawienie licznika pętli dla sinusa oraz liniowego przemieszczania sprite
  21.  
  22. ruszaj2:
  23.     lda #$01            // bit 0 zapalony
  24.     sta $d015           // sprite 0 wyświetlony
  25.  
  26.     lda sinus,x     // załaduj kolejną wartość z sinusa
  27.     sta $d001           // kooordynaty z sinusa
  28.     stx $d000           // kooordynaty x+1
  29.     txa                 // zapamiętanie x
  30.     pha                 // na stos przed wykonaniem pętli opóźniającej
  31.     jsr opoznienie 
  32.     pla                 // przywrócenie x ze stosu
  33.     tax                 //
  34.     inx                 // zwiększenie x
  35.     cpx #$00
  36.     beq dodatkowy_bit_dla_sprite
  37.     jmp ruszaj2
  38.  
  39. dodatkowy_bit_dla_sprite:
  40.     lda #$01
  41.     sta $d010
  42.     cpx #$ff
  43.     beq od_poczatku
  44.     nop
  45.     nop
  46.     jmp ruszaj2
  47.  
  48.    
  49. od_poczatku:
  50.     nop
  51.    
  52.     lda #$00
  53.     sta $d010
  54.     jmp ruszaj
  55.    
  56. opoznienie:
  57.             ldx #$00   
  58.  
  59. petla1:
  60.             ldy #$00
  61.  
  62. petla2:
  63.             iny
  64.             cpy #$80
  65.             bne petla2
  66.             inx
  67.             cpx #$20
  68.             bne petla1
  69.             rts
  70.    
  71.    
  72. .pc = 64*255 "Default Sprite Bitmap"
  73.  
  74. .byte %01111111, %11111111, %11111110
  75. .byte %11111111, %11111111 , %11111111
  76. .byte %11111111, %11111111, %11111111
  77. .byte %11111111, %00000000, %11111111
  78. .byte %11111111, %00000000, %11111111
  79. .byte %11111111, %00000000, %11111111
  80. .byte %11111111, %00000000, %11111111
  81. .byte %11111111, %00000000, %11111111
  82. .byte %11111111, %00000000, %11111111
  83. .byte %11111111, %00000000, %11111111
  84. .byte %11111111, %00000000, %11111111
  85. .byte %11111111, %00000000, %11111111
  86. .byte %11111111, %00000000, %11111111
  87. .byte %11111111, %00000000, %11111111
  88. .byte %11111111, %00000000, %11111111
  89. .byte %11111111, %00000000, %11111111
  90. .byte %11111111, %00000000, %11111111
  91. .byte %11111111, %00000000, %11111111
  92. .byte %11111111, %11111111, %11111111
  93. .byte %11111111, %11111111, %11111111
  94. .byte %01111111, %11111111, %11111110
  95.  
  96.  
  97.  
  98. .pc = $c000
  99. sinus:
  100.  
  101. .byte $5A,$58,$56,$55,$53,$52,$50,$4F,$4D,$4C,$4A,$49,$48,$46,$45,$44
  102. .byte $43,$42,$41,$40,$3F,$3F,$3E,$3D,$3D,$3C,$3C,$3C,$3C,$3C,$3C,$3C
  103. .byte $3C,$3C,$3C,$3D,$3D,$3E,$3E,$3F,$40,$41,$42,$43,$44,$45,$46,$47
  104. .byte $48,$4A,$4B,$4C,$4E,$4F,$51,$52,$54,$56,$57,$59,$5A,$5C,$5D,$5F
  105. .byte $61,$62,$64,$65,$67,$68,$69,$6B,$6C,$6D,$6E,$6F,$70,$71,$72,$73
  106. .byte $74,$75,$75,$76,$76,$77,$77,$77,$77,$77,$77,$77,$77,$77,$77,$76
  107. .byte $76,$75,$74,$74,$73,$72,$71,$70,$6F,$6E,$6D,$6B,$6A,$69,$67,$66
  108. .byte $64,$63,$61,$60,$5E,$5D,$5B,$5A
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement