NAME
	PerlCE - perl for Windows CE

DESCRIPTION
	PerlCE is a simple port of perl to Windows CE. The program
	is currently linked with a simple console window, so it also
	works on non-hpc devices.

	The simple stdio implementation creates the files stdin.txt,
	stdout.txt and stderr.txt, so you might examine them if your
	console has only a liminted number of cols.

	When exitcode is non-zero, a message box appears, otherwise the
	console closes, so you might have to catch an exit with
	status 0 in your program to see any output.

	stdout/stderr now go into the files /perl-stdout.txt and
	/perl-stderr.txt.

LIMITATIONS
	No fork(), pipe(), popen() etc.

ENVIRONMENT
	All environment vars must be stored in HKLM\Environment as
	strings. They are read at process startup.

	PERL5LIB	- Usual perl lib path (semi-list).
	PATH		- Semi-list for executables.
	TMP		- Tempdir.
	UNIXROOTPATH	- Root for accessing some special files,
			  i.e. /dev/null, /etc/services.
	ROWS/COLS	- Rows/cols for console.
	HOME		- Home directory.
	CONSOLEFONTSIZE - Size for console font.

	You can set these with cereg.exe, a (remote) registry editor
	or via the PerlIDE.

REGISTRY
	To start perl by clicking on a perl source file, you have
	to make the according entries in HKCR (see wince-reg.bat).
	cereg.exe (which must be executed on a desktop pc with
	ActiveSync) is reported not to work on some devices.
	You have to create the registry entries by hand using a 
	registry editor.

FILES
	$(UNIXROOTPATH)/dev/null - nul simulation, needed for perl -V
	$(UNIXROOTPATH)/etc/services - services file

	/perl-stdin.txt
	/perl-stdout.txt
	/perl-stderr.txt   

PERLFILES 
	Only a limited set of perl files is provided in the
	distribution archiv. You have to copy the original PERL5LIB
	files from a perl for win32 installation and put the
	distributed files into the right directories.

	Do not copy any Win32/X86 dlls from your PC to the device...

	The following files are a reasonable minimum if you want to do
	some socket stuff:

	./auto
	./auto/DynaLoader
	./auto/DynaLoader/autosplit.ix
	./auto/DynaLoader/dl_expandspec.al
	./auto/DynaLoader/dl_findfile.al
	./auto/DynaLoader/dl_find_symbol_anywhere.al
	./auto/IO
	./auto/IO/IO.bs
	./auto/IO/IO.dll
	./auto/Socket
	./auto/Socket/Socket.bs
	./auto/Socket/Socket.dll
	./Carp
	./Carp/Heavy.pm
	./Carp.pm
	./Config.pm
	./DynaLoader.pm
	./Exporter
	./Exporter/Heavy.pm
	./Exporter.pm
	./IO
	./IO/File.pm
	./IO/Handle.pm
	./IO/Socket.pm
	./IO.pm
	./SelectSaver.pm
	./Socket.pm
	./strict.pm
	./Symbol.pm
	./warnings
	./warnings/register.pm
	./warnings.pm
	./XSLoader.pm

XS
	The following Win32-Methods are built-in:

	newXS("Win32::GetCwd", w32_GetCwd, file);
	newXS("Win32::SetCwd", w32_SetCwd, file);
	newXS("Win32::GetTickCount", w32_GetTickCount, file);
	newXS("Win32::GetOSVersion", w32_GetOSVersion, file);
	newXS("Win32::IsWinNT", w32_IsWinNT, file);
	newXS("Win32::IsWin95", w32_IsWin95, file);
	newXS("Win32::IsWinCE", w32_IsWinCE, file);
	newXS("Win32::CopyFile", w32_CopyFile, file);
	newXS("Win32::Sleep", w32_Sleep, file);
	newXS("Win32::MessageBox", w32_MessageBox, file);
	newXS("Win32::GetPowerStatus", w32_GetPowerStatus, file);
	newXS("Win32::GetOemInfo", w32_GetOemInfo, file);
	newXS("Win32::ShellEx", w32_ShellEx, file);

DLLS
	In the newest version, my celib.dll is needed. Some XS dlls
	might be needed. Currently, Socket and IO are provided.

BUGS
	Opening files for read-write is currently not supported if
	they use stdio (normal perl file handles).

	If you find bugs or if it does not work at all on your
	device, send mail to the address below. Please report
	the details of your device (processor, ceversion, 
	devicetype (hpc/palm/pocket)) and the date of the downloaded
	files. 

	I currently have only a Compaq/MIPS HPC, a Jornada/SH3 HPC and
	a Jornada/ARM HPC, so I can only test on these devices and
	under the Emulators.

INSTALLATION
	This is only a suggestion...

	* Unpack the tar archive on your desktop.
	* Create directories /bin, /lib/perl5, /home, /dev and /etc,
	  possibly on a CF card with the path to the card 
	  prepended (i.e. /memcard/bin etc).
	* Copy perl.exe, perl56.dll and celib.dll from your desktop to
	  /bin. The dlls can also be copied to your /windows
	  directory, but if you use a CF card, you might want to store
          them there.
	* Copy the other DLLs to the corresponding auto directory.
	* Copy any needed perl module-files to /lib/perl5.
	* Create the registry entries.
	* If you need tcp service-name resolution, create
	  the file "services" in /etc and put int the entries you need.

	* Under WINCE200, all dlls must be copied to the windows
          directory.

MISC
	If you think a certain XS module should be ported, send
	me mail and explain why.

	If you write useful scripts for perlce, please send me
	a copy.

TERMINAL
	There are simple terminal control sequences now. See the
	readme file that comes with the console program.

AUTHOR
	Rainer Keuchel <coyxc@rainer-keuchel.de> 2001

