User Tools

Site Tools


notes:comporg:spring2024:projects:dapx

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
notes:comporg:spring2024:projects:dapx [2024/03/22 10:02] – [Debug Registers] jwielandnotes:comporg:spring2024:projects:dapx [2024/03/24 19:49] (current) – [Debug Registers] wgates1
Line 384: Line 384:
  
 ======Debug Registers====== ======Debug Registers======
 +
 ===Printing out R:=== ===Printing out R:===
-To print the registers you have to figure out how to print out the R, the :, and the number that goes along with it. In this it is important to note that the ascii value for R is 82, and the ascii value for : is 58. Thus printing these out sequentially will look something like this.+To print the registers you have to figure out how to print out the R, the :, and the number that goes along with it. In this it is important to note that the ascii value for R is 82, and the ascii value for : is 58. Thus printing these out sequentially will look something like this. Remember to have your texture set to -1 so the text shows up.
  
 <code asm> <code asm>
Line 394: Line 395:
     out  GPU_Command, GPUCommand_DrawRegion     out  GPU_Command, GPUCommand_DrawRegion
     iadd R1, 10     iadd R1, 10
 +    
 +    ;Print out the number here
          
     mov R0, 58 ; printing :     mov R0, 58 ; printing :
Line 402: Line 405:
 </code> </code>
  
 +To print out the number in the middle, we first need to check if the number is greater than 10. If it is then we print out a 1 then subtract 10 from it, this is so we can do a ascii shift with the second number that changes it to the number we want to print.
  
 +<code asm>
 +    ;R5 holds the value we want to print.
 +    mov R1, R5
 +    mov R2, R5
 +    ige R2, 10
 +    jf R2, _less_than_10
  
 +    ;printing out a 1
 +    mov R0, 49
 +    out  GPU_SelectedRegion, R0
 +    out  GPU_DrawingPointX, R3
 +    out  GPU_DrawingPointY, R4
 +    out  GPU_Command, GPUCommand_DrawRegion
 +    iadd R3, 10
  
 +    isub R1, 10 ;we subtract 10 as 1 has already been printed
  
 +    _less_than_10:
 +    iadd R1, 48 ;ascii shift by 48 to print out the number
 +    out  GPU_SelectedRegion, R1
 +    out  GPU_DrawingPointX, R3
 +    out  GPU_DrawingPointY, R4
 +    out  GPU_Command, GPUCommand_DrawRegion
 +</code> 
 +
 +The last step is to put both of these together in a loop, remember to change the X/Y at the end of the loop.
  
 ===Printing registers=== ===Printing registers===
 +
 +===Debugging our debugregs Subroutine===
 +Trying to get your debugregs to have the correct output is challenging, but by far the best way to see if you have the correct output is by tossing in some random values into each register that you display to see if you have the correct output. Here is an example of that.
 +
 +<code asm>
 +mov R0, 0x00000000
 +mov R1, 0x00000001
 +mov R2, 0x00000002
 +mov R3, 0x00000003
 +mov R4, 0x00000004
 +mov R5, 0x00000005
 +</code>
 +
 +You repeat this above process for registers from 0 to 13. It is important to note that you do this right before you call the subroutine so the values that you just put in don't get wiped out from your previous ASM code. 
 +
 +
 +
 +===Calling debugregs===
 +As we have worked on these dap projects, the process of calling such debug subroutines has become simpler. With dap0, we had to have the following in our program: 
 +<code asm>
 +       mov  TMP, R8
 +       push TMP
 +       mov  TMP, 100
 +       push TMP
 +       mov  TMP, 200
 +       push TMP
 +       call          _debug
 + </code>
 +Then later after the hlt, you'll always have the %include "debug.s" for all the dap projects.
 +
 +Concerning dap2, we have drastically simplified the process of debugging. All that is need is just one line, Not accounting for the include line. Put the following to use your debug registers subroutine:
 +
 +<code asm>
 +call _debugregs
 +</code>
notes/comporg/spring2024/projects/dapx.1711116155.txt.gz · Last modified: 2024/03/22 10:02 by jwieland