Advertisement
perjespersson

HIGHSCORE

Mar 1st, 2019
562
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.         ; --------------------------------------------------------------
  2.         ; -- Memory layout in SRAM
  3.         .dseg
  4.         .org    SRAM_START
  5. HIGHSCORE:
  6.         .byte 1
  7.  
  8. MULT_SCORE:
  9.         .byte 1
  10.  
  11.         .cseg
  12. INIT:
  13.         ldi     r16,HIGH(RAMEND)
  14.         out     SPH,r16
  15.         ldi     r16,LOW(RAMEND)
  16.         out     SPL,r16
  17.  
  18.         clr     r16
  19.         out     DDRD,r16
  20.         sts     MULT_SCORE,r16
  21.         sts     HIGHSCORE,r16
  22.  
  23. FIND_HIT:
  24.         sbic    PIND,0
  25.         rjmp    HIT
  26.         rjmp    NO_HIT
  27.  
  28. NO_HIT:
  29.         clr     r16
  30.         sts     MULT_SCORE,r16                       // Nollställ så att vi bara får 1 poäng
  31.         rjmp    FIND_HIT
  32.  
  33. HIT:
  34.         lds     r16,MULT_SCORE                      // Hur många i rad?
  35.         inc     r16
  36.         sts     MULT_SCORE,r16
  37.  
  38. HITX:
  39.         lds     r16,MULT_SCORE 
  40.         cpi     r16,10
  41.         brsh    HIT_THREE_TIMES                     // Har vi minst 10 träffar i rad?
  42.         cpi     r16,5
  43.         brsh    HIT_TWO_TIMES                       // Har vi minst 5 träffar i rad?
  44.         ldi     r17,1
  45.         rjmp    LOOP
  46.  
  47. HIT_THREE_TIMES:
  48.         ldi     r17,3
  49.         rjmp    LOOP
  50.  
  51. HIT_TWO_TIMES:
  52.         ldi     r17,2
  53.         rjmp    LOOP
  54.  
  55. LOOP:
  56.         lds     r16,HIGHSCORE
  57.  
  58. LOOPA:                                              //Öka på Highscore beroende på hur många träffar vi har i rad
  59.         inc     r16
  60.         dec     r17
  61.         brne    LOOPA
  62.  
  63. STORE_HIGHSCORE:
  64.         sts     HIGHSCORE,r16
  65.         call    PRINT
  66.         rjmp    FIND_HIT
  67.  
  68.  
  69. PRINT:
  70.         lds     r16,HIGHSCORE
  71.         ret                                         // Här ska den liveprinta skärmen
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement