I would like someone to make a multitasking module for DCS(and potentially for DCSE and DCE).
I need one for DCS 7.2. I DO NOT care if it is slow or resource-intensive, just as long as i can open as many DCS,basic and asm programs as my calculator's cpu and ram allow,and the module must be 100% bug-free and perfectly stable. Even if it is not possible for z80 calcs, then i would like to see it on Doors CE.

I have a ti84+ silver edition.

Best regards, CalcMax.
This is likely not something you'll find in DoorsCS.

Calculators, especially the TI-84+SE that you have, are incredibly resource limited. That calculator has 1.5 MB ROM and 24KB of available RAM memory and the CPU runs at 15 MHz. I don't know what you expect to get out of multi-tasking but it wouldn't be a true implementation by any standard, except Apple. Your RAM is taken up by everything that is not archived. Screen shot taken from a freshly wiped TI-84+SE on jsTIfied:

RAM: 024,317 Bytes
ROM: 160,600 Bytes


Since DCS can run archived programs by creating a copy in RAM, let's assume you have more than enough RAM to keep 4 programs and the associated variables open at a time. So, what about the CPU? Well, the calculator takes a relatively long time to draw a circle. It's not slow but it's also not instantaneous. But that's a circle I drew from the home screen using the Circle( token. We also face the problem that the calculators are single threaded but we can still do a lot of things per clock cycle, take a look at Alien Breed for example. But you can't just run 2 or more programs at once with this.

You can get around it by basically halting the execution, if at all possible, saving the state of the RAM and archiving it then loading in a new state. Come to think of it, I remember doing this back when I was in high school. In the readme.txt is this line:

Quote:
When Virtual Calc is installed, you will be able to swap between the two virtual calculators it provides by pressing the On key and the Mode key at the same time. You can press On+MODE to swap back and forth as much as you like. Each virtual calculator's operating state will be saved when you switch.


So, the calc state is saved in ROM until called again. Only one "calc" runs at a time. I suspect this now becomes a matter of how much ROM you have available. Since you require this with DCS, I'll go ahead and install and run DCS7.2 on my calculator and take another screen shot.

RAM: 024,182 Bytes
ROM: 155,600 Bytes


We lost some RAM because DCS's settings are saved in RAM. Looks like we lost about 50,000 bytes of ROM when installing DCS7.2. Let's assume you have other apps installed as well plus other things archived. So, let's say you have 900,000 bytes of ROM free. 100% bug free is another hurdle. No code is bullet proof, they can be masters of error handling but things happen.

I'm also not the most qualified person on this subject. But the calculators have things called "App Pages" and DCS8 takes up 3. Basically, in arbitrary numbers, 10k bytes is one page. Whether your app is 1000bytes or 9999, it's one page. If the app is 10,025 bytes it's now two pages and the calculator shows that 20k bytes are used. I don't know how big the app pages are but it's not really important. But it certainly explains how DCS7.2 seems to take up an oddly specific even number of bytes; I think it's 25k per page actually meaning 7.2 is two pages. I think the TI-84+SE has something like 50 pages available to it?

Anyways, I whole heartedly believe multi-tasking is a long way from DCS. Points being, DCS9 is really slimmed down versions of DCS8. There's no CalcNet and other libraries that were apart of prior DCS versions. DCS8 and below are, more or less, done with production. Meaning no more features added and updates will be strictly bug fixes if memory allows; I remember one bug in DCS8(?) that could be fixed but it would have added a fourth page or something, basically there was very little room left to fix that bug.

There can be a possibility of seeing this feature in future versions of DCS. As I said, DCS9 lost a lot of the fat that DCS8 had because it's a new CPU and it would have to be rewritten and code ported over, so starting with the basics was ideal. This now opens up the possibility of new features and libraries to better suit the new line of calculators. If compelling reasons are raised and the community supports the idea, this feature may be added to DCS9.x or DCS10+. But right now Kerm has no desire to add such a feature. In the meantime, SolarSoftware has been making great progress on his Windows 10 Mobile port to the TI-84+CSE and he's working on Multi tasking now. I haven't been following his project closely so I'm not sure if it'll support programs made and installed on the calculator but check it out!
What you're asking for can't be done, as comicIDIOT wrote above.
However, KnightOS does support multitasking: http://www.knightos.org/2014/09/02/Process-scheduling-in-KnightOS.html
Well, there is a third party operating system, KnightOS, that allows for multithreading. The problem is that KOS is a whole different operaing system, and most of the programs written for TIOS, the defualt OS, will not run in KOS.

Edit: heh, Ivoah you Evil or Very Mad 'd me Razz
A task switcher (maybe), but Doors doesn't support full multitasking.

KnightOS and Windows 10 Mobile support preemtive multitasking.
comicIDIOT wrote:
Well, the calculator takes a relatively long time to draw a circle. It's not slow but it's also not instantaneous. But that's a circle I drew from the home screen using the Circle( token.
Unless you used the Circle(x,x,x,{i trick Razz

comicIDIOT wrote:
I don't know how big the app pages are but it's not really important. But it certainly explains how DCS7.2 seems to take up an oddly specific even number of bytes; I think it's 25k per page actually meaning 7.2 is two pages. I think the TI-84+SE has something like 50 pages available to it?
Each app page is 16,384 bytes. While apps can take up more than one page, like comic was saying, that app will end up taking up a multiple of 16384 (32768, 49152, 65535, etc...) bytes total.
The calc can multithread because of the SIMUL graphing mode that graphs up to 10 graphs at the same time. I dont care if the multitasking is crappy a slow, i just care that it works, and that stably.
CalcMax wrote:
The calc can multithread because of the SIMUL graphing mode that graphs up to 10 graphs at the same time.

That one program can draw several graphs interleaved is not at all the same as multiple programs being able to run at once.
CalcMax wrote:
The calc can multithread because of the SIMUL graphing mode that graphs up to 10 graphs at the same time. I dont care if the multitasking is crappy a slow, i just care that it works, and that stably.


That's not multithreading. That's just graphing one bit of each equation at a time.
Preemptive MT-ing in DCS?!
  
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 UTC - 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