Author |
Message |
|
Xeda112358
Active Member
Joined: 19 May 2009 Posts: 520
|
Posted: 06 Feb 2011 12:46:19 pm Post subject: |
|
|
Okay, so I have made a neat little program in BASIC (that uses two assembly programs) that is a shell. Currently, it lets you search through your variables, view them, copy them to a string, and even run them as BASIC programs-- even from archive!
So what do I plan to add? I want to make it like an assembly shell-- except in BASIC! I am going to start working on making subprograms that are stored as appvars and if your BASIC program has the right header, it can make use of them! Since they will be in archive unless you need them, (which then they are copied to RAM), your BASIC programs might be much smaller!
Anyway, here is what I currently have: |
|
Back to top |
|
|
mrmprog
Newbie
Joined: 04 Feb 2011 Posts: 44
|
Posted: 06 Feb 2011 02:41:46 pm Post subject: |
|
|
Well what do you know. That is what I was planing on doing with those programs. Would you mind if I looked at the code to get an idea of how?
Last edited by Guest on 06 Feb 2011 03:17:33 pm; edited 1 time in total |
|
Back to top |
|
|
Xeda112358
Active Member
Joined: 19 May 2009 Posts: 520
|
Posted: 06 Feb 2011 03:26:41 pm Post subject: |
|
|
That is not a problem! Feel free ^-^
Also, I don't like double posting... but I will over in your request because it has been a while...
I have ideas >_>
Also, I am working right now and I have it able to execute assembly programs. I am about to add support for a header that tells which subprograms to load, too ^-^
I kind of figured you were going to use CopyProg and GetName together, I just wasn't sure how. |
|
Back to top |
|
|
mrmprog
Newbie
Joined: 04 Feb 2011 Posts: 44
|
Posted: 06 Feb 2011 04:21:30 pm Post subject: |
|
|
So you would be able to execute programs with sub program in them? |
|
Back to top |
|
|
Xeda112358
Active Member
Joined: 19 May 2009 Posts: 520
|
Posted: 06 Feb 2011 04:37:52 pm Post subject: |
|
|
Um, what it does is it looks at the BASIC program. If the first line is "If 0:Then" it reads the next line. If the next line is ":00" it will create a temp program called SUB00. It keeps reading until it reaches a line with "End" and then it runs the program. All of the sub programs will be stored as archived appvars so that they don't clutter up the program menu and so that they don't use up too much RAM. |
|
Back to top |
|
|
mrmprog
Newbie
Joined: 04 Feb 2011 Posts: 44
|
Posted: 06 Feb 2011 08:51:55 pm Post subject: |
|
|
So if statements are treated as subprograms? I am probably misunderstanding this. |
|
Back to top |
|
|
Xeda112358
Active Member
Joined: 19 May 2009 Posts: 520
|
Posted: 06 Feb 2011 09:36:23 pm Post subject: |
|
|
No, that is just the header. The header looks like this:
Code:
:If 0:Then ;never gets executed because 0 is always false
:00 ;Tells the shell to create prgmSUB00
:01 ;Tells the shell to create prgmSUB01
:0A ;Tells the shell to create prgmSUB0A
:End ;Tells the shell it is finished
So the BASIC parser never reads between the If 0:Then...End, but the shell does.
Also, as a status update, the name of this project is now going to be called LSDOS... A spin off of MirageOS... (It was rather interesting how that name was created). Also, I currently have it so that Quick View lets you scroll through the program code (you cannot edit it) and I am about to add a thing that tells the size of the var and whether or not it is archived... |
|
Back to top |
|
|
NETWizz Byte by bit
Bandwidth Hog
Joined: 20 May 2003 Posts: 2369
|
Posted: 07 Feb 2011 12:17:23 pm Post subject: |
|
|
Is it based on your own Asm, or something like Z-DOS? I once wrote Nimbus around Z-DOS in the beta days. |
|
Back to top |
|
|
Xeda112358
Active Member
Joined: 19 May 2009 Posts: 520
|
Posted: 08 Feb 2011 12:55:47 am Post subject: |
|
|
It uses my own assembly opcodes (and I am sure I will add more), but it is mostly BASIC. The assembly programs are just used to perform tasks like reading the variables. |
|
Back to top |
|
|
Galandros
Active Member
Joined: 29 Aug 2008 Posts: 565
|
Posted: 08 Feb 2011 04:08:00 am Post subject: |
|
|
To reduce your TI-BASIC header by some bytes instead of: If 0:Then use While 0, 2 less bytes.
Another thing is, could you join
:00 ;Tells the shell to create prgmSUB00
:01 ;Tells the shell to create prgmSUB01
:0A
into just one line like 00010A? It looses readability, though.
Last edited by Guest on 08 Feb 2011 04:08:20 am; edited 1 time in total |
|
Back to top |
|
|
Xeda112358
Active Member
Joined: 19 May 2009 Posts: 520
|
Posted: 08 Feb 2011 08:17:43 am Post subject: |
|
|
Yeah, I planned to have it all on one line, but I hadn't even thought of the While 0 thing! Thanks! |
|
Back to top |
|
|
mrmprog
Newbie
Joined: 04 Feb 2011 Posts: 44
|
Posted: 12 Feb 2011 07:03:13 pm Post subject: |
|
|
Any updates? |
|
Back to top |
|
|
Xeda112358
Active Member
Joined: 19 May 2009 Posts: 520
|
Posted: 12 Feb 2011 08:24:53 pm Post subject: |
|
|
Well, now that you mention it... I guess I can upload what I have so far ^-^ I have now added support for copying to vars defined by the user as well as deleting. I have not yet added header detection, but I do happen to have a program made that can compress hex programs (that have comments in them!). I think I am going to use the line reading routine in BatLib to make a simple line reading program, too. Then I can add line copying and editing and whatnot. I also don't have the PicView option because I accidentally crashed my calc and never added it back in >_> |
|
Back to top |
|
|
|