Adding Annunciators to the Taskbar Windows CE 4.2

Adding Annunciators to the Taskbar

If the fill H/PC-like shell is included, Windows CE supports the use of annunciators, icons placed onto the taskbar to indicate user notifications are active. Applications can add, change, and delete an annunciator using the Shell_NotifyIcon function. The following code example shows the prototype for this function.

BOOL Shell_NotifyIcon (DWORD dwMessage, PNOTIFYICONDATA pnid);

The first parameter, dwMessage, specifies the task the function should perform. This parameter can be one of the following three values:

NIM_ADD
This function adds an annunciator to the taskbar.
NIM_DELETE
This function deletes an annunciator from the taskbar.
NIM_MODIFY
This function modifies an existing annunciator on the taskbar.

The other parameter, pnid, points to the NOTIFYICONDATA structure. The following code example shows the structure definition.

typedef struct _NOTIFYICONDATA { 
   DWORD cbSize;
   HWND hWnd; 
   UINT uID; 
   UINT uFlags; 
   UINT uCallbackMessage; 
   HICON hIcon; 
   WCHAR szTip[64]; 
} NOTIFYICONDATA;

The first member, cbSize, contains the structure size, in bytes. The hWnd member specifies the window handle that owns the icon. This window receives messages notifying the window that a user has tapped, double-tapped, or moved a pen on the icon. The uID member identifies the icon being added, deleted, or modified. Assigning a uID to an icon enables an application to have more than one icon on the taskbar. The uFlags member contains flags that identify which of the remaining structure fields contain valid data.

The uCallbackMessage member contains an application-defined message identifier. Windows CE uses the identifier to notify the window specified in hWnd of any user actions on the icon. This value is based on WM_USER so that the message value does not conflict with other messages the window receives. The taskbar looks at uCallbackMessage only if uFlags contains the NIF_MESSAGE flag.

The hIcon member contains a handle to the icon to be displayed on the taskbar. Notification icons must be 16 x 16 pixels. Call the LoadImage function instead of the LoadIcon function to load the icon because LoadIcon does not return a small format icon. The taskbar looks at hIcon only if the NIF_ICON flag is set in uFlags. The last member, szTip, contains ToolTip text to display for the icon.

To effectively manage an annuciator, your application must handle any notification messages the taskbar sends to it. The wParam parameter of the message contains the identifier value of the taskbar icon that the message references. This identifier value is the same identifier defined in the call to the Shell_NotifyIcon function. The lParam parameter contains a code indicating the reason for the message. These values are actually the message codes for various mouse events. For example, if a user taps on a taskbar icon, the lParam value in the notification message will be WM_LBUTTONDOWN, followed by another message containing WM_LBUTTONUP.

 

GDI Support in Windows CE 4.2

 GDI Support

The GDI is the GWES subsystem that controls the display of text and graphics. Use GDI to draw lines, curves, closed figures, text, and bitmap images.

GDI uses a device context to store data that it requires to display text and graphics on a specified device. The graphics objects stored in a device context include a pen for line drawing, a brush for painting and filling, a font for text output, a bitmap for copying or scrolling, a palette for defining the available colors, and a clipping region. Windows CE supports printer device contexts for drawing on printers, display device contexts for drawing on video displays, and memory device contexts for drawing into memory.

The following table shows GDI features supported by Windows CE.

GDI feature
Description
Raster and TrueType fonts TrueType fonts are scalable and rotatable. Seven rasterized system fonts are available in several sizes in ROM. You can also add your own raster fonts. Windows CE supports only one category of font, either raster or TrueType, on a specified system.
Custom color palettes and both palletized and nonpalletized color display devices Supports color bit depths of 1, 2, 4, 8, 16, 24, and 32 bits per pixel (bpp). A bpp depth of 2 is unique to Windows CE.
Bit block transfer functions and raster operation codes Enables you to transform and combine bitmaps
Pens and brushes Supports dashed, wide, and solid pens, patterned brushes
Printing Supports graphics printing
Cursors Supports full use of cursors, including user-defined cursors, or the wait cursor
Shape drawing functions Supports the ellipse, polygon, rectangle, and round rectangle shapes

Windows CE GDI does not support the following features:

  • Transformation functions of coordinate space, such as SetMapMode, GetMapMode, SetViewportExt, and SetWindowExt. Coordinate space is equivalent to device space.
  • World Transform API
  • MoveTo and LineTo functions
  • Color cursors
  • Animated cursors

Application development in Windows CE Toolkit

Application Development

Microsoft provides several toolkits to assist you in developing Windows CE–based applications. These toolkits include the Microsoft® Windows® CE Toolkit for Visual C++® 6.0 and the Microsoft® Windows® CE Toolkit for Visual Basic® 6.0. The toolkits are add-ins to the Microsoft® Visual C++® and Microsoft® Visual Basic® development systems, which means that they use the IDE used to develop desktop applications. Microsoft packages the toolkits along with emulators to enable you to develop applications on a desktop computer.

Windows CE–based devices run different versions of the Windows CE OS and therefore support different toolkits. For example, if you want to use Visual Basic to create an application for an H/PC running Handheld PC Pro Edition software, you need the following products:

  • Microsoft Visual Basic 6.0 development system
  • Microsoft Windows CE Toolkit for Visual Basic 6.0
  • Microsoft Windows CE Platform SDK, Handheld PC Edition, version 2.0

Both the development system and the toolkit are available through standard retail channels; the SDK is distributed on the Windows CE Web site.

The following table shows the toolkits that are available for each platform.

Windows CE–based devices span the home entertainment, vertical device, and PC companion markets. In the home entertainment market, products that run Windows CE include the Sega Dreamcast system, Internet set-top boxes, and Web telephones. In the vertical device market, embedded systems developers provide custom-built computers designed for special tasks, such as package and mail tracking devices, point-of-sale terminals, and navigation devices. In the PC companion market, products that run Windows CE include the H/PC, the Palm-size PC, and the Auto PC.

