Author Topic: XXEdit  (Read 8954 times)

0 Members and 1 Guest are viewing this topic.

Offline squidgetx

  • Food.
  • CoT Emeritus
  • LV10 31337 u53r (Next: 2000)
  • *
  • Posts: 1881
  • Rating: +503/-17
  • rawr.
    • View Profile
XXEdit
« on: January 22, 2011, 12:00:34 pm »
Another development tool I made to help myself figure out bugs with Ash: Phoenix...It's a memory viewer! Allows you to look at every address (0000 through FFFF) of your calculator's RAM and their contents. (Like Calcsys' hex editor, but more Axe user friendly)

Controls:
Arrow keys; move cursor around
1-6: Jump to memory locations L1-L6
XT0N: Jump to variables A through theta
/:Jump backwards by $1000 (4096)
*:Jump forwards by $1000
-:jump backwards by $100 (256)
+:jump forwards by $100
GRAPH: Goto 2 byte memory address pointed to by the current selection
Clear: quit

The cursor highlights the value of the byte you are looking at in hex and in ASCII (like calcsys)
In the upper left hand corner the 8x8 sprite starting at your cursor position is displayed
In the lower left hand corner the memory address your cursor is at is displayed in 3 different formats: hex, decimal, and the form Ln+(something) (displays the variable you are looking at if you are looking at variables)
In the bottom part of the screen there are two numbers: the value of the byte in decimal, and the value of the two-byte number little-endian (aka normal) starting at your cursor position.

Run with Asm(). Post comments/feedback/possible feature requests  ;D
« Last Edit: February 06, 2011, 03:05:09 pm by squidgetx »

Offline Michael_Lee

  • LV9 Veteran (Next: 1337)
  • *********
  • Posts: 1019
  • Rating: +124/-9
    • View Profile
Re: Axe Memory Mapper
« Reply #1 on: January 22, 2011, 12:03:42 pm »
This program is so incredibly win that I'm going to download it, even though I don't actually need it at the moment.

Note: Does the Mapper program use L1-L6 or any of the variables?
Because I keep seeing the string 'Mapper' in L1...
« Last Edit: January 22, 2011, 12:10:48 pm by Michael_Lee »
My website: Currently boring.

Projects:
Axe Interpreter
   > Core: Done
   > Memory: Need write code to add constants.
   > Graphics: Rewritten.  Needs to integrate sprites with constants.
   > IO: GetKey done.  Need to add mostly homescreen IO stuff.
Croquette:
   > Stomping bugs
   > Internet version: On hold until I can make my website less boring/broken.

Offline Binder News

  • LV8 Addict (Next: 1000)
  • ********
  • Posts: 785
  • Rating: +46/-3
  • Zombie of Tomorrow
    • View Profile
Re: Axe Memory Mapper
« Reply #2 on: January 22, 2011, 12:10:06 pm »
Seriously! I made something like this a while ago, but it just displayed the associated characters, all in a row. Nothing useful, just fun.
But still, awesome, will download
« Last Edit: January 22, 2011, 12:10:26 pm by Binder News »
Spoiler For userbars:







Hacker-in-training!   Z80 Assembly Programmer     Axe Programmer
C++ H4X0R             Java Coder                           I <3 Python!

Perdidisti ludum     Cerebrum non habes

"We are humans first, no matter what."
"Fame is a vapor, popularity an accident, and riches take wings. Only one thing endures, and that is character."
Spoiler For Test Results:





Offline kindermoumoute

  • LV8 Addict (Next: 1000)
  • ********
  • Posts: 836
  • Rating: +54/-3
    • View Profile
Re: Axe Memory Mapper
« Reply #3 on: January 22, 2011, 12:11:30 pm »
Woa, a dangerous program ! :D
Projects :

Worms armageddon z80 :
- smoothscrolling Pixelmapping : 100%
- Map editor : 80%
- Game System : 0%

Tutoriel français sur l'Axe Parser
- 1ère partie : en ligne.
- 2ème partie : en ligne.
- 3ème partie : en ligne.
- 4ème partie : 10%
- Annexe : 100%

Offline squidgetx

  • Food.
  • CoT Emeritus
  • LV10 31337 u53r (Next: 2000)
  • *
  • Posts: 1881
  • Rating: +503/-17
  • rawr.
    • View Profile
Re: Axe Memory Mapper
« Reply #4 on: January 22, 2011, 12:16:17 pm »
This program is so incredibly win that I'm going to download it, even though I don't actually need it at the moment.

Note: Does the Mapper program use L1-L6 or any of the variables?
Because I keep seeing the string 'Mapper' in L1...
Thanks. Besides L6 (the screen buffer), the mapping program doesn't use any of the saferam areas L1-L5. I don't know why "MAPPER" would appear in L1...unless it got written there from the transfer? It also uses variables, but before it's run it copies all the variables to $8000 (which is what you are really looking at when you hit XT0N) and when you exit it copies them all back. So no, it doesn't use any variables ;)

