|
Preemptive Multithreading 1.0
|
|
FILE INFORMATION
Ranked as 25435 on our all-time top downloads list with 1147 downloads. Ranked as 10202 on our top downloads list for the past seven days with 3 downloads.
|
threadsp.zip
|
|
Filename
|
threadsp.zip
|
|
Title
|
Preemptive Multithreading 1.0
|
|
Description
|
These are functions for *preemptive* multithreading in an assembly-language program. This is similar to the way modern operating systems multitask. It uses mode 2 interrupts, so grayscale is possible by editing the interrupt handler. It supports unlimited number of threads (currently only one variable limits it to 255); exiting and canceling threads mid-slice; waiting on another thread; and variable thread priorities, similar to nice in *nix. It also supports conditional assembling, so you can include only the features you need!
|
|
Author
|
Christopher Williams (cow3.14@juno.com)
|
|
Category
|
TI-86 Assembly Routines
|
|
File Size
|
42,383 bytes
|
|
File Date and Time
|
Sat Jul 24 20:44:40 2004
|
|
Documentation Included?
|
Yes
|
|
RATING
If you have downloaded and tried this program, please rate it on the scale below
REVIEWS
|
Review
|
|
Review by
|
James abba shalaka Rubingh
|
|
Reviewed on
|
2004-07-29
|
|
Being the only interesting source code I've seen released for the Z80 TI calculators in literally five years, I thought I would take a pedestrian look at these routines. With that said, this is a very interesting project.
The first thing to note is that it's a person with obvious C programming style, coding in Z80 assembly. Personally I found the code easy to follow, but for somebody who has never used structures in C, it might be a bit confusing. There are things like a "memory structure" called "thread_t" that organizes the data for each thread much like a structure. However, it's Z80, and not C, so there are preprocessor tricks added to change the size of the structure to add an extra word for "return value," which traditionally would be returned through the stack instead of added to the structure size. No big deal though, it works. The rest of the code is separated into very clear segments such as creating threads, stopping and joining.
The reason I have this code a 9 instead of a 10 is because it is, in my opinion, while an impressive project almost entirely useless. This is a lot of code, considering the benefits compared to simply adding a couple of calls in your "main loop" are few. The bottom line is if you're using interrupts already and reading key-presses, it means your code is blocking, and while it's blocking you can always add a "call" here or there to get this same functionality in about twenty lines of code.
With that said, I think this is a great little package. I give it a 9 out of 10, and a tip of my hat. |
|
Do you want to write another review for this file?
ARCHIVE CONTENTS
|
Archive Contents
|
|
Name
|
Size
|
|
threadsp/COPYING.txt |
18349 |
|
threadsp/ChangeLog |
3762 |
|
threadsp/README.txt |
6736 |
|
threadsp/TODO |
1482 |
|
threadsp/asm86.h |
3896 |
|
threadsp/c/count.c |
1017 |
|
threadsp/c/lists.c |
821 |
|
threadsp/c/sema.c |
555 |
|
threadsp/c/sema.h |
220 |
|
threadsp/c/threads.c |
7644 |
|
threadsp/c/threads.h |
1525 |
|
threadsp/count.86p |
861 |
|
threadsp/count.asm |
2087 |
|
threadsp/count.lst |
43431 |
|
threadsp/ints.inc |
333 |
|
threadsp/inttest.86p |
186 |
|
threadsp/inttest.asm |
662 |
|
threadsp/inttest.lst |
4149 |
|
threadsp/lists.inc |
2005 |
|
threadsp/puthex.inc |
539 |
|
threadsp/threads.asm |
14697 |
|
threadsp/ti86asm.inc |
11233 |
|
|
REPORT INAPPROPRIATE FILES
|
We at ticalc.org try to keep our archives free of inappropriate material,
but we're not perfect. We rely on our community of users to help catch
inappropriate material that may occasionally slip through our screening.
Please see our Site Policies for
a description of what is not allowed in our archives.
To report that you believe the file above contains inappropriate content, please
use the form below. We will let you know what action we are taking,
if any is necessary. In order to use this form, you must have a (free) ticalc.org
account - this is required in order to limit the misuse of this feature.
You can also email webmaster@ticalc.org - be sure to include all details about the file.
|
|
|
|