Softools Development Tools

Home Contact Softools Support

TurboTask Realtime OS

TurboTask Interrupt Support
TurboTask Message Boxes
TurboTask Queues
TurboTask Semaphores
Did you know?
TurboTask supports the Zilog Z80 and Z180 and all Rabbit processors.
TurboTask is TINY
Preemptive or round robin (timeshare) multitasking in less than 1k of code space.
Download the Rabbit TurboTask manual


A tiny but full-featured and royalty-free real time operating system for the Rabbit and Z-80/Z180 microprocessors. TurboTask ranges in size from 1k to 2.5k, depending on the features that are used. TurboTask is written in 100% assembly code making it as small and as fast as possible. An economical and royalty-free binary license is available.


bulletTurboTask is extremely small. The entire system is a true library and ranges from less than 1k to 2.5k. RAM is used only as needed based on the configurable system requirements for the number of tasks, message boxes and queues.
bulletIt is extremely fast since it is written in 100% Z180/Rabbit assembly language code by Softools. TurboTask will run on any Z80, Z180 and Rabbit (or 100% code-compatible) processor.
bulletEconomical binary licensing is available.
bulletZ80/Z180: Supports Z180 banked switched programs generated using Softools linker SLINK. Unlimited program sizes are supported that can multi-task and utilize all of TurboTask functions. The full Z180 MMU is saved and restored on a task switch.
bulletRabbit: Does not use the MMU making it possible to be used by each task as needed to keep a window into memory.
bulletIs royalty-free for any number applications on a single product.  Economical single, multiple, and unlimited product licenses are available.
bulletSupports up to 255 tasks, 256 word-oriented boxes, and 256 byte-oriented queues. Queues may optionally provide interrupt support to enable a device interrupt when a queue is not empty and to disable the interrupt when the queue becomes empty.
bulletQueues are fully reentrant for writing allowing multiple tasks and ISRs to fill the same queue with data. For efficiency, queues are not reentrant for reads as requiring this is uncommon.
bulletAllows simple system configuration. Assembling a configuration source file answering several questions about system requirements is all that is needed to configure an entire application. Configurations may be changed at a later date without effecting existing application code.
bulletRuns in either round-robin or priority scheduling mode. Time-sharing can be enabled to allow several tasks to be given processor time at specific user definable intervals and to prevent a task from monopolizing processor resources.
bulletAllows users to give tasks a priority from 0 to 256, in priority scheduling. Tasks with higher priority will always execute before tasks with lower priority. A task can yield processing to another task of equal or higher priority.
bulletAllows a task to release itself during device polling freeing processor time needed by other tasks while the device is not available.
bulletSafely and reentrantly handles communication between tasks using message boxes or queues.
bulletIs completely reentrant and never enables the processor interrupt state if disabled. The user's manual gives T-States for the duration interrupts are disabled for functions which must disable interrupts. The task scheduling code never disables interrupts.
bulletZ80/Z180: Interrupt functions include returning to the task, returning to the scheduler using RETI or RETN instructions.
bulletRabbit: Support tasks that are comprised of either near or far functions, or a mixture.
bulletMaintains an accurate 32-bit system timer that can be read and updated by the application. All delays and timed suspensions use the timer for timing these events. The resolution of the timer is user specified since the timer is user-supplied.  Rabbit: Function call provided to start the timer and automatically hooks itself into TurboTask.
bulletProvides a complete working demo program for a Z180 or Rabbit system along with documentation on building and running it. This demo serves as a perfect starting point for any application. It uses tasks, boxes, and queues, and interrupt support for queues.
bulletProvides an efficient C interface for all TurboTask functions. Standard SC180/SCRabbit C startup code for the Softools Control Cross-C compiler is used.  Z180: TurboTask defines C function main and runs a user provided main_task function as a startup task.  Rabbit: In function main, simple initialization is done to start the timer and lauch the first task.
bulletZ180: The TurboTask scheduler supports a SLEEP mode - if TurboTask finds no task to run it will execute the Z180 SLP instruction until the next interrupt wakes up the Z180.


Back Up
Copyright 2005-2023, Softools. All rights reserved.