Omnimaga

Calculator Community => Other Calc-Related Projects and Ideas => TI Z80 => Topic started by: Eeems on September 20, 2009, 06:34:03 pm

Title: BASIC Shell
Post by: Eeems on September 20, 2009, 06:34:03 pm
ok, I've had this idea for a BASIC shell...so yeah

list of features
Folders
Code: [Select]
"foldername"
:"appvarname.var"
:"Groupname.grp"
:"foldername"
::"textfilename.txt"
::"programname.prg"
I still have more features to document, I'll add them later

tell me what you think
Title: Re: BASIC Shell
Post by: DJ Omnimaga on September 20, 2009, 06:48:22 pm
Well, to be honest, I am not really a big fan of BASIC shells, and I am sure most people would share the same opinion of them. Heck, even on Omnimaga, which is open minded toward most projects, BASIC or ASM, didn't welcome BASIC shell projects too well in the past, simply because most people are sick to death of seeing Ticalc archives being flooded with thousands of them, making it harder to find more useful basic tools such as ASM utilities/hacked tokens stuff.

Else, I think it would be cool to have everything related to program management in one single place, like in MirageOs. The ability of unlocking programs even if they're not Mirage/DCS compatible would be cool, too. Same for stuff such as copying files/duplicating them or even compiling ASM programs (those containing AsmPrgm:hexcodes).

One other thing I would also like is a folder system that won't get deleted when RAM is cleared and as less RAM usage as possible during shell execution.

Everything should also run at relatively fast speed, while not being too fast, to make sure it's easy
Title: Re: BASIC Shell
Post by: Eeems on September 20, 2009, 07:03:37 pm
yeah, I know
another thing I like about my idea is the running programs that are in groups :D
and I know how to do it :P
EDIT: oh yeah, take a look at this (it's my folder viewer)
this is only a demo displayer, displaying random files, I haven't made the program that grabs the real files
Title: Re: BASIC Shell
Post by: DJ Omnimaga on September 20, 2009, 08:47:12 pm
Looks nice :)
Title: Re: BASIC Shell
Post by: Eeems on September 21, 2009, 06:11:38 pm
ok, here is what I have finished
it will grab the list from what is on the calculator, there is no scrolling though, or folders...all the features work to some degree, but you can't do anything to the programs/appvars/groups/textfiles yet, and you also can't tell if programs are text files and etcetera
also I'm trying to keep it as small as possible, but as graphical as possible, so yeah, it might end up big...
also I am still working on the folder system, and yeah, there is an error with my string fixing from when you add more programs or take some away due to the detection....
but yeah, you can select folders though and the path will change, but I haven't finished with the whole folder thing
I'll have to finish documenting the vars later too...
oh yeah on a side note, I also made a mouse routine, and a click routine for when you select things, it makes the objects part of L3 and yeah, it works really well :D
also it's much smaller then hard coding it :P
Title: Re: BASIC Shell
Post by: DJ Omnimaga on September 21, 2009, 06:16:52 pm
wow looks pretty nice :)

I also like the mouse idea. Make sure only mouse movement is ran in its loop, though and have keypresses (like 2nd/alpha) exit the loop to execute their functions. That way it remains fast. Also suggestion: Some people don't use DCS because of the inability to disable the mouse without a plugin. Will you add the ability to switch to regular selection with arrows and shortcuts too? I think it would be a good idea to reach a bigger audience.,
Title: Re: BASIC Shell
Post by: Eeems on September 21, 2009, 06:25:48 pm
the only problem with that would be that it would make the code huge, so yeah, not really an option....although if I made a modded version of the mouse routine that would work (instead of mouse it would be something else)
oh yeah, actually you can use the number keys instead of the mouse in dcs...so yeah...
and yes the loop is small, I'll upload the program actually

EDIT: oh yeah, I need a name for this, so if anybody has a suggestion please post it
Title: Re: BASIC Shell
Post by: DJ Omnimaga on September 21, 2009, 06:38:07 pm
oh wow didn't knew that about DCS, I was sure you needed to install that additional RAM program that got deleted on RAM clears/crashes

Anyway gonna try it soon. As for name I don't have much idea yet aside from the thing I said on IRC a few mins ago. I'll try to find more ideas, though x.x

