Jump to content
IGNORED

T80XB/FCMD - Users question


Omega-TI

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

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

 

 

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

Link to comment
Share on other sites

  • 1 month later...

Omega wrote: What are the odds of ever seeing a modified version of Extended BASIC, custom configured to work with Force Command?  I only see couple of modifications needed, for example an altered BYE command and the elimination of the DSK1.LOAD routine.

*****************************************************

Within the awesomeness of Force Command environment working with the TIPI and the FinalGROM, I personally find that the DSK1.LOAD routine is not needed, or wanted as it gets in the way and slows one down, granted not by much, but users are different and like different things, if an author thinks it's silly, they don't have to support it.  When I type XB progname it loads the program, which is really cool, but when I want to go straight to the XB editor I really don't want to have to hold down the space bar each and every time.

As for the BYE command, Extended BASIC is in the FinalGROM, so it does NOT "automagically" return to Force Command upon exit like with the FCMDXB routine within a program called by Force Command.  So, a modified BYE would load Force Command instead of simply returning one to the title screen where one has to manually reset the FinalGROM and then reload Force Command.  This would make it "seamless", quicker and more like BASICA/GWBASIC returning to MSDOS in the past.

******************************************************

I switched to RXB just recently, so I'm not locked in, but whatever version of BASIC eventually employs a modified BYE command and lets me enter and exit the BASIC editor with as little fuss as possible will be the version I adopt and stick with.

***********************************************************

Jedimatt responded: As it stands, a user could type RUN "TIPI FC.FCMDXB" instead of BYE.  But that isn't keyboard efficient. 

---------------------------------------------------------------------------------

XB 2.8 G.E.M. can be modified with user preferences to change colors in the edit mode, font, autorun behavior, and ForceCommand on BYE.

Probably the easiest is to make a 1 line LOAD program. Let's say you want to use dark blue on gray, font6, defeat autorun of LOAD, and activate ForceCommand on BYE.

10 CALL LOAD(9456,78,6+128+64)  Save this as DSK1.LOAD

When XB 2.8 G.E.M. starts up it looks for a load program, finds this and runs it. With these settings, the next time you select any of the XB options at the menu (choices 2 - 8), LOAD will be suppressed (unless you hold down a key). Quit behaves normally. BYE closes open files and then tries to RUN "TIPI.FC.FCMDXB"

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

You have another way with RXB instead of DSK#.LOAD you could use USER routine loading a DV80 file.

Of course you have 2 ways to do this, put a XB LOAD program line 10 CALL USER("DSK#.FILENAME") to run that DV80 USER file or upon RXB Main Menu hit COMMA key.

This would load "DSK1.FILENAME" DV80 USER file and there are no line numbers so runs faster then DSK1.LOAD as it reads only first line of that DV80 file.

No need to initialize memory or set up pointers or do SCAN like XB does.

First line of that DV80 file could be CALL LOAD(9456,78,6+128+64) and besides that DV80 file could be 1 line or 30,000 lines would take the same amount of time to run first line.

 

Someone should check this on with Force Command as USER does not have line numbers and the same commands you type in from XB edit mode run from USER.

(Actually USER in RXB is edit mode with a key scan routine to load DV80 files.)

Edited by RXB
missing text
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...