Jump to content
IGNORED

What Assembly Language Programming Tools Do You Use


idflyfish

Recommended Posts

well for those interested, here are the tools I use:

 

winasm99, that's the assembler included in the win994a emulator.

classic99, guess that one does not need an introduction. Its debugger is a must have for debugging your program.

ti-dir by Fred Kaal, allows easy transfer to the ti-994a for testing on the real deal, I use my CF7+ for that.

 

Instead of classic99 you can also use the MESS emulator. It also has a very powerfull debugger.

And I'm sure there are more assemblers around, but I haven't used any of them.

 

All of the above is for when you are doing cross development on the PC. I know there are a couple of us who actually develop on the TI994A.

For me personally doing that takes too much time, but I guess thats just a matter of taste. Using RAM disks etc. you can speed up the dev cycle on the TI994A as well.

 

If you want to development programs that run as a cartridge, then its very useful to have a supercart for testing on the TI994A itself.

That ofcourse only partly works when you are starting to use bankswitching for handling bigger programs.

Link to comment
Share on other sites

Back in the early eighties I had Mini Memory with Line-by-line Assembler using a Cassette Deck and then a 32K RAM Standalone Expansion (apart from a Atari-type joystick adapter).

 

Since I got back in the trade in 2004, I've used only Cross Assembly on Windows platforms. First I used TIasm (part of V9T9 package) since it was fast and command line configurable. I could set it up inside my Text Editor (UltraEdit, but the free Notepad++ will do). TIasm can't however run on Windows 7. So I switched to WinAsm99 (also named Asm994a) part of the Win994a package.

 

I had the E/A-manual back in the day, and that's still what I use - along with Thierry Nouspikel's website. That's my main resources.

 

For manipulating graphics I use Paint Shop Pro 6, since it's very fast (being a September 1999 product). For the quick and dirty graphics I use my own Patterns, and for general transfer of larger amounts it's my own Grapefruit that comes into play.

 

I need to look into some tools for music and sound effects.

 

I've learned Assembler on the Z80A (Sinclair/Timex (ZX81)), then 9900, then 6510 (C64) and then 68000 (Amiga) with some 80x86. If you want to do 9900, I recommend all the books that are now available online - I didn't study them, but they look fine.

 

:)

Edited by sometimes99er
Link to comment
Share on other sites

Ignore this thread. I found my answer on the TMS9900 yahoo group.

 

Believe it or not, there are assembly programmers *here* too...

 

There is a lot of good information back-logged in this forum, and none of it is "out of date" just because no one has talked about it in a while. Here are two threads (among many) I recommend anyone getting in to 9900 assembly read:

 

http://www.atariage.com/forums/topic/179103-assembly-under-emulation/

http://www.atariage.com/forums/topic/162941-assembly-on-the-994a/

 

As for tools, there are a *lot* depending on what you are doing (see the sticky development thread in this forum.) Programming is more than just code, so at some point you will also have to consider graphics tools, sound tools, screen editors, etc., unless you are writing a DSR...

 

I think most people develop on a modern PC (personal computer) since the code/compile/test/debug cycle is a *lot* faster than on real hardware. Editing is also easier with a modern PC (IMO, since that statement can cause a *lot* of debate...)

 

For editing I use a programmer's text editor with syntax highlighting. Textpad and Notepad++ are two examples. It would be *really nice* to have a "context aware" editor like what Eclipse does for C/C++ or Java programming, but to my knowledge there is nothing like that for 9900 assembly.

 

For emulation I use Classic99 pretty much exclusively these days. The other emulators/simulators are usually lagging or no longer being supported. I have never used MESS so I can not speak on that community, but the author of Classic99 (Tursi) reads this forum and is right here to help out, fix bugs, etc. and that is hard to beat.

 

For compiling I currently use Asm994a (the assembler that comes with the Win994a simulator), but if you do use it, make sure you get the unreleased v10 (see the assembly-under-emulation thread I linked to above.) The version that comes with the latest release of Win994a has a bug. Asm994a is convenient since it works on the PC and can write files to the PC's file system, which works very nicely with Classic99.

 

Of course Fred's TIdir is an absolute requirement no matter what you are doing.

 

I also have a pile of real hardware which I use to test everything I write, once it is working under emulation. Getting data over to the real 99/4A is another issue (for which there are already many threads in this forum on the topic), and I also have an EPROM programmer for making real cartridges.

Link to comment
Share on other sites

