Jump to content
jedimatt42

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

Recommended Posts

Update 1.16 - 

 

Note, I changed the names of the RPKs.  FCMD.RPK is good with current MAME, and Js99er as @mizapf informed. Some folks are still on MAME 224 for reasons, so the ROM only RPK is called FCMD-MAME-224.RPK now.

 

I changed the backspace handling. It wasn't very TI like, since we don't really have a backspace key.

 

Now, by default, when in insert mode, left arrow is left arrow. If you set environment variable BACKSPACE=TRUE, then left arrow becomes backspace. In overwrite mode, left arrow is always left arrow. Insert and overwrite mode are toggled by pressing F2. Solid cursor is insert mode, underscore cursor is overwrite mode. 

 

Made command line entry consistent in this regard with the ED command.

 

ALSO Hopefully I fixed the Yamaha VDP detection. It at least still works in MAME and is consistent with the 9938 documentation.

Edited by jedimatt42
  • Like 3

Share this post


Link to post
Share on other sites

Update 1.17 - small change to ED editor, when in insert mode, pressing enter should move whatever is after your cursor down to a new line, shifting all lines below down a line. However the last line was being lost. 1.17 fixes that.

  • Like 2

Share this post


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

Update 1.17 - small change to ED editor, when in insert mode, pressing enter should move whatever is after your cursor down to a new line, shifting all lines below down a line. However the last line was being lost. 1.17 fixes that.

 

I re-uploaded the zip... somehow I didn't get 1.17 into the 1.17 zip...

Share this post


Link to post
Share on other sites

Every time I change from insert to overwrite mode using F2, it reverts back to insert mode after each FC command. Is there a way to make overwrite mode stick?

Share this post


Link to post
Share on other sites

Yes, but you also have destructive backspace. In FC, the left arrow is not destructive, and there is no backspace key (is there one?), so it gets annoying when typing mistakes are made and the insert mode is on... 

Share this post


Link to post
Share on other sites
1 hour ago, arcadeshopper said:

Isn't this how every os works?

Sent from my LM-V600 using Tapatalk
 

 

That is what command.com does. 

I don't even think about it on a modern keyboard, just stretch that pinky out to hit the INSERT key. 

 

I suspect @Vorticon is doing something repetitive, that might be in need of a better solution...  Like line copying in the editor, so a quick script can be made... or some command that would be improved if it supported wildcards.

 

  • Like 1

Share this post


Link to post
Share on other sites
1 minute ago, Vorticon said:

Yes, but you also have destructive backspace. In FC, the left arrow is not destructive, and there is no backspace key (is there one?), so it gets annoying when typing mistakes are made and the insert mode is on... 

Check out this post, I think it helps: 

 

Share this post


Link to post
Share on other sites

Great tool! Only very recently discovered it (Jedimatt42 C lib for speech was in the Github of Force Command, and therefore found it). Works great.

As this is a long thread, will the Wiki on the Github suffice to get the most out of it? Or is there an essential post buried in this thread somewhere?

Share this post


Link to post
Share on other sites

Small suggestion regarding the build.sh script:

Please say so if I missed something, but would it be possible to edit all paths to tools and also the SSH connection parameters to the TIPI on one place somewhere in the building script? Now think I edited all references just going from the error messages I got, but would be handy to do that in one place.

 

For the rest: great work! Triggers me to make an own experiment with the API (altough I did read your warning not to rely on it until version 2.0 ;-) )

Edited by xahmol

Share this post


Link to post
Share on other sites

I guess I think of the build script as MY distribution builder. You should be able to just use make. 

 

I will separate the concerns better and document... The zip and rpk building should be moved into the Makefile. The rest shouldn't really be checked in at all.

  • Like 1

Share this post


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

I guess I think of the build script as MY distribution builder. You should be able to just use make. 

 

I will separate the concerns better and document... The zip and rpk building should be moved into the Makefile. The rest shouldn't really be checked in at all.

Check. But I actually liked the build script to copy everything to Classic99 and TIPI automatically ;-)

  • Like 1

Share this post


Link to post
Share on other sites
10 hours ago, xahmol said:

Check. But I actually liked the build script to copy everything to Classic99 and TIPI automatically ;-)

Warning, I removed build.sh and replaced it with deploy.sh

I moved all the build-y bits into the Makefiles, all the zipping, and rpk'ing, and stuff... deploy.sh just does copying of stuff, but is now parameterized with environment variables. And example wrapper script shows up in the README.md.

 

My wrapper is called build.sh, and added to .gitignore. 

 

deploy.sh copies more of the bits to TIPI than it used to.

 

While you are playing around with speech, there is a ForceCommand executable called SAY that takes a DISPLAY VARIABLE 80 file, containing the hex output from pywizard as a command line argument, and will 'speak' the data. It should be pretty relaxed about whitespace, but hex-pairs must be together on the same line, as in don't word wrap in the middle of a pair. just pipe the hex output from pywized to something like:

| fold -s -w 24

there is a pywiz.sh and it is used in the say/Makefile to use xdm99 to compose the DISPLAY VARIABLE 80 TIFILE

 

(since you might be rummaging around in the 'unreleased' bits)  :)

  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites

Super! And did encounter the pywiz.sh indeed already, was the one that took me the longest to find where that path error I got came from ;-) Have python_wizard at a slightly different path than you have.

And of course I won't hold you liable for anything that breaks by me using your unreleased stuff.....

Edited by xahmol

Share this post


Link to post
Share on other sites

Checked out the new makefiles and scripts. Maybe it is work in progress (so maybe I just was too early), but encountered a few small things:

  • main Makefile, line 12: VER:=$(shell grep "#define APP_VER" b0_main.h | cut -d '"' -f2):
    Changed that to VER:=$(shell grep "\#define APP_VER" b0_main.h | cut -d '"' -f2)
    So escaped the #, as at least at my side I got an error as my WSL Ubuntu install ignored everything after the # as comment, including the final ) (which gave the error message).
    Might be that this different behaviour is caused by me using this under Windows 10 WSL (using Ubuntu). Had two other issues that I had to solve with dos2unix as well (encountered this: https://askubuntu.com/questions/966488/how-do-i-fix-r-command-not-found-errors-running-bash-scripts-in-wsl )
  • In the deploy.sh script now all pathnames are parameterised, apart from the last two scp commands to copy to TIPI (the other SCP commands to TIPI are parameterised allready)
  • Makefile and pywiz.sh of the SAY example are not parameterised yet, needed to change paths to python_wizard and Classic99 DSK1 dir still
  • Regarding the Makefile of that SAY example: it includes a copy to that Classic99 DSK1 dir which I would now expect in the deploy script, not here

For the rest works great, so many thanks! (and learning more about Linux scripting under WSL Ubuntu along the way ;-) )

 

Edited by xahmol
  • Like 1

Share this post


Link to post
Share on other sites

Hmmm.   I use a VM, instead of WSL.  But Make and Bash should be no different... Odd the Version extraction worked for me and not you. 

 

I missed the pywiz, thanks... 

 

The paths to copy onto TIPI are not parameterized on purpose. That is where the files should go. 

 

I'll take another swing at it today.

Edited by jedimatt42
  • Like 1

Share this post


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

The paths to copy onto TIPI are not parameterized on purpose. That is where the files should go. 

Sorry, it is indeed not the path, but the hostname, typed too quickly. See the hightlights in yellow below (and compare to parameterised hostname in the first three lines):

  scp FC/LOAD [email protected]${TIPI_HOST_NAME}:/home/tipi/tipi_disk/FC/LOAD
  scp FC/FCMD [email protected]${TIPI_HOST_NAME}:/home/tipi/tipi_disk/FC/FCMD
  scp FC/FCMDXB [email protected]${TIPI_HOST_NAME}:/home/tipi/tipi_disk/FC/FCMDXB
  scp example/gcc/ftp/FTP [email protected]:/home/tipi/tipi_disk/FC/BIN/
  scp example/gcc/say/SAY [email protected]:/home/tipi/tipi_disk/FC/BIN/

 

17 minutes ago, jedimatt42 said:

Odd the Version extraction worked for me and not you. 

Well, I Googled the error message I got and got this: https://stackoverflow.com/questions/53836858/shell-function-in-gnu-makefile-results-in-unterminated-call-to-function-shel
So I am apparently not having the only environment needing that # to be escaped.

Edited by xahmol
  • Like 1

Share this post


Link to post
Share on other sites

Thanks Matt, see you updated on Github for these changes. Did a make clean and then a rebuild with my own build.sh script containing all path exports, and now works flawlessly (after realising to place the make command also in the build script as the pywiz.sh needs also the path export).

  • Like 1

Share this post


Link to post
Share on other sites

Feature request: I have a newly installed F18A, and sometimes programs that take advantage of its extended features leave the color palette messed up, and the usual soft reset doesn't reset the extended F18A registers.

 

Could Force Command reset the F18A if it detects it is present at startup?  There is some sample code in this thread.

 

Edited by webdeck
  • Like 1

Share this post


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

Feature request: I have a newly installed F18A, and sometimes programs that take advantage of its extended features leave the color palette messed up, and the usual soft reset doesn't reset the extended F18A registers.

 

Could Force Command reset the F18A if it detects it is present at startup?  There is some sample code in this thread.

 

It does already doesn't it?

Share this post


Link to post
Share on other sites
1 minute ago, jedimatt42 said:

It does already doesn't it?

Oh, no I guess I don't cover the palette. Yes, I will implement this. It is my intent that it reset everything.

  • Like 3

Share this post


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

Oh, no I guess I don't cover the palette. Yes, I will implement this. It is my intent that it reset everything.

Thank you so much!  Force Command is awesome.

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