Author |
Message |
|
Iambian
Advanced Member

Joined: 13 Mar 2004 Posts: 423
|
Posted: 23 Sep 2007 11:49:29 am Post subject: |
|
|
http://iambianet.freewebpage.org/project0.html
Current version: 3.07
Features currently supported (taken right out of the readme) :
Code: FEATURESET cmd 00 Feature output on Str9
LINEREAD cmd 01 Str0=file,Ans=line, Readout Str9
LINEWRITE cmd 02 Str0=file,Ans=line, Write from Str9
LINEERASE cmd 03 Str0=file,Ans=line, deletes line
LINEREPLACE cmd 04 Not supported
TOGGLEARC cmd 05 Str0=file, (un)arcs entry
TOKENCODE cmd 06 Ans=tokencode, Readout Str9
DELETEPROG cmd 07 Str0=file, deletes prog
OUTPUTSTATS cmd 08 Str0=file, Str9= AVW00000 :ARC,VIS,WRI,0 siz
TOGGLELOCK cmd 09 Str0=file, prog locked/unlocked
TOGGLEHIDE cmd 10 Str0=file, prog hidden/unhidden
FINDPROG cmd 11 Str0=phrase, Str9=proglist space delimited
CREATEPROG cmd 12 Str0=name, file created
UNGROUPFILE cmd 13 Str0=group, group ungrouped to RAM
GETGROUP cmd 14 Str0=group, Contents listed in Str9
EXTGROUP cmd 15 Ans=NthProgramInstr9, Item extracted.
TOGGLEAVAR cmd 16 Str0=file, file toggled between AVAR/PROG
Don't understand it? Just read the readme found in the file with the Celtic III project.
Changes:
+ TOGGLEAVAR feature added in.
~ TOKENCODE implementation changed. See readme.
~ OUTPUTSTATS output changed. See readme.
~ LINEERASE bug fixed.
~ Edited FINDPROG to allow a null string input to search for all prog/appvar
------------
For those reading this topic for the first time, discussions have moved toward the now-active FlashAPP version of this project. See the "Feature Requests" first post for more details.
For convenience of those who don't want to sift through the entire topic searching for the downloads, I have links to the posts that contains the downloads. Each topic and discussion after that will indicate the bugs that are present and what I thought. I was originally going to simply attach each files, but a simple attachment does no good if it is not in the type of context it was originally supposed to be in. That is to say, each build HAD to have been replaced by another for some reason, and the posts is the only reasonable way to determine WHY it happened.
Of version 3.09
Revision A: http://www.unitedti.org/index.php?showtopi...ndpost&p=115211
Revision B: http://www.unitedti.org/index.php?showtopi...ndpost&p=117390
Revision C: http://www.unitedti.org/index.php?showtopi...ndpost&p=118415
Revision D: http://www.unitedti.org/index.php?showtopi...ndpost&p=121749
Revision E and F: http://www.unitedti.org/index.php?showtopi...ndpost&p=122047
Last edited by Guest on 07 Apr 2008 03:47:04 pm; edited 1 time in total |
|
Back to top |
|
|
Iambian
Advanced Member