Believe it or not, there are assembly programmers *here* too...

 

Oh I know...believe me. I just figured you guys were part of the TMS9900 group and I didn't want to bother everyone with a redundant question.

 

For compiling I currently use Asm994a (the assembler that comes with the Win994a simulator), but if you do use it, make sure you get the unreleased v10 (see the assembly-under-emulation thread I linked to above.) The version that comes with the latest release of Win994a has a bug. Asm994a is convenient since it works on the PC and can write files to the PC's file system, which works very nicely with Classic99.

 

Is this the bug with the BYTE directive that I have read about?

Edited by idflyfish
Link to comment
Share on other sites

Oh I know...believe me. I just figured you guys were part of the TMS9900 group and I didn't want to bother everyone with a redundant question.

 

Sadly that is not the case. There is a lot of animosity around the Y! lists and towards this forum. It is unfortunate. Some people do read / participate in all the various lists and such, most don't. And not much conversation seeps over either. Things posted in one place or the other seem to stay in their respective list / forum.

 

Is this the bug with the BYTE directive that I have read about?

 

Nope, the bug is related to one of the jump instructions, the JH instruction I think, but I can not remember for sure. It caused me quite a bit of headache one night, and I only found it because I compared Asm99's binary output with what the E/A produced. When I posted, a few people already knew about it and someone had received a patch from Win994a's author, but the update was not part of any Win994a release, you had to get it and replace the binary manually.

 

There are also a few quirks with Asm99 and alignment, which seems to be what you were reading about, i.e. with the BYTE directive. These are not really bugs as much as they are implementation quirks (or errors.) I can't remember exactly what the problems were, but I do remember posting about it in this forum.

Link to comment
Share on other sites

I did find Asm994A has a weird bug when the first directive in a file is BYTE, sometimes the first byte doesn't end up in the object file. That's not fixed to my knowledge. I still have the patched Asm994a up for the broken jump instruction (it assembles the wrong kind of jump) since as far as I know Cory hasn't done a new release yet.

 

The other one that gets me sometimes is it tends to force an even alignment after a TEXT directive, even if you didn't ask for it, so you have to be careful if you are deliberately mixing TEXT and BYTE directives.

 

Otherwise, I also use Asm994a and Classic99. I tend to just use Notepad or Notepad2 for editting (neither is programmer-tailored), and Fred's TI99Dir for disk manipulation.

Link to comment
Share on other sites

Most of my programming takes place using real hardware or MESS emulation of the same. I develop programs using a Geneve, an 80-column editor by Peter Muys, and one-pass assembler/linker (GENAsm by Paul Charlton). For some things I revert to Funnelweb's Editor and Assembler - it's nice integreated development package. If I want to couple assembly code with XB code, I pull out my trusty Systex disk from Barry Boone. For disassembly I use the Geneve version of Diskassembler by Tom Freeman. Debugging I usually use SBUG or HotBug. For XB code I use XB. <grin>

 

On the PC side I use Notepad (I dislike color coding and what-not) though I still get in trouble with my desire to place text wherever I want without adding tabs and spaces first. I often use MESS to print all of my related source code, XB programs, etc. to a text file. Then, using the power of "search" or simply scanning that doc, I can code on the real hardware and see the full picture at the same time. What else... Fred's TIDIR for transferring periodic files; WinHex to backup/edit my Geneve EZ135 platters to my server; Telnet and my PORT terminal emulator to transfer files between PC and Geneve via ethernet using UDS10 device.

 

I have been dabbling with Tursi's Classic99. The CLIP function is quite handy ;) A few of Sometime's utilities have come in handy for char defs and sprites.

 

Except for file management and backups, I'm perfectly content to use the real hardware. I don't find it slows down my development - when I have time to do so. :ponder:

Link to comment
Share on other sites

I do my development against MESS on a Linux machine, using GAS as my assembler. All code is written in Gedit (which is an equivalent to Notepad).

 

I started doing development without any idea what tools were out there, so I've written them all myself (assember, disassembler, disk tools, font editor, etc.). However, I replaced my simple assembler with GAS as soon as I could. I don't use any debugging tools at all, although that would make my life much easier. Since I didn't have anything close to the comprehensive documentation now available here, I've had to reverse engineer some cartridges, disk images and a few of Sometimes's demos to better understand how the TI works

 

I have a real machine packed away, but for now I'm content doing everything in MESS.

 

This is probably the most difficult way possible to develop TI code, but I thought I'd share.

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...