Chris De Herrera's Windows CE Website

Discuss.Pocket PC FAQ Forum

Add Pocket PC FAQ to your Favorites
RSS    RSS Feeds
Wiki    Lost?
Custom Search
Subscribe    Print
Table of Contents
Mobile Format

[an error occurred while processing this directive]

Pocket PC Magazine Best Site

Website Awards
Website Updates

By Chris De Herrera 
Copyright 1998-2007
 All Rights Reserved
A member of the Talksites Family of Websites

Windows and Windows CE are trademarks of Microsoft
and are used
under license from owner.
CEWindows.NET is not
associated with Microsoft 

All Trademarks are owned
by their respective companies.

Inside Windows CE 1.0, 2.x
By Chris De Herrera, Copyright 1997 1998
Version 1.04 Revised 5/1/98

[an error occurred while processing this directive]

What is Windows CE and how did they shoehorn all those applications in there? Well, this is a very well crafted small operating system. The operating system itself is a combination of vendor supplied drivers written in C or Assembler and the Kernel written exclusively in C. The Kernel of Windows CE provides memory management, preemptive multitasking and interrupt handling. On top of the Kernel sits the GUI and the desktop. Inside the GUI, all applications are run. More than one application can run simultaneously. There is no "DOS" mode as in other versions of Windows.

Memory MAP

The internal RAM is divided between application execution and application/data storage. The user decides how much storage is used for either purpose. Any programs or data stored in internal RAM is compressed real time to maximize storage capabilities. The compression is approximately 2 to 1. Any programs or data that is stored on flash cards is not compressed. The application execution RAM is used to store system and data for currently executing applications. Applications that exist in ROM are not transferred from ROM to RAM at the time of execution. This execute in place allows for faster execution of applications and reduces the RAM overhead required. The RAM used for data storage is actually a large ram disk. The data stored in this ram disk is compressed/decompressed real time, thus reducing the amount of space a given file requires.  In Windows CE 2.0, the system uses paging to reduce the amount of ram that is required at any given time to run all the applications that are loaded.  The operating system reloads pages as needed to run the application from rom or flash. Also, Windows CE 2.0 allows for compressed executables in ROM.  The user will notice pauses while some applications are loaded from ROM for the first time and then executed.  This was done to reduce the ROM footprint.

Here's a literal description of what is in the memory map:

Area Description
Program Execution RAM This is where the programs are actually running.  Effectively this is a series of 33 separate run spaces which are 32 MB in size.  Only one is executing at any given time and they are paged back and forth based on changing the address.  They are not flushed to disk as in a traditional paging system.
Object Store RAM The object store ram is used for internal storage of files and databases.  There is a limit of 16 MB in size for whole Object Store.  Also, in Windows CE 2.0, you can only create files and databases that are 4 MB or smaller.  Windows CE 2.1 removes this limitation.  SH3 CPUs use a page size of 1k while Mips use a page size of 4k.
Memory Mapped File A memory mapped file is not limited to 32mb. This is a way to share data that is larger among various applications.
Video RAM Some units remap a small portion of their internal ram for use as the video buffer.  This is currently being done by the Philips PR31700 CPU.
ROM Execute in place programs and bootstrap.  Can be compressed.


The program and data storage in Windows CE supports long filenames. The PC Card maps in to the system in the folder called PC Card. By placing programs and data on the card, more internal RAM can be used to run programs. The downside to this use of the storage is when the card is removed, the programs are not available as well. There is no support at this time for compression - Stacker, Drivespace or Doublespace on PC Cards. When Windows CE sees a compressed PC Card, the system will ask you if you want to format it.


The Windows CE environment provides serial communications. The serial communications can be rs-232 or IrDA BUT NOT BOTH AT THE SAME TIME in most implementations. The maximum speed for the serial port is 115.2k baud. At this speed, hardware handshaking is required (rts/cts). Also, your host PC should be a faster processor and have a 16550 UART. The system does support the use of a modem attached to the rs-232 cable as well as an internal PC Card. The software supported for communications includes a vt100 terminal and PPP with PAP, CHAP and IP support. Header compression is also supported. The use of an external modem will provide extended online time versus a PC Card.  Windows CE 2.0 also provides printing via serial cable or IrDA port to a PCL3 printer such as the HP Laserjet series.  Also, Ethernet support has been added as well.  Dialup Networking now supports SLIP as well as PPP. There is a network client for accessing Windows 95/NT/NT Server network drives. I have a Protocols FAQ that helps explain more details about Windows CE communications.

Well as you can see there sure is a lot going on under the covers of your Windows CE system!

For any questions regarding this article, please e-mail Chris@Pocket PC FAQ.

[an error occurred while processing this directive]

Return to Chris De Herrera's Windows CE Website