From Wikipedia, the free encyclopedia
DeveloperTechnical Systems Consultants (TSC)
Written inAssembly language
OS familyUnix-like
Working stateHistoric
Latest release13.12A
Available inEnglish
PlatformsMotorola 6809 family

UniFLEX is a Unix-like operating system developed by Technical Systems Consultants (TSC) for the Motorola 6809 family which allowed multitasking and multiprocessing.

It was released for DMA-capable 8" floppy, extended memory addressing hardware (software controlled 4KiB paging of up to 768 KiB RAM[1]), Motorola 6809 based computers. Examples included machines from SWTPC, Gimix and Goupil (France). On SWTPC machines, UniFLEX also supported a 20 MB, 14" hard drive (OEM'd from Century Data Systems) in 1979. Later on, it also supported larger 14" drives (up to 80 MB), 8" hard drives, and 5-1/4" floppies. In 1982 other machines also supported the first widely available 5-1/4" hard disks using the ST506 interface such as the 5 MB BASF 6182 and the removable SyQuest SQ306RD of the same capacity.

Due to the limited address space of the 6809 (64 kB) and hardware limitations, the main memory space for the UniFLEX kernel as well as for any running process had to be smaller than 56 kB (code + data)(processes could be up to 64K minus 512 bytes). This was achieved by writing the kernel and most user space code entirely in assembly language, and by removing a few classic Unix features, such as group permissions for files. Otherwise, UniFLEX was very similar to Unix Version 7, though some command names were slightly different. There was no technical reason for the renaming apart from achieving some level of command-level compatibility with its single-user sibling FLEX. By simply restoring the Unix style names, a considerable degree of "Unix Look & Feel" could be established, though due to memory limitations the command line interpreter (shell) was less capable than the Bourne Shell known from Unix Version 7. Memory management included swapping to a dedicated portion of the system disk (even on floppies) but only whole processes could be swapped in and out, not individual pages. This caused swapping to be a very big hit on system responsiveness, so memory had to be sized appropriately. However UniFLEX was an extremely memory-efficient operating system. Machines with less than a megabyte of RAM serving a dozen asynchronous terminals were not uncommon and worked surprisingly well.

TSC never bundled a C compiler with UniFLEX for the 6809, though they produced one. But in the early 1980s a C language implementation became available as a 3rd party products (the "McCosh" and "Introl" compilers). Using such a C compiler could establish source-level compatibility with Unix Version 7, i.e., a number of Unix tools and applications could be ported to UniFLEX - if size allowed: Unix on a PDP-11 limited executables to 64 kB of code and another 64 kB of data, while the UniFLEX limitation was approximately 56 kB for both, code and data together.

Not much application software was available for UniFLEX. Ports of the Dynacalc spreadsheet and the Stylograph word processor from the FLEX operating system existed but only very few copies were sold.

In the mid-1980s a successor version for the Motorola 68000 was announced. Though it removed the pressing space limitations, it was not commercially successful because it had to compete with source-code ports of original Unix.

The source code for UniFLEX and supporting software is available on the Internet.

In the Netherlands, UniFLEX users ported a fair number of Unix utilities to UniFLEX. Also they modified some kernel code that give foreground processes preference over background processes accessing disk and that gave a major improvement in user experience.

One of the TSC guys, Dan Vanada, later started his company "Scintillex Software". Its products were, for example, utilities that allowed transfer of data between UniFLEX and MS-DOS and vice versa, as well DOS format utilities, and a code patch utility.

See also[edit]


  1. ^ [1] SWTPC S/09 Dynamic Address Translation

External links[edit]