Author Topic: RAM addresses  (Read 12645 times)

0 Members and 1 Guest are viewing this topic.

Offline AngelFish

  • Is this my custom title?
  • Administrator
  • LV12 Extreme Poster (Next: 5000)
  • ************
  • Posts: 3242
  • Rating: +270/-27
  • I'm a Fishbot
    • View Profile
RAM addresses
« on: October 04, 2010, 03:47:21 pm »
Hey, does anyone know how to display Hex RAM addresses in Axe? I tried

:{8000}-->A
:Text E°A

But it gave me a random character, not 8000h as I need.
« Last Edit: October 04, 2010, 03:47:48 pm by Qwerty.55 »
∂²Ψ    -(2m(V(x)-E)Ψ
---  = -------------
∂x²        ℏ²Ψ

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: RAM addresses
« Reply #1 on: October 04, 2010, 03:53:15 pm »
You can't display numbers in hex in any way. Axe doesn't support that, so you'll have to write your own hex-displaying routine.

Also, E reads a hex value to an int, not the other way around. So you can't use E like that, either.




Offline Runer112

  • Project Author
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2289
  • Rating: +639/-31
    • View Profile
Re: RAM addresses
« Reply #2 on: October 04, 2010, 09:45:43 pm »
Here you go :) You'd want to use Disp sub(W2H,A)
« Last Edit: October 04, 2010, 09:46:56 pm by Runer112 »

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: RAM addresses
« Reply #3 on: October 04, 2010, 10:37:43 pm »
Ah, someone already made the routine. Thanks!




Offline AngelFish

  • Is this my custom title?
  • Administrator
  • LV12 Extreme Poster (Next: 5000)
  • ************
  • Posts: 3242
  • Rating: +270/-27
  • I'm a Fishbot
    • View Profile
Re: RAM addresses
« Reply #4 on: October 05, 2010, 07:32:37 pm »
Thanks for the link.

By the way, does anyone happen to know what beginning address the text sprites used by TI-OS are stored at?
« Last Edit: October 05, 2010, 07:32:53 pm by Qwerty.55 »
∂²Ψ    -(2m(V(x)-E)Ψ
---  = -------------
∂x²        ℏ²Ψ

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: RAM addresses
« Reply #5 on: October 05, 2010, 07:36:17 pm »
I think they're part of the OS itself (in Flash) ... not sure, though.




Offline AngelFish

  • Is this my custom title?
  • Administrator
  • LV12 Extreme Poster (Next: 5000)
  • ************
  • Posts: 3242
  • Rating: +270/-27
  • I'm a Fishbot
    • View Profile
Re: RAM addresses
« Reply #6 on: October 05, 2010, 07:41:43 pm »
Yep, I know they're in the archive (somewhere near the end on the last page, I think). But does anyone know the address in memory? I need to see if certain routine is working and the only way to do that is by giving it a specific area of memory to read. Unfortunately, the only area of memory that I can visually check happens to be those sprites, which I don't know the address of.
« Last Edit: October 05, 2010, 07:44:10 pm by Qwerty.55 »
∂²Ψ    -(2m(V(x)-E)Ψ
---  = -------------
∂x²        ℏ²Ψ

Offline Runer112

  • Project Author
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2289
  • Rating: +639/-31
    • View Profile
Re: RAM addresses
« Reply #7 on: October 05, 2010, 07:49:22 pm »
Yep, I know they're in the archive (somewhere near the end on the last page, I think). But does anyone know the address in memory? I need to see if certain routine is working and the only way to do that is by giving it a specific area of memory to read. Unfortunately, the only area of memory that I can visually check happens to be those sprites, which I don't know the address of.

What routine is this? Unless your routine is an Axe/asm hybrid with the ability to read from arbitrary places in ROM, you're not going to be able to access this. Why do you want to access the font images anyways?
« Last Edit: October 05, 2010, 07:50:12 pm by Runer112 »

Offline calc84maniac

  • eZ80 Guru
  • Coder Of Tomorrow
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2912
  • Rating: +471/-17
    • View Profile
    • TI-Boy CE
Re: RAM addresses
« Reply #8 on: October 05, 2010, 07:50:05 pm »
I also doubt the font data would be at the same address in all OS versions.
"Most people ask, 'What does a thing do?' Hackers ask, 'What can I make it do?'" - Pablos Holman

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: RAM addresses
« Reply #9 on: October 05, 2010, 07:52:35 pm »
I also doubt the font data would be at the same address in all OS versions.

True.

You should probably use the routines that you have. If you want to read the bitmap of the character or something, do a Fix 5, then Text( the char you want somewhere on the buffer and read it from there. It works.




Offline AngelFish

  • Is this my custom title?
  • Administrator
  • LV12 Extreme Poster (Next: 5000)
  • ************
  • Posts: 3242
  • Rating: +270/-27
  • I'm a Fishbot
    • View Profile
Re: RAM addresses
« Reply #10 on: October 05, 2010, 08:03:29 pm »
Yep, I know they're in the archive (somewhere near the end on the last page, I think). But does anyone know the address in memory? I need to see if certain routine is working and the only way to do that is by giving it a specific area of memory to read. Unfortunately, the only area of memory that I can visually check happens to be those sprites, which I don't know the address of.

What routine is this? Unless your routine is an Axe/asm hybrid with the ability to read from arbitrary places in ROM, you're not going to be able to access this. Why do you want to access the font images anyways?

It's a routine I'm using for TI-Explorer. I know it can access the area because the routine is precisely how I found out that the sprites are even stored in memory as is. The only reason I care to access them if because the routine has to locate an arbitrary address and read it correctly. Since the rest of Flash is difficult for my human eyes to efficiently read, the text sprites are the best area to debug with.
∂²Ψ    -(2m(V(x)-E)Ψ
---  = -------------
∂x²        ℏ²Ψ

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: RAM addresses
« Reply #11 on: October 05, 2010, 08:06:56 pm »
Ah, I see.

Well, you could test much more securely by creating an archived variable and toying with that ;)
« Last Edit: October 05, 2010, 08:07:09 pm by Deep Thought »




Offline AngelFish

  • Is this my custom title?
  • Administrator
  • LV12 Extreme Poster (Next: 5000)
  • ************
  • Posts: 3242
  • Rating: +270/-27
  • I'm a Fishbot
    • View Profile
Re: RAM addresses
« Reply #12 on: October 05, 2010, 08:08:07 pm »
Oh... :P

That would probably be a good idea. Just store something to a safe area of memory and read it.
∂²Ψ    -(2m(V(x)-E)Ψ
---  = -------------
∂x²        ℏ²Ψ

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: RAM addresses
« Reply #13 on: July 02, 2012, 07:25:20 pm »
[supernecrobump]

As calc84maniac pointed out, there's not really a point since it's in different places in different OSes, but since I just spent the last hour digging this up, I figured I might as well post it. For posterity.

OS
   
Address of n
1.10–1.14$450D
1.15$454A
1.16–1.19$4584
2.30–2.43$45B4
2.55MP$4605

(It seems to be on page 07h across all OS versions.)

The font is basically a giant table of 5x7 sprites. Each element has eight bytes. The first byte is the width of the character (which is utterly pointless, since it's always 5), and the next seven bytes are the actual sprite data for that character. The sprite data is aligned to the right, meaning the rightmost column is bit 0 (and since they're all 5 pixels wide, the leftmost column is bit 4). Fore example, here's the sprite data for character 01h, n:

████████    00h
████████    00h
██████    16h
██████    09h
██████    09h
██████    12h
██████    12h

The pointer in each entry holds the location of character 01h (n), so the font table technically starts eight bytes before that. But since 00h never gets displayed anyway, those eight bytes overlap with the end of some random OS routine, so they're essentially garbage.

I couldn't test the 84P OS versions before 2.30 because WabbitEmu froze on them for some reason (WabbitEmu itself didn't freeze, but the calculator it was emulating did).
« Last Edit: July 02, 2012, 07:35:23 pm by Deep Thought »




Offline kindermoumoute

  • LV8 Addict (Next: 1000)
  • ********
  • Posts: 836
  • Rating: +54/-3
    • View Profile
Re: RAM addresses
« Reply #14 on: July 02, 2012, 08:19:03 pm »
Then... zStart could change font on 83+BE ? :P
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%