Co-operative multi-tasking ...

Started by Mark Smith, July 31, 2007, 07:00 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Mark Smith

Hi there,

I've got a long month ahead of me where I'm "home alone" (yes my wife has run off to the UK for a month) so I thought I'd fill it with something semi-constructive.

I'd like to start the frame work for a mini-OS, nothing spectacular and written in a high level language (C), starting at the bottom I want to do a task scheduler and memory management module (to swap non-running tasks to another bank) .. does anyone have some pointers to a high level design of co-operative multi-tasking ?  Something aimed at students .. I used to have a Tannenbaum book but I think it is 18000kms away from my present location .. but not so advanced as to be undoable on a 6502 machine ?

I liked something I can slowly build on, recycle and extend with extra bells and whistles as I learn them :-)

Plus any ideas would be cool.

Ta!

Mark
------------------------------------------------------------------------------------------------------------------

Commodore 128, 512K 1750 REU, 1581, 1571, 1541-II, MMC64 + MP3@64, Retro-Replay + RR-Net and a 1541 Ultimate with 16MB REU, IDE64 v4.1 + 4GB CF :-)

Mathias Roslund

I think Cheap Threads might be what you are looking for. Topsy is a bit more advanced, but might be of interest...

Guest

Quote from: strandedinnzHi there,

I've got a long month ahead of me where I'm "home alone" (yes my wife has run off to the UK for a month) so I thought I'd fill it with something semi-constructive.

I'd like to start the frame work for a mini-OS, nothing spectacular and written in a high level language (C), starting at the bottom I want to do a task scheduler and memory management module (to swap non-running tasks to another bank) .. does anyone have some pointers to a high level design of co-operative multi-tasking ?  Something aimed at students .. I used to have a Tannenbaum book but I think it is 18000kms away from my present location .. but not so advanced as to be undoable on a 6502 machine ?

I liked something I can slowly build on, recycle and extend with extra bells and whistles as I learn them :-)

Plus any ideas would be cool.

Ta!

Mark
Are you planning on targeting the 128 with C?  What C compiler do you have in mind?  I discovered the hard way that cc65 does not provide support for banking the 128 and you would have to do some serious magic to make it work.

Mark Smith

Quote from: plbyrdAre you planning on targeting the 128 with C?  What C compiler do you have in mind?  I discovered the hard way that cc65 does not provide support for banking the 128 and you would have to do some serious magic to make it work.
I was planning on just making my own function that would swap a memory range to REU, was just going to wrap some assembler up in C .. nothing to clever really.

Mark
------------------------------------------------------------------------------------------------------------------

Commodore 128, 512K 1750 REU, 1581, 1571, 1541-II, MMC64 + MP3@64, Retro-Replay + RR-Net and a 1541 Ultimate with 16MB REU, IDE64 v4.1 + 4GB CF :-)

Mark Smith

Quote from: AmiDogI think Cheap Threads might be what you are looking for. Topsy is a bit more advanced, but might be of interest...
Thanks for that, makes interesting reading but I want to take the DIY approach rather than re-use something else .. but good place to steal knowledge from :-)

Mark
------------------------------------------------------------------------------------------------------------------

Commodore 128, 512K 1750 REU, 1581, 1571, 1541-II, MMC64 + MP3@64, Retro-Replay + RR-Net and a 1541 Ultimate with 16MB REU, IDE64 v4.1 + 4GB CF :-)