DuinOS

1. DuinOS Introduction

DuinOS is a customized DOS operating system for 86Duino devices, an advanced environment to support DOS application.

Derived from FreeDOS, DuinOS includes all FreeDOS components and tools. In addition, DuinOS also included application development environment to compile and debug application codes. To support 86Duino Zero/EduCake without VGA display, the DuinOS environment includes DOS shell redirection via the USB interface. Complete source codes for most of the DuinOS utilities and tools are released as part of the package. Developer familiar with DOS application development can use their existing knowledge to develop application for DuinoOS.

2. Install DuinOS onto SD flash storage

DuinOS utilities and resources are available for download via the here.

There are some minor differences between development workstation with different operating system. Depending on the operating system you are using for the development workstation, download the appropriate DuinOS file from the following:

If you are working with an 86Duino One board with VGA add on module, you can install DuinOS onto a Micro-SD card, insert the Micro-SD card to the 86Duino One board, attach VGA display, USB keyboard and access the DOS environment just like a PC, as shown in the following figure:

sd_card

For 86Duino Zero and 86Duino Educake, which do not have the option to add VGA display module, the console redirection feature is available to access the 86Duino remotely, refer to Section 4 for more details.

3. DuinOS Software Components

The following software components are included as part of the latest DuinOS:

  • FreeDOS 1.1
  • DJGPP 2.05
  • FreeBASIC 1.03.0
  • OpenWatcom 1.9
  • FreeRTOS 8.2.2
  • Windows CE 6.0
  • 86Duino DOS SDK
  • 86Duino DOS utilities
  • Device drivers for Vortex86EX peripherals

Brief introduction for the above DuinOS components:

FreeDOS

FreeDOS is an open source operating system, released under a GPL license. FreeDOS is compatible to MS-DOS and able to support most of the existing application written for MS-DOS. In general, existing MS-DOS application running on FreeDOS behave just as it’s running on MS-DOS. DuinOS components that are related to FreeDOS are organized under the \FDOS directory.

DJGPP

DJGPP is a suite of 32-bit C/C++ development tools for x86 processor running DOS or DOS compatible operating system. Part of DJGPP, such as the compiler and some of the development tools, are based on projects with GNU GPL license which put DJGPP into the GPL license environment. The compiler is a port from the popular GCC compiler. Along with the GNU utilities such as ld, make, gdb and etc., their usage is similar to the Linux environment. All of the DJGPP related components for DuinOS are placed under the \DJGPP directory.

Following is a list of the DJGPP tools and library:

gcc 6.1.0 gpp 6.1.0 binutils 2.25.1 djdev 2.05
gdb 7.11 make 4.2.1 grep 2.22 filutil 4.1
bison 2.4.1 flex 2.5.4 filutil 4.1 sed 4.2.2
rhide 1.5 PDCurses 3.4 Allegro 4.2.2 SwsSock 1.06

If you need additional software component not listed above, you can download from the DJGPP official website.

FreeBASIC

FreeBasic is an open source Basic compiler release under an GPL license. It’s compatible to QuickBasic. All FreeBasic related components for DuinOS are placed under the \FBASIC directory.

OpenWatcom

OpenWatcom is open-source and the newest Watcom C/C++ compiler, which has been used to build many famous DOS games. In DuinOS, Watcom C/C++ is used to build FreeRTOS applications. All related files are placed under the \WATCOM directory.

FreeRTOS

FreeRTOS a popular real-time operating system for embedded devices, which has been ported to various microcontrollers. DuinOS includes an x86 FreeRTOS port that runs under the x86 real mode; see the FreeRTOS guide for more information. All FreeRTOS-related files are placed under the \FREERTOS directory.

Windows CE

Windows CE is a real-time operating system developed by Microsoft as part of its Windows Embedded family of products. In DuinOS, it is allowed to launch Windows CE from DOS, and details are mentioned in Section 6. All CE-related files are placed under the \WINCE directory.

Network Device Driver

DuinOS network driver is based on NDIS. All network driver and related components are placed under the \NET directory. The PROTMAN.DOS, PROTMAN.EXE and NETBIND.COM under the \NET directory are NDIS components. The RDCPCI.DOS components under the \NET\R6040 folder is the network driver for Vortex86EX’s integrated Ethernet and the PROTOCOL.INI file contains network related configuration.
For more information about NDIS networking, refer to the here.

Note: During boot up, DuinOS create a RAM disk with the drive letter Z to store network utilities and libraries for 86Duino DOS. When drive Z is removed, you cannot access some of the networking features and tools for 86Duino DOS.

4. 86Duino DOS Utilities

86Duino utilities for DuinOS are placed in the \TOOLS directory. This section introduces these utilities and their usage.

86UsbSh

86UsbSh is an USB DOS Shell utility created specifically for 86Duino and DuinOS. With 86UsbSh, you can remotely access a headless 86Duino device’s DOS shell where you can execute DOS command, without the need to have VGA display and keyboard attached to the device. The 86UsbSh utility can be configured to launch by AUTOEXEC.BAT during boot up. For more information about 86UsbSh, refer to the following document:

Note: Through 86UsbSh, you cannot access frame buffer data for the video display card. Through 86UsbSh, you cannot replicate keyboard interaction with active DOS program that requires interaction with a keyboard.

Note: 86UsbSh is configured to launch during boot up. When working with an 86Duino One with VGA module and keyboard as user interface for DuinOS, you need to modify AUTOEXEC.BAT to disable 86UsbSH. Visit the following document for more detail about AUTOEXEC.BAT modification:

86ComSh

86ComSh can be used to enable FreeDOS’s console redirection feature and redirect DOS command shell through one of the available serial port on an 86Duino device where a PC with serial port connectivity to the 86Duino device provide interface to DOS command shell remotely. The 86ComSh utility is less restrictive comparing to 86UsbSh. Similar to 86UsbSh, the 86ComSh utility is configured to launch by AUTOEXEC.BAT during bootup. An USB-to-UART adapter is used to provide the required serial connectivity. Refer to the following document for more information about how to use 86ComSh:

Note: Through 86ComSh, you cannot access frame buffer data for the video display card, or video output generated by application.

86Duino I/O Toolkit

From v1.1, DuinOS includes several programs to manipulate I/O interfaces of 86Duino and show system information under DOS; they are listed as follows.

  • 86ADC: read values on 86Duino’s A/D channels.
  • 86IO: access 86Duino’s digital I/O pins.
  • 86CRSBAR: modify Vortex86EX’s crossbar to change the functions of some 86Duino I/O pins.
  • 86CLOCK: modify 86Duino’s CPU clock.
  • 86INFO: show 86Duino system information.
  • 86PWM:produce PWM on 86Duino.

5. 86Duino DOS SDK

The DOS SDK for DuinOS includes a complete development environment to support 86Duino application development in C++, with library and API to access 86Duino I/O peripherals such as digitalRead(), digitalWrite(), analogRead() and etc. Refer to the following document for more information about the SDK:

6. Windows CE Demo Image

From v1.1, DuinOS includes Windows CE 6.0 demo image for Vortex86EX, which has supported many built-in I/O, such as LAN, HD Audio, and serial ports; even in case of no display, it’s telnet server allows that the user uses telnet to login Windows CE for operation.

To launch Windows CE under the DOS prompt, the user just runs the corresponding batch file according the 86Duino board model:

CE_ZERO.BAT Launch Windows CE on 86Duino Zero
CE_ONE.BAT Launch Windows CE on 86Duino One without a Vortex86VGA card
CE_ONE_V.BAT Launch Windows CE on 86Duino One with a Vortex86VGA card
CE_ECAKE.BAT Launch Windows CE on 86Duino EduCake

In addition, you can set to launch Windows CE at the boot time, as mentioned in the following tutorial:

Note: DuinOS includes a Windows CE demo image for the demo usage of Vortex86EX SoC, and, if you want to use Windows CE in commerical use, you should get its license from Microsoft.


DEMO VIDEO


Hacking

The text of the 86Duino reference is licensed under a Creative Commons Attribution-ShareAlike 3.0 License.