Jump to content
IGNORED

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


retroclouds

Recommended Posts

31 minutes ago, GDMike said:

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

From the MDOS Prompt for a MDOS program.

 

ASM SOURCEFILE,OBJECTFILE,,RCO

LINK LINK1 (or replace LINK1 with another filename)

 

LINK1 is a DIS/VAR 80 file with the following commands.

ADD SOURCEFILE1

ADD SOURCEFILE2

SAVEALL FILENAME

 

Now, if you were creating a program for the TI-99/4A, then your LINK1 file might look like this:

BLOCK >A000,>FFFA
ADD DSK9.BBSSRCO
CLEAR
BLOCK >6000,>7FFE
ADD DSK9.LIBO
ADD DSK9.BBSO
CLEAR
BLOCK >A000,SLAST
BLOCK >6000,SLAST2
SAVEALL AFTERHOURS,4
EXIT

 

Now, what the above does, it sets a block of memory from >A000 to >FFFA where the object file BBSSRCO has been AORG'd to go.  And, with this particular program that needs 8K of memory in the RAM module space at >6000 to >7FFF, it adds two object files LIBO and BBSO into that memory.

 

And, before we are ready to use the SAVEALL command, we define the block commands again so we can create the 4 x 8K program image files.

 

There is also a PSAVE command if you want to set things up a bit different without the headers in the PGM files, etc.  The manual has some good settings for the LINK control file if you choose to use a control file.  You can also manually type the commands in at the prompt.

 

Now, take something like MDOS for the Geneve, it makes use of the MAKE program that looks at the date stamps on files and compare the source/object files, and the dependencies to determine what files need to be reassembled.  In other words, if you only make a change to a single source file, you don't need to assemble all the various source files each time.  From there, it then creates a !DOIT file (DIS/VAR 80) file that has all the ASM and LINK settings to properly assemble.  The MAKE control file for a project like MDOS is 247 lines in length and the LINK1 file (named HDOSL for MDOS) is 116 lines with all the appropriate instructions to put together the 42 separate object files it needs to generate a 152 K PGM image file. 

 

On a full compile of MDOS, and I don't have a specific line count, but I believe it is ~50,000 lines of code, on a Ramdisk under MDOS mode it takes under 8 minutes to do a full assembly and linking to get the final product.

 

 

 

 

 

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

Not familiar with the Forth assembler, but the other nice thing about GenASM versus the E/A assembler is this.

 

If you have an error in a source file that could possibly have been included in the original source filename via a COPY "sourcefile#2)", then GenASM will tell you which file, and specifically what line number, and what the specific error is.

 

 

Link to comment
Share on other sites

28 minutes ago, GDMike said:

you're supposed to encourage the use of the most efficient application.

...

 

6 hours ago, HOME AUTOMATION said:

Hmm...

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

 

6 hours ago, HOME AUTOMATION said:

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

:ponder:

 

I've found ...since becoming acquainted with both LINE-BY-LINE, and E/A ...I tend only to do the main(lengthy) part(mostly start/finish) using E/A.

The polishing/testing/debugging happens using EASYBUG/HEXEDIT/LBL!

 

Much as I would often disagree with you... On this point we seem to be somewhat in accord...

28 minutes ago, GDMike said:

You wouldn't believe how many times I forgot what my code was actually supposed 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

I would either have given-up or been throttled enough, that it would be hard to tell the difference, if I had to use E/A stand-alone! Certainly my direction would be altered significantly.:roll:

  • Haha 1
Link to comment
Share on other sites

1 minute ago, 9640News said:

Not familiar with the Forth assembler, but the other nice thing about GenASM versus the E/A assembler is this.

 

If you have an error in a source file that could possibly have been included in the original source filename via a COPY "sourcefile#2)", then GenASM will tell you which file, and specifically what line number, and what the specific error is.

 

 

Yeah I always found that to be the greatest part about using RAG assembler, which I use just because of that. It's a tremendous help...

Well...so far I'm going to, when I'm done with my current ti4A project, (because it uses SAMs),  I'll move to geneve and Forth.

At this time, I really want the computer to work for me. I'm just hoping that getting to the mouse, graphics as well as sound is achievable in this flavor of forth. I see it's using screens vs blocks, but everyone has an opinion on the structure.

I just need a good foundation.

Link to comment
Share on other sites

I know line by line works, but I don't think, for me, that I could write a program with it, myself, as that demands an entirely different set of work environment.

I just use it for poking around or turning on or off a cru bit to test a peb card and whatnot... but anyway... Im not really a fighter, just trying to figure things out..

Well, I'm off to diagnose why my ABS isn't working on my car, it uses the Teves brake system and something is preventing the rear brake calipers from getting fluid.

Edited by GDMike
Link to comment
Share on other sites

23 minutes ago, GDMike said:

I know line by line works, but I don't think, for me, that I could write a program with it, myself, as that demands an entirely different set of work environment.

I just use it for poking around or turning on or off a cru bit to test a peb card and whatnot... but anyway... Im not really a fighter, just trying to figure things out..

Well, I'm off to diagnose why my ABS isn't working on my car, it uses the Teves brake system and something is preventing the rear brake calipers from getting fluid.

The code for the system probably switched to Line-By-Line assembler mode and is waiting for the F3 keypress to advance to the next instruction.................

Link to comment
Share on other sites

1 hour ago, GDMike said:

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.

Just as a hint, TASM itself is written in TIC, and my Arkanoid pre-alpha-prototype is written in TIC.

 

It's no secret that I am not really a fan of Forth. But you need not be a fan of all programming languages around. ?

Link to comment
Share on other sites

9 hours ago, GDMike said:

Yeah I always found that to be the greatest part about using RAG assembler, which I use just because of that. It's a tremendous help...

Well...so far I'm going to, when I'm done with my current ti4A project, (because it uses SAMs),  I'll move to geneve and Forth.

At this time, I really want the computer to work for me. I'm just hoping that getting to the mouse, graphics as well as sound is achievable in this flavor of forth. I see it's using screens vs blocks, but everyone has an opinion on the structure.

I just need a good foundation.

Hey GDMike,  if you can get the Geneve Forth running some folks around here could probably figure out how to give you a Forth Assembler... it's only 200 lines of source code for the 9900. :) 

We just need a little inside knowledge about what vintage of Forth it is.

 

BTW screens and blocks are the same thing. In the old days Chuck's computer had a 1K video screen. He made the disk blocks 1K to fit that.  :) 

 

  • Thanks 1
Link to comment
Share on other sites

23 hours ago, TheBF said:

Hey GDMike,  if you can get the Geneve Forth running some folks around here could probably figure out how to give you a Forth Assembler... it's only 200 lines of source code for the 9900. :) 

We just need a little inside knowledge about what vintage of Forth it is.

 

BTW screens and blocks are the same thing. In the old days Chuck's computer had a 1K video screen. He made the disk blocks 1K to fit that.  :) 

 

Talking about screens, that doesn't bother me at all, I'm not sure how-  it -  GForth?  handles graphics, I'm really really really hoping it handles the 9838 and it's modes!

That's number one.

I'm hoping it can use my tipi

And I'm hoping it can use 9995 and not emulating it by using 9900 code and registers.

In other words, I'm hoping it's really built for 9995/9938.

Without SAMS life will be different, but maybe by the time I'm learning this forth a memory option may come along,

it can Happen.??

There will be lots to learn, shoot, I've got to get ahold of the architecture in the first place + I need to read those forth txt files. (Sorry, I've been sooo very busy lately).

And like Beery said, there are some manuals to go over that explain some of that.

 

 

 

Edited by GDMike
  • Like 1
Link to comment
Share on other sites

On 3/12/2021 at 3:18 AM, HOME AUTOMATION said:

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:

I need a Geneve FORTH, (GFORTH), category made...I'm going to be setting up the geneve for a forth environment soon!

 

  • Like 1
  • Haha 1
Link to comment
Share on other sites

1 hour ago, HOME AUTOMATION said:

I might be persuaded to do such a thing... Let's see...:ponder:

 

I'll need a Genny, as I have none. Oh... and a place to set it up, and scope it out.8)

Hmm, I prefer central heating(if at all possible)!:evil:

 

     HA(Hell's Angel)|:)

So you get a Genny and suddenly a wood stove's not good enough for you?

Some people's kids ... 

:) 

 

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

...Splittin' firewood's a good way to get a hernia!☹️

 

Not to mention, the only way to get firewood to burn properly, w/o aging for 90yrs ...is to pile it high, on top of the stove. You can count the number of times it ignited, by the smoke modeling on the ceiling!?

 

And although I would never melt a woodstove down... Sometime a layman gets there first!?️?

 

:grin:

  • Haha 1
Link to comment
Share on other sites

On 3/12/2021 at 6:03 PM, mizapf said:

Just as a hint, TASM itself is written in TIC, and my Arkanoid pre-alpha-prototype is written in TIC.

 

It's no secret that I am not really a fan of Forth. But you need not be a fan of all programming languages around. ?

@mizapf The TIC on WHTech, does it contain the necessary files for the Geneve? There is only a TIC.EXE (and some .c an .h files) but isn't that EXE-file for MSDOS machines?

What editor is preferred to be used to write TIC programs?

Link to comment
Share on other sites

The TIC zip file on WHTech is the TIC source code; you'd have to build the compiler on the PC first. Here is the ready-to-use disk image for TIC. I suppose Alan will not object to have it offered here, as he already agreed to publish the source code.

 

I seem to have lost my login to WHTech; I just sent Don an E-mail.

 

I added the TASM (the version fixed by me) and QDE as a simple text editor to the disk image. Please read the manual to TIC before trying. You will most probably want to set up a script file that contains an invocation of TIC, then of TASM, then of LDR to get an executable file at the end.

tic161.dsk

 

Edit: When I said Don, I actually meant Alan Beard.

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

Hi there,

 

I’m recently getting back into the TI-99/4a environment. I was fortunate enough to procure a PEB / console / tape player and some other goodies that although I need to fully test them, appear to be working. My next goal is to obtain a Geneve 9640 system but it appears everyone is fresh out. Is there anyone out there who manufactures the Geneve cards? I am also rapidly getting a Christmas list of things I would like for my TI system but I do not have much of an idea where to search for them. Can anyone point me in the right direction?

 

I was ten when I began using the TI - thanks to my father’s forward thinking vision (both parents actually, insisted we would learn to program our own games as opposed to just playing them, of course, we did get a few anyway for Christmas ;) TI Invaders / Parsec) — first programming BASIC, then Extended BASIC and after what took much time, Assembly Language - after going to University I moved onto Apple and later Microsoft systems but from time to time mainly from the online community from users like yourselves, the 99er website, and MAME / MESS groups helped reignite my wonderful childhood memories and time spent programming. I am very grateful to this community and humbled by the collective knowledge and devotion to this part of the computing world. 

 

Thank you,

 

Tim G.

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

47 minutes ago, TIm Htown said:

Hi there,

 

I’m recently getting back into the TI-99/4a environment. I was fortunate enough to procure a PEB / console / tape player and some other goodies that although I need to fully test them, appear to be working. My next goal is to obtain a Geneve 9640 system but it appears everyone is fresh out. Is there anyone out there who manufactures the Geneve cards? I am also rapidly getting a Christmas list of things I would like for my TI system but I do not have much of an idea where to search for them. Can anyone point me in the right direction?

 

I was ten when I began using the TI - thanks to my father’s forward thinking vision (both parents actually, insisted we would learn to program our own games as opposed to just playing them, of course, we did get a few anyway for Christmas ;) TI Invaders / Parsec) — first programming BASIC, then Extended BASIC and after what took much time, Assembly Language - after going to University I moved onto Apple and later Microsoft systems but from time to time mainly from the online community from users like yourselves, the 99er website, and MAME / MESS groups helped reignite my wonderful childhood memories and time spent programming. I am very grateful to this community and humbled by the collective knowledge and devotion to this part of the computing world. 

 

Thank you,

 

Tim G.

Welcome back to the TI99 world, Tim. You asked about the Geneve, it hasn't been manufactured since the late 80's, I believe, there is an Atariage member who is currently working on a fpga rendition, but it is not ready yet. The big hang up in reproducing the motherboard to build your own is the fact that it uses a gate array that is no longer being produced, that handles much of the internal working of memory and so forth. The is at least one version, that another Atariage member had, that had logic chips instead of the array, and it may be possible to reproduce the functions of the array that way, but there is no current work that has been mentioned, in that direction. There is an outstanding emulation of the Geneve in the the Mame package, and a quick search, or even browsing the first page of topics will probably get you started. Hope this helps. Start the last 10 or 20 pages here, lots of good info all the way through though.

 

 

Edited by RickyDean
added content.
Link to comment
Share on other sites

2 hours ago, TIm Htown said:

I was ten when I began using the TI - thanks to my father’s forward thinking vision (both parents actually, insisted we would learn to program our own games as opposed to just playing them, of course, we did get a few anyway for Christmas ;) TI Invaders / Parsec) — first programming BASIC, then Extended BASIC and after what took much time, Assembly Language - after going to University I moved onto Apple and later Microsoft systems but from time to time mainly from the online community from users like yourselves, the 99er website, and MAME / MESS groups helped reignite my wonderful childhood memories and time spent programming. I am very grateful to this community and humbled by the collective knowledge and devotion to this part of the computing world. 

 

Thank you,

 

Tim G.

 

    tenor.gif.04a02d514a2e23b65430017f3f197f7f.gif

  • Like 2
  • Haha 1
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...