Mhmm what about CanadOS? (Canada OS) :P
Title: Re: BASIC Shell
Post by: Eeems on September 21, 2009, 06:42:11 pm
lol hmm, I'll add it to the list :P
yeah it was added to the most recent version that is out there
the external thing was for moving the mouse between the things, but yeah, :)
take a look at the documentation and you will see it

EDIT: oh yeah, here is the program so far for all of it in case you want to play around with it
Title: Re: BASIC Shell
Post by: DJ Omnimaga on September 21, 2009, 08:42:21 pm
wow awesome so far, trying it right now. Is/will there be functions to change the mouse cursor speed, btw?

Also btw if I quit the program, even by clicking the X, when I run it again I get ERR:UNDEFINED until I delete everything except the programs and the hacked pic
Title: Re: BASIC Shell
Post by: Eeems on September 21, 2009, 08:48:30 pm
actually yes there is :D I have it set though in Arose, just play around with the last two items in L4, first is how soon it gets to that speed, the second is how fast it will go
oh yeah, I forgot to add a program to it, here is the zip

and here is the source with comments:
http://eeems.pastebin.com/f69989c0b

EDIT: some fixes to the main file storing, and such, so new zip

EDIT2: hmm, did you see what was undefined? it was probably the program I forgot
Title: Re: BASIC Shell
Post by: DJ Omnimaga on September 21, 2009, 10:30:18 pm
actually yes there is :D I have it set though in Arose, just play around with the last two items in L4, first is how soon it gets to that speed, the second is how fast it will go
I see no difference when changing the values
Title: Re: BASIC Shell
Post by: cooliojazz on September 21, 2009, 11:56:34 pm
Darn, you totally beat me to this!  I just finally started using Celtic III today, and the first thing I thought of was making a basic shell, which I worked on all today at school.  It has a good bit of functionality, but it doesn't look near as nice as yours. :P

Yours looks great though.  If you finish it, I'll definately use yours.

BTW, very interesting way of acessing the programs.  For mine, I stripped all the appvars from the string, then indexed the programs in the string.
Title: Re: BASIC Shell
Post by: Eeems on September 22, 2009, 12:56:57 am
well I index all the items in the list actually, I'm not focusing on only programs though, I want to make it so that you can effect all the varables on the calc, including groups.
thanks btw, I was focusing on looks and functionality btw :P
maybe you'll learn from my code and improve upon it :P
oh yeah, another reason I do what I do with my programs and such it because of my folder system, which is still on the drawing board, but I hope to try to implement it by tomorrow :P
Title: Re: BASIC Shell
Post by: Geekboy1011 on September 22, 2009, 01:13:20 pm
wow this looks amazing eeems ... random question will this launch mirage os games or ion games as well?
(i apologize for a n00bish question but im curios as to if it can be done as well
Title: Re: BASIC Shell
Post by: DJ Omnimaga on September 22, 2009, 02:03:25 pm
mhmm I am not sure if this would be possible, though, unless Celtic III allows such things. My guess, though, is that if Celtic III has a command to detect if a program is in ASM or not, the shell could simply try running the program with Asm(. In some cases, this might work. I remember Galaxian could be ran from home screen with Asm(. ZTetris caused RAM clears, though.

Also, another thing I was wondering, I think the shell should save every setting, variable used like cursor position and stuff like that into an appvar or a big list that would optionally get archived before any attempt at running a program, and get as much RAM freed up before running it because some BASIC games will most likely require all the RAM or will cause variable conflicts with the shell the next time you run it.
Title: Re: BASIC Shell
Post by: Eeems on September 22, 2009, 05:56:46 pm
that isn't possible for a BASIC program, but it will be able to do noshell ASM, when I get to that
also, I almost finished the folder system, so far so good :D just a little more code to add all the relevant non-system items to the main folder (faster then skipping all the system vars in the displaying process)
screenshot/zip soon
Title: Re: BASIC Shell
Post by: simplethinker on September 22, 2009, 06:12:44 pm
that isn't possible for a BASIC program, but it will be able to do noshell ASM
I'm not sure which suggestion that was aimed at, but it is possible to tell if a program is Asm or Basic using CelticIII.  :"BB6D"=det(14,"PROG",0,2 will be true if PROG is an assembly program, and false otherwise (since every Asm program starts with BB6D).
Title: Re: BASIC Shell
Post by: Eeems on September 22, 2009, 06:24:12 pm
ah yeah, well, I'll have to find out some stuff with that....thanks :D
and btw, here is the new screenshot and zip

EDIT: oh yeah and to answer this
Also, another thing I was wondering, I think the shell should save every setting, variable used like cursor position and stuff like that into an appvar or a big list that would optionally get archived before any attempt at running a program, and get as much RAM freed up before running it because some BASIC games will most likely require all the RAM or will cause variable conflicts with the shell the next time you run it.
yeah that was my plan

EDIT2: oh yeah, I also forgot to mention, this new version supports scrolling :D

EDIT3: commented code: http://eeems.pastebin.com/f30513616 and http://eeems.pastebin.com/f76faea86
only has comments on new stuff (and some old stuff)

EDIT4: also I settled on a name :D
Celtic Calculator Interface SHELL (CCI - SHELL)
what do you guys think?
Title: Re: BASIC Shell
Post by: DJ Omnimaga on September 22, 2009, 11:39:35 pm
Wow I like the loading screen ^^
Title: Re: BASIC Shell
Post by: Builderboy on September 23, 2009, 12:08:14 am
Great graphics! I'm really not the one for shells, Basic or otherwise, unless they are needed to run certain games, so I can't comment on the actual functionality, but everything looks very nice, clean, and professional.  The functionality also looks better than some of the shells i've tried over the years.
Title: Re: BASIC Shell
Post by: Eeems on September 23, 2009, 03:22:47 pm
Thank I got my calc taken away so I may be a while
Title: Re: BASIC Shell
Post by: calc84maniac on September 23, 2009, 04:09:49 pm
Thank I got my calf taken away so I may be a while

Poor little cow... :(
Title: Re: BASIC Shell
Post by: DJ Omnimaga on September 24, 2009, 02:53:15 pm
Ugh this sucks, I hope you just mean taken away by teacher/parents though,not stolen x.x
Title: Re: BASIC Shell
Post by: JoeyBelgier on September 24, 2009, 03:00:22 pm
Thank I got my calf taken away so I may be a while

Poor little cow... :(
lol :P
Title: Re: BASIC Shell
Post by: Eeems on September 24, 2009, 09:08:00 pm
yeah sorry I meant to type in calc but my friends ipod touch changed it to calf....
but yeah by my 'rents
Title: Re: BASIC Shell
Post by: Eeems on November 08, 2009, 02:13:06 am
Hmm, I had forgotten to mention that I had just about fixed my folder errors when my calc was taken...so as soon as I get it back, hopefully I will be able to show that off
Title: Re: BASIC Shell
Post by: DJ Omnimaga on November 08, 2009, 02:20:19 am
Nice, I hope you get it back soon

I noticed someone else on UTI is starting a shell, but idk if he's just planning to do the usual so called "basic shell" that does nothing along the lines of management or something like yours. People were quite hard on him on UTI, tho x.x, had I got an account there, still, I would be tempted to just invite him here so he can announce his project in peace :P

Is it me or has UTI gone increasingly hostile in the past year? There used to be a time where only like two members (including one staff) were occasionally rude and/or discouraging, but now more and more like Graphmastur seems to be and it seems to happen regulary. Still not at the level of how Cemetech used to be, but it seems to get closer. Oh well, at least at Omnimaga we do care about keeping our new members and unlike other sites, newbies are allowed to do mistakes and learn from them
Title: Re: BASIC Shell
Post by: Builderboy on November 08, 2009, 11:48:36 am
I have noticed it as well, several members in particular have been starting up a lot of fights/trolls recently... :(

Title: Re: BASIC Shell
Post by: Eeems on November 08, 2009, 12:36:18 pm
Yeah, I hope I can get back to this soon too. Ice also notices that, and I did try to be nice to him, and to calm the others down so they would give him a chance
Title: Re: BASIC Shell
Post by: ztrumpet on November 08, 2009, 02:12:48 pm
Eeems, this is looking nice.

=======

Hi all, I am an active user on UTI and TIBD and have to agree with the above posts.  UTI is getting a little too hostile.
Title: Re: BASIC Shell
Post by: DJ Omnimaga on November 08, 2009, 02:32:30 pm
Hi Ztrumpet and welcome here :)

I was wondering if you would eventually register, altough I am afraid Illusiat 13 has kinda went dormant, sorry :(

But yeah, I miss how UTI was late 05 through 06 and from late 07 to early 08. It's still somewhat active, though, compared to several other TI forums, but rule #1 and #11 seems barely enforced anymore. Today, all that counts on many forums is free speech, even if it's at the expense of new members (I guess /b/ had too much influence on people x.x). Omnimaga is pretty much here as alternative to that since 2005, but of course not every single new TI user will find Omnimaga first, not to mention Omnimaga is blocked at many schools
Title: Re: BASIC Shell
Post by: Eeems on August 30, 2010, 11:03:31 pm
so I've started working on this a bit more now that I just got my calculator back :) almost fixed the problem I had with it before :) I'll post updates sometime soon.
Title: Re: BASIC Shell
Post by: meishe91 on August 30, 2010, 11:32:51 pm
Well I don't know a whole lot about this and haven't read much about it, just looked at the screenshots, but this looks really cool :) Great work so far and can't wait to see more :D
Title: Re: BASIC Shell
Post by: cooliojazz on August 30, 2010, 11:39:01 pm
I remember this!!! That was a long time ago... Like a whole year! :P  If you can finish it though, that would be awesome!  I mean it was already looking good before you dropped it for a while... :D
Title: Re: BASIC Shell
Post by: Builderboy on August 30, 2010, 11:41:13 pm
Yayy!  Eeems's shell is back on track! :D cant wait to see more progress on this :)
Title: Re: BASIC Shell
Post by: DJ Omnimaga on August 31, 2010, 03:50:27 am
Darn that brings back old memories. I am not into BASIC shells but that one looked cool and seemed ASM-like, except the speed. If you used DCS mouse routine now it would almost look like an ASM shell ;D

I'm happy you got your calc back, btw (it has been so long...), and that you can work on this (and TBP?) again :)

I hope your parents won't take it away again soon.
Title: CCI Shell
Post by: Eeems on September 02, 2010, 06:23:31 pm
Thanks Guys :) so I have an update to bring to you! Since not every calculator has the same system appvars and the like, I'm not going to have a huge list of names to filter, instead I'm going to have this little setup process that you can go through which will ask you if the file which name is listed is a system file or a user file. f1 for system file f3 to quit the process and CCI and f5 for user files. The screenshot errors because there is nothing but system files so it can't continue at all :P but other then that it works great :D
I've attached a beta for anyone who wants to learn from my code or try it out for themselves :)
Also, it's still buggy, and you can't run anything from it yet or do anything else, I'm just working on the folder parsing right now. If you make a mistake during the setup just delete the appvar C9 and start over :) I'll add an option to the GUI for doing the setup again manually but later, and the second time you run it it doesn't save what you did the last time because I have yet to program in saving the string to the second line of CCI.
I won't be using the DCS mouse, because I want this to be it's own shell and only rely on Celtic III, although I might give in and write my own assembly mouse routine for it unless someone wants to write one for me :D then I could give them the specifications :P
enjoy :)
Title: Re: BASIC Shell
Post by: meishe91 on September 02, 2010, 06:27:47 pm
Well I have no idea what the whole setup process you described is but that looks really cool :) This looks like such a cool shell, I can't wait :D Keep up the work ;D
Title: Re: BASIC Shell
Post by: Eeems on September 02, 2010, 06:42:29 pm
The TI-OS makes hidden appvars and programs, along with a few other apps, like Celtic III. So this setup is you telling CCI which appvars and programs to filter out of your main folder :)
Title: Re: BASIC Shell
Post by: meishe91 on September 02, 2010, 06:43:52 pm
Oh so basically anything you don't recognize as a human made program/appvar would be a calculator made one?
Title: Re: BASIC Shell
Post by: Eeems on September 02, 2010, 06:46:23 pm
Exactly :) You will still be able to access them at the location C:/ but they won't be in C:/Main/ anymore so you can just focus on the normal ones :P
Title: Re: BASIC Shell
Post by: meishe91 on September 02, 2010, 06:49:35 pm
Ah ok, so it's all for sorting purposes? Sweet :)
Title: Re: BASIC Shell
Post by: Eeems on September 02, 2010, 06:51:15 pm
yes for sorting purposes :) Just added writeback so now it will save your settings on it :) working on adding a manual call of it from within the explorer.
Title: Re: BASIC Shell
Post by: DJ Omnimaga on September 03, 2010, 02:13:54 am
Nice to see updates, but if I try it, will I just get that ERR:DOMAIN in the screenshot or if I can do a few other stuff? Nice loading screen, btw :)
Title: Re: BASIC Shell
Post by: Eeems on September 03, 2010, 11:10:09 am
Ok, So I have tracked down the bug that makes it so you don't see the last element in the folder, I believe, but in fixing it I made another, but I have tracked down where this bug is so I can fix the new one pretty easily I believe :)
More updates tonight
Title: Re: BASIC Shell
Post by: DJ Omnimaga on September 03, 2010, 06:07:18 pm
Cool! Can't wait for final version in a few hours :)
Title: Re: BASIC Shell
Post by: Eeems on September 03, 2010, 07:05:27 pm
No final version yet :P still a long way off, and it seems I didn't actually fix the bug, I did make my code more efficient though so hopefully I can get it working soon. I know where the error is and I'm going to be working hard to solve the logic issue and fix it :) wish me luck!
Title: Re: BASIC Shell
Post by: DJ Omnimaga on September 03, 2010, 07:09:36 pm
I was kidding :P

Good luck :)
Title: Re: BASIC Shell
Post by: Eeems on September 03, 2010, 07:11:00 pm
I know :P
thanks :)
Title: Re: BASIC Shell
Post by: meishe91 on September 03, 2010, 07:27:13 pm
Sweet! What is the completion percentage you think? Just a little curious.
Title: Re: BASIC Shell
Post by: Eeems on September 03, 2010, 08:59:57 pm
I have no idea x.x I've just about finished the main part of the Explorer just fixing a few bugs, then I have to make all the support for menu's and their options for it. I have a group manager tool made too but nothing to interface with it. I have to work on the search function, the contrast changer, the mouse editor, the icon editor (only for existing icon types), the help popup, the credits popup, and the OS popup. Then I have to make a text editor, and then work with some of the base code to allow for getting DCS icons and for recognizing CCI specific programs (they will use the same GUI tools (mouse and click handler, input handler and possibly a window renderer). Then I have to also make it able to check to see if a program is an assembly program. I also have to add in support for handling groups, which isn't going to be that hard I believe, just adding in a seperate parsing bit somewhere in the loading process. Oh, and for the explorer I still have to do folder management... x.x

EDIT: ok, so here is a new version that now saves your setup, wont error when you click on a blank spot, and it will parse the folder correctly :D
I'll work on program launching next :) I'll also start working on an installer file for itself, maybe something built into CCI itself that will test for all it's subs and it's picture and then ungroup them if they are not there.
Title: Re: BASIC Shell
Post by: DJ Omnimaga on September 03, 2010, 10:00:06 pm
I like how clicking is faster than in Doors CS XD

Nice update ^^

You may want to convert that tig file for ppl without TI-Connect, though.
Title: Re: BASIC Shell
Post by: Eeems on September 03, 2010, 11:02:35 pm
oh really? :D didn't notice :P

hmm, I should...
Title: Re: BASIC Shell
Post by: yunhua98 on September 03, 2010, 11:28:03 pm
Nice!  I like it!  Can this run ion and MOS progs?

EDIT: 100*round(pi,2)th post!
Title: Re: BASIC Shell
Post by: meishe91 on September 03, 2010, 11:54:24 pm
Looking nice :)
Title: Re: BASIC Shell
Post by: Eeems on September 04, 2010, 12:30:38 am
Nice!  I like it!  Can this run ion and MOS progs?

EDIT: 100*round(pi,2)th post!
well since it's a hybrid program no :P
Title: Re: BASIC Shell
Post by: Eeems on September 05, 2010, 09:08:24 pm
ok, so I have successfully run two basic programs, one is in the archive, one isn't. it didn't copy the program to the RAM first to run it if it wasn't in the archive, it used my smart run method to run it using a temporary program instead.
I also fixed an error that CCI to not render the window when switching control to prgmMOUSE but this is a temporary fix, I'll figure out a way to replace my pixelOff()'s with something else that doesn't mess with the buffer.
Title: Re: BASIC Shell
Post by: apcalc on September 05, 2010, 09:10:13 pm
Looks great, Eeems! :D
Title: Re: BASIC Shell
Post by: Eeems on September 05, 2010, 09:11:45 pm
Thanks :)
Oh, and I haven't tested it yet, but it should be able to run nostub asm programs as well :) it will error or quit on non-nostub ones though.
Title: Re: BASIC Shell
Post by: Eeems on September 06, 2010, 06:45:09 pm
Ok that was tested btw, and trying to run phoenix and it errored on the temporary file :) so it should work with no-stub

anywho, this is the new version, it makes installing easy :) just transfer the group file and install.8xg run install and it will extract everything and then run cci :) that way you can install new versions whenever you want by replacing the group file :)
Title: Re: BASIC Shell
Post by: DJ Omnimaga on September 06, 2010, 06:57:52 pm
I'll try this in a few days. Nice to see a download of it. Also nice job on this. It really stands out from the usual BASIC/hybrid shells.
Title: Re: BASIC Shell
Post by: Broseph Radson on January 20, 2011, 09:18:05 pm
SOOPAR NECROPOST

Just found this and was interested so i downloaded. My calc wont accept the .tig file. Wat do?
Title: Re: BASIC Shell
Post by: Xeda112358 on January 20, 2011, 09:20:09 pm
I think .tig is used for some other linking software other than TI-Connect... I cannot think of the name at the moment... TiLP?
Title: Re: BASIC Shell
Post by: Broseph Radson on January 20, 2011, 09:21:03 pm
Idk. will it work if i send the grouped files individually or do they need to be grouped? I cant install stuff on this computer so im stuck with ti connect
Title: Re: BASIC Shell
Post by: Xeda112358 on January 20, 2011, 09:24:23 pm
Ah, I may have been wrong about it not working for TI-Connect. Either try extracting from the file or try opening the Device Explorer and dragging the file there.
Title: Re: BASIC Shell
Post by: Broseph Radson on January 20, 2011, 09:25:41 pm
Actually i just tried it. Takes too much space and has multiple files with invalid names. :(
Title: Re: BASIC Shell
Post by: Eeems on January 20, 2011, 09:39:48 pm
Umm, it should accept the .tig file, I made it with ti-connect. It also requires it to be grouped to run it correctly if I remember right.
Title: Re: BASIC Shell
Post by: DJ Omnimaga on January 20, 2011, 10:17:01 pm
You need to ungroup it on the computer before sending the files, I think. That's what I always do.
Title: Re: BASIC Shell
Post by: Eeems on January 20, 2011, 11:18:05 pm
Well it shouldn't do that...you should send the group, or at least that's how it's suppose to be...:/ It's a little hard to send some of the stuff, like the pictures (since they are past 9)
Title: Re: BASIC Shell
Post by: Munchor on January 21, 2011, 07:59:39 pm
.tig are grouped files. I only got that when I saw this topic :S

I used to think those games in group files at ticalc.org were just fake XD
Title: Re: BASIC Shell
Post by: Broseph Radson on January 22, 2011, 01:24:50 pm
TI connect is the default program for .tig, but it will only send groups that are .8xg
Title: Re: BASIC Shell
Post by: DJ Omnimaga on January 22, 2011, 01:36:04 pm
Didn't you need to go through a different TI-Connect option to send tig files to your calc? Also didn't it overwrite your entire RAM and archive too?
Title: Re: BASIC Shell
Post by: Eeems on January 22, 2011, 02:43:29 pm
I had no idea, I could send the grouped files on my calc instead I guess...they are a little buggy though ATM.