Talk:FlexOS

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
WikiProject Computing (Rated Stub-class)
WikiProject iconThis article is within the scope of WikiProject Computing, a collaborative effort to improve the coverage of computers, computing, and information technology on Wikipedia. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.
Stub-Class article Stub  This article has been rated as Stub-Class on the project's quality scale.
 ???  This article has not yet received a rating on the project's importance scale.
 
Note icon
This article has been automatically rated by a bot or other tool as Stub-Class because it uses a stub template. Please ensure the assessment is correct before removing the |auto= parameter.
WikiProject Computer science (Rated Stub-class, Low-importance)
WikiProject iconThis article is within the scope of WikiProject Computer science, a collaborative effort to improve the coverage of Computer science related articles on Wikipedia. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.
Stub-Class article Stub  This article has been rated as Stub-Class on the project's quality scale.
 Low  This article has been rated as Low-importance on the project's importance scale.
 

External links modified[edit]

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:

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

As of February 2018, "External links modified" talk page sections are no longer generated or monitored by InternetArchiveBot. No special action is required regarding these talk page notices, other than regular verification using the archive tool instructions below. Editors have permission to delete these "External links modified" talk page sections if they want to de-clutter talk pages, but see the RfC before doing mass systematic removals. This message is updated dynamically through the template {{sourcecheck}} (last update: 15 July 2018).

  • If you have discovered URLs which were erroneously considered dead by the bot, you can report them with this tool.
  • If you found an error with any archives or the URLs themselves, you can fix them with this tool.

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

FlexOS 68K (CDOS-68K)[edit]

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:

; 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

and

; 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)