Talk:FlexOS

External links modified
Hello fellow Wikipedians,

I have just modified one external link on FlexOS. Please take a moment to review my edit. If you have any questions, or need the bot to ignore the links, or the page altogether, please visit this simple FaQ for additional information. I made the following changes:
 * Added archive https://web.archive.org/web/20110930011638/http://www-03.ibm.com/products/retail/products/software/4690/index.html to http://www-03.ibm.com/products/retail/products/software/4690/index.html

When you have finished reviewing my changes, you may follow the instructions on the template below to fix any issues with the URLs.

Cheers.— InternetArchiveBot  (Report bug) 07:57, 2 October 2017 (UTC)

FlexOS 68K (CDOS-68K)
Note that this wasn't simply planned, it was produced. While still under the name CDOS (from the original CDOS-286 name) it was ported to 68000/68010 for Motorola for the VME/10 product.

This was version 1.20/1.21 of the product.

It can be found in the unofficial CP/M website (http://www.cpm.z80.de/binary.html at the section titled "CP/M-68K CDOS for the 68000").

The files are http://www.cpm.z80.de/download/cdos1.zip, http://www.cpm.z80.de/download/cdos2.zip , http://www.cpm.z80.de/download/cdos3.zip

--unsigned by 217.169.14.20 on 2018-08-02T22:46:36‎
 * Thanks for the links, however this proves the existance of Concurrent DOS 68K, but not necessarily FlexOS 68K... Basically, it depends on if FlexOS 286 / 68K was actually a rewrite of Concurrent DOS 286 / 68K, or only a rename of these products. --Matthiaspaul (talk) 22:03, 13 September 2018 (UTC)

Well some of that can be seen from the headers and source included in the zip files. When compared to the programming documentation for FlexOS 1.3/1.31 available on bitsavers. The APIs are essentially identical, with small changes due to the CDOS-68k code being for version 1.2.

So FlexOS is simply the CDOS-286 product renamed. This is obvious from the headers included with the FlexOS 286 development environment, which specifically mention CDOS-286 at early versions, and have comments about renaming references. Companies don't rewrite code for no reason, they simply reuse and adjust it.

CDOS-286 was always largely written in C, CDOS-68k was a port of it to the 68k. FlexOS came about when the CDOS-286 product could no longer be a viable DOS (due to the real mode emulation issues), and so the product was renamed, targeted to embedded systems, and the DOS FE reduced in importance, and eventually dropped from the 286 version.

There is this (Computerworld 23 Jan 1984, page 6) article available: https://books.google.co.uk/books?id=dRR9VQBwdSIC&pg=PA6&lpg=PA6&dq=Concurrent+%22Digital+Research%22&source=bl&ots=zbDHbeA0D9&sig=ahQHPUJzKag-Hd4AAu8noEbHbHI&hl=en&sa=X&redir_esc=y#v=onepage&q&f=true

It refers to the initiation of what I suggest is the CDOS-68k port. Since the x86 (4 user/task) concurrent DOS product was never written in C, and given the zip files above, this has to be a mis-report caused by DRI's confusing product names, and refers to a port of CDOS-286, not CDOS.

Also that this reference (on the Multiuser DOS page): http://www.megalextoria.com/usenet-archive/news044f1/b64/mod/computers/68k/00000078.html is I believe being misinterpreted. There was a FlexOS 186 product available (I recall handling the disks and manuals in '90). This was a development after CDOS-286/FlexOS-286 whereby the product was ported to run on an x86 in real mode. Given the text in the first paragraph of that reference, I believe it refers to said real mode / 186 version, not to the '286 version. The '286 version was the original, causing the family of products to be spawned.

The cdos2.zip file contains a file struct.h, with the following boilerplate:
 * v1.2.01 04/16/86 FRH If New Timer System, remove DATE structure (NEWTICK)
 * v1.2.00 04/10/86 FRH Assume SYSBUILD.H included before this file
 * v1.0.06 12/10/85 MA  Changed UDA for 68K with new swi system.
 * v1.0.05 11/01/85 FRH New Swi System Conditionals
 * v1.0.04 09/17/85 FRH Remove p_nrpl and p_jba
 * Add PF1_WINDX and p_flag1 in PD
 * v1.0.03 09/10/85 FRH New FLAG structure
 * v1.0.02 08/22/85 FRH Change Event Flag definitions/names
 * v1.0.01 08/18/85 FRH Add IAPX286 define.
 * Add EV_NGET flag (EVB came from OS Pool)
 * Remove EVDELAY,EVFLAG flag
 * v1.0.00 08/06/85     Concurrent DOS 286 1.0 Release Version

Showing its derivation from CDOS-286.

The FlexOS 2.20 APT in part contains this from the equivalent file: 01Oct86 PKB            references to CDOS/Concurrent (DOS) changed to FlexOS 26Sep86 AM             Added p_tevnt field and removed PF1_STDWAIT flag from the PD. 25Sep86 ldt            Added p_osvp to the PD structure for overlay use. 15Sep86 AM             Added p_stdwait field and PF1_STDWAIT flag to PD. 04Sep86 reb             186 conditionals added 18Aug86 mei            #ifndefs around MPB, MD. 26Jun86 mei             In uda, word and long options of zeropage union given correct array lengths. 04Jun86 mei            High C port:  #ifndefs around EVB and VCB definitions. 16Apr86 FRH            If New Timer System, remove DATE structure (NEWTICK) 10Apr86 FRH            Assume SYSBUILD.H included before this file 10Dec85 MA             Changed UDA for 68K with new swi system. 01Nov85 FRH            New Swi System Conditionals 17Sep85 FRH            Remove p_nrpl and p_jba Add PF1_WINDX and p_flag1 in PD 10Sep85 FRH            New FLAG structure 22Aug85 FRH            Change Event Flag definitions/names 18Aug85 FRH            Add IAPX286 define. Add EV_NGET flag (EVB came from OS Pool) Remove EVDELAY,EVFLAG flag 06Aug85                FlexOS 286 1.0 Release Version

The cdos2.zip also contains SUP.H with this boilerplate:
 * v1.2.00 04/24/86 FRH Change DEF_END from 1 to 0xff.  Fixes ^A stdout file
 * name problem.
 * v1.0.00 06/17/85 KSO Concurrent DOS 286 1.0 Release Version

For which the FlexOS 2.20 APT contains:
 * 2.0.00 31Mar88 glp  Added fnt_flag field to FNUM entry and some defines
 * for it. Added rpid and rnid to FNUM entry so that
 * terminate can free unused FNUM entries.
 * IF0081, SPR 1766.
 * *** 2.0.00 31Mar88 ***
 * 1.5.00 88Feb29 glp  Added FNUMTAB macro and some externs it needs. SPR 1785
 * *** 1.5.00 88Feb29 ***
 * 01Oct86 PKB  references to CDOS, Concurrent or Concurrent DOS
 * changed to FlexOS.
 * v1.2.02 08/18/86 AM  Added defines for read_only and write check conditions.
 * v1.2.01 05/19/86 RFW Removed FTM_GSX, no such thing as a Graphics Manager.
 * v1.2.00 04/24/86 FRH Change DEF_END from 1 to 0xff.  Fixes ^A stdout file
 * name problem.
 * v1.0.00 06/17/85 KSO FlexOS 286 1.0 Release Version

Also interesting in cdos2.zip is SYSTEM.H, as it contains a number of definitions for the syscall API (call numbers, error values). These can be compared to those in the FlexOS programmer docs (including values from FLAGS.H). Other headers in the zip files have defines relating to implementing device drivers.

You may wish to compare the two versions of SYSTEM.H from cdos1.zip and cdos2.zip, that being: @@ -16,7 +16,7 @@ * v1.0.03 09/12/85 FRH Rename E_SWI to E_INSWI * v1.0.02 09/12/85 FRH E_UNDERRUN Error Added * v1.0.01 08/21/85 gat NMODS define removed -* v1.0.00             Concurrent DOS 1.0 Release Version +* v1.0.00             Concurrent DOS 286 1.0 Release Version ******************************************************************************/

The other evidence is in the system library (cdos1.zip - SYSLIB directory), where each of the C source files embed structure definitions for their respective parameter blocks. Again, compare to the parameter blocks passed in to the respective calls described in the FlexOS 286 1.3 documentation on bitsavers.

The cdos3.zip file contains DISPA.S with the following boilerplate:
 * 4.2  06/23/86        DR-K    _divide didn't check overflow from divu
 * instruction. Now call alcyon div routine.
 * 4.1  03/20/86        MA      asrwait calls mwait if not in ASR.
 * 4.0  03/04/86        MA      Moved expew (user entry point) to SUP68K.S
 * and optimized it a bunch for speed. Moved
 * tikflg and tikcnt variables to clock driver.
 * Took out uptime and curmpd variables.
 * 3.1  11/16/85        MA      Tracked 1.0H changes to ENTRY.A86 for
 * new swi system.
 * 3.0  11/10/85        MA      Tracked v1.0H changes to DISP.A86 for new
 * swi system, different UDA layout.
 * 3.0  10/22/85        MA      Tracked new Frank changes to disptcher.
 * Fixed trace exception handling to not
 * allow tracing of supervisor code.
 * 2.0  09/13/85        MA      Converted Frank's asr and disp stuff
 * in DISP.A86 to 68K assembly. Moved equates
 * to separate file. Took out swi fix in
 * gotopgm, added _rte symbol.
 * Changed name of drdos to _drdos.
 * Moved call to _tikinit after call to _dinit.
 * Put _breakpt back in. Added panic.
 * Changed to include "cpummu.equ".

disp here refers to the dispatcher, essentially the task switch scheduler, the 286 version was written in assembly language (DISP.A86), and a 68k version was created equivalent to it. Since it is unique assembly, the 286 version has little shared, but some of its boiler plate includes:

and
 * v1.2.01 03/11/86 FRH Direction Flag must be cleared in SETJMP and SETVEC.
 * v1.2.00              CDOS-286 1.2 Release Version
 * v1.0.12 01/07/86 gat Need to save bx through ok_isr call in setvec.
 * v1.1.00              CDOS-286 1.1 Release Version
 * v1.0.00 08/08/85 FRH Concurrent DOS 286 v1.0 Release Version

So I therefore suggest that CDOS-286 for versions < 1.3 is FlexOS 286, and that CDOS-68k 1.2 is FlexOS 68k 1.2. It may never have been released under the name FlexOS 68k, as I did once find a (usenet or mailing list) message mentioning that the 68k product was still available, but was at 'level 1.2' rather than 'level 1.3'. That would seem to be this: https://macgui.com/usenet/?group=78&start=80&id=25 and it refers to the VME/10 port which is what is in those 3 cdos zip files. Given when the porting started, vs where the CDOS-286 project was at the time, I suspect that CDOS 68k had its first release as version 1.2. But granted one can find a usenet post on that site referring to manuals for CDOS-68k version 1, but given the comparison to CPM-68K in it, it seems confused.

The bitsaver documents for FlexOS 1.3 refer to the limited support for the DOS frontend on 286 systems having the same constraints as on CDOS-286. These issues are I suggest the reason the product was renamed, and retargetted as a Real Time embedded OS. Later versions of FlexOS dropped the DOS FE on the 286, but included it in the 286 version. — Preceding unsigned comment added by 217.169.14.20 (talk) 01:19, 30 September 2018 (UTC)

FlexOS In the news
Two most recent events: "Wind River just got bought by Aptiv, like literally a week ago." -jonjon10002 58 minutes ago https://news.ycombinator.com/item?id=29983702 and https://news.ycombinator.com/item?id=29983702 "	Ask HN: Does anyone know of the whereabouts of the source code of FlexOS/386?" -andrewstuart 2 hours ago

142.254.26.9 (talk) 21:45, 18 January 2022 (UTC)