Jump to content
Sign in to follow this  
Omega-TI

T80XB/FCMD - Users question

Recommended Posts

9 minutes ago, RXB said:

Why is it FINALGROM can not do use this? Is it due to being a ROM Cart as they can not use the POWERUP or INTERUPT options from ROM, only GPL can do this.

Rich,

   The FinalGROM does in fact do this, and this is exactly how the AUTOCMD selection of Force Command operates, and why I love it so much.  Once you load it, it's there!  Do a reset?  BOOM!  Back in Force Command, no title or menu screens to mess with just to get to where you want to be.  It works great when running E/A5's because every reset takes you back to Force Command... it's different when exiting Extended BASIC because it's not a program, but a cartridge BIN in it's own right that replaces Force Command when it's loaded.  So, this is why I'm wanting a more fluid method to get back to Force Command.  I'm already doing it, but it requires my fading brain to remember a whole string to text to type in, which after a week or so I forget.

 

   Since I switched back to TI Extended BASIC, I no longer have any transient loading issues, but I do plan to whip out the sector editor tonight when I get back home to make the suggested alteration to the LOAD routine.  There does seem to be a timing issue upon return to Force Command about 20% of the time, which requires a manual reset, but since I am unsure of the exact culprit, and don't want to get jumped for posting in the wrong thread, I'll just live with it.

  • Thanks 1

Share this post


Link to post
Share on other sites

@Omega:

Can you try this for me:

Get into Extended BASIC

CALL INIT

CALL LOAD(-1,10)

RUN "TIPI FC.FCMDXB"           Does this reset the computer to Force Command the way you want?

Get into Extended BASIC again

CALL PEEK(-1,X)::PRINT X     Does X=10? (In other words, does the memory persist through the reset?)

Share this post


Link to post
Share on other sites
On 7/30/2020 at 12:44 PM, Asmusr said:

@jedimatt42 perhaps you can explain how it's working?

 

Force Command is a GPL cart, with a powerup routine... but 99.9% of the code is in the ROM... the powerup routine just jumps over to the ROM. 

 

from within FCMD, the XB command writes a DV80 file to TIPI.FC.FC/XB containing the command to run the parameter. locks the F18A, but otherwise does not prepare VDP.  The console's reset routine is not executed, but the FinalGROM is instructed to load a cartridge, and then the entry point address from the GPL program header is 'returned to'... GPLWS R6 is loaded with the GROM address and we branch to >0060  : https://github.com/jedimatt42/fcmd/blob/423b8ed1413a8f841407c5dba115e394184b1430/b1cp_fg99.asm#L39

(except, if XBADDR is 0, then we just reset the console)

 

Now magic happens -- if you pull the curtain back, a file exists in TIPI.FC called LOAD, and DSK1 is mapped to TIPI.FC... so the XB should find and load the file... The LOAD program parses that DV80 that was written earlier, determines if it should unmap DSK1. or let the TIPI automap feature kick in, and then RUN's that DV80 file. Since that file ends in /XB, TIPI uses xbas99 to turn it into a PROGRAM image file when the LOAD opcode tries to read it. Now we are running the program that was passed to Force Command's XB command.

 

Life is great, cause you are in XB, where you grew up. Then you become discontent and want to leave... so you run FCMDXB, an assembly program embedded in a BASIC file. 

 

The FCMDXB program is this assembly code : https://github.com/jedimatt42/fcmd/blob/423b8ed1413a8f841407c5dba115e394184b1430/FC/reload_fcmd.asm#L2

 

embedded in a XB PROGRAM image using : xas99.py --embed-xb -R -L assemblexb.lst -o FCMD.xb reload_fcmd.asm

 

That code works the same as how we got into the extended basic cartridge, instructing the finalGrom to load the FCMDG.bin, and then reset the console. The powerup routine in my GROM takes over, and you end up back in Force Command. 

 

-----------

 

The remaining intermittent issue that requires a manual reset to get back into Force Command is due to the request to load the cartridge in the finalGrom returns before the cartridge is loaded. Returns is the wrong concept.. you never actual give control to the finalGrom, you just drop a hint that you want something done, and it hears you and does it... but you have to determine completion yourself... The example from Ralph B. just waits a little bit, and then looks in ROM space to see if things are populated. I need to experiment/study the final grom source to see if I an check all the banks without disturbing the load operation. This got a lot worse when I switched to a 128k rom.

  • Like 4

Share this post


Link to post
Share on other sites
On 7/28/2020 at 10:55 AM, Omega-TI said:

It's the name of the DOS written by Jedimatt42.  I assume it uses "Force" because he's a Star Wars fan and "Command" because of the former "Command DOS" (4A/DOS).  But you'll have to ask him.

If Disney ever asks, it is because the code is in a brute force style. And I didn't know 4A/Dos was once called Command DOS, I was just thinking about MSX/MS-DOS command.com.

 

 

Share this post


Link to post
Share on other sites
2 minutes ago, jedimatt42 said:

I was just thinking about MSX/MS-DOS command.com.

Kind-of in the name of the thread in Dev, thus I assumed.

  • Thanks 1

Share this post


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

I dunno... seems kinda forced to me.

Well at the least, he kinda "forced" that one on us.

Share this post


Link to post
Share on other sites
On 7/31/2020 at 10:27 AM, senior_falcon said:

@Omega:

Can you try this for me:

Get into Extended BASIC

CALL INIT

CALL LOAD(-1,10)

RUN "TIPI FC.FCMDXB"           Does this reset the computer to Force Command the way you want?

Get into Extended BASIC again

CALL PEEK(-1,X)::PRINT X     Does X=10? (In other words, does the memory persist through the reset?)

Hi Omega: I didn't get an answer, so I thought I'd repost my question.

Share this post


Link to post
Share on other sites
3 hours ago, senior_falcon said:

Hi Omega: I didn't get an answer, so I thought I'd repost my question.

He stated in another post, that he was going to take some time off from Atariage.

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...
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...