Offline Happybobjr

  • James Oldiges
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2325
  • Rating: +128/-20
  • Howdy :)
    • View Profile
Re: Axe Memory Mapper
« Reply #5 on: January 22, 2011, 12:17:43 pm »
What use would this be?   (Happybobjr has no experience with these things)
School: East Central High School
 
Axe: 1.0.0
TI-84 +SE  ||| OS: 2.53 MP (patched) ||| Version: "M"
TI-Nspire    |||  Lent out, and never returned
____________________________________________________________

Offline Michael_Lee

  • LV9 Veteran (Next: 1337)
  • *********
  • Posts: 1019
  • Rating: +124/-9
    • View Profile
Re: Axe Memory Mapper
« Reply #6 on: January 22, 2011, 12:20:18 pm »
Hmm, I think it was DoorsCS - I tried running another program in archive using Doors then your program unarchived normally, and I saw the string for the other program's name instead of Mapper.

edit: If I'm writing data to L1, and I'm not sure if what I'm sticking in there was what I intended, then I could use this to check it out.
« Last Edit: January 22, 2011, 12:21:45 pm by Michael_Lee »
My website: Currently boring.

Projects:
Axe Interpreter
   > Core: Done
   > Memory: Need write code to add constants.
   > Graphics: Rewritten.  Needs to integrate sprites with constants.
   > IO: GetKey done.  Need to add mostly homescreen IO stuff.
Croquette:
   > Stomping bugs
   > Internet version: On hold until I can make my website less boring/broken.

Offline Deep Toaster

  • So much to do, so much time, so little motivation
  • Administrator
  • LV13 Extreme Addict (Next: 9001)
  • *************
  • Posts: 8217
  • Rating: +758/-15
    • View Profile
    • ClrHome
Re: Axe Memory Mapper
« Reply #7 on: January 22, 2011, 01:59:47 pm »
Awesome! I needed that. And a feature suggestion: search?




SirCmpwn

  • Guest
Re: Axe Memory Mapper
« Reply #8 on: January 22, 2011, 02:05:00 pm »
Very nice!  I made something very similar a while ago, but never released it.  I need to make something similar to include in my Debugger suite, if I ever finish it.

Offline Deep Toaster

  • So much to do, so much time, so little motivation
  • Administrator
  • LV13 Extreme Addict (Next: 9001)
  • *************
  • Posts: 8217
  • Rating: +758/-15
    • View Profile
    • ClrHome
Re: Axe Memory Mapper
« Reply #9 on: January 22, 2011, 02:15:26 pm »
Oh, yeah, and suggestion: memory bank switching is really important for a mem viewer.
« Last Edit: January 22, 2011, 02:16:06 pm by Deep Thought »




Offline squidgetx

  • Food.
  • CoT Emeritus
  • LV10 31337 u53r (Next: 2000)
  • *
  • Posts: 1881
  • Rating: +503/-17
  • rawr.
    • View Profile
Re: Axe Memory Mapper
« Reply #10 on: January 22, 2011, 04:33:55 pm »
What kind of search function? Input a number, return all locations of said number? Also, what are mem banks (lol)

Offline yunhua98

  • You won't this read sentence right.
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2718
  • Rating: +214/-12
  • Go take a dive in the River Lethe.
    • View Profile
Re: Axe Memory Mapper
« Reply #11 on: January 22, 2011, 04:40:39 pm »
I'm really gonna need this to figure map bugs lol.  Very nice!

Spoiler For =====My Projects=====:
Minor setback due to code messing up.  On hold for Contest.
<hr>
On hold for Contest.


Spoiler For ===Staff Memberships===:






Have you seen any good news-worthy programs/events?  If so, PM me with an article to be included in the next issue of CGPN!
The Game is only a demo, the code that allows one to win hasn't been done.
To paraphrase Oedipus, Hamlet, Lear, and all those guys, "I wish I had known this some time ago."
Signature Last Updated: 12/26/11
<hr>

Offline Builderboy

  • Physics Guru
  • CoT Emeritus
  • LV13 Extreme Addict (Next: 9001)
  • *
  • Posts: 5673
  • Rating: +613/-9
  • Would you kindly?
    • View Profile
Re: Axe Memory Mapper
« Reply #12 on: January 22, 2011, 04:48:41 pm »
Maybe where you can search for a string of numbers?

Offline Deep Toaster

  • So much to do, so much time, so little motivation
  • Administrator
  • LV13 Extreme Addict (Next: 9001)
  • *************
  • Posts: 8217
  • Rating: +758/-15
    • View Profile
    • ClrHome
Re: Axe Memory Mapper
« Reply #13 on: January 23, 2011, 12:35:25 pm »
What kind of search function? Input a number, return all locations of said number? Also, what are mem banks (lol)


A string of hex, maybe? It gets really useful for recovering data :D

As for mem banks, it's like this: The addresses you use for memory go from $0000 to $FFFF. $8000 and above are used for RAM (hence 32768 bytes of ram on a TI-83 Plus). $0000 to $3FFF are used for OS page 0. $4000 through $7FFF are used for the entire archive. Obviously, 16384 pointers can't point to each byte in the entire flash memory, so the calc uses a port (or two) for mem bank switching.

Basically, at any given point the data from $4000 to $7FFF point to one flash page. This could be almost any flash page in memory, but the point (no pun intended) is that while it's pointing to that page, you can read from that page only. If you want to switch to a different flash page, you send that byte to port 6. Then the data from $4000 to $7FFF would represent that page.

https://docs.google.com/viewer?url=http://education.ti.com/calculators/downloads/US/Software/Download/en/6142/6584/sdk83pguide.pdf for more info.
« Last Edit: January 23, 2011, 12:35:49 pm by Deep Thought »




Offline squidgetx

  • Food.
  • CoT Emeritus
  • LV10 31337 u53r (Next: 2000)
  • *
  • Posts: 1881
  • Rating: +503/-17
  • rawr.
    • View Profile
Re: Axe Memory Mapper
« Reply #14 on: January 23, 2011, 02:00:54 pm »
Thanks for the explanation. [friendlysarcasm]I like how you pointed to the massive 188 page SDK for "more info" lol [/fs]

Ok, so here are the features I am planning to add (was going to add them last night but then I got tired :P)
-mem bank switching (thanks dthought)
-search for a program/appvar
-search for a hex string up to 8 bytes long
-search for a character string. supports A-Z, a-z, theta, and 0-9
-binary display of byte you are currently viewing

thanks to calcdude and graphmastur for providing the asm code for mem bank switching: if anyone wants them, here they are: Asm(DB066F)^256 gives you the current page, and Page#Asm(7DD306) switches the page to page Page#
« Last Edit: January 23, 2011, 04:04:53 pm by squidgetx »