Subject: Re: A question about CF cards.
To: Carl Wilhelm Soderstrom <chrome@real-time.com>
From: John Utz <john@utzweb.net>
List: port-hpcmips
Date: 09/25/2001 23:31:21
On Tue, 25 Sep 2001, Carl Wilhelm Soderstrom wrote:

> > but wince is pretty much win32 with some minor annoyances
>
> ok... a programmer at my last job had said that wince was almost a
> completely different OS.

hmm. i guess that depends on ones' perspective.

from the perspective of the application programmer, the api is pretty
similar, and the lib names are mostly the same.

the minikernel is based on NT, sufficiently enuf that the v1,v2, v3
emulators could only run on NT4+, not win9x.

because it made gdi calls (remember, graphics is in the 'kernel' in nt -
with kernel=minikernel+drivers)  it was actually 'glued' to the 0,0 corner
of the NT desktop -which was *very* annoying and gave me carpal tunnel and
neckstrain sometime near to the PsPC v1.0 release. i think it finally got
unglued for version 3.

 dont know about more recent versions, there was a lot of work (18months,
4-6 devs) on rearchitecting the emulator to become a piece of virtual
hardware. i dont know if it ever saw the light of day.

what is singularly unique about wince is the funky intermediate level that
has no analogs in any OS that i am aware of. most hardware and user
interaction occurs via these things called PSL's. i forget what 'PSL'
stands for at this moment but they are compiled as exes, ie gdi.exe.

But notbody actually runs them, they get called, or really, jumped to via
structured exception handling, whenever some task other than allocating
memory is asked for.  recall that in both nt and ce mem management is all
that the minikernel does, more or less - somebody feel free to jump in
here if they see something wrong.

so, the implementation plan for the emulator was to take the wince psl
source code and cut and paste calls into nt for each and every one of the
psl calls. then compile it and fix what breaks. some of it anyway. :-)

this worked, because as i alluded to originally, the apiset was pretty
compatible. but not exactly. that's where the annoyances come in.

does my assertion make more sense now?

> Carl Soderstrom
>

-- 

John L. Utz III
john@utzweb.net

Idiocy is the Impulse Function in the Convolution of Life