Jump to content
IGNORED

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


retroclouds

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?

 

Link to comment
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
Link to comment
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
Link to comment
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
Link to comment
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
Link to comment
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
Link to comment
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 3
Link to comment
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? 

Link to comment
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.

Link to comment
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.

Link to comment
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.

  • Like 2
  • Thanks 1
Link to comment
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. :)

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

  • 6 months later...
On 8/16/2020 at 1:58 PM, BeeryMiller said:

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

 

I know you're busy these days, but I have gone through the Geneve GENxxx references. I have found the information to be favored towards people who have a familiarity with GENasm N, linker, etc..

But these books don't offer the new user a startup.

I am familiar with the TI assembler and the manual.

It's put together with examples.

And the examples I see, in genxx so far, were really reaching lol, I mean snipits of code don't offer much to people who haven't seen the complete structure of an object file file for geneve, I was left with more questions after reviewing.

I can throw 9900 assy code around left and right, but i haven't gotten a clue where to begin with Geneve.

I did manage to find that genASM,N (I assume it's One program broke up), can READ DV80 files and it's a one pass.

Anyway, the book should alleviate most of my questions, but I didn't get far in them.

Thx

 

Edited by GDMike
Link to comment
Share on other sites

Start browsing some of the source code examples in the issues of 9640News for some examples.  Another resource, try telnetting into the BBS fusionbbs.ddns.net port 9640

 

Look in the Geneve file categories for some files and you will find files with source code.

 

Besides the Genxxx docs, source code examples are how all of us learned.  There is no other book.


Beery

  • Thanks 1
Link to comment
Share on other sites

Thank you. I'm about to get to a comfortable spot with my SNP program and ill pull the plug, literally..I'll pull the peb apart and put in the geneve.

I Better go find the geneve assembler and other executables first or I won't have anything to test with .

Lol!  thanks so much

 

Edited by GDMike
Link to comment
Share on other sites

  • 2 weeks later...
On 2/28/2021 at 8:37 PM, 9640News said:

Start browsing some of the source code examples in the issues of 9640News for some examples.  Another resource, try telnetting into the BBS fusionbbs.ddns.net port 9640

 

Look in the Geneve file categories for some files and you will find files with source code.

 

Besides the Genxxx docs, source code examples are how all of us learned.  There is no other book.


Beery

I've decided to NOT get into the assembler, linker, math, etc..etc.. for geneve.

I'll investigate geneve Forth instead and see if it has an assembler in it.

As long as it runs from MDOS that is.

I'm still trying to download the text files as I'm not seeing the download option, each file is opening and I assume from there I'm supposed to copy it and paste it to something..

I was hoping to dl All the files from my phone and push them to my tipi, but it's not appearing I can do that..

I'll just have to go through the process of finding space on my desk for my laptop, and do all the copying/pasting.. Lol

Edited by GDMike
Link to comment
Share on other sites

Hmm...

Obviously, the LINE-BY-LINE ASSEMBLER, is the most advanced!?

 

 

 Label length is simply kept short/sweet.?:party:

 

 Speed is, on-the-fly, practically real time!⏱️

 

 Lines of code are limited only by available memory!?

 

 No need for linker, since you can load all code/assign branches manually... Good practice!?


 After-market source, available here from a trusted member...?‍♂️

 

#10

 

  P.S. Works well in conjunction w/EASYBUG.?

 

:grin:

  • Like 1
Link to comment
Share on other sites

6 hours ago, GDMike said:

I've decided to NOT get into the assembler, linker, math, etc..etc.. for geneve.

I'll investigate geneve Forth instead and see if it has an assembler in it.

As long as it runs from MDOS that is.

I'm still trying to download the text files as I'm not seeing the download option, each file is opening and I assume from there I'm supposed to copy it and paste it to something..

I was hoping to dl All the files from my phone and push them to my tipi, but it's not appearing I can do that..

I'll just have to go through the process of finding space on my desk for my laptop, and do all the copying/pasting.. Lol

The GenREF documentation files are in PDF format.  Even if you decide to use Forth versus assembly language, you will still need the GenREF documentation to access the resources of the Geneve.  The assembler/linker are just very small pieces of the whole package for programming in MDOS.

 

Beery

  • Like 1
Link to comment
Share on other sites

Yes, I got all that. I'm just trying to avoid the linker, assembler, and other items I'd have to go through. Shoot, I have a program now in EA, and using classic 99 in turbo as my assembler still takes me a bit of time, I kinda know what I'm up against using the genasm and it's components, that in this case Forth might be the ticket here.

I was referring to the forth txt files and getting that documentation..

Edited by GDMike
Link to comment
Share on other sites

8 minutes ago, GDMike said:

Shoot, I have a program now in EA, and using classic 99 in turbo as my assembler still takes me a bit of time...

Sigh ... people just don't take their time ? ...  isn't it a moment of silent comtemplation while waiting for the assembler to finish? Mind that on the real iron, you still had the chance that the floppy failed.

  • Haha 1
Link to comment
Share on other sites

You wouldn't believe how many times I forgot what my code was actually supposed to do, yes that is a personal issue lol but still...loss of focus is easy to do,  or the changes that I made while I was waiting for the thing to assemble or what kind of idea came up with since I started assembling and all the what ifs that happened while I'm assembling, it drives me crazy lol

I do know that if I'm in Forth I get to see everything pretty much immediately.

Don't talk me out of forth! you're supposed to encourage the use of the most efficient application. And right now I don't see assembler being efficient opposed to using Forth, Unless Geneve forth, whatever it's called these days, doesn't have the capability in it's current kernel.

Edited by GDMike
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...