(MS-)DOS PC on a microcontroller??

Hallo.

I am wondering, whether anyone made the possibly useless attempt, to create a (MS-)DOS (and its old programs) compatible PC on a Microcontroller by using its flash as harddisk?

Reply to
Paul Rosen
Loading thread data ...

You can try FreeDos with 8086 processor.

FreeDOS is a complete, free, 100% MS-DOS compatible operating system. Works on old hardware, in DOS emulators, and in embedded systems.

FreeDOS is a free DOS-compatible operating system for IBM-PC compatible systems. FreeDOS is made of up many different, separate programs that act as "packages" to the overall FreeDOS Project.

Visit ->

formatting link

Also check this link ->

formatting link

  1. Freedos editor: to write assembly programs for microcontrollers. one can see many files at a time comparing things.
  2. S51 is a freeware simulator for intel 8x51 series microcontrollers.
  3. asm51-assembler for 8x51 it is a freeware
  4. Pedit is another free editor to write programs and has many facilities.
  5. tavrasm is avr microcontroller assembler that is gnu and runs successfully on freedos.
  6. sp12 is a gnu, chip programming software for avr microcontrollers and works very well on freedos.
  7. easytrax is a freeware from protel for designing p.c.b. that runs very very effectively on freedos.
8 ceibo 750d - a simulator for Philips microcontroller (commercial software)
  1. Chip programmer from Oriole electronics to program chips of 8x51 series.(commercial software)
  2. picoscope- a commercial software making the pc an oscilloscope- dos version works fine with freedos.
  3. A simple freeware by Charis Volos is "MENUS" and works fine as the desktop. it is simple but effective.
  4. Dos navigator can be accessed thro "MENUS" and works wonderfully well as a fantastic file manager with other utils.(a freeware)
  5. a wordstar style free wordprocessor with local language support (and english).
  6. a spreadsheet instacalc very useful to an electrical engineer for scientific calculations and graphs

Karthik Balaguru

Reply to
karthikbalaguru

Sure. (inter alia)

Reply to
larwe

Only the MS DOS is 100% DOS compatible. *All* of the other DOSes do have compatibility problems with some softwares. MS DOS has a lot of undocumented and unobvious features, and it appears that somebody is using that.

For example: in the MS DOS, it is perfectly valid to allocate a memory block of zero bytes. In PTS-DOS and some others it results in an error. It appears that surprisingly many programs are actually making the requests of zero bytes, so here is a compatibility problem.

Vladimir Vassilevsky DSP and Mixed Signal Design Consultant

formatting link

Reply to
Vladimir Vassilevsky

Thanks for your suggestions.

This is the the operative point. One needs a microcontoller at least connected to a floppy, a CD-ROM or a USB-stick to install Freedos and to copy the old MS-DOS programs into the microcontoller. Further one needs a monitor connected to the microcontroller. Where can I find a wiring diagram for this.

Reply to
Paul Rosen

correction:

Reply to
Paul Rosen

Do you mean port to another processor, or some (mythical) x86 based Microcontroller with on-chip Flash ?.

You would get close with the eZ80Acclaim, or Rabbit, so take a look at the Modules, and operating systems support from those suppliers. In those cases, the Modules tend to include external FLASH, and also Ethernet.

-jg

Reply to
Jim Granville

Let me guess... the 0 byte malloc code is in the runtime libraries for Microsoft C, so that no kosher program will run properly on non-kosher DOS clones.

Reply to
larwe

Thanks Larwe.

We've been making them since 1994. Our products have flown on the Shuttle, the ISS, and several low-earth sats. They've also tracked whales in the Gulf of Mexico and measured shroud tension on manned parachutes. Hardly useless.

I'm quite sure that we were the first to do a PC-compatible flash drive on an embedded controller. The motivation was the frustration my wife and I suffered working with the Ampro PC/104 MS/DOS controllers of the time.

Reply to
Jim Stewart

I found found the Thin Client T to be ideal for a wide variety of embedded applications. For one-off jobs I really like to use off-the-shelf hardware. I usually reach for:

Low end / low performance: BasicX BX-24, [

formatting link

Most applications: JK Micros Think Client T [

formatting link
].

High end / high performance: Dell PowerEdge 6850 rack mount server [

formatting link
]

(I am not affilated with JK Micro, BacicX or Dell, just a satisfied customer.)

--
Guy Macon
Reply to
Guy Macon

See the following from the C standard. Note the provision for a size request of zero. This is easily missed, because it applies to all of malloc, realloc, and calloc and thus is isolated in the standard.

7.20.3 Memory management functions [#1] The order and contiguity of storage allocated by successive calls to the calloc, malloc, and realloc functions is unspecified. The pointer returned if the allocation succeeds is suitably aligned so that it may be assigned to a pointer to any type of object and then used to access such an object or an array of such objects in the space allocated (until the space is explicitly freed or reallocated). Each such allocation shall yield a pointer to an object disjoint from any other object. The pointer returned points to the start (lowest byte address) of the allocated space. If the space cannot be allocated, a null pointer is returned. If the size of the space requested is | zero, the behavior is implementation-defined: either a null | pointer is returned, or the behavior is as if the size were | some nonzero value, except that the returned pointer shall | not be used to access an object. The value of a pointer | that refers to freed space is indeterminate. | | This is the critical provision ----------------------'
--
 Chuck F (cbfalconer at maineline dot net)
   Available for consulting/temporary embedded and systems.
Reply to
CBFalconer

We give out paper schematics with our dev kits. A few customers have developed their own products from our schematic and I don't have a problem with that as long as they don't pirate our bios.

Reply to
Jim Stewart

On Tue, 23 Oct 2007 17:30:28 -0400, CBFalconer wrote in comp.arch.embedded:

Chuck, I think you're missing the point here. There is not necessarily a relationship between the C library being required to support malloc/calloc requests for 0 bytes and whether or not the operating system chokes on zero bytes.

Given any real world implementation of malloc etc., a C library will do one of the following:

-- return a NULL pointer without even calling the OS allocation routine.

-- call the OS allocation routine for a block of (requested size + internal header size) bytes. On real mode MS-DOS and clones running in 16-bit real mode on x86, the internal header is almost certainly 16 bytes (one "paragraph"). Even if the requested value is left at 0 and not rounded up to one "paragraph" of 16 bytes, if the library calls the OS at all, it will almost certainly be for 16 bytes.

The differences in the responses of different DOS clones to a call to allocate 0 paragraphs would never be seen by any DOS C library I have ever used.

--
Jack Klein
Home: http://JK-Technology.Com
FAQs for
comp.lang.c http://c-faq.com/
comp.lang.c++ http://www.parashift.com/c++-faq-lite/alt.comp.lang.learn.c-c++
http://www.club.cc.cmu.edu/~ajo/docs/FAQ-acllc.html
Reply to
Jack Klein

But that return normally is treated as an error signal. Using such a library is valid, but the caller has to detect the zero size and ignore that false error signal. I don't think the world realizes that.

--
 Chuck F (cbfalconer at maineline dot net)
   Available for consulting/temporary embedded and systems.
Reply to
CBFalconer

The controller inside a Canon EOS 300D camera runs DOS. This was discovered by someone reflashing the firmware (provided by Canon). For the whole story, Google "Canon Russian firmware hack."

There is of course Caldera DOS (freeware), compatible with MS-DOS.

Reply to
mc

Jim,

Sounds like one hell of a good story there about how your idea turned into a solution, then how your solution turned into a product. And finally, how your product wound up in the space program.

If you ever have time to put it down on paper, I'm sure I'm not the only one who'd be fascinated by it.

Thanks!

Tom

Reply to
Tom2000

I agree! I have a couple of 80386 boards from JK Micro and found them to be of outstanding quality. They are good people to deal with.

Jerry

-- If replying, preform appendectomy on email address.

--

Reply to
Jerry Petrey

I was going to mention jkmicro.com in response to the original email - but thought it was not quite what the OP was meaning. The JK Micro boards I have use a DiskOnChip, rather than implementing a PC compatible system purely using the microcontrollers flash. AFAIK the DiskOnChip has a driver that makes it look like a driver, rather than what it actually is (flash). Is this the case?

I too would recommend the JK Micro products. Having DOS on your embedded platform is more than convenient.

--
Regards,
Richard.

+ http://www.FreeRTOS.org
13 official architecture ports, 1000 downloads per week.

+ http://www.SafeRTOS.com
Certified by TÜV as meeting the requirements for safety related systems.
Reply to
FreeRTOS.org

Hello Jim,

I do not really understand where this boards are good for. What can be done with them, that cannot be done with a single chip microcontroller?

The intention of my original-posting question was to know, whether nowadays singlechip microcontrollers are able, to be a complete PC, at least the way as we had them in the beginning of the PCs and to run the old software on it. That means only ONE! microcontroller-chip with only some drivers or transistors to make the signals of the microcontroller strong enough to drive a floppy, a keyboard and a Hercules monitor.

Your product needs additional chips beside the processor. Thus it cannot answer the question, whether a microontroller can be a complete PC. Because your product is the only one, which was mentioned here: Is it correct, that a PC on nowadays microcontrollers is not possible?

Reply to
Paul Rosen

A PC is a *collection* of hardware with defined interfaces. There are some IO chips that place all these interfaces on one piece of silicon, but there still has to be compliance with instruction set, processor architecture, vector numbers, IO locations, IRQ, BIOS interface, etc. Otherwise it is not PC compatible.

I think what I am saying is - I don't understand your question.

--
Regards,
Richard.

+ http://www.FreeRTOS.org
13 official architecture ports, 1000 downloads per week.

+ http://www.SafeRTOS.com
Certified by TÜV as meeting the requirements for safety related systems.
Reply to
FreeRTOS.org

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.