Advertisement
PauSix

PSP Hello World callback.s Assembly

Jan 28th, 2018
493
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. .data
  3.     callback_exitRequest:   .word   1
  4.     callback_sceKernelCreateCallback_001:   .asciiz "Exit Callback"
  5.     callback_sceKernelCreateThread_001:     .asciiz "Callback Update Thread"
  6.  
  7. .text
  8.     .globl  isRunning
  9.     .type isRunning, @function
  10. isRunning:
  11.     la $t0, callback_exitRequest
  12.     lw $v0, ($t0)
  13.     jr $ra
  14.     nop
  15.  
  16.  
  17.     .globl  exitCallback
  18.     .type exitCallback, @function
  19. exitCallback:
  20.     la $t0, callback_exitRequest
  21.     li $t1, 0
  22.     sw $t1, ($t0)
  23.     li $v0, 0
  24.     jr $ra
  25.     nop
  26.  
  27.  
  28.     .globl  callbackThread
  29.     .type callbackThread, @function
  30. callbackThread:
  31.     addiu $sp, $sp, -4      # retain ra
  32.     sw $ra, ($sp)
  33.    
  34.     la $t0, callback_sceKernelCreateCallback_001
  35.     lw $a0, ($t0)
  36.     la $t0, exitCallback
  37.     lw $a1, ($t0)
  38.     li $a2, 0
  39.     jal sceKernelCreateCallback
  40.     nop
  41.     move $a0, $v0
  42.     jal sceKernelRegisterExitCallback
  43.     nop
  44.     jal sceKernelSleepThreadCB
  45.     nop
  46.    
  47.     lw $ra, ($sp)           # pop $ra from stack
  48.     addiu $sp, $sp, 4
  49.     jr $ra
  50.     nop
  51.    
  52.    
  53.     .globl  setupExitCallback
  54.     .type setupExitCallback, @function
  55. setupExitCallback:
  56.     addiu $sp, $sp, -4      # retain ra
  57.     sw $ra, ($sp)
  58.    
  59.     la $t0, callback_sceKernelCreateThread_001
  60.     lw $a0, ($t0)
  61.     la $t0, callbackThread
  62.     lw $a1, ($t0)
  63.     li $a2, 0x11
  64.     li $a3, 0xFA0
  65.     li $t0, 0x80000000
  66.     li $t1, 0
  67.     sw $t0, 16($fp)
  68.     sw $t1, 20($fp)
  69.     jal sceKernelCreateThread   # have to load some variables to stack
  70.     nop
  71.    
  72.     blez $v0, .nullptrts
  73.     move $a0, $v0
  74.     jal sceKernelStartThread
  75.     nop
  76. .nullptrts:
  77.     lw $ra, ($sp)           # pop $ra from stack
  78.     addiu $sp, $sp, 4
  79.     jr $ra
  80.     nop
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement