Login [Register]
Don't have an account? Register now to chat, post, use our tools, and much more.
LAX18 wrote:
beckadamtheinventor wrote:
mets11rap wrote:
Idea: Add the option to use the calculator keys as a trackpad sort of like TI83 Fruit Ninja.

Thats actually a realy good idea! Very Happy
I'll add that as an optional UI package to come with the shell!

(which will come out asap as soon as I can run ASM from portions of an appvar in ICE)

Cant you store the ASM in its raw form in the App Var, then copy it to a pointer that is embedded in the program?

Yes, but I need a way of running that code from the pointer rather than a constant.
I have tried your method (copying the name to a temp program then running it), and it doesn't really work for the purposes I need it for... sorry... Crying
What I need is a way of running subroutines from an appvar, which contains multiple subroutines, which takes too much time to copy to another file (then run it) for it to be practical when you have a lot of subroutines.
Thank you for the idea [of running ASM from ICE] though! I coudn't have come up with this idea without you! Smile

EDIT: ICE already has this capability!

Code:

Copy(|ED10000,PTR,SIZE
Asm(CD0000D1
TheLastMillennial wrote:
beckadamtheinventor wrote:
TO DO: File viewer and editor

When you get file detection working, could you have it detect if KryptonIDE (EDIT: When it gets released) is installed and go to that program instead of the OS editor? I think that would be useful. Smile

With earlier revisions of the shell, that wouldn't have been possible, but now, it is! Very Happy
It would save a lot of work if I used someone else's program for the program editor Razz
Could someone give me an example of code for packaging/unpackaging files from an appvar?
The system is pretty much a package of packages Razz
Here is the appvar format that I need:
1b ;number of partial extensions in next set
1b ;extension active?
32b ;extension info
;Next three parts repeat for the number of extensions in the set
1b ;extension use
3b ;Length of extension
Xb ;extension code

Code would be greatly appreciated. Your name will be in the credits!
If you haven't guessed already, this is a huge part of BOSshell development Razz
beckadamtheinventor wrote:
Could someone give me an example of code for packaging/unpackaging files from an appvar?
The system is pretty much a package of packages Razz
Here is the appvar format that I need:
1b ;number of partial extensions in next set
1b ;extension active?
32b ;extension info
;Next three parts repeat for the number of extensions in the set
1b ;extension use
3b ;Length of extension
Xb ;extension code

Code would be greatly appreciated. Your name will be in the credits!
If you haven't guessed already, this is a huge part of BOSshell development Razz

So, what exactly do you want? A system of reading from the appvar and saving to the proper variable?
LAX18 wrote:
beckadamtheinventor wrote:
Could someone give me an example of code for packaging/unpackaging files from an appvar?
The system is pretty much a package of packages Razz
Here is the appvar format that I need:
1b ;number of partial extensions in next set
1b ;extension active?
32b ;extension info
;Next three parts repeat for the number of extensions in the set
1b ;extension use
3b ;Length of extension
Xb ;extension code

Code would be greatly appreciated. Your name will be in the credits!
If you haven't guessed already, this is a huge part of BOSshell development Razz

So, what exactly do you want? A system of reading from the appvar and saving to the proper variable?


What I need is some code (it sounds simple, but it's not) to get a pointer to the asm to run, and how long it (the code) is. I also need a code to put these asm files into the package as well, using a manifest file, of this format:
16b product
16b author
XProgram
YProgram
...

Where X is when each program should execute when it is in the extensions file (drawing the background, drawing the icons, etc), and the program name goes after it. I'm having the most trouble reading the line breaks properly.

Thanks for responding so quickly! Smile Good Idea
beckadamtheinventor wrote:
LAX18 wrote:
beckadamtheinventor wrote:
mets11rap wrote:
Idea: Add the option to use the calculator keys as a trackpad sort of like TI83 Fruit Ninja.

Thats actually a realy good idea! Very Happy
I'll add that as an optional UI package to come with the shell!

(which will come out asap as soon as I can run ASM from portions of an appvar in ICE)

Cant you store the ASM in its raw form in the App Var, then copy it to a pointer that is embedded in the program?

Yes, but I need a way of running that code from the pointer rather than a constant.
I have tried your method (copying the name to a temp program then running it), and it doesn't really work for the purposes I need it for... sorry... Crying
What I need is a way of running subroutines from an appvar, which contains multiple subroutines, which takes too much time to copy to another file (then run it) for it to be practical when you have a lot of subroutines.
Thank you for the idea [of running ASM from ICE] though! I coudn't have come up with this idea without you! Smile

EDIT: ICE already has this capability!

Code:

Copy(|ED10000,PTR,SIZE
Asm(CD0000D1


Is there an ASM code (or codes) that will run ASM from a point in memory? Rather than move to safeRAM, it would be much faster than copying the code every time I need to run it, and the shell would be able to run larger extensions.
CALL (CD) moves execution to the pointer given.
In your ICE code, you copy the program to a fixed pointer, then move execution to that location.
If the ICE Asm( function allows you to use data not known at compile time, use CD plus the three bytes of the pointer.
If not, you could copy CD (CALL) to a pointer P, copy (not dereference) the pointer E you want to execute code from to P+1, and set P+4 to C9 (RET). Then, you can use the Asm( token to run from P.
I'm not good with ICE, but I assume an example of this would look something like this:

Code:
CopyData(|ED10000,1,|ECD,0,0,0,|EC9
Copy(|ED10000+1,E,3
Asm(CD0000D1

You would have to make sure that the location D10000 is unused. Any location should work, I just chose that one because it was what you already had.
NEWS:
I am working on BOSshell again! Very Happy

BOSshell: Coming to a CE near you!

BOSshell is now 3.1.0! (eighth revision)
This project is approximately 20% complete.
I am eager to accept any help towards this project.

DONE:
Small routines
Running BASIC and ASM programs
Ideas

IN PROGRESS:
Home menu
Cursor
Input routine
Password
Displaying program icons

TO-DO:
File reader
File editor (going to use the os editor if I can for prgms, but the other file types will use my own editor)
File manager (including renaming and packaging)
Folder system

And basically anything that you guys want me to add!

NOTES:
This project could be done anywhere from a week to a few months.
BOSshell stands for Beckadam Operating System Shell.
All 'percent complete' values are approximate and are subject to change.

More updates coming: Usually more frequently than weekly
Progress! Very Happy

BOSshell 4.4.0; Coming to a CE near you:


NEW STUFF
    Added cursor

    Added right-click menu

    Added file types

    Added filesystem (no folders as of yet, but I am planning to add them)

    And many more in 4.5.0!


This version of BOSshell uses appvar files only, at the moment. I don't know if I will decide to add prgm, protected prgm, or string support just yet.

NOTE: 4.5.0 is going to be completed soon, and that might be a public release. Very Happy
Yay!

Looking forward to trying this out and very glad to see more progress!
MORE PROGRESS!

Filesystem stuff and ximg editing!

Custom coloring!

ximg viewing!


BOSshell now has a fully functioning homepage, and can import, remove, make new, and many more things! Check out the above screenies! Very Happy

Also: I am now releasing a public Pre-Release (after nine plus months of work off and on Razz)
Very Happy Very Happy Very Happy
https://drive.google.com/open?id=12KepqzZ0YujGbEsx6b1dwK23bsy4dsM2
Wow great job so far! Unfortunately I wont be able to try out the beta for a while. How does the ximg thing work?
TheLastMillennial wrote:
Wow great job so far! Unfortunately I wont be able to try out the beta for a while. How does the ximg thing work?


Well, the filetypes in the shell are actually the first set of bytes in the appvar (untill the first null)
xmig files are the same format as sprites. They can be edited as such, as long as the header bytes are the same as created by the shell.
"ximg"+0x00+0x00
or, alternatively,
"ximg"+0x00+Title+0x00
(which is not yet implemented in the shell itself, but is soon to be the file description. The last 0x00 byte is the end of line character for Title)
In an ximg file, if the size bytes are beyond the end of the file, it will prompt for the dimmensions of the image. (whether opening or editing, which is an unintended feature)
ximg images, named "x" for xlib, are currently the only file which I have an editor for.

If anyone here would like to help me make a text editor, that would be much appreciated! Smile (especially since I'm having trouble making one Razz)
If you do (and your program works as expected), your name will not only be in the credits, you will be a sub-author of the shell! Very Happy

Your editor does not need to contain all of the following, but it is preferable.
    What I would like in a text editor:
    Plain text viewing and editing
    Input method using the same keymap as the shell itself (see below for details)
      Styled text
      Text color
      Text Size
      Underline

    Cut, Copy and Paste (including and excluding formatting)
    User exstensible characters (80h to E0h)


The input keymap can be referenced with the pointer SMAP (a constant in BOSshell)
The map uses every 40 characters for each overtype, where a character can be referenced with:

Code:

*{SMAP+OVERTYPE*40+KEY-9->CHAR


I hope this isn't too much to ask Razz

NOTE: I am in the process of redo-ing the filesystem of the shell to incorporate folders, so don't get too comfortable with your setup. Although it isn't like there was much option in the system anyways Razz

EDIT: This is an open contest/competition
EDIT2: This must be written in ICE, and able to be subroutined in my shell.
Okay. I guess this gives me a reason to work on the text editor again Razz

This is quite the tall order though! The text editor boilerplate I have includes custom linebreaks and deleting, but no copy and paste, multipage support, or formatting.

Let me see what I can do. This may be something I can help with!
When is the next update? Please give a link when it rolls out
TimmyTurner62 wrote:
When is the next update? Please give a link when it rolls out

Yes I am still working on BOSshell. However i am now working on re-doing it in C. This may take a while, because i need to rewrite the entire thing again, in a language that I am not very familiar with yet.

I hope to have another public pre-release in late December.
I hope that isn't too long for you guys Razz
LAX18 wrote:
Okay. I guess this gives me a reason to work on the text editor again Razz

This is quite the tall order though! The text editor boilerplate I have includes custom linebreaks and deleting, but no copy and paste, multipage support, or formatting.

Let me see what I can do. This may be something I can help with!


Or saving and loading to and from an AppVar...

/me runs
I have decided to use ICE again, due to my lack of expertise in C. Also because of self-imposed deadlines. can't believe it's been over a year already...

Also I am debating on, instead of folders, using a 'box' system. This would not allow for multi-level directories, but it would allow for sorting files into categories.
What does everyone think?
(If I was to do an actual folder system, that would extend the time needed for me to make a release)

I am still working on the text editor, but I don't know if I'll be able to add that to the release.

CE experts: can any of you provide me with an example of how to run an assembly program from my shell? I know that I'd need to push usermem up by the length of the file, then copy the file to it, and finally jump to the program, but how would I get it to move the stack back after returning?

Help would be much appreciated Smile
beckadamtheinventor wrote:
I have decided to use ICE again, due to my lack of expertise in C. Also because of self-imposed deadlines. can't believe it's been over a year already...

Also I am debating on, instead of folders, using a 'box' system. This would not allow for multi-level directories, but it would allow for sorting files into categories.
What does everyone think?
(If I was to do an actual folder system, that would extend the time needed for me to make a release)

I am still working on the text editor, but I don't know if I'll be able to add that to the release.

CE experts: can any of you provide me with an example of how to run an assembly program from my shell? I know that I'd need to push usermem up by the length of the file, then copy the file to it, and finally jump to the program, but how would I get it to move the stack back after returning?

Help would be much appreciated Smile


What I have right now:
The main code
The stub

The main code is made to run from the adress 0xD03230, which has been copied there by my ICE code (see below). This code moves UserMem up by X bytes, where X is the length of the program to run. It then copies the program to UserMem. Finally, it pushes the stub to the stack for after the program returns.
The stub disables interrupts and moves the original program back.

Code:

Copy(|ED03230,ASMMVUM,56
Copy(|ED03110,ASMSTUB,20
Asm(C33032D0

"ASMVUM" is a pointer to the main code and "ASMSTUB" is a pointer to the stub.
NOTE: both of these pointers are copied to SafeRAM so that the asm code can be run (from 0xD03230), then push the stub (at 0xD03110) to the stack.

Earlier in my code, a pointer to the asm program to execute is copied to 0xD0118F, as well as the length to 0xD0118C, both of which are referenced in the asm code.

Also: yes, my asm code can be run from anywhere.
Sorry that I couldn’t be of much help. As you can see, I’m new at all of “this”. But I am looking forward to seeing how this turns out! PS: Can you help me in making a file system for my emulator project, as you have already done it?
  
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 4 of 5
» 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