Jump to content
retroclouds

Most advanced assembler on the TI-99/4a (and Geneve)

Recommended Posts

What is the most advanced assembler on the TI-99/4a and on the Geneve?

 

With advanced I’m thinking of:

  • Features
    • Length of labels
    • Speed
  • Lines of source code it can handle.
  • Linker

 

 

For starters: how many assemblers are out there? I know:

  • Editor/Assembler
  • Mini Memory line-by-line assembler
  • MG Diskassembler?
  • ...

 

 

EDIT: do we have source code available for any of the assembler mentioned?

 

Share this post


Link to post
Share on other sites

With the "copy" command, linking to another file really does away with keeping all the source code in one file. I actually find it better since I have a library of source code and all I do is use the"copy" command to have it inserted.

I also liked RAG assembler, but that's me, and I run it on my Dell laptop using classic 99 in overdrive while assembling my files that I created on my tiPEB and are accessed via TIpi to assemble at top speed!

 

 

  • Like 2

Share this post


Link to post
Share on other sites

:)   I can't resist. (Sorry)

 

Forth Assembler

Length of labels      :  31 chars

Speed                    : Single pass, pretty quick

Max Lines               :  disk size

Structured loops      : YES

Structured jumps    : YES

Linker                    :  Forth is the linker

Interactive              : YES

Macros                   : YES

Source Available     : YES

 

 

We now return to our regularly scheduled program...

 

  • Like 3
  • Haha 2

Share this post


Link to post
Share on other sites

...and turboforth has a manual that explains the TF assembler as well.

And uses r0, r1, r2, etc...

Share this post


Link to post
Share on other sites
1 hour ago, GDMike said:

...and turboforth has a manual that explains the TF assembler as well.

And uses r0, r1, r2, etc...

 

As do fbForth and TI Forth, from which all of the Forth Assemblers mentioned derive.

Of course, TI Forth does not use R0, R1, etc., but could easily be modified to do so.

...lee

  • Thanks 1

Share this post


Link to post
Share on other sites

No surprises from me, but the GenPROG package with GenASM and GenLINK.

 

GenASM - Single pass assembler, 31 character label names, macros, conditional assembly directives, macro strings.  Probably the fastest compiler unless you step to an assembler on a non 9900/9995 CPU.

 

GenLINK - Supports saving files in multiple formats with and without headers, and the ability to create overlays, and no restrictions on the size of program image files.  Ability to use libraries.

 

Beery

 

  • Like 1

Share this post


Link to post
Share on other sites

On the TI, RAG assembler/linker/etc.  It is quite a powerful set of tools allowing for overlays, make files, etc.  I used this package to link the Horizon Ramdisk DSR (ROS) prior to using the xdt toolset.

 

I agree with Beery re: GenProg as it is  hands down the fastest assembler/linker that allows for very complex programs, REF/DEFs across object files, overlays, macros, etc.  It is also the only program that can assemble the Geneve OS (now at 128K) but it can also assemble and link standard TI program images.  For reference, the Geneve OS source clocks in at around 1600K.

 

(Tom Freeman's DiskAssembler - which has a TI and Geneve version - is a tool that goes hand-in-hand with the above packages, IMHO)

  • Like 4

Share this post


Link to post
Share on other sites

There is also TASM that I am using, but it does have some issues (does not recognize COC mnemonic and sometimes gets into trouble on the second pass, which I am currently investigating).

But it is a two-pass assembler, which I consider conceptually better than single-pass assemblers (like GenAsm). (Yes, it is slower, but I don't care about time. 🙂 )

  • Like 2

Share this post


Link to post
Share on other sites
23 hours ago, mizapf said:

There is also TASM that I am using, but it does have some issues (does not recognize COC mnemonic and sometimes gets into trouble on the second pass, which I am currently investigating).

But it is a two-pass assembler, which I consider conceptually better than single-pass assemblers (like GenAsm). (Yes, it is slower, but I don't care about time. 🙂 )

Does that mean the source code is available? 

Share this post


Link to post
Share on other sites
1 hour ago, retroclouds said:

Does that mean the source code is available? 

Unfortunately not ... sigh ... this is what I meant by "currently investigating". 😕

 

It takes an awful lot of time, but it could reveal a rare bug in GeneveOS, so I'm going for it.

Share this post


Link to post
Share on other sites

The most advanced I normally used back then was the p-system's assembler. Together with the linker, it allows for creating both relocatable and dynamically relocatable (can be moved in memory) code. Access to global Pascal variables and constants is possible, and also to private data, where the routine can save data which will remain across invocations. Labels of unlimited length (8 characters used) and macro assembly capability.

Share this post


Link to post
Share on other sites

I use the Ryte Data GPL Assembler.

 

Length of labels      :  32 chars

Speed                    :  2  or endless pass depending on complications to be resolved

Max Lines               :  disk size or hard drive size

Structured loops      : YES

Structured jumps    : YES

Linker                    :  No linker built in but various do work for it

Source Available     : NO

 

I had a file that took 400 passes (3 days) to resolve symbol reference statements, it eventually resolved all issues except 1 it could not fix.

This was a test to see how long it would take to solve a complicated issue I found in a book on Assemblers. 

I was very impressed.

  • Thanks 1

Share this post


Link to post
Share on other sites
Just now, RXB said:

I use the Ryte Data GPL Assembler.

 

Length of labels      :  32 chars

Speed                    :  2  or endless pass depending on complications to be resolved

Max Lines               :  disk size or hard drive size

Structured loops      : YES

Structured jumps    : YES

Linker                    :  No linker built in but various do work for it

Source Available     : NO

 

I had a file that took 400 passes (3 days) to resolve symbol reference statements, it eventually resolved all issues except 1 it could not fix.

This was a test to see how long it would take to solve a complicated issue I found in a book on Assemblers. 

I was very impressed.

Yes, one of the best out there! -- i still use it myself. than and rag linker. :)

  • Thanks 1

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.

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