Each device category supports a different set of APIs. Within each device category, what is supported depends on the version of the OS that the device is built on and what modules and components are included. In addition, each device category contains a unique shell with its supporting APIs. Therefore, a Windows CE–based platform can contain APIs that are not included in the core Windows CE OS.

Additionally, Windows CE differs based on how it is ported to a device. While all H/PCs of a particular version may have the same set of functions, the functions available on a Palm-size PC differ from those on an H/PC. In addition, OEMs have the option of removing optional sections of the OS, so configuration of the OS running on a specific device can vary significantly.

Creating and Terminating a Thread in Windows CE 4.2

 Creating and Terminating a Thread

To create a thread, call the CreateThread function. The following code example shows the CreateThread function prototype.

HANDLE CreateThread(LPSECURITY_ATTRIBUTES lpThreadAttributes,
DWORD dwStackSize, LPTHREAD_START_ROUTINE lpStartAddress,
LPVOID lpParameter, DWORD dwCreationFlags, LPDWORD lpThreadId );

Because Windows CE does not support the lpThreadAttributes and dwStackSize parameters, you must set them to NULL or 0. The following table describes the remaining CreateThread parameters.

Parameter
Description
lpStartAddress Points to the start of the thread routine
lpParameter Specifies an application-defined value that is passed to the thread routine
dwCreationFlags Set to 0 or CREATE_SUSPENDED
lpThreadId Points to a DWORD that receives the new thread's identifier

If CreateThread is successful, it returns the handle to the new thread and the thread identifier. You can also retrieve the thread identifier by calling the GetCurrentThreadId function from within the thread. In Windows CE, the value returned in GetCurrentThreadId is the actual thread handle. You can also retrieve a handle to the thread by calling the GetCurrentThread function. This function returns a pseudo-handle to the thread that is valid only while in the thread. If you specify CREATE_SUSPENDED in the dwCreationFlags parameter, the thread is created in a suspended state and must be resumed with a call to the ResumeThread function.

You can terminate a thread by calling ExitThread, which frees the resources that are used by a thread when they are no longer needed. Calling ExitThread for an application's primary thread causes the application to terminate.

Creating a Process in Windows CE 4.2

 Creating a Process

To start a process from within another process, call the CreateProcess function, which loads a new application into memory and creates a new process with at least one new thread.

The following code example shows the CreateProcess function prototype.

BOOL CreateProcess(LPCTSTR lpApplicationName,
LPTSTR lpCommandLine,
LPSECURITY_ATTRIBUTES lpProcessAttributes,
LPSECURITY_ATTRIBUTES lpThreadAttributes,
BOOL bInheritHandles, DWORD dwCreationFlags, LPVOID lpEnvironment,
LPCTSTR lpCurrentDirectory, LPSTARTUPINFO lpStartupInfo,
LPPROCESS_INFORMATION lpProcessInformation );

Because Windows CE does not support security or current directories and does not handle inheritance, the majority of the parameters must be set to NULL or 0. The following code example shows how the function prototype would look when all nonsupported features are taken into consideration.

BOOL CreateProcess(LPCTSTR lpApplicationName,
LPTSTR lpCommandLine, NULL, NULL, FALSE,
DWORD dwCreationFlags, NULL, NULL, NULL,
LPPROCESS_INFORMATION lpProcessInformation );

The first parameter, lpApplicationName, must contain a pointer to the name of the application to start. Windows CE does not support passing NULL for lpApplicationName and looks for the application in the following directories, in the following order:

  1. The path specified in lpApplicationName, if one is listed.
  2. An OEM-specified search path.
  3. The Windows directory (\Windows).
  4. The root directory in the object store (\).

The lpCommandLine parameter specifies the command line to pass to the new process. The command line must be passed as a Unicode string. The dwCreationFlags parameter specifies the initial state of the process after loading. The following table describes all of the supported flags.

Flag
Description
0 Creates a standard process.
CREATE_SUSPENDED Creates a process with a suspended primary thread.
DEBUG_PROCESS Creates a process to be debugged by the calling process.
DEBUG_ONLY_THIS_PROCESS Creates a process to be debugged by the calling process, but doesn't debug any child processes that are launched by the process being debugged. This flag must be used in conjunction with DEBUG_PROCESS.
CREATE_NEW_CONSOLE Creates a new console.

The last parameter used by CreateProcess is lpProcessInformation. This parameter points to the PROCESS_INFORMATION structure, which contains data about the new process. The parameter can also be set to NULL.

If the process cannot run, CreateProcess returns FALSE. For more information about the failure, call the GetLastError function

Building the F# Compiler Nov 2013 from Microsoft Open Technologies

F# 3.1 Compiler matching Visual Studio 2013  RTM binary release

This directory contains a drop of the source code for an F# 3.1 compiler and core library. The code has been cleaned up "a little" to try to help ensure better stability as more development is done on the codebase.

The compiler is normally compiled as a set of .NET 4.0 components.

Before we start, are sure you're in the right place?

To emphasize, this distribution should not be seen as a way to "get" an F# compiler for immediate use. For that you're better going to fsharp.org.

License: subject to terms and conditions of the Apache License, Version 2.0. A copy of the license can be found in the License.html file at the root of this distribution. By using this source code in any fashion, you are agreeing to be bound by the terms of the Apache License, Version 2.0. You must not remove this notice, or any other, from this software.

Questions? If you have questions about the source code, please ask at the F# Open Source Google Group. Please do not ask the F# team at Microsoft for help with this source code: they like to be friendly, but they are very busy working on improving F# and need to focus on that.

Updates? The F# team do not do active development in open repositories, though some changes such as cleanup or additional tools may be submitted. They aspire to update the code drop when future versions of F# compilers are released from Microsoft, usually at or around the RTM stage.

Copyright: Copyright 2002-2012 (c) Microsoft Corporation.

What do I get when I compile?

When you build the compiler using the standard instructions below, you get fsc.exe, fsi.exe, FSharp.Core.dll, FSharp.Compiler.dll and some related DLLs.

The compiler binaries produced are "private" and strong-named signed with a test key (src\fsharp\test.snk). They use CLI assembly version nunmber 2.9.9.999. You can place these components in the GAC but they will not replace the components used by normal Visual Studio or normal F# programs.

Steps - Building a Proto Compiler

  cd src 
  gacutil /i ..\lkg\FSharp-2.0.50726.900\bin\FSharp.Core.dll
  msbuild fsharp-proto-build.proj

Note: Make sure you run the .NET 4.0 msbuild.exe, e.g. C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe.

Optional: NGEN the Proto Compiler for faster future startup (optional)

ngen install ..\Proto\net40\bin\fsc-proto.exe

Steps - Building the F# Core Library

This uses the proto compiler to build the FSharp.Core library, for Mono/.NET 4.0.

msbuild fsharp-library-build.proj /p:TargetFramework=net40
msbuild fsharp-library-build.proj /p:TargetFramework=net20

Note: Make sure you run the .NET 4.0 msbuild.exe, e.g. C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe.

Steps - Building the F# Compiler

This uses the proto compiler to build the FSharp.Compiler.dll and fsc.exe to run on for Mono/.NET 4.0.

msbuild fsharp-compiler-build.proj /p:TargetFramework=net40

Note: Make sure you run the .NET 4.0 msbuild.exe, e.g. C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe.

Notes on the build

The prerequisites and build command line for compiling the source (on Windows) are shown later in this README. Here's the logic of the build:

  • We first need an existing F# compiler, using the one in the 'lkg' directory. Let's assume this compiler has an FSharp.Core.dll with version X.
  • We use this compiler to compile the source in this distribution, to produce a "proto" compiler, in the Proto directory. When run, this compiler still relies on the FSharp.Core.dll with version X.
  • We use the proto compiler to compile the source for FSharp.Core.dll in this distribution, producing an FSharp.Core.dll with the version identified in src\source-build-version, usually 1.9.999.
  • We use the proto compiler to compile the source for FSharp.Compiler.dll, fsc.exe, fsi.exe and other binaries found in this distribution. When run, these binaries will rely on the FSharp.Core.dll with version 1.9.999. This is good, since it means the 1.9.999 binaries now form a consistent, bootstrapped compiler. If you like you should now be able to throw away the compiler with version X.

Some additional tools are required to build the compiler, notably fslex.exe, fsyacc.exe, FSharp.PowerPack.Build.Tasks.dll, FsSrGen.exe, FSharp.SRGen.Build.Tasks.dll and the other tools found in the lkg directory. These are "Last Known Good" binaries created from a version of the F# Power Pack on CodePlex. If you like you can throw away these binaries and use your own compiled versions of these. tools.

Use

Here are some simple tests to validate what you have built by checking fsi.exe (F# Interactive) starts up:

ngen install ..\Debug\net40\bin\fsi.exe
..\Debug\net40\bin\fsi.exe
1 + 1;;
#q;;
..\Debug\net40\bin\fsi.exe /help
..\Debug\net40\bin\fsc.exe /help
echo printfn "hello world" > hello.fs
..\Debug\net40\bin\fsc.exe hello.fs
copy ..\Debug\net40\bin\FSharp.Core.dll .
hello.exe
del /q FSharp.Core.dll 

Some alternative Steps - Building an optimized (Release) compiler for .NET 4.0 profile

msbuild fsharp-compiler-build.proj /p:TargetFramework=net40 /p:Configuration=Release

ngen install ..\Release\net40\bin\fsi.exe
..\Release\net40\bin\fsi.exe
1 + 1;;
#q;;
..\Release\net40\bin\fsi.exe /help
..\Release\net40\bin\fsc.exe /help
echo printfn "hello world" > hello.fs
..\Release\net40\bin\fsc.exe hello.fs
copy ..\Release\net40\bin\FSharp.Core.dll .
hello.exe
del /q FSharp.Core.dll 

 

SCO UNIXWare in a Virtual Machine


 

Building a Windows NT Virtual Machine with a 10 GB Virtual Hard Disk or VHD.

Installing Windows NT into a Virtual Machine

Windows NT 4.0 can be installed in a virtual machine using the standard Windows NT CD.

Note: Some Microsoft Windows NT OEM disks included with new computers are customized for those computers and include device drivers and other utilities specific to the hardware system. Even if you can install this Windows NT operating system on your actual computer, you may not be able to install it in a virtual machine. You may need to purchase a new copy of Windows to install in a virtual machine.

Note: If you are going to run a Windows NT virtual machine with IDE virtual disks on a multiprocessor host computer, you may notice slower than expected disk input/output performance. For more information, see Disk Performance in Windows NT Guests on Multiprocessor Hosts on page 361.

Before installing the operating system, be sure that you have already created a new virtual machine and configured it using the VMware ESX Server Virtual Machine Wizard.

Windows NT Installation Steps

Note: Windows NT 4.0 virtual machines must have Service Pack 4 or higher installed. If your initial installation is from an installation disc that has a lower service pack level, you must first create the virtual machine with less than 3.5GB of RAM. After applying Service Pack 4 or higher, you may use the VMware Management Interface to increase the memory setting to as much as 3.6GB.

To install Windows NT into a virtual machine:

  1. Use the VMware Management Interface to verify the virtual machine’s devices are set up as you expect before starting the installation. For example, if you would like networking software to be installed during the Windows NT installation, be sure the virtual machine’s Ethernet adapter is configured and enabled.

    If you plan to install the guest operating system from a physical CD-ROM disc, be sure the CD-ROM drive is connected to the virtual machine.

  2. Insert the Windows NT CD in the CD-ROM drive on your VMware ESX Server host.
  3. Power on the virtual machine to start installing Windows NT.
  4. If you have enabled the virtual machine’s Ethernet Adapter, a VMware PCI Ethernet Adapter is detected and set up automatically. The default settings should work fine and do not need to be changed.
  5. Finish the Windows NT installation.

VMware Tools

Be sure to install VMware Tools in your in your guest operating system.

Setting up a Windows NT 4.0 Guest with Multiple Disks

To set up a virtual machine running Windows NT 4.0 and using multiple disks, you must first create a virtual machine with only one disk. Install Windows NT on that disk. Then use the Configuration Editor (Settings > Configuration Editor) to add the additional disks.

In addition, note that if you have a Windows NT 4.0 guest with a SCSI virtual disk, you cannot add both an additional SCSI disk and an IDE disk to the configuration.

Enabling Sound After Installing Windows NT

The VMware ESX Server sound device is disabled by default and must be enabled with the Configuration Editor (Settings > Configuration Editor) after the operating system has been installed.

Enabling Networking After Installing Windows NT

If networking was disabled at the time you installed Windows NT, you can enable it after the operating system has been installed.

  1. Shut down Windows NT and power off the virtual machine.
  2. Enable networking for the virtual machine.
  3. Power on the virtual machine.
  4. While Windows NT is booting, insert the Windows NT 4.0 CD in the CD-ROM drive on your VMware ESX Server host.
  5. Log in to Windows NT and open the Network properties page by double-clicking the Network icon in the Control Panel.
  6. Change to the Network Adapters screen by clicking the Adapters tab.
  7. Click the Add button and select AMD PCNET Family Ethernet Adapter from the list.
  8. A message pops up prompting you to enter a path for the Windows NT files. Specify the \I386 directory on the CD in the path you enter (for example, type D:\i386 if the CD is in drive D) and click Continue.
  9. Windows NT setup prompts you for the Windows NT files again. Click Continue.
  10. Use the default adapter settings; they do not need to be changed. Windows NT setup prompts you again for a path to the Windows NT files. Click Continue to finish installing the driver.

Known Issues

On a Linux host with an XFree86 3.x X server, it is best not to run a screen saver in the guest operating system. Guest screen savers that demand a lot of processing power can cause the X server on the host to freeze.         `                                                                        Back to top

© 2001-2002 VMware, Inc. All rights reserved. 

Install or Copy the following

1. Install Windows 4.0 with Inside Windows NT with Helen Custer

2. Install Windows NT 4.0 Embedded

3. Install Windows NT 4.0 Source (From UVa professor with Deans permission because I had straight A's from prep school).

4. Install the Windows NT 4.0 DDK and SDK

5. Install Visual Studio 4.0 

7. Install Office 1997 Professional

12. Install OpenNT

13. Install the MSDN Magazine Archive CDROM.

Only use CDROM capacity 700mb on Windows NT 4.0 because DVD wasn't supported.

https://stuff.mit.edu/afs/sipb/project/vmdialup/archive/i386_linux24.old/lib/vmware-console/help/esx/guestos-winnt.htm 

Building a Jazz Computer

The Jazz computer architecture is a motherboard and chipset design originally developed by Microsoft for use in developing Windows NT. The design was eventually used as the basis for most MIPS-based Windows NT systems.

In part because Microsoft intended NT to be portable between various microprocessor architectures, the MIPS RISC architecture was chosen for one of the first development platforms for the NT project in the late 1980s/early 1990s. However, around 1990, the existing MIPS-based systems (such as the TURBOchannel-equipped DECstation or the SGI Indigo) varied drastically from standard Intel personal computers such as the IBM AT—for example, neither used the ISA bus so common in Intel 386-class machines.

For those and other reasons, Microsoft decided to design their own MIPS-based hardware platform on which to develop NT, which resulted in the Jazz architecture. Later, Microsoft sold this architecture design to the MIPS Computer Systems, Inc. where it became the MIPS Magnum.

The Jazz architecture includes:

This design was simple enough and powerful enough that a majority of Windows NT-capable MIPS systems were based on modified versions of the Jazz architecture. A list of systems which more or less were based on Jazz includes:

The Jazz systems were designed to partially comply with the Advanced RISC Computing (ARC) standard, and each used the ARC firmware to boot Windows NT. Other operating systems were also ported to various Jazz implementations, such as RISC/os to the MIPS Magnum.

There were also some MIPS systems designed to run Windows NT and comply with the ARC standard, but nevertheless were not based on the Jazz platform:

https://en.wikipedia.org/wiki/Jazz_(computer) 

Making a Windows XP Virtual Machine Using 400GB as the Virtual Hard Disk or VHD.

 Windows XP Home Edition or Professional can be installed in a virtual machine using the corresponding Windows XP distribution CD. If you wish to use sound in the virtual machine, be sure to read Using Sound in a Windows XP Guest Operating System below.

Note: Some Microsoft Windows XP OEM disks included with new computers are customized for those computers and include device drivers and other utilities specific to the hardware system. Even if you can install this Windows XP operating system on your actual computer, you may not be able to install it in a VMware ESX Server virtual machine. You may need to purchase a new copy of Windows to install in a virtual machine.

Note: To use SCSI disks in a Windows XP virtual machine, you need a special SCSI driver available from the download section of the VMware Web site at http://www.vmware.com/download. Follow the instructions on the Web site to use the driver with a fresh installation of Windows XP. If you have a virtual machine with a SCSI virtual disk and a Windows 9x, Windows Me, Windows NT or Windows 2000 guest operating system and want to upgrade it to Windows XP, install the new SCSI driver before upgrading the operating system.

To install Windows XP into a virtual machine:

Note: If you want to run Windows XP Home Edition or Professional in a VMware ESX Server virtual machine, be sure you have a full installation CD for the operating system.

Before installing the operating system, be sure that you have already created a new virtual machine and configured it using the Virtual Machine Wizard.

Follow these steps to install Windows XP into a virtual machine:

  1. Use the Configuration Editor to verify the virtual machine's devices are set up as you expect before starting the installation. For example, if you would like networking software to be installed during the Windows XP installation, be sure the virtual machine's Ethernet adapter is configured and enabled. VMware also recommends that you disable the screen saver on the host system before starting the installation process.
  2. Insert the installation CD in the CD-ROM drive on your VMware ESX Server host.
  3. Power on the virtual machine to start installing the guest operating system.
  4. Follow the installation steps as you would for a physical machine, except as noted in the following steps.
  5. After the system reboots, a message box asks if you want Windows to automatically correct your screen resolution and color depth setting. Do not make the change at this time. You cannot change resolution and color depth until you have installed the VMware SVGA driver - part of the VMware Tools package.
  6. Run the VMware Tools installer. For details, see Using VMware Tools.
  7. When the guest operating system reboots, allow it to change the screen resolution and color depth setting.

Using Sound in a Windows XP Guest Operating System

The VMware ESX Server sound device is disabled by default and must be enabled with the Configuration Editor (Settings > Configuration Editor) after the operating system has been installed.

Note: Your sound card must be working in your host operating system in order to use sound in the virtual machine.

In addition, Windows XP does not automatically detect and install drivers for ISA sound cards, such as the Creative Sound Blaster emulated in a virtual machine. Follow these steps to configure sound in a Windows XP guest operating system.

Known Issues

The Microsoft Windows XP product activation feature creates a numerical key based on the virtual hardware in the virtual machine where it is installed. Changes in the configuration of the virtual machine may require you to reactivate the operating system. There are some steps you can take to minimize the number of significant changes.

  • Set the final memory size for your virtual machine before you activate Windows XP. When you cross certain thresholds — approximately 32MB, 64MB, 128MB, 256MB, 512MB and 1GB — the product activation feature sees the changes as significant.
    Note: The size reported to the Windows product activation feature is slightly less than the actual amount configured for the virtual machine. For example, 128MB is interpreted as falling in the 64MB–127MB range.
  • Install VMware Tools before you activate Windows XP. When the SVGA driver in the VMware Tools package is installed, it activates features in the virtual graphics adapter that make it appear to Windows XP as a new graphics adapter.
  • If you want to experiment with any other aspects of the virtual machine configuration, do so before activating Windows XP. Keep in mind that you have 30 days for experimentation before you have to activate the operating system.

For more details on Windows XP product activation, see the Microsoft Web site.

On a Linux host with an XFree86 3.x X server, it is best not to run a screen saver in the guest operating system. Guest screen savers that demand a lot of processing power can cause the X server on the host to freeze.

The hibernation feature is not supported in this release. Instead of using the guest operating system’s hibernate feature, suspend the virtual machine by clicking Suspend on the VMware ESX Server toolbar.

Back to top

© 2001-2002 VMware, Inc. All rights reserved. 

Install or Copy the following

1. Install Windows XP with Windows Internals 4th ebook

2. Install Windows XP Embedded

3. Install Windows XP/2003 Source (due to incomplete contract it's on the internet archive,       but complete source).

4. Install the Windows 2003 DDK and SDK

5. Install Visual Studio 2003 Academic

6. Install Visual Studio 2005 Professional  

7. Install Office XP Professional

8. Install the Windows Research Kernel Source. With Curriculum Toolkit (from 2009 UVa Wise Sysdmin)

9. Install the Shared Source Common Language Infustructure v 2.0 with ebook (from Shared Source contract 2006)

10. Install SCO OpenServer 5 Source 

11. Install MinWin (from Beta Archive)

12. Install Windows Services for UNIX v 3.0

13. Install the MSDN Magazine Archive CDROM.

14. Make a Longhorn Virtual Machine from the PDC 2003 Discs and remove the time bomb and crack the activation then mount it in the Windows XP VM.

https://stuff.mit.edu/afs/sipb/project/vmdialup/archive/i386_linux24.old/lib/vmware-console/help/esx/guestos-winXP.htm

Building Windows XP Datacenter Edition

 


Building SCO on Windows XP

For my latest project I am building Open Server 5 Source on Windows Xp with Windows Services for UNIX 3.0.then finding the Microsoft Partners like Terilk RAD Controls to fill in the gaps.to production in my MSDN Magazine Archive. the Partners are in 'New Stuff' in every month.








Installing OpenStep in a Virtual Machine

 


Building the Longhorn LDK

 


Using Source Depot

 



The above screenshot from my computer shows the NT Codebase ready to ready to be enlisted into source depot you need you International MAP file changed to SD.MAP

Building DOS 1.25


 
 
 

After your done building DOS make a 6.22 Virtual Machine and install Microsoft Fortran and the MKS Toolkit for MS-DOS.
 
 

 

Microsoft UNIX Licensing.

1978 AT&T System 7 for XENIX

1991 Apple System 7 for Windows 3.1

1994 DEC UNIX for Windows NT

2002 SCO UNIX for Windows XP

After XP Microsoft moved away from UNIX Licensing and started International ECMA 335 & 336 Standard or .NET.

Microsoft Buys Into SCO Group’s Unix

Microsoft to license Unix code 

I licensed Windows NT, XP and 2003 code from Microsoft and have my original System Integrator contract.my startup is a Gold Microsoft Partner and Microsoft Bizspark Graduate. I'm a UVa Computer Science Alumni in 2013 with a 3.2 GPA and Scholar award. I need my Windows Vista, 7, 8/8.1 Source to complete my Microsoft contract and I have my software assurance

Startups … inside giant companies


Apple's Darwin Build

    


 In older macOS releases ending with Snow Leopard. You can use Apple's former build utility called Darwin Build to fetch releases of Apple sources here is a link to macOS Forge. You can still use Bash for Windows or the Git For Windows SDK. and step 6 & 7 on Windows.

https://www.macosforge.org/

 

 

  1. install darwinbuild
  2. mkdir 9G55 && cd 9G55
  3. sudo -s
  4. darwinbuild -init 9G55
  5. for X in $(darwinxref version '*' | cut -d '-' -f 1); do darwinbuild -fetch $X; done
  6. mkdir AllSource
  7. for X in Sources/*; do tar zxvf $X -C AllSource/; done


 You can also boot Darwin 8.0 Panther on 2005 x86 hardware.

The UNIX Heritage Society

 https://www.tuhs.org/

UK Kent Mirror Service near Moore Castle in the UK

https://www.mirrorservice.org/ 

Code Plex


 MS CodePlex Archive ZIPs

I've been on Code Plex ever since the beginning and I was able to fit my codeplex,archive my entertainment and everything else on a 36 terabyte RAID 1 with a RAID Card. Also you might like 

FSCK Technology for older systems like OpenStep 

https://fsck.technology/

Windows Build Collection


Here is a list of windows Build Numbers. You might want to cache the beta wiki like I have 

Welcome to BetaWiki!

Name / DescriptionVersionBuild NumberPublic ReleaseRTM Release
Windows NT 3.13.105111993-07-27
Windows NT 3.53.508071994-09-21
Windows NT 3.1, Service Pack 33.105281994-11
Windows NT 3.513.5110571995-05-30
Windows 954.009501995-08-24
Windows 95 OEM Service Release 14.00950 A1996-02-14
Windows 95 OEM Service Release 24.00950 B1996-08-24
Windows NT 4.04.013811996-08-241996-07-31
Windows 95 OEM Service Release 2.14.00950 B1997-08-27
Windows 95 OEM Service Release 2.54.00950 C1997-11-26
Windows 984.1019981998-05-15
Windows 98 Second Edition (SE)4.1022221999-05-05
Windows 20005.021952000-02-171999-12-15
Windows Me4.9030002000-09-142000-06-19
Windows XP5.126002001-10-252001-08-24
Windows XP, Service Pack 15.12600.1105-11062002-09-09
Windows Server 20035.237902003-04-24
Windows XP, Service Pack 25.12600.21802004-08-25
Windows Server 2003, Service Pack 15.23790.11802005-03-30
Windows Server 2003 R25.237902005-12-062005-12-06
Windows Vista6.060002007-01-302006-11-08
Windows Server 2003, Service Pack 25.237902007-03-13
Windows Home Server5.245002007-11-042007-07-16
Windows Vista, Service Pack 16.060012008-02-04
Windows Server 20086.060012008-02-272008-02-04
Windows XP, Service Pack 35.126002008-04-21
Windows Vista, Service Pack 26.060022009-05-262009-04-28
Windows Server 2008, Service Pack 26.060022009-05-26
Windows 76.176002009-10-222009-07-22
Windows Server 2008 R26.176002009-10-222009-07-22
Windows 7, Service Pack 16.176012011-02-22
Windows Server 2008 R2, Service Pack 16.176012011-02-222011-02-09
Windows Home Server 20116.184002011-04-062011-04-06
Windows Server 20126.292002012-09-042012-08-01
Windows 86.292002012-10-262012-08-01
Windows 8.16.396002013-08-272013-10-17
Windows Server 2012 R26.396002013-10-182013-08-27
Windows 10, Version 150710.0102402015-07-292015-07-15
Windows 10, Version 151110.0105862015-11-10
Windows 10, Version 160710.0143932016-08-02
Windows Server 2016, Version 160710.0143932016-08-02
Windows 10, Version 170310.0150632017-04-05
Windows 10, Version 170910.0162992017-10-17
Windows Server 2016, Version 170910.0162992017-10-17
Windows 10, Version 180310.0171342018-04-30
Windows Server 2019, Version 180910.0177632018-10-02
Windows 10, Version 180910.0177632018-11-13
Windows Server 2008, Service Pack 2, Rollup KB44898876.060032019-03-19
Windows 10, Version 190310.0183622019-05-21
Windows 10, Version 190910.0183632019-11-12
Windows 10, Version 200410.0190412020-05-27
Windows 10, Version 20H210.0190422020-10-20

 Microsoft Windows 98

 Microsoft Windows 95 

Microsoft Windows Me

Windows NT 4.0 Workstation

Microsoft Windows Whistler

The Windows Longhorn/Vista Archive

Microsoft Windows 7 

Microsoft Windows 8 

Windows Interoperability

 In 2009 Microsoft tried there Interoperability with UNIX/LINUX with not much success with the publicin Windows 10 it is getting better please read Microsoft learn for complete details. Some of the open group projects are openpegusus for WBEM and motif for a standard window.

Open Specifications Dev Center

Microsoft Windows 7


For Windows 7. So far you need you Windows API Code Pack, Windows 7 SDK and WDK and you .NET Framework 3.5 Service Pack 1 Reference source which shipped with Windows 7 and in support until 2029. Which I have I'll try to put it on my github when my company is funded. Until then you can use this tech incident that I and Microsoft worked on below. The .NET Framework 4.6.1 is in support until 2027 so look for a switch from Linus after that its still Dependency hell in Linux and .NET not the .NET Framework there is a difference. 

.NET Referance Source 

Windows-API-Code-Pack-1.1  

Windows SDK for Windows 7 and .NET Framework 4 

Other WDK downloads 

msdn-code-gallery-microsoft  

Samples are still being gathered from NT 4.0 to 11 stay tuned.

Microsoft .NET Framework Lifecycle

 


 

Visual C++ 4.0


     You need Visual C++ 4.0 to build the NT 4.0 source kit again with the 4.0 SDK and DDK again using windiff to combine directories. In my opinion Visual C++ 4.0 would be the version to buy with 2005 for XP/2003. As 4.0 comes with the Mac Cross Platform Version, RISC edition and the Embedded Version. XP is in Visual Studio 2019 Compatibility support until 2029 so don't look for Windows 7 source anytime soon. Maybe the Enterprise Source Licensing Program if your company has 10K windows seats. It used to be 700 resource hours.  I'm a member of the .NET Foundation and am trying with the Shared Source initiative again. You need your desktop optimization packs with software assurance.



Visual Studio 2019 Platform Targeting and Compatibility

XP in support in VS 2019 until 2029.

Build the CDE on FreeBSD


 First steps

Install FreeBSD 12-RELEASE or FreeBSD 13-RELEASE and install/update your ports tree.

freebsd-update fetch
freebsd-update install

reboot.

Complete install documentation can be found in the FreeBSD Handbook.

If you plan to install the dependencies from source, fetch the current ports tree and build the portmaster utility:

portsnap fetch extract update
cd /usr/ports/ports-mgmt/portmaster
make -DBATCH install clean

Install packages

Install packages from source

the source packages can be built and installed using the following sequence

portmaster -C -D --no-confirm -y \
  x11/xorg \
  devel/git \
  converters/iconv \
  shells/ksh93 \
  x11-toolkits/open-motif \
  lang/tcl86
  textproc/opensp

If you don't want to wade through the many configuration steps and build with the standard configuration instead, add the -G parameter to portmaster.

More information about ports and packages can be found in the FreeBSD Handbook Ports chapter. More information about X11 in FreeBSD can also be found in the X11 Chapter in the FreeBSD Handbook.

Install binary packages

To install precompiled binary packages, make the following call

pkg install cde xorg

If you wish to track the CDE development branch,

pkg install cde-devel xorg

The development branch is updated monthly though it may be updated more frequently.

Edit /etc/rc.conf

Add to /etc/rc.conf

rpcbind_enable="YES"
inetd_enable="YES"

Reboot

Clone or download the source code

Use the git clone command here:

On most platform you can use HTTPS:

git clone https://git.code.sf.net/p/cdesktopenv/code cdesktopenv-code

If that doesn't work (for instance some BSD distros) , use the native git protocol instead

git clone git://git.code.sf.net/p/cdesktopenv/code cdesktopenv-code

Or download the latest source release:

Note: The source archive will become out of date. When you want the latest code, clone the git repository.

Build CDE

Version 2.5.0 and newer (autoconf)

For the BSD's, you must use gmake, and you must specify the location of the TCL install directory (the below example assumes TCL v8.6).

$ ./autogen.sh
$ ./configure --with-tcl=/usr/local/lib/tcl8.6 MAKE="gmake"
$ gmake
$ sudo gmake install

Version 2.4.0 and earlier (imake) - deprecated

cd cdesktopenv-code/cde
make World
admin/IntegTools/dbTools/installCDE -s `pwd`

Start CDE

You can now start CDE login manager as root:

/usr/dt/bin/dtlogin -nodaemon

Alternatively, you can start an X session as a normal user:

startx /usr/dt/bin/Xsession

Install dtlogin as Login Manager

Switch to the CDE build directory and copy and enable the rc-file

cp contrib/rc/freebsd/dtlogin /usr/local/etc/rc.d/
echo 'dtlogin_enable="YES"' >> /etc/rc.conf
echo "allowed_users=anybody" > /usr/local/etc/X11/Xwrapper.config

reboot

https://sourceforge.net/p/cdesktopenv/wiki/FreeBSDBuild/ 

Installing Darwin on QEMU


 

  1. Darwin 8.0.1 (corresponding to Mac OS X 10.4) seems to be the latest available full installer image, at least, until the PureDarwin project produces a new one.

  2. More recent versions of packages are available in source form:

Installing

  1. Download and extract installation CD image:

    • Darwin 8.0.1 (was under “Darwin 8.0.1 Installer CD” on old website)

      • MD5: dbd260dda994093a11c31afbe624aa34

      • SHA-256: a26f9f14795fe0687bd647d41b712464c9a61430736fae4aa0fdb89207e1a62a

    • $ gunzip darwinx86-801.iso.gz

  2. Set up QEMU VM:

    • $ qemu-img create -f qcow2 darwin.qcow2 10G

  3. Start VM:

    • $ qemu -net none -drive file=darwin.qcow2,cache=writeback -cdrom darwinx86-801.iso -boot d

    • Other useful qemu options: -m 512 and -enable-kqemu

  4. Installation steps:

    • First boot:

      • Select disk

      • "2" (manual partitioning)

      • "y" (initialize MBR)

      • In fdisk:

        • > auto hfs

        • Ignore the warning

        • > update

        • > write

        • > quit

      • Enter partition name

      • "yes" (clean install)

      • "darwin" (volume name)

      • Continue (reboot)

    • Second boot (make sure to boot from CD again):

      • Select disk

      • "3" (existing partition)

      • Enter partition name

      • "hfs" (HFS+ filesystem)

      • "yes" (clean install)

      • "darwin" (volume name)

      • Wait for installation to complete...

      • Enter root password

      • "darwin" (hostname)

      • "3" (spawn shell)

      • # halt

  5. Configure VM for normal startup:

    • Remove QEMU flags -cdrom darwinx86-801.iso -boot d

Basic configuration

Enable VM networking

  • Change QEMU flags: -net none-net nic,model=rtl8139 -net user

SSH access

  1. Change QEMU flags: -net user-net user,hostfwd=tcp:127.0.0.1:10022-:22 (pick any port instead of 10022)

  2. Log in to VM, enable SSH:

    • # service ssh start

  3. Connect to VM with

    • $ ssh -p 10022 root@localhost

  4. Optionally add an alias to host ~/.ssh/config to simplify connecting:

    • Host darwin-vm
      HostName localhost
      Port 10022
      User root
    • Connect to VM with

      • ssh darwin-vm

  5. Install public key to simplify logging in:

    • $ cat .ssh/id_rsa.pub | ssh darwin-vm 'mkdir .ssh; cat >>.ssh/authorized_keys'

  6. Add -nographic to QEMU flags to disable console window, which is no longer required

Some familiar aliases

  • # echo "alias ll='ls -l'" >>/etc/bashrc

  • # echo "alias la='ls -lA'" >>/etc/bashrc

Timezone

  • # ln -sf /usr/share/zoneinfo/UTC /etc/localtime

Temporary filesystem

Using a temporary disk image to build software helps keep the main disk image file smaller.

  1. $ qemu-img create -f qcow2 scratch.qcow2 10G

  2. Add QEMU flag: -drive file=scratch.qcow2,cache=writeback and boot

  3. Figure out which disk number corresponds to the scratch drive:

    • # mount

    • # ls /dev/rdisk*

    • It's the one that isn't mounted and doesn't have any partitions (sn-suffixed files)

    • It's usually, but not always, /dev/rdisk1

  4. # newfs_hfs -v scratch /dev/rdisk1

  5. # reboot

  6. Available as /Volumes/scratch on next boot

Notes

  1. The VM sometimes fails to boot with "panic(...): nfs_boot_init failed"; if this happens, restart it.

Updating the system

Kernel (xnu)

  • It breaks support for FAT (and thus the QEMU virtual FAT drive)

    • Support for FAT is in the msdosfs package which requires Xcode to build

    • An alternative to the virtual FAT drive for transferring files is writing tar archives directly to an unpartitioned drive

    • SSH scp is another alternative

  • Requires:

    • corresponding cctools (e.g. initially installed version or cctools-590.42.1, but not cctools-667.3)

    • gcc 3.3 (revert if changed with gcc_select 3.3)

  • Source package: xnu-792.6.76.tar.gz (update to version listed under “Mac OS X 10.4.3”)

    • MD5: 854f44519778e8bde4283e275ed154e6

    • SHA-256: 35c5ed2f1399c770583a229a733d064dc302ae6327a7fcb40996e1f3c474f568

  • Building:

    • # cd /Volumes/scratch

    • # tar xzf xnu-792.6.76.tar.gz

    • # cd xnu-792.6.76

    • Patch to help build gcc_42-5577:

      • # sed -i.tmp 's/defined *(__i386__)/& || defined(__x86_64__)/' bsd/{machine,sys}/*.h

    • # make DSTROOT= install

  • Reboot. uname -r is now 8.7.0.

Standard library (Libc)

  • Requires updated xnu (xnu-792.6.761).

  • Source package: Libc-391.2.10.tar.gz (update to version listed under “Mac OS X 10.4.3”)

    • MD5: 7a1a08d1b68668fc41916d6cf39182a4

    • SHA-256: e90b78d310235544623f26c6f18e27b329b5bc778deab8e57332e8e90ab92f11

  • Building:

    • # cd /Volumes/scratch

    • # tar xzf Libc-391.2.10.tar.gz

    • # cd Libc-391.2.10

    • # sed -i.tmp s/NOTIFY_STATUS_OK/0/g gen/{asl.c,syslog.c}

    • Patch to help build gcc_42-5577:

      • # sed -i.tmp 's/defined *(__i386__)/& || defined(__x86_64__)/' include/machine/*.h

    • # make OBJROOT="$PWD"/obj install

Upgrading GCC

dyld

  • This is optional.

  • Source package: dyld-46.16.tar.gz (under “Mac OS X 10.4.11.x86”)

    • MD5: a97d4d2a77b3e5f2ff9757007cae0596

    • SHA-256: cf753c3a2cef239b1334c56603b36d206f54d613daa078ce0f2d73c3e2a0dd82

  • Makefile: dyld.mk

    • Darwin doesn't include Xcode, which is required to build this package. This makefile provides alternative build instructions.

  • Building:

    • # cd /Volumes/scratch

    • # tar xzf dyld-46.16.tar.gz

    • # cd dyld-46.16

    • # sed -i.tmp '/case CPU_TYPE_X86_64:/,/break;/d;/__pthread_tsd_first/d' src/dyld.cpp

    • # ln -s libstdc++.a /usr/lib/gcc/i686-apple-darwin8/4.0.0/libstdc++-static.a

    • # bsdmake -f dyld.mk VERSION_DYLD=46 install

cctools

  • Choice of version:

    • cctools-667.3

      • Too new to build xnu.

      • Source package: cctools-667.3.tar.gz (under “Mac OS X 10.5.8”)

        • MD5: 518166e6ddbd0287bebee3d00fddee7d

        • SHA-256: 1ba43a3d3bcf138a196e714666927c706857226adccf2e69db4f08e940631c0d

    • cctools-590.42.1

      • Too old to build gcc.

      • Source package: cctools-590.42.1.tar.gz (update to version listed under “Mac OS X 10.4.3”)

        • MD5: 6d875c5483699fd0f1e150facae35256

        • SHA-256: 61c86c4dc556daafbabebd8162bfbce8214843b218fefbd15c6c1ba03d225a10

  • Building:

    • # cd /Volumes/scratch

    • # tar xzf cctools-667.3.tar.gz

    • # cd cctools-667.3

    • # sed -i.tmp '/install.*strip/{h;s/strip/seg_hack/gp;g;s/ -s / /;}' misc/Makefile

    • # sed -i.tmp s/ld_classic/ld/ ld/Makefile

    • # make install

  • The new assembler will often show the warning "indirect jmp without '*'" on code generated by the old GCC.

gcc

  • Choice of version:

    • gcc_42-5577

      • Latests gcc_42 package (newer packages are named gcc). GCC 4.2.1. Requires patched system include files, which can be done when upgrading xnu and Libc (see above).

      • Source package: gcc_42-5577.tar.gz (update to version listed under “Mac OS X 10.5.8”)

        • MD5: dab7ad45f76919f058a6f1cf3a0e91d8

        • SHA-256: fd6459ab701b41dc1297cdbc27f302c558d766505cfe8dd1d6ec0d257fef0e81

    • gcc_42-5531

      • Slightly older version. Doesn't require any changes to include files.

      • Source package: gcc_42-5531.tar.gz (under “Mac OS X 10.5.8”)

        • MD5: 959ecd224cea2477d57b1c3026fe05ee

        • SHA-256: 924862e2092fa11754ec9226a0de4772d831c40500231728055d00d1bb3a632e

  • Requires cctools-667.3 and optionally dyld

    • Building:

      • # cd /Volumes/scratch

      • # tar xzf gcc_42-5577.tar.gz

      • # cd gcc_42-5577

      • If dyld isn't upgraded, patch to revert debugging format from DWARF to stabs:

        • # sed -i.tmp 's/\(#define PREFERRED_DEBUGGING_TYPE \).*/\1DBX_DEBUG/' gcc/config/darwin.h

        • # sed -i.tmp '/darwin_macho_att_stub/s/Init.*//' gcc/config/darwin.opt

      • # sed -i.tmp '/x86_64/s/|| exit 1//' build_gcc

      • # ln -s true /usr/bin/dsymutil

      • # gnumake RC_ARCHS=i386 install

        • Don't try to set DSTROOT=/, it deletes everything.

      • # cp -pR dst/* /

      • # cp -pR obj/dst-i686-i686/usr/lib/libgcc_s* /usr/lib/gcc/i686-apple-darwin8/4.2.1/

  • GCC is now installed as gcc-4.2.

    • It can be made default with gcc_select 4.2