Joined: 13 Mar 2004 Posts: 423
|
Posted: 01 Oct 2007 05:55:22 pm Post subject: |
|
|
Alright. I've decided to open this topic up for discussion. In the meantime, I've been working on a few things.
1. A version of the line read function that'll read the binary of a program and output hexadecimal digits. A version of the line write function to write binary given a hexadecimal string. And a version of the delete line routine that will delete X amount of bytes N bytes from the start of the file. This set would work well for the more ASM-inclined programmer.
2. A relatively simple version of the readline function that will output the entire contents of the program into a string, newline chars and all.
The following are still planned.
1. A version of the lineread routine that will read multiple lines given a second numeric input (will be decided later on, but it'll most likely be the same way you have to input the second number for the TOKENCODE command)
When I've tested some of the features already in the code to work, I'll be releasing Celtic 3.08. Hopefully, this won't take very long (maybe a day or two) |
|
Back to top |
|
|
Iambian
Advanced Member

Joined: 13 Mar 2004 Posts: 423
|
Posted: 04 Oct 2007 02:23:58 pm Post subject: |
|
|
Okay. It took me longer than a day or two, but it's finally out. Celtic 3.08 is now released under the "open beta" status, so you can test away without fear of too much being changed around.
The key features of this release are as follows:
1. Support for multiple line reading, replacing, and deleting
2. Binary reading/writing/deleting for those ASM inclined.
3. A final fix for the 9999 input limit, though the TOKENCODE command hasn't be rolled back to reflect those changes. (I'd like to know if you like the a+bi method better for input)
4. Reimplemented the LINEREPLACE command, and again, powered up with the multiple line replacing.
5. Actual checking to ensure you don't attempt to insert more memory than there is free RAM. (Why didn't I do this earlier?)
6. A command that will allow the contents of an entire file to be copied to a string.
There should also be a note that for the binary reading routine, there are no bounds checking to ensure that you aren't reading from memory areas outside of the intended variable file. Seriously, I don't want to put in any checks for that since it really isn't hurting anything, but that also means that you might be able to use Celtic III for purposes for which it was not intended :ninja:
The updated file is currently on my website. See post at top of thread for link.
You'll want to read the update information there, too. There are some more technical things that aren't mentioned here, including changes that never made it to the readme.
EDIT: And as always, if you see any bugs in the program, please report them. I'll never know unless you tell me.
------
EDIT2: I've also noted that the project is growing pretty large, and it may soon become RAM-prohibitive to keep as an ASM project. What do you guys think about this thing becoming a flash application?
Last edited by Guest on 04 Oct 2007 02:27:00 pm; edited 1 time in total |
|
Back to top |
|
|
justusdude
Advanced Member

Joined: 24 May 2006 Posts: 265
|
Posted: 04 Oct 2007 02:56:04 pm Post subject: |
|
|
Sounds like a good idea. That way you can create your own tokens and whatnot. |
|
Back to top |
|
|
pugboy
Active Member

Joined: 11 Apr 2007 Posts: 544
|
Posted: 04 Oct 2007 06:48:57 pm Post subject: |
|
|
I second that. It is nice to have an 84+  |
|
Back to top |
|
|
Harrierfalcon The Raptor of Calcs
Super Elite (Last Title)

