Login [Register]
Don't have an account? Register now to chat, post, use our tools, and much more.
FSH or Fsh SHell is a extendable and compact shell for the TI-84 Plus CE calculator written in ez80 asm.

I have been working on this for about a month to get it to a state i am willing to release!

https://gitlab.com/stephentoth/fsh-shell is the gitlab repo for the project

FEATURES:
▪ Fully Functional Command Line
▪ Fsh Vars (64 words to be exact)
▪ Putting the Calculator Into Sleep Mode (APD)
▪ Fully Extendable
▪ Its own std library

This project is far from done and I am going to continue working on it in the future to add more commands and support for more things, i.e. Launching Programs

If you would like to try it out, there is a pre-compiled .8xp in the /bin folder in the repo!



TODO:
▪ Add routines for input in commands
▪ Add a module to change colors.
▪ Color Input in lib/std
▪ Add a module for launching and listing programs
▪ Write Documantation For Writing Modules
▪ Implement the rest of the FshCmd Commands
▪ User Created Shell Scripts
▪ Edit BASIC Programs
▪ ASM module
▪ MATH module
▪ FS?
This looks really promising! I cannot wait to see where this project will go. I am curious, will the modules be extendable but you have to build the shell with the features or will the shell allow importation of the features after build.
LAX18 wrote:
This looks really promising! I cannot wait to see where this project will go. I am curious, will the modules be extendable but you have to build the shell with the features or will the shell allow importation of the features after build.

For now, the modules are internal, but plans are that you'll be able to have external modules that hook into the shell. The main extendable part is the base shell with no commands and it'll be easy to implement new commands
Its been forever since i posted here Sad I haven't really worked on fsh in a while either. Mostly because I got stuck on a few details of the program.


  1. Trying to run programs. Right now the program can only run BASIC because I have struggled to distinguish BASIC from ASM. This is partly due to the fact that fsh is a program and not an app
  2. #2 I have a few ideas on this one. I think I should just use the same code from the program runners to stop the errors.


Thanks for following the development of FSH. Feel free to help working on these problems at: https://gitlab.com/stephentoth/fsh-shell/

I'm happy to be back into this forum and back into asm!
-pixiys Smile
Alright, I can help with one.

You can determine if a program is an assembly program if the first two bytes are $EF7B.

As for running assembly programs (in case you do not already know)...
Runer112 on IRC wrote:
18:45:49 [#] [Runer112] jump into the shell somewhere
18:45:41 [#] [Runer112] reallocate your shell
18:45:36 [#] [Runer112] deallocate the program that just ran
18:45:29 [#] [Runer112] deallocate the unloader stub on the stack
18:45:17 [#] [Runer112] jump to it
18:45:14 [#] [Runer112] find your shell program in memory and copy a larger unloader stub to safe RAM somewhere
18:44:59 [#] [Runer112] unloader stub:
18:44:45 [#] [Runer112] push address of unloader stub on stack and jump to usermem
18:44:31 [#] [Runer112] set up error handler
18:44:27 [#] [Runer112] allocate an unloader stub on the top of the stack
18:44:04 [#] [Runer112] deallocate your shell
18:44:00 [#] [Runer112] jump to it
18:43:56 [#] [Runer112] copy some code to safe RAM somewhere
Ive been having problems with this section of code, I can either choose asm or basic programs. both work.


Code:
 call _boot_ClearVRAM
 ;ld a,$2D
 ;ld (mpLcdCtrl),a ; Set LCD to 16bpp
 call _DrawStatusBar
 ;ld hl,(prgmNamePtr)
 ;call NamePtrToOP1
 call prgm_to_usermem
 ld hl, userMem
 inc hl
 inc hl
 ld a, (hl)
 cp a,tExtTok
 jr z, runBasicProgram ; is it a basic program THIS IS THE PROBLEM, I CAN CHOOSE ONE, BUT THE OTHER WONT WORK
 ld hl, prgmunloader;ErrCatchBASIC
 call _PushErrorHandler
 ld hl, prgmunloader
 push hl
 jp userMem ; simply call userMem to execute the program


This crashes and i don't know why.
The code can be found at https://gitlab.com/stephentoth/fsh-shell/blob/prgm/includes/lib/prgm/Prgm.asm
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 1 of 1
» All times are GMT - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement