Jump to content
Sign in to follow this  
kl99

Debugging features of all the TI 99 emulators

Recommended Posts

Hi!

 

What are the debugging features on the different emulators?

 

Would you be interested in Basic programming optimized debugging features like:

Extra window with Program listing of your Basic/XB program, syntax highlighted

Current Instruction being executed is highlighted in the program listing

Infos about how much Stack space is free, how much program space is free, how much your program occupies,...

How many numeric variables, string variables, arrays are currently defined, how much memory each one occupies, value of each variable, location of variable in memory...

You could even try to check the code syntax and highlight syntax errors, many things are possible.

 

It would be an interesting challenge to see if I can add this stuff to one of the emulators for personal use, a public release would require the emulator author's permission of course.

Is one emulator currently supporting such things?

 

Klaus

Share this post


Link to post
Share on other sites

As for MESS, no, and I dare to say that it is not feasible for MESS. The problem is that Extended Basic is just a program that is executed on the platform. In the same way that the TMS9900 CPU has no idea what it is currently processing, the MESS core neither has. What you are thinking of is a view from outside, given the knowledge about the structure of data in Extended Basic.

 

For MESS, Extended Basic or any other cartridge or program appearance is based on the fact that the ROM is present. When you unplug the emulated cartridge, nothing inside refers to Extended Basic anymore (ok, except for the cartridge board implementation).

 

I certainly agree that such things could be quite useful, but this goes more to the direction of Extended Basic simulation (yes, we had the discussion on the Yahoo list recently about emulation/simulation).

 

Michael

 

P.S.: What you can do, indeed, is to follow the activities of the CPU in the debugger, and to inspect the memory, including video memory.

Edited by mizapf

Share this post


Link to post
Share on other sites

I would already be very happy if we'd have a symbolic debugger.

 

With V9t9, classic99 and MESS still being in development it would be cool if some kind of "standard" could be defined.

You know, a standard format for a symbol table, standard way to set break-points, single-step, watch memory, etc. and all this via an API.

That way a stand-alone debugger could be developed that works with all mentioned emulators.

Edited by retroclouds

Share this post


Link to post
Share on other sites

OK, there's one way that seems feasible. If we had an external debugging access to the emulators, we could read the values from the memory via this external access. This would be a completely external solution, in the sense that the emulator cannot say anything to the meaning of the bytes, but the external tool must have the capability to interpret them. For example, if we know that the symbol table pointer is at 83xx, then the external tool would have to read that value from there, and then it would download the video RAM contents. This could be a function dump_contents(memory_identifier, start_address, length). Also, we could set breakpoints from outside.

 

What we could not do is to ask the emulator to "dump the symbol table" because the emulator does not know anything about such a thing. It would be completely up to the external tool to interpret that.

 

Such an external access would, in my view, have to be implemented as a socket to be as platform-independent as possible. Then, the external tool would open a socket connection and communicate as some kind of remote control.

 

We would not even need a common command vocabulary for the debuggers if we had such a socket connection. It would be possible to write some kind of v9t9_adapter, classis99_adapter, mess_adapter as modules within that external tool.

 

Michael

Edited by mizapf

Share this post


Link to post
Share on other sites

Thierry Nouspikel (as always!) has created an external debugger that runs on hardware, and I installed hooks for Classic99 as well. Bug99 -- http://nouspikel.group.shef.ac.uk//ti99/bug99.htm

 

It's a pretty nice little package.

 

I've been looking at a GDB stub for Classic99 now that we have GCC working. No promises, but I did something similar recently on the Jaguar, and not that much code is required on the target side. Not sure how much is needed on the GDB side yet.

Share this post


Link to post
Share on other sites

I would already be very happy if we'd have a symbolic debugger.

 

With V9t9, classic99 and MESS still being in development it would be cool if some kind of "standard" could be defined.

You know, a standard format for a symbol table, standard way to set break-points, single-step, watch memory, etc. and all this via an API.

That way a stand-alone debugger could be developed that works with all mentioned emulators.

 

Check out Fred Kall's TI994W - it has a symbolic debugger. It comes pre-loaded with some system address symbols, but you can also add your own IIRC - it's been a while since I used it.

 

The debugger in TI994W is more like a machine code monitor; it has a command line that you can type commands/instructions on. Type ? for help (IIRC!)

Share this post


Link to post
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...
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...