Jump to content
IGNORED

GPL Disassembly


HOME AUTOMATION

Recommended Posts

2 minutes ago, HOME AUTOMATION said:

I am trying to figure out what GPL opcode >87 is(not FMT subinterpreter opcodes).:???:

 

I can find no listing for >86, >87.8) I am not using a GPL assembler, or disassember.:roll: but instead, using a HEX-EDITOR and reference docs.:thumbsdown:

 

...this has become quite frustrating to me, this morning!:x

 

...anything???:waving:

 

>86 is CLR (CLeaR byte) and >87 is DCLR (Double CLeaR 2 bytes).

 

...lee

  • Thanks 1
Link to comment
Share on other sites

24 minutes ago, Lee Stewart said:

 

Yeah, I just noticed that in my edited copy of that information. I will post it an a bit after I correct it.

 

...lee

 

I misspoke. My “edited copy of [Thierry’s] information” was actually a compilation by Mark Wills (@Willsy). I do not have his original to edit, but here it is with the typo:  GPL Manual.pdf

What I edited was the documentation for the RAG GPL Assembler, which follows:  RAG_GPL_Manual.pdf

 

...lee

Link to comment
Share on other sites

For the moment, I am on pages 3-9, 3-10, 3-11, of TI's "GPL Programer's guide". Funny how each inconsistancy seems to make it more difficult to follow. 3-9 refers to 3-10(should be 3-11). CLR claims to be Format 6, GS, but which "form" of GS, 1,2,3,4,5, or how to determine this is still unclear to me. Format 6 on page 3-10 claims to be GS, but CLR uses GD!

 

The code I'm reviewing, goes: >06(CALL) 72 DB(Grom Addr.), at G72DB is: >87(DCLR) 16 BE (can't be a GROM or ROM addr.), "D opcodes can affect 2 bytes if a leading D is added (e.g. DINC instead of INC).". I assume this to mean, 2 bytes at the dest, addr.. Is the default GD or GS, VRAM?:ponder:

Edited by HOME AUTOMATION
Link to comment
Share on other sites

2 hours ago, HOME AUTOMATION said:

The code I'm reviewing, goes: >06(CALL) 72 DB(Grom Addr.), at G72DB is: >87(DCLR) 16 BE (can't be a GROM or ROM addr.), "D opcodes can affect 2 bytes if a leading D is added (e.g. DINC instead of INC).". I assume this to mean, 2 bytes at the dest, addr.. Is the default GD or GS, VRAM?:ponder:

 

Too bad Tony is gone from this plane. I would think >16 after >87 is DCLR @>8316 and that >BE is the next instruction (DST).

 

...lee

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

This makes me think about a GPL "Forth-like" REPL that would use names for the various byte codes and send them to the GPL interpreter.

I know nothing about the bowels of GPL but this could be very handy for debugging stuff (finding the true meaning of these opcodes) especially when coupled with an emulator like Classic99 that let's you watch things happen at the lowest level.

I am dreaming in technicolor Lee?

It sounds like byte coded Forth on the surface.

 

  • Like 1
Link to comment
Share on other sites

1 hour ago, TheBF said:

This makes me think about a GPL "Forth-like" REPL that would use names for the various byte codes and send them to the GPL interpreter.

I know nothing about the bowels of GPL but this could be very handy for debugging stuff (finding the true meaning of these opcodes) especially when coupled with an emulator like Classic99 that let's you watch things happen at the lowest level.

I am dreaming in technicolor Lee?

It sounds like byte coded Forth on the surface.

 

Interesting idea, but getting it to the GPL interpreter and back might be dicey, since, I believe, only GROM/GRAM can contain executable code (not positive about VRAM, but definitely not RAM/ROM).

 

...lee

Link to comment
Share on other sites

Thanks again, Lee!


Yes, I'm sorry about Tony too. Perhaps more than I'll ever know!:ponder:

 

But at least I have you!:grin:

 

I think you got it right, though!;-)

 

I was considering that maybe PAD was the dest.. I had watched CPU RAM with Classic99's debugger, while this code executed, but most locations were already cleared, and the GPL interpreter makes them dance too.

 

Now I set a breakpoint on writes to >8316, sure enough, it did trap the opcode's operand address, after auto-incrementing once or twice more!

 

debug.thumb.JPG.757c7dce2936c9c7639bd7386770f0ac.JPG

 

This is only the first few instructions after the program's entry point, not the part I hope to modify. But I needed to find some way to follow along, in order to try to find the exact point or points to breakout(XML) to my "loader code" and back again.

 

My plan is rather simplistic... I'll replace an opcode that executes just before or after the "Where is the database?" message... then I'll  cue the user to enter the game's name with or without a device name, reload FG99's RAM/ROM with a snapshot of the game, and perhaps CPU RAM as well... then I'll use VMBR to load the game to VRAM... reload an unaltered copy of the ADVENTURE GROM into the FG99, and return! If the user includes a "." in the name, I'll kick them back to the module's loader.

 

...or somethin' like that!:cool:

 

      Alex

 

 P.S. Hopefully this will go easily, otherwise I may have to surrender it to life's other burdens.:roll:

  • Like 3
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...