Advertisement
Arnethegreat

Breakpoint

May 19th, 2015
287
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.83 KB | None | 0 0
  1. pause_on_break = false
  2.  
  3. enable_read = true
  4. read_address = 0x7E026F
  5. read_range = 51
  6.  
  7. enable_write = false
  8. write_address = 0x7E00cc
  9. write_range = 51
  10.  
  11. enable_exec = false
  12. exec_address = 0x01CE68
  13. exec_range = 1
  14.  
  15. -- Can't get data on what actual adress you break on
  16. -- Could probably be fixed by looping over the range
  17. --
  18. --
  19.  
  20.  
  21. function on_break()
  22.     if movie.playing() then
  23.         movie_string = " (movie)"
  24.     else
  25.         movie_string = ""
  26.     end
  27.     print("---------------------")
  28.     print("- " .. break_type)
  29.     print("Framecount: " .. emu.framecount() .. movie_string)
  30.  
  31.     pb = memory.getregister("pb")
  32.     pc = memory.getregister("pc")
  33.     pc_string = string.format("PC: %02x:%x", pb, pc)
  34.     print(string.upper(pc_string))
  35.  
  36.     dp = memory.getregister("d")
  37.     direct_page = string.format("DP: %04x", dp)
  38.     print(string.upper(direct_page))
  39.  
  40.     -- flags = memory.getregister("p")
  41.     -- print("Flags: " .. flags)
  42.     a_register = memory.getregister("a")
  43.     x_register = memory.getregister("x")
  44.     y_register = memory.getregister("y")
  45.     registers_string = string.format("A: %04x     X: %04x     Y: %04x", a_register, x_register, y_register)
  46.     print(string.upper(registers_string))
  47.  
  48.     if pause_on_break then
  49.         emu.pause()
  50.     end
  51. end
  52.  
  53. function on_exit()
  54.     print("Stopped Script")
  55. end
  56.  
  57.  
  58.  
  59. while true do
  60.  
  61.     if enable_read then
  62.         break_type = "Read Breakpoint"
  63.         memory.registerread(read_address, read_range, on_break)
  64.     end
  65.  
  66.     if enable_write then
  67.         break_type = "Write Breakpoint"
  68.         memory.registerwrite(write_address, write_range, on_break)
  69.     end
  70.  
  71.     if enable_exec then
  72.         break_type = "Exec Breakpoint"
  73.         memory.registerexec(exec_address, exec_range, on_break)
  74.     end
  75.  
  76.     emu.frameadvance()
  77. end
  78.  
  79. emu.registerexit(on_exit)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement