Jump to content
jedimatt42

Force Command ver 1.28 : kinda like command.com from 1985 (no TIPI required!)

Recommended Posts

Updated Force Command 1.25. 

 

This adds routines to read the TIPI mouse, and support a mouse pointer in 80x30 F18A text mode. For the purpose of allowing FCMENU to use these routines and support click to launch. 

 

Mouse pointer only works in F18A mode.

 

It felt pretty slick to boot into ForceCommand, where my AUTOCMD launches FCMENU. I click on a script entry that maps DSK1 to TI-Artist, and then XB DSK1.LOAD, and then in TI-Artist the mouse also works (due to prior work) 

 

Improvements... I should probably hide the mouse pointer until it moves... and provide next and back screen elements to click on if your menu has multiple pages.... next weekend.

  • Like 6
  • Thanks 1

Share this post


Link to post
Share on other sites

Hi @jedimatt42,

 

today I made the update from ForceCommand 1.17 to 1.25 but my autocmd file does not work properly.

 

It starts good and I can select the EDIT80 program, but if I select the menu item "TI System Info" or simply select "X for Quit" 
ForceCommand shows the message "Error, label already defined at line: 8553". And the system blocks with the tipi LED is on.

After a reset all is good again.

So I tried some other versions. My problem occures in version 1.24.

IMG_4222.thumb.JPG.b5853fa5c7a61bfde26f354fbb1da511.JPG

The line number 8553 is always the same.

 

In version 1.22 my autocmd works without a problem, the same as in version 1.17.

 

Do I have to change something in my autocmd file?

 

Maybe I will make a shorter autocmd file and using the new fcmenu function for my menu items.

 

p.s. I have a F18A and a SAMS card in my system.

My autocmd file is still under construction: AUTOCMD

 

Thank you for your help!

  • Like 3
  • Thanks 1

Share this post


Link to post
Share on other sites

@wolhess - just a couple tips reviewing the AUTOCMD code...

 

A80:
... 
load TIPI.AUTOCMD

"load" is the command for EA5 binaries... this may appear to work if the file type checking isn't there... as once I start far enough down the load code path, if it fails, the console is reset, which triggers re-entering FC and it runs your new AUTOCMD script. 

A better choice of command for this would be 'exit', as it resets the console on purpose, and if the GROM for force command was loaded, then FC is re-entered, and the script is picked up again.   (you do this in A40: ) as well. 

 

INFO:
...
AUTOCMD

GOTO BEGIN would be a better choice here. While you can run scripts from the script, the calling script details (line number, file name, PAB) are on the stack so when a script completes, it can return to where it left off in the calling script. Doing this repeatedly will eventually run out of stack and corrupt environment variables, and then label data, etc... GOTO BEGIN will instead, will just reset the existing PAB to the record number that the BEGIN label is on, and resume execution. 

 

I am still looking for the root cause, more later...

 

Some simple GOTO behavior seems to be broken as well... 

 

 

  • Like 2
  • Thanks 1

Share this post


Link to post
Share on other sites

Update 1.26 - goto fixed, along with a couple other things.

 

@wolhess your AUTOCMD seems to work for me as expected with these fixes.

  • Like 3
  • Thanks 1

Share this post


Link to post
Share on other sites
11 hours ago, jedimatt42 said:

@wolhess - just a couple tips reviewing the AUTOCMD code...

 

A80:
... 
load TIPI.AUTOCMD

"load" is the command for EA5 binaries... this may appear to work if the file type checking isn't there... as once I start far enough down the load code path, if it fails, the console is reset, which triggers re-entering FC and it runs your new AUTOCMD script. 

A better choice of command for this would be 'exit', as it resets the console on purpose, and if the GROM for force command was loaded, then FC is re-entered, and the script is picked up again.   (you do this in A40: ) as well. 

 

INFO:
...
AUTOCMD

GOTO BEGIN would be a better choice here. While you can run scripts from the script, the calling script details (line number, file name, PAB) are on the stack so when a script completes, it can return to where it left off in the calling script. Doing this repeatedly will eventually run out of stack and corrupt environment variables, and then label data, etc... GOTO BEGIN will instead, will just reset the existing PAB to the record number that the BEGIN label is on, and resume execution. 

 

I am still looking for the root cause, more later...

 

Some simple GOTO behavior seems to be broken as well... 

 

 

Thank You for your tips, I will change my autocmd as you recommended.

Share this post


Link to post
Share on other sites
On 8/7/2021 at 7:50 AM, jedimatt42 said:

Update 1.26 - goto fixed, along with a couple other things.

 

@wolhess your AUTOCMD seems to work for me as expected with these fixes.

@jedimatt42, Yes my autocmd is workis again as before. 

 

Once again, that was a super quick fix! Many Thanks

  • Like 3

Share this post


Link to post
Share on other sites
On 7/25/2021 at 6:24 PM, jedimatt42 said:

Updated Force Command 1.25. 

 

This adds routines to read the TIPI mouse, and support a mouse pointer in 80x30 F18A text mode. For the purpose of allowing FCMENU to use these routines and support click to launch. 

 

Mouse pointer only works in F18A mode.

 

It felt pretty slick to boot into ForceCommand, where my AUTOCMD launches FCMENU. I click on a script entry that maps DSK1 to TI-Artist, and then XB DSK1.LOAD, and then in TI-Artist the mouse also works (due to prior work) 

 

Improvements... I should probably hide the mouse pointer until it moves... and provide next and back screen elements to click on if your menu has multiple pages.... next weekend.

Finally got around to trying this out.  (Was waiting for all the hardware pieces to come together.).  Your demo on this week's Zoom meeting and comments a while back made me jump on it.  I completely missed the "FCMD.dsk" file when upgrading.  Found the commands on your Github page:  https://github.com/jedimatt42/fcmd/tree/master/example/gcc/fcmenu

 

Thoughts?

OK,  you are a crazy, mad programmer!  My TI-99/4A with the FCMENU just blows me away!

 

A real Mouse driven menu system!  Easy to set up nested menu files.  What more can I say!

 

Thanks jedimatt.

 

  • Like 4
  • Thanks 1

Share this post


Link to post
Share on other sites

Update 1.27

 

* fix wildcarding - was treating filenames without as a substring search, is now a literal match
* extend copy command to allow renaming file during copy operation.
* fix odd end of line behavior in ed
* add line joining in ed when backspacing left from column 1 or pressing ctrl-j to join forward.
* add ctrl-s and ctrl-d to jump to beginning and end of line respectively
* changed ed save to ctrl-w 'write file' so ctrl-s could be used from jump to beginning of line - there is precedence for this in other software.
* changed command line entry to use `ed` codebase for consistency and (horizontal) scrolling entry on 40 column displays.

 

download in post #1 ( or you can just use the attachments list for this thread )

  • Like 5

Share this post


Link to post
Share on other sites
12 hours ago, jedimatt42 said:

Update 1.27

 

* fix wildcarding - was treating filenames without as a substring search, is now a literal match
* extend copy command to allow renaming file during copy operation.
* fix odd end of line behavior in ed
* add line joining in ed when backspacing left from column 1 or pressing ctrl-j to join forward.
* add ctrl-s and ctrl-d to jump to beginning and end of line respectively
* changed ed save to ctrl-w 'write file' so ctrl-s could be used from jump to beginning of line - there is precedence for this in other software.
* changed command line entry to use `ed` codebase for consistency and (horizontal) scrolling entry on 40 column displays.

 

download in post #1 ( or you can just use the attachments list for this thread )

Thanks, Matt!

Tried the "copy" command!  IT WORKS!

Will play with the other changes later on!

 

DG

  • Like 2

Share this post


Link to post
Share on other sites

  

A note on modifying the F18A palette using the PALETTE command for future reference of anyone else messing around with a minor change and needing a starting point for a quick tweak.  Though I know most folks here would have no trouble figuring this out for themselves. 

 

The default 9918 palette values can be set as follows (or by using PALETTE /R but these are the values which would serve as the basis for small-scale changes).

PALETTE 000 000 2C3 5D6 54F 76F D54 4EF F54 F76 DC3 ED6 2B2 C5C CCC FFF

Where each value consists of three nibbles signifying (very straightforwardly) 12-bit RGB colour in the RGB order with a value from 0 to F. 

 

Such that the values actually specified there are the 9918 palette of

Trans  Black  MGreen  LGreen  DBlue  LBlue  DRed   Cyan   MRed   LRed   DYellow  LYellow  DGreen  Magenta  Gray   White
000    000    2C3     5D6     54F    76F    D54    4EF    F54    F76    DC3      ED6      2B2     C5C      CCC    FFF

And such that the sort of minor modifications to the palette which are generally most useful (like changing Cyan to something else, or swapping Black with White and Grey, or what have you) can be achieved by modifying or swapping the relevant values in that default set.

 

Note that the values specified must be upper case.

 

For example, here's a really boring alternate universe TI-99 where Cyan (4EF) has been replaced with a light grey (EEE):

 

image.png.c1490e6ea80a6eae3d2f49947c4edb16.png

 

 

Thanks for adding that feature, Matt!

 

 

  • Like 4
  • Haha 1

Share this post


Link to post
Share on other sites
2 hours ago, pixelpedant said:

  

A note on modifying the F18A palette using the PALETTE command for future reference of anyone else messing around with a minor change and needing a starting point for a quick tweak.  Though I know most folks here would have no trouble figuring this out for themselves. 

 

The default 9918 palette values can be set as follows (or by using PALETTE /R but these are the values which would serve as the basis for small-scale changes).

PALETTE 000 000 2C3 5D6 54F 76F D54 4EF F54 F76 DC3 ED6 2B2 C5C CCC FFF

Where each value consists of three nibbles signifying (very straightforwardly) 12-bit RGB colour in the RGB order with a value from 0 to F. 

 

Such that the values actually specified there are the 9918 palette of

Trans  Black  MGreen LGreen DBlue  LBlue  DRed   Cyan   MRed   LRed   DYello LYello DGreen Magent Gray   White
000    000    2C3    5D6    54F    76F    D54    4EF    F54    F76    DC3    ED6    2B2    C5C    CCC    FFF

And such that the sort of minor modifications to the palette which are generally most useful (like changing Cyan to something else, or swapping Black with White and Grey, or what have you) can be achieved by modifying or swapping the relevant values in that default set.

 

Note that the values specified must be upper case.

 

For example, here's a really boring alternative universe TI-99 where Cyan has been replaced with a light grey (EEE):

 

image.png.c1490e6ea80a6eae3d2f49947c4edb16.png

 

 

Thanks for adding that feature, Matt!

 

 

Can I copy this awesome info into my wiki? 

  • Like 1

Share this post


Link to post
Share on other sites
On 10/3/2021 at 4:18 PM, dgrissom said:

Finally got around to trying this out.  (Was waiting for all the hardware pieces to come together.).  Your demo on this week's Zoom meeting and comments a while back made me jump on it.  I completely missed the "FCMD.dsk" file when upgrading.  Found the commands on your Github page:  https://github.com/jedimatt42/fcmd/tree/master/example/gcc/fcmenu

 

A question?  Is there any way through a menu option to exit fcmenu?  (I know "Back" will exit.)  I am trying to use it to go to a specific directory to do wonderful things (load EA5 games 🙂  ).  It will do it but always return to the menu. 

 

Thanks

DG

Share this post


Link to post
Share on other sites

It seems to me that for proper function, the FG99 command requires that any file name provided be given in upper case, regardless of the case of the file on the FinalGROM SD card. 

 

For example, given a file named (in lower case) "fbforth.bin" on the FinalGROM SD

FG99 FBFORTH 

succeeds for me, while

FG99 fbforth

fails, with the FinalGROM read light left blinking and "fbforth.bin" not loaded. 

 

Probably, this is a limitation of the FinalGROM's approach to file names rather than of FC's. 

 

But perhaps a note to this effect could be added to the wiki?

 

Share this post


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

Probably, this is a limitation of the FinalGROM's approach to file names rather than of FC's. 

Actually, this is  a WINDOW's file-sys limitation...

 

            NTFS.thumb.jpg.2add781e0a802d4ebfd66e6d589ee205.jpg

 

:ponder:

 

    P.S. WINDOW's dialog-box, seems to be a little confused too(sometimes it's better to look rather than recall).:twisted:

Share this post


Link to post
Share on other sites
On 10/20/2021 at 11:28 PM, pixelpedant said:

It seems to me that for proper function, the FG99 command requires that any file name provided be given in upper case, regardless of the case of the file on the FinalGROM SD card. 

 

For example, given a file named (in lower case) "fbforth.bin" on the FinalGROM SD

FG99 FBFORTH 

succeeds for me, while

FG99 fbforth

fails, with the FinalGROM read light left blinking and "fbforth.bin" not loaded. 

 

Probably, this is a limitation of the FinalGROM's approach to file names rather than of FC's. 

 

But perhaps a note to this effect could be added to the wiki?

 

I think the protocol to talk to the FG99 requires that they are uppercase.... I should just uppercase them for you. In general though, you'll find that Force Command respects the case-sensitivity of any underlying TI things....

 

 

 

  • Like 2

Share this post


Link to post
Share on other sites
On 5/6/2019 at 8:13 PM, jedimatt42 said:

Force Command - a command line OS in progress by Jedimatt42 for the TI-99/4A.   You can informally call it Jedimatt42's DOS, or Matt's DOS. However its name is 'Force Command'  

 

ver 1.28 - October 24th, 2021 - forcecmd_1.28.zip

 

- add some support for introspecting vdp memory map (as setup by ForceCommand) so executables can do discovery addresses for direct manipulation. 

- add VIRGIL99 ealry days GEMINI protocol browser

- fix a memory allocation bug when multiple executables loaded want SAMS.

 

Matt,

I missed the first part of yesterday's Zoom Meeting demo of VIRGIL99.  Screen is kind of crazy when I start it from the command line.  Are there required parameters, setup, paths, etc.?

 

What I saw yesterday looks like a powerful addition to Force Command and my TI!

 

Thanks DG

 

BTW.  I am playing with a couple of PC based Gemini browsers to try and learn the ropes.

Share this post


Link to post
Share on other sites
27 minutes ago, dgrissom said:

Matt,

I missed the first part of yesterday's Zoom Meeting demo of VIRGIL99.  Screen is kind of crazy when I start it from the command line.  Are there required parameters, setup, paths, etc.?

 

What I saw yesterday looks like a powerful addition to Force Command and my TI!

 

Thanks DG

 

BTW.  I am playing with a couple of PC based Gemini browsers to try and learn the ropes.

It doesn't require anything on storage yet.

 

Does require SAMS, TIPI and F18A.

 

If run with no arguments, just VIRGIL99, it should show a built in page.  

 

Crazy like random garbage on the screen? I've seen that with specific page content. But I would expect it to show the built in or the pages at my server just fine. Hmmm.  It's early days...

 

I'll see if I can reproduce this. I wonder if I my heap and stack are meeting each other...

Share this post


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

It doesn't require anything on storage yet.

 

Does require SAMS, TIPI and F18A.

 

If run with no arguments, just VIRGIL99, it should show a built in page.  

 

Crazy like random garbage on the screen? I've seen that with specific page content. But I would expect it to show the built in or the pages at my server just fine. Hmmm.  It's early days...

 

I'll see if I can reproduce this. I wonder if I my heap and stack are meeting each other...

Have all required hardware.

I "pathed" my FCMD directory (contents shown on pic).

I ran the VIRGIL99 as a direct file within the directory at the prompt "$ VIRGIL99"

Screen doesn't change much.  Note the vertical letters in the photo. Computer is still responsive but commands fail (corrupted)?

 

img1a.thumb.jpg.c157c1430c98346367d0e13e22863689.jpg.

 

DG

 

  • Like 1

Share this post


Link to post
Share on other sites
40 minutes ago, dgrissom said:

Have all required hardware.

I "pathed" my FCMD directory (contents shown on pic).

I ran the VIRGIL99 as a direct file within the directory at the prompt "$ VIRGIL99"

Screen doesn't change much.  Note the vertical letters in the photo. Computer is still responsive but commands fail (corrupted)?

 

DG

 

Got it!  Used TI99Dir to open the FCMD.DSK.  copied them to my FCMD directory(vs letting TIPI take care of it.  The files were in V9T9 format.  duh.

Screen shows Virgil99 built in page.   Off to the races (or crashes).

DG

  • Like 2

Share this post


Link to post
Share on other sites

Oh, that's a nice bug! I think force command tried to run the DIS/FIX file as a script... 

 

And I guess I should test my DSK... I assumed TIPI would do the right thing with it... :(.   

 

Thanks for testing @dgrissom

Share this post


Link to post
Share on other sites
Oh, that's a nice bug! I think force command tried to run the DIS/FIX file as a script... 
 
And I guess I should test my DSK... I assumed TIPI would do the right thing with it... :(.   
 
Thanks for testing [mention=66916]dgrissom[/mention]
He didn't use tipi he used tidir

Sent from my LM-V600 using Tapatalk

  • Like 1

Share this post


Link to post
Share on other sites
Just now, arcadeshopper said:

He didn't use tipi he used tidir

Sent from my LM-V600 using Tapatalk
 

Yep,  was my bad  🙂

 

Reinstalled the TI99Dir recently.  Forgot to configure it to save as TIFILES format only.

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