Joined: 25 Oct 2006 Posts: 2535
|
Posted: 04 Oct 2007 08:32:30 pm Post subject: |
|
|
If it's going to enter app form, I'll make a few suggestions. First, use the imag( command . Second, implement any features that even slightly look good, because someone'll use it sooner or later. Make use of your 16K!
Third, this is getting excellent. Keep up the good work! |
|
Back to top |
|
|
pugboy
Active Member

Joined: 11 Apr 2007 Posts: 544
|
Posted: 04 Oct 2007 08:52:03 pm Post subject: |
|
|
Hey, I was going to use the imag( . I thin it is a good idea to use the imag(. Everything uses real(, and it gets annoying to type in real(100,... |
|
Back to top |
|
|
Weregoose Authentic INTJ
Super Elite (Last Title)

Joined: 25 Nov 2004 Posts: 3976
|
Posted: 04 Oct 2007 09:00:14 pm Post subject: |
|
|
For the love of all that is holy, please do not use imag(). Think about it.
Last edited by Guest on 23 Sep 2010 11:49:16 pm; edited 1 time in total |
|
Back to top |
|
|
pugboy
Active Member

Joined: 11 Apr 2007 Posts: 544
|
Posted: 04 Oct 2007 09:13:34 pm Post subject: |
|
|
It just outputs a 1 or 0... |
|
Back to top |
|
|
Iambian
Advanced Member

Joined: 13 Mar 2004 Posts: 423
|
Posted: 04 Oct 2007 09:15:41 pm Post subject: |
|
|
Well, I do have a few ideas that might be app-specific.
Nice idea about the imag( token being used for more than one thing. I know it has uses, but I also know that any hook will pick up on the fact that if there are more than one arguments placed into imag(, the OS will throw an error if nothing's done about it. That's where the command input will take charge, and I suppose it'll set itself apart from all the other apps that make use of the real( command.
In addition, I'm thinking about allowing the use of the sub( and the inString( commands to allow extracting string parts and whatnot out of program files instead of strings. Don't worry. I'll have a way to distinguish between legit use and Celtic use. I'll have those ideas outlined later.
As far as the app goes, I might also include an option, since I have 16K to waste, to have the app generate an ASM program that can be used to autoinstall Celtic. Anyway, you can put those ideas in the feature request thread. |
|
Back to top |
|
|
DJ Omnimaga http://i-lost-the-ga.me
Calc Guru

Joined: 14 Nov 2003 Posts: 1196
|
Posted: 04 Oct 2007 09:19:07 pm Post subject: |
|
|
I think he made celtic detects if imag( is used for its normal purpose or if you use it for celtic, thus, you can still use imag( fine when celtic is installed |
|
Back to top |
|
|
calc84maniac
Elite

Joined: 22 Jan 2007 Posts: 770
|
Posted: 04 Oct 2007 11:42:27 pm Post subject: |
|
|
Iambian wrote: Well, I do have a few ideas that might be app-specific.
Nice idea about the imag( token being used for more than one thing. I know it has uses, but I also know that any hook will pick up on the fact that if there are more than one arguments placed into imag(, the OS will throw an error if nothing's done about it. That's where the command input will take charge, and I suppose it'll set itself apart from all the other apps that make use of the real( command.
In addition, I'm thinking about allowing the use of the sub( and the inString( commands to allow extracting string parts and whatnot out of program files instead of strings. Don't worry. I'll have a way to distinguish between legit use and Celtic use. I'll have those ideas outlined later.
As far as the app goes, I might also include an option, since I have 16K to waste, to have the app generate an ASM program that can be used to autoinstall Celtic. Anyway, you can put those ideas in the feature request thread.
[post="113886"]<{POST_SNAPBACK}>[/post]
While you're at it, please please PLEEASE make sub( and + support length 0 strings.  |
|
Back to top |
|
|
vuurrobin
Advanced Member

Joined: 09 Aug 2006 Posts: 428
|
Posted: 05 Oct 2007 03:50:52 am Post subject: |
|
|
I am not sure whether I like the idea of celtic becoming an app. since people already can create custom builds, they could create 2 programs with each different functions to keep the size down and the speed high. it's not like you need every function all at the same time...
the reason that most people use real( is that there is a workaround using imag
(. if you use imag(, that workaround can't be used. I suggest to stick with real(, or to use ipart( or int(, since they do almost the same.
if this does become an app, make sure it is compatable with xlib (and maybe some other apps). and that installing program would be usefull to (xlib could use a prog like that to) |
|
Back to top |
|
|
calc84maniac
Elite

Joined: 22 Jan 2007 Posts: 770
|
Posted: 05 Oct 2007 02:11:00 pm Post subject: |
|
|
How about det(? I think it is a one-byte token, so that will cut down on program size. Just check and see if the first argument is a matrix, and if so, return control to the OS.
Last edited by Guest on 23 Sep 2010 11:49:37 pm; edited 1 time in total |
|
Back to top |
|
|
DarkerLine ceci n'est pas une |
Super Elite (Last Title)

Joined: 04 Nov 2003 Posts: 8328
|
Posted: 05 Oct 2007 02:35:20 pm Post subject: |
|
|
I also suggest making the chosen function return a value even when there's no meaningful value to return (just return 0 in that case).
This shoudl allow the programmer to put it into a seq( loop or an expr( command, among other things. |
|
Back to top |
|
|
Weregoose Authentic INTJ
Super Elite (Last Title)

Joined: 25 Nov 2004 Posts: 3976
|
Posted: 05 Oct 2007 04:57:00 pm Post subject: |
|
|
DarkerLine wrote: I also suggest making the chosen function return a value even when there's no meaningful value to return (just return 0 in that case).
This shoudl allow the programmer to put it into a seq( loop or an expr( command, among other things. And if it's possible to return what's already in Ans, that should make it relatively invisible.
Last edited by Guest on 23 Sep 2010 11:49:59 pm; edited 1 time in total |
|
Back to top |
|
|
DJ Omnimaga http://i-lost-the-ga.me
Calc Guru

Joined: 14 Nov 2003 Posts: 1196
|
Posted: 05 Oct 2007 05:18:27 pm Post subject: |
|
|
DarkerLine wrote: I also suggest making the chosen function return a value even when there's no meaningful value to return (just return 0 in that case).
[post="113920"]<{POST_SNAPBACK}>[/post] I don't. You have no idea how much pain it gave me when I made Reuben Quest series and Diortem using Omnicalc, which returned 0 when using the sprite command. I couldn't even use the Ans variable while grayscale was running |
|
Back to top |
|
|
Iambian
Advanced Member

Joined: 13 Mar 2004 Posts: 423
|
Posted: 05 Oct 2007 11:19:41 pm Post subject: |
|
|
I plan on having Celtic return values according to whatever function it is.
For example, say we'd use a command to extract a line from a program. The result of that would then be a string. For commands that have no return value, it'll just mirror what Ans had.
And thanks for the suggestion about using det(. Yes, it is a one-byte token (ti83plus.inc says it equates to $B3).
I'm just happy that there's a bit of support going for this project turning into an flash application, so I'd better get to work with the conversion. If I happen to add any new features that aren't app-specific I'll still update the RAM-resident version to reflect the changes. |
|
Back to top |
|
|
Areign
Newbie

Joined: 27 Jan 2007 Posts: 31
|
Posted: 07 Oct 2007 04:06:16 pm Post subject: |
|
|
have any of you used symbolic, its seems that it makes its own commands, why cant this be the same? instead of ruining programs that make use of commands why not make your own? if that cant work, i also dont understand why people cant implement the actual command into the app like if xlib, in addition to doing whatever it did, also returned the actual real value of any varialbes that were passed in? i dont know asm so i dont know if its feasible but to me it seems easy, at least the second part. like in the case of det( people are passing in a matrice. so if the person passes in a matrice, have the actual det( do its work, otherwise your lib will take it. idk if anyone has ever done that, but that would make it alot easier to use for those of us who actually use the calc for math programs as well.
Last edited by Guest on 07 Oct 2007 04:17:24 pm; edited 1 time in total |
|
Back to top |
|
|
DarkerLine ceci n'est pas une |
Super Elite (Last Title)

Joined: 04 Nov 2003 Posts: 8328
|
Posted: 07 Oct 2007 04:41:04 pm Post subject: |
|
|
Areign wrote: have any of you used symbolic, its seems that it makes its own commands, why cant this be the same? instead of ruining programs that make use of commands why not make your own? if that cant work, i also dont understand why people cant implement the actual command into the app like if xlib, in addition to doing whatever it did, also returned the actual real value of any varialbes that were passed in? i dont know asm so i dont know if its feasible but to me it seems easy, at least the second part. like in the case of det( people are passing in a matrice. so if the person passes in a matrice, have the actual det( do its work, otherwise your lib will take it. idk if anyone has ever done that, but that would make it alot easier to use for those of us who actually use the calc for math programs as well.
[post="114023"]<{POST_SNAPBACK}>[/post] Unfortunately, the method you're referring to stopped working for calculators with some OS version, I think 1.17 was it. And I believe the people suggesting det( did indeed want it to work normally for a matrix argument.
Last edited by Guest on 23 Sep 2010 11:48:54 pm; edited 1 time in total |
|
Back to top |
|
|
|