FreeDOS and embedded systems

Sy Wong wrote to me asking if there are any FreeDOS developers who are interested in Application-Specific Integrated Circuit (ASIC) technology. FreeDOS is often used in embedded systems, and I'm sure we have many embedded system designers and developers here. So I'm reproducing Sy's email here:

>> Is their a place in your Freedos movement to broaden the vista to
>> support for applications specific embedded systems development where
>> users never reprogram an appliance? [...]

> There is definitely a place in FreeDOS to do this. As I mentioned in my
> other email, it would be a good idea to email your ideas to the FreeDOS
> mailing list (see and see who volunteers
> to help. You may be pleasantly surprised by the response.

Sy Wong wrote:

I was a computer and digital signal processing system designer. My first IBM PC was ordered in Dec. 1981. A 6-PC Ethernet system was set up a year or so later under DOS with a 500MB NEC hard disk the size of a small Xerox machine. It was intended to support Ada language training for adoption ordered by DoD. Currently I use the Ada language and compiler on a DOS PC to design a very low cost processor chip for embedded multiple processor applications. DOS broken down into pieces will be the most suitable support for different parts of such systems because of compactness. Multi-tasking operating systems (MTOS) are inappropriate and undesirable. More detailed discussions among interested persons are required to plan work needs be done and do them. An example might be how to boot from the flash memories of the embedded programs, when simulated on a bunch of PC motherboards.

Ada is well known for being too large and too complex. The proof is in ISO-Ada standard of 1955 with an Annex that restricted many constructs for use in Safety and Security (SS) applications, important for military embedded systems. That SS portion of Ada retained all the support needed for developing software/hardware as components which is why I use to design my ASIC, short for Applications Specific IC. A computer is built up from simple And/Or gates to more complicated component hierachies.

Using IEEE HDLs such as Verilog/VHDL would require costly EDA tools because they are NOT programming languages. The 'D' in HDL means Description, not Design. Some 46 keywords are left and is simpler to use than C because of code readability. Also, Ada has strict compilation rules and validation tests so that syntax and most semantic errors are caught at compile time, not at rumtime that makes debugging harder. My old IBM PS/1 compiles so fast (mostly less than a couple seconds) that it is quicker to try some unsure syntax/semantics by compilation and read the almost instant error message if wrong. Faster than thumbing through the language manual. This allows small developers with small budgets to develop ASICs as intellectual properties without having to hock everything. The same environment can also program the end product if code generator is available. Work needs be done to write an official specification for this small safety subset to be noticed by the IC design community which I will explain if there are any interest. IC designers are not going to go through an inch thick ISO-standard manual to dig out the small subset, neither will a DOS developer used to C.

I hope to use my Ada compiler to support some DOS developments because it has an integrated assembler for 80x86 processors using Ada Package Specifications as envelopes. Something can be first developed in Ada and if too slow, change the code in the body into assembly with only relinking required. In comparing code efficiency, some of my Ada codes for IC design was recompiled by professor Levine at Fairleigh Dickingson University using a GNAT Ada compiler developed by NYU funded by DoD. GNAT uses the GNU backend. My executable code sizes were multiplied by a factor of more than 10. I have no information as to why.

If there are others with similar interests to do something together, please let me know. Email: