Advertisement
xerpi

fill screen 3ds asm

Oct 16th, 2015
280
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
ARM 1.57 KB | None | 0 0
  1.  
  2.  
  3. #define VRAM_BASE     (0x18000000)
  4. #define LCD_FB_PDC0           (0x10400400)
  5. #define LCD_FB_PDC1           (0x10400500)
  6. #define LCD_FB_A_ADDR_OFFSET  (0x68)
  7. #define LCD_FB_B_ADDR_OFFSET  (0x94)
  8. #define FB_TOP_SIZE           (400*240*3)
  9. #define FB_BOT_SIZE           (320*240*3)
  10. #define FB_TOP_LEFT1          (VRAM_BASE)
  11. #define FB_TOP_LEFT2          (FB_TOP_LEFT1  + FB_TOP_SIZE)
  12. #define FB_TOP_RIGHT1         (FB_TOP_LEFT2  + FB_TOP_SIZE)
  13. #define FB_TOP_RIGHT2         (FB_TOP_RIGHT1 + FB_TOP_SIZE)
  14. #define FB_BOT_1              (FB_TOP_RIGHT2 + FB_TOP_SIZE)
  15. #define FB_BOT_2              (FB_BOT_1      + FB_BOT_SIZE)
  16.  
  17.  
  18. MLG:
  19.     mov r0, #0x0000FF
  20.     bl fill_screen
  21.     b MLG
  22.  
  23. @ r0 = color
  24. fill_screen:
  25.     mov r9, r0
  26.  
  27.     and r3, r0, #0xFF
  28.     lsr r4, r0, #8
  29.     and r4, r4, #0xFF
  30.     lsr r5, r0, #16
  31.     and r5, r5, #0xFF
  32.  
  33.     ldr r0, =(FB_TOP_SIZE)
  34.     ldr r1, =(FB_TOP_LEFT1)
  35.     ldr r7, =(FB_TOP_SIZE)
  36.     add r2, r1, r0 @limit_addr
  37.     mov r6, r1 @ ptr
  38. _fill_for_1:
  39.     strb r3, [r6, #0]
  40.     strb r4, [r6, #1]
  41.     strb r5, [r6, #2]
  42.     add r8, r6, r7
  43.     strb r3, [r8, #0]
  44.     strb r4, [r8, #1]
  45.     strb r5, [r8, #2]
  46.     add r6, r6, #3
  47.     cmp r6, r2
  48.     blt _fill_for_1
  49.  
  50.     mov r0, r9
  51.  
  52.     and r3, r0, #0xFF
  53.     lsr r4, r0, #8
  54.     and r4, r4, #0xFF
  55.     lsr r5, r0, #16
  56.     and r5, r5, #0xFF
  57.  
  58.     ldr r0, =(FB_TOP_SIZE)
  59.     ldr r1, =(FB_TOP_RIGHT1)
  60.     ldr r7, =(FB_TOP_SIZE)
  61.     add r2, r1, r0 @limit_addr
  62.     mov r6, r1 @ ptr
  63. _fill_for_2:
  64.     strb r3, [r6, #0]
  65.     strb r4, [r6, #1]
  66.     strb r5, [r6, #2]
  67.     add r8, r6, r7
  68.     strb r3, [r8, #0]
  69.     strb r4, [r8, #1]
  70.     strb r5, [r8, #2]
  71.     add r6, r6, #3
  72.     cmp r6, r2
  73.     blt _fill_for_2
  74.  
  75.     bx lr
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement