<html>
|
<html>
|
|
|
<head>
|
<head>
|
<meta http-equiv="Content-Language" content="en-us">
|
<meta http-equiv="Content-Language" content="en-us">
|
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
|
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
|
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
|
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
|
<meta name="ProgId" content="FrontPage.Editor.Document">
|
<meta name="ProgId" content="FrontPage.Editor.Document">
|
<title></title>
|
<title></title>
|
</head>
|
</head>
|
|
|
<body>
|
<body>
|
|
|
<h1><img border="0" src="file:///C:/My%20Documents/My%20Webs/myweb2/images/evearth.gif" WIDTH="36" HEIGHT="36"> Microwindows Frequently Asked
|
<h1><img border="0" src="file:///C:/My%20Documents/My%20Webs/myweb2/images/evearth.gif" WIDTH="36" HEIGHT="36"> Microwindows Frequently Asked
|
Questions</h1>
|
Questions</h1>
|
|
|
<p>1999/12/04 Microwindows FAQ - <a href="mailto:greg@censoft.com">greg@censoft.com</a></p>
|
<p>1999/12/04 Microwindows FAQ - <a href="mailto:greg@censoft.com">greg@censoft.com</a></p>
|
|
|
<h3>What is Microwindows?</h3>
|
<h3>What is Microwindows?</h3>
|
|
|
<p>Microwindows is an Open Source project that brings some of the features of modern
|
<p>Microwindows is an Open Source project that brings some of the features of modern
|
graphical windowing systems to the programming community not wanting or requiring the
|
graphical windowing systems to the programming community not wanting or requiring the
|
large disk and ram requirements of higher-end windowing systems like Microsoft Windows or
|
large disk and ram requirements of higher-end windowing systems like Microsoft Windows or
|
the X Window System. Microwindows does not require any operating system or other
|
the X Window System. Microwindows does not require any operating system or other
|
graphics system support, as it writes directly to the display hardware, although it runs
|
graphics system support, as it writes directly to the display hardware, although it runs
|
well on Linux framebuffer systems. Microwindows is designed to be portable, and can
|
well on Linux framebuffer systems. Microwindows is designed to be portable, and can
|
run in a wide variety of hardware and software environments. One the of more
|
run in a wide variety of hardware and software environments. One the of more
|
interesting targets is the emerging market of portable handheld and pocket PC's running
|
interesting targets is the emerging market of portable handheld and pocket PC's running
|
Linux, also known as LinuxCE. </p>
|
Linux, also known as LinuxCE. </p>
|
|
|
<h3>What does Microwindows run on?</h3>
|
<h3>What does Microwindows run on?</h3>
|
|
|
<p>Microwindows currently runs on 32-bit Linux systems with kernel framebuffer support, or
|
<p>Microwindows currently runs on 32-bit Linux systems with kernel framebuffer support, or
|
through the popular SVGAlib library. In addition, it has been ported to 16-bit Linux
|
through the popular SVGAlib library. In addition, it has been ported to 16-bit Linux
|
ELKS, and real-mode MSDOS. Microwindows screen drivers for 1, 2, 4, 8, 16 and 32
|
ELKS, and real-mode MSDOS. Microwindows screen drivers for 1, 2, 4, 8, 16 and 32
|
bits-per-pixel have been written, as well as a VGA 16 color 4 planes driver.
|
bits-per-pixel have been written, as well as a VGA 16 color 4 planes driver.
|
Microwindows has been ported to a number of Handheld and Pocket PC's, as well. The
|
Microwindows has been ported to a number of Handheld and Pocket PC's, as well. The
|
Microwindows graphics engine is capable of running on any system that supports readpixel,
|
Microwindows graphics engine is capable of running on any system that supports readpixel,
|
writepixel, drawhorzline and drawvertline, and setpalette. Blitting support is
|
writepixel, drawhorzline and drawvertline, and setpalette. Blitting support is
|
optional, but if implemented allows enhanced functionality. All bitmap, font, cursor
|
optional, but if implemented allows enhanced functionality. All bitmap, font, cursor
|
and color support is implemented on top of these routines. Support for 8, 15, 16 and
|
and color support is implemented on top of these routines. Support for 8, 15, 16 and
|
32 bit truecolor systems as well as 1, 2, 4 and 8bpp palletized systems is implemented.<br>
|
32 bit truecolor systems as well as 1, 2, 4 and 8bpp palletized systems is implemented.<br>
|
<br>
|
<br>
|
Recently, an X11 driver was completed that allows Microwindows applications to be run on
|
Recently, an X11 driver was completed that allows Microwindows applications to be run on
|
top of the X Window desktop. This driver emulates all of Microwindows' truecolor and
|
top of the X Window desktop. This driver emulates all of Microwindows' truecolor and
|
palette modes so that an application can be previewed using the target system's display
|
palette modes so that an application can be previewed using the target system's display
|
characteristics directly on the desktop display, regardless of the desktop display
|
characteristics directly on the desktop display, regardless of the desktop display
|
characteristics.</p>
|
characteristics.</p>
|
|
|
<h3>What CPU's are supported?</h3>
|
<h3>What CPU's are supported?</h3>
|
|
|
<p>Microwindows is extremely portable, and completely written in C, although some routines
|
<p>Microwindows is extremely portable, and completely written in C, although some routines
|
have been recoded in assembly for speed. It has been ported to the Intel 16 and 32
|
have been recoded in assembly for speed. It has been ported to the Intel 16 and 32
|
bit cpu's, as well as MIPS R4000 (NEC Vr41xx) and ARM chips found on popular handheld and
|
bit cpu's, as well as MIPS R4000 (NEC Vr41xx) and ARM chips found on popular handheld and
|
pocket PC's.</p>
|
pocket PC's.</p>
|
|
|
<h3>How big is Microwindows?</h3>
|
<h3>How big is Microwindows?</h3>
|
|
|
<p>On 16 bit systems, the entire system, including screen, mouse and keyboard drivers runs
|
<p>On 16 bit systems, the entire system, including screen, mouse and keyboard drivers runs
|
in less than 64k. On 32-bit systems, support includes proportional fonts and
|
in less than 64k. On 32-bit systems, support includes proportional fonts and
|
applications are typically less than 100k.</p>
|
applications are typically less than 100k.</p>
|
|
|
<h3>What is Microwindows' architecture and what API's are supported?</h3>
|
<h3>What is Microwindows' architecture and what API's are supported?</h3>
|
|
|
<p>Microwindows is essentially a layered design that allows different layers to be used or
|
<p>Microwindows is essentially a layered design that allows different layers to be used or
|
rewritten to suite the needs of the implementation. At the lowest level, screen,
|
rewritten to suite the needs of the implementation. At the lowest level, screen,
|
mouse/touchpad and keyboard drivers provide access to the actual display and other
|
mouse/touchpad and keyboard drivers provide access to the actual display and other
|
user-input hardware. At the mid level, a portable graphics engine is implemented,
|
user-input hardware. At the mid level, a portable graphics engine is implemented,
|
providing support for line draws, area fills, polygons, clipping and color models.
|
providing support for line draws, area fills, polygons, clipping and color models.
|
At the upper level, various API's are implemented providing access to the graphics
|
At the upper level, various API's are implemented providing access to the graphics
|
applications programmer. These APIs may or may not provide desktop and/or window
|
applications programmer. These APIs may or may not provide desktop and/or window
|
look and feel. Currently, Microwindows supports the Win32 and Nano-X APIs.
|
look and feel. Currently, Microwindows supports the Win32 and Nano-X APIs.
|
These APIs provide close compatibility with the Win32 and X Window systems, allowing
|
These APIs provide close compatibility with the Win32 and X Window systems, allowing
|
programs to be ported from other systems easily.</p>
|
programs to be ported from other systems easily.</p>
|
|
|
<h3>What's the difference between Microwindows and NanoGUI?</h3>
|
<h3>What's the difference between Microwindows and NanoGUI?</h3>
|
|
|
<p>Microwindows' origin is with NanoGUI. NanoGUI was created by Alex Holden by
|
<p>Microwindows' origin is with NanoGUI. NanoGUI was created by Alex Holden by
|
taking David Bell's mini-X server and Alan Cox's modifications and adding client/server
|
taking David Bell's mini-X server and Alan Cox's modifications and adding client/server
|
networking. Greg Haerr then took interest in the NanoGUI project and began making
|
networking. Greg Haerr then took interest in the NanoGUI project and began making
|
extensive enhancements and modifications to NanoGUI. Around version 0.5, Greg Haerr
|
extensive enhancements and modifications to NanoGUI. Around version 0.5, Greg Haerr
|
added support for multiple API's, and began distributing Microwindows. In
|
added support for multiple API's, and began distributing Microwindows. In
|
Microwindows 0.84, all previous NanoGUI changes were incorporated and since then
|
Microwindows 0.84, all previous NanoGUI changes were incorporated and since then
|
Microwindows has been the combined NanoGUI/Microwindows distribution.</p>
|
Microwindows has been the combined NanoGUI/Microwindows distribution.</p>
|
|
|
<h3>What is Nano-X?</h3>
|
<h3>What is Nano-X?</h3>
|
|
|
<p>Nano-X is the X-like API that Microwindows supports. It is based on David Bell's
|
<p>Nano-X is the X-like API that Microwindows supports. It is based on David Bell's
|
mini-X server API, and includes X-like primitives for low-level window and graphics
|
mini-X server API, and includes X-like primitives for low-level window and graphics
|
operations. Window management is not included, and the window look and feel must be
|
operations. Window management is not included, and the window look and feel must be
|
created through a widget set or directly by the applications programmer. Currently,
|
created through a widget set or directly by the applications programmer. Currently,
|
there are a number of people working on widget sets for Nano-X. There is some
|
there are a number of people working on widget sets for Nano-X. There is some
|
discussion about converting the Nano-X API to be X Window System compatible.</p>
|
discussion about converting the Nano-X API to be X Window System compatible.</p>
|
|
|
<h3>What is the Microwindows API?</h3>
|
<h3>What is the Microwindows API?</h3>
|
|
|
<p>Microwindows supports an API based on the Win32 graphics device interface
|
<p>Microwindows supports an API based on the Win32 graphics device interface
|
module, and implements a large portion of it. The function calls try to be 100%
|
module, and implements a large portion of it. The function calls try to be 100%
|
compatible, so that code compiled for other operating systems can usually be
|
compatible, so that code compiled for other operating systems can usually be
|
compiled with no source code changes. In addition, a portion of the Win32
|
compiled with no source code changes. In addition, a portion of the Win32
|
USER module is implemented, which contains routines for window dragging, title
|
USER module is implemented, which contains routines for window dragging, title
|
bars, message passing, and generating required window messages.
|
bars, message passing, and generating required window messages.
|
Because of this, window manager support is built into the system, and a single
|
Because of this, window manager support is built into the system, and a single
|
API for applications programs can be used that doesn't change based on the
|
API for applications programs can be used that doesn't change based on the
|
widget set being used.<br>
|
widget set being used.<br>
|
<br>
|
<br>
|
Since the WinCE API is mostly a subset of the Win32 API for graphics-related
|
Since the WinCE API is mostly a subset of the Win32 API for graphics-related
|
functions, the Microwindows API is also WinCE compatible, and can be used to
|
functions, the Microwindows API is also WinCE compatible, and can be used to
|
implement WinCE graphics functions on platforms Microwindows is running on.</p>
|
implement WinCE graphics functions on platforms Microwindows is running on.</p>
|
|
|
<h3>What are Microwindows' graphics features?</h3>
|
<h3>What are Microwindows' graphics features?</h3>
|
|
|
<p>Microwindows features full RGB color support, color mapping, optimized palette bitmap
|
<p>Microwindows features full RGB color support, color mapping, optimized palette bitmap
|
drawing, truecolor and palletized displays, and a 3d look-and-feel. Overlapped and child
|
drawing, truecolor and palletized displays, and a 3d look-and-feel. Overlapped and child
|
windows are supported, with complete window and client area clipping. Proportional and
|
windows are supported, with complete window and client area clipping. Proportional and
|
fixed fonts are supported, along with utilities for converting fonts or bitmap files.
|
fixed fonts are supported, along with utilities for converting fonts or bitmap files.
|
Optimized painting algorithms are used to allow maximum response while the user is moving
|
Optimized painting algorithms are used to allow maximum response while the user is moving
|
windows on the screen. Offscreen drawing and bit-blit routines are implemented for
|
windows on the screen. Offscreen drawing and bit-blit routines are implemented for
|
flicker-free drawing and animation. Polygon draws, fills and arbitrary region clipping are
|
flicker-free drawing and animation. Polygon draws, fills and arbitrary region clipping are
|
also supported.</p>
|
also supported.</p>
|
|
|
<h3>What license is Microwindows under?</h3>
|
<h3>What license is Microwindows under?</h3>
|
|
|
<p>The project is licensed under the MPL. Alternatively, the software can be
|
<p>The project is licensed under the MPL. Alternatively, the software can be
|
licensed under the GPL, if desired. This means that the standard Microwindows
|
licensed under the GPL, if desired. This means that the standard Microwindows
|
distribution can be used for commercial purposes, and supports the needs of developers
|
distribution can be used for commercial purposes, and supports the needs of developers
|
working under non-disclosure or writing proprietary device drivers. Modifications to
|
working under non-disclosure or writing proprietary device drivers. Modifications to
|
source code supplied in the standard distribution must stay open source. Or the
|
source code supplied in the standard distribution must stay open source. Or the
|
entire project can be converted to GPL, with files added by a developer considered GPL
|
entire project can be converted to GPL, with files added by a developer considered GPL
|
only.</p>
|
only.</p>
|
|
|
<h3>Where is the most current source?</h3>
|
<h3>Where is the most current source?</h3>
|
|
|
<p>The FTP site <a href="ftp://microwindows.censoft.com/pub/microwindows">ftp://microwindows.censoft.com/pub/microwindows</a>
|
<p>The FTP site <a href="ftp://microwindows.censoft.com/pub/microwindows">ftp://microwindows.censoft.com/pub/microwindows</a>
|
is the primary distribution point for all releases. The home web site is at <a href="http://microwindows.censoft.com">http://microwindows.censoft.com</a>. I can be
|
is the primary distribution point for all releases. The home web site is at <a href="http://microwindows.censoft.com">http://microwindows.censoft.com</a>. I can be
|
reached at <a href="mailto:greg@censoft.com">greg@censoft.com</a>. I am working on
|
reached at <a href="mailto:greg@censoft.com">greg@censoft.com</a>. I am working on
|
getting the development tree moved to CVS, stay tuned.</p>
|
getting the development tree moved to CVS, stay tuned.</p>
|
|
|
<h3>Are there screenshots and/or demos available?</h3>
|
<h3>Are there screenshots and/or demos available?</h3>
|
|
|
<p>There are demos for Linux, ELKS and MSDOS, as well as screenshots, available at:</p>
|
<p>There are demos for Linux, ELKS and MSDOS, as well as screenshots, available at:</p>
|
|
|
<blockquote>
|
<blockquote>
|
<p><a href="ftp://microwindows.censoft.com/pub/microwindows/ScreenShots">ftp://microwindows.censoft.com/pub/microwindows/ScreenShots</a></p>
|
<p><a href="ftp://microwindows.censoft.com/pub/microwindows/ScreenShots">ftp://microwindows.censoft.com/pub/microwindows/ScreenShots</a></p>
|
<p><a href="ftp://microwindows.censoft.com/pub/microwindows/ScreenShots">ftp://microwindows.censoft.com/pub/microwindows/LinuxExamples</a>
|
<p><a href="ftp://microwindows.censoft.com/pub/microwindows/ScreenShots">ftp://microwindows.censoft.com/pub/microwindows/LinuxExamples</a>
|
<a href="ftp://microwindows.censoft.com/pub/microwindows/ScreenShots">ftp://microwindows.censoft.com/pub/microwindows/ElksExamples</a>
|
<a href="ftp://microwindows.censoft.com/pub/microwindows/ScreenShots">ftp://microwindows.censoft.com/pub/microwindows/ElksExamples</a>
|
<a href="ftp://microwindows.censoft.com/pub/microwindows/ScreenShots">ftp://microwindows.censoft.com/pub/microwindows/DosExamples</a></p>
|
<a href="ftp://microwindows.censoft.com/pub/microwindows/ScreenShots">ftp://microwindows.censoft.com/pub/microwindows/DosExamples</a></p>
|
</blockquote>
|
</blockquote>
|
|
|
<h3>Is there a mailing list?</h3>
|
<h3>Is there a mailing list?</h3>
|
|
|
<p>The mailing list is <a href="mailto:nanogui@linuxhacker.org">nanogui@linuxhacker.org</a></p>
|
<p>The mailing list is <a href="mailto:nanogui@linuxhacker.org">nanogui@linuxhacker.org</a></p>
|
|
|
<p>To subscribe, send an empty email to:</p>
|
<p>To subscribe, send an empty email to:</p>
|
|
|
<p> <a href="mailto:nanogui-subscribe@linuxhacker.org">nanogui-subscribe@linuxhacker.org</a></p>
|
<p> <a href="mailto:nanogui-subscribe@linuxhacker.org">nanogui-subscribe@linuxhacker.org</a></p>
|
|
|
<p>To unsubscribe, send an empty email to:</p>
|
<p>To unsubscribe, send an empty email to:</p>
|
|
|
<p> <a href="mailto:nanogui-unsubscribe@linuxhacker.org">nanogui-unsubscribe@linuxhacker.org</a></p>
|
<p> <a href="mailto:nanogui-unsubscribe@linuxhacker.org">nanogui-unsubscribe@linuxhacker.org</a></p>
|
|
|
<h3>What can I do to help?</h3>
|
<h3>What can I do to help?</h3>
|
|
|
<p>We need help in all sorts of areas. There are currently projects to port base
|
<p>We need help in all sorts of areas. There are currently projects to port base
|
level widget sets and custom controls to Microwindows. Fast screen drivers and
|
level widget sets and custom controls to Microwindows. Fast screen drivers and
|
blitting routines are also on the list. There are lots of folks interested in
|
blitting routines are also on the list. There are lots of folks interested in
|
getting the system to run on one of the many new Handheld or Pocket PC's. Please
|
getting the system to run on one of the many new Handheld or Pocket PC's. Please
|
join the list and join the fun.</p>
|
join the list and join the fun.</p>
|
|
|
<p> </p>
|
<p> </p>
|
</body>
|
</body>
|
</html>
|
</html>
|
|
|