Jump to content
ralphb

xdt99: New TI 99 cross-development tools available

Recommended Posts

On 1/13/2021 at 3:06 PM, ralphb said:

I've released version 3.1.0 of xdt99, in which I only updated xas99.

 

Very nice, indeed! This release has obviated the necessity for my bank-addressing workarounds and I no longer need to quiet warnings. Many thanks for this release!

 

...lee

  • Like 1

Share this post


Link to post
Share on other sites
On 1/13/2021 at 3:06 PM, ralphb said:

I've released version 3.1.0 of xdt99, in which I only updated xas99.  The new features, which are partially incompatible with 3.0.0, are:

 

BANKS.  To define a bank, use BANK <b>, [<addr>].  If an address is given, it sets the base address for other BANK directives without address.  Again, BANK ALL starts at the lowest address after all other banks, and raises the base address.

 

SAVES.  I've reverted the "minimal" address range when using SAVE and now generate values for the entire range.  For example, a SAVE >2000,>4000 yields a file of 8K.  To get the previous behavior back, use the minimize option -M.

 

AUTO.  A new directive AUTO determines the program location where all auto-generated constants should be places.  Omitting AUTO is an error.  Auto-constants are now bank-aware, so AUTO should be placed in each bank where auto-constants are used.  After AUTO, no further auto-constants must be used.

 

BANK CROSS-CHECKS.  I now disabled cross-checks by default.  To enable them, use -X.

 

MACROS.  Labels should now be retained.  Also, the listing now contains information about source units/macros entered and resumed, e.g.

     **** **** > source1.asm
               COPY "source2.asm"
     **** **** > source2.asm
               ...
               < source1.asm
               ...
               .mac r0, r1
     **** **** > MAC
               ...
               < source1.asm

COLORS.  The output of warnings and errors now uses color.  On Linux and macOS, color is on by default.  Since older version of Windows don't support so-called ANSI esc sequences, it's off by default.  To enable/disable color manually, use --color on/off.

 

MISC.  Some additional warnings about incorrect operand usage, and more.

Ralph,

 

Tim and I were discussing the other day about the ability to use other non TI/Geneve programs to assemble MDOS with the direction moving forward to a github repository.

 

The biggest issue here lies in the GenPROG Linker and the linking process and the uses of the PAGES command to build the 18 x 8K segments of MDOS as a single program image file.  I'm guessing there are roughly 100'ish source files creating 50 various object files that are pieced together during the linking process.

 

I don't know the xdt99 tools that well or if you have reviewed the GenPROG package to know if there would be a workaround, or I will use the word "simpler" changes that could be done to the source to move things to an xdt99 platform for assembly and linking process to create the final image.

 

If you have some thoughts on the matter, it would be appreciated.


Beery

 

 

Share this post


Link to post
Share on other sites
14 hours ago, BeeryMiller said:

Tim and I were discussing the other day about the ability to use other non TI/Geneve programs to assemble MDOS with the direction moving forward to a github repository.

 

The biggest issue here lies in the GenPROG Linker and the linking process and the uses of the PAGES command to build the 18 x 8K segments of MDOS as a single program image file.  I'm guessing there are roughly 100'ish source files creating 50 various object files that are pieced together during the linking process.

 

I don't know the xdt99 tools that well or if you have reviewed the GenPROG package to know if there would be a workaround, or I will use the word "simpler" changes that could be done to the source to move things to an xdt99 platform for assembly and linking process to create the final image.

That would actually be very interesting to implement!  But even though I do own a Geneve, I haven't done anything with it yet -- postponed that after SDD is ready. 🥴

 

Assembling multi files at one is possible right now, also linking everything together to object code or binary.  Not sure if the Geneve uses the same format, though.  Also, chunking that into 8K segments is possible, but might need some extra handling.

 

I don't have the GenPROG package, at least IIRC.  Could you send that to me, please?  Also I'd need more documentation about the actual Geneve format.  I might have asked before, but are there any good sources for this?  (Feel free to PM me, since this info might be offtopic.)  I also do have a stuffed Geneve binder, maybe that contains file specs?

 

Not that I could work on that immediately, but it'd be nice to switch between projects at times ...

  • Like 4

Share this post


Link to post
Share on other sites

Ralph, 

 

I sent you a private message and included @InsaneMultitasker on the message as well along with MDOS 6.50 source and where you can find all the information on the GenPROG package.  

 

It will be some good bedtime reading <grin>.

 

Beery

  • Like 2

Share this post


Link to post
Share on other sites
xas99.py -R -b -L tipi.list -o tipi.bin rom.a99
> *** <2> **** - 
***** Warning: Unused constants: BASESTK

Took me a while to figure out BASESTK was one of my symbols, cause it's in lowercase in my source... A nice feature would be if the location of the definition could be included in the warning.

 

Share this post


Link to post
Share on other sites
On 2/25/2021 at 6:47 AM, jedimatt42 said:
xas99.py -R -b -L tipi.list -o tipi.bin rom.a99
> *** <2> **** - 
***** Warning: Unused constants: BASESTK

Took me a while to figure out BASESTK was one of my symbols, cause it's in lowercase in my source... A nice feature would be if the location of the definition could be included in the warning.

 

Should be very possible ... I figured you could just search for the symbol, but that's more difficult if you have multiple sources.

 

As for the case, xas99 is case-insensitive, but converts everything to uppercase internally.

Share this post


Link to post
Share on other sites
6 hours ago, ralphb said:

Should be very possible ... I figured you could just search for the symbol, but that's more difficult if you have multiple sources.

 

As for the case, xas99 is case-insensitive, but converts everything to uppercase internally.

Yep, I should have

grep -i *.a99

but was tired and making mistakes. As one does. :)

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