Using WinCE without Windows

As I don't have Window 95/98/NT on any of my directly accessible machines, and while the LinuxCE is progressing, it will be sometime before it will be possible to use Linux exclusively on my Casio E-105, I needed to find a way to use my new toy from a Unix (FreeBSD and Linux) based world.

I'm still looking for a method to download a program and run it without using the CF card to first transfer any programs. This may be possible through the receive options in the installed tasks, but I haven't worked it out yet.

Communicating with Unix

There seems to be two ways to do this, first using the CompactFlash card, and second through the serial line on the machine by SLIP or PPP.

Using the CompactFlash

The easiest way to get data to the machine is using a CompactFlash card. This can be plugged into a PCMCIA interface card and then plugged into a laptop. This should work without any real problems. But for me it doesn't, I am running FreeBSD 3.1 on my Dell Inspiron 3500 laptop with the PAO patches. Although my ethernet card (D-Link DE-630) and modem card (Psion Gold) work without problem, my machine hangs if I put in my viking CF to PCMCIA adaptor. However I have an IBM PC110 palmtop also running FreeBSD and it has a CompactFlash slot which works, thus I can write the CompactFlash there, downloading files through its PLIP interface from my main machines.

But before I did that, I first plugged the CompactFlash into the E-105, as I knew someone needs to format it, Its unclear if it is preformated to the E-105 does this but after doing that (and doing a backup on the E-105 to the Storage Card) I mounted on my PC110 with

mount -t msdos /dev/wd2a /mnt
This only allows access through files of names of size 8.3 but this is sufficient for basic transfer.

I now have FTP working, which is convenient for smaller files, but I did have to get the CompactFlash route working as although you can get a TCP/IP connection working with the pre-installed software, I've not found a method to transfer files without installing an external package.

Using the serial line for PPP or SLIP

This method is based on the Linux to WinCE notes I found on the web. This is the basic route for FreeBSD and SLIP, though the techniques are applicable for PPP too.

But now what, you've got a TCP/IP connection but no software at the E-105 end to do anything with it.

Finding something to communicate

There is software out there for the WinCE machine and some of it is free (as in beer but not software). But a substantial amount of software available is only available as Windows .exe files that "easily self install". When you don't have Windows these files are useless. This unfortunately limits the amount of software you can get (paid or otherwise) even for things which are probably quite useful.

A few things come as .exe files which are in fact directly executable under WinCE, if the site differentiates between MIPS and SH and gives you different .exe then that's probably ok. .CAB files are also good as they contain a self-extracting archive that can be run directly on the WinCE device.


Running/Installing Programs

There isn't a shell under WinCE, nor at first glance does there appear to be any way to run programs other than those already installed under WinCE. Once you have an explorer type program installed then this problem goes away but you have to instll one first. Manipulation of the internal file system may be possible from Windows but it didn't look good at first.

There are in fact two method that work

The first is from Brad LaRonde's Linux booting page though there is an important typo there that made me find the second one.

  1. Pull up the on-screen keyboard.
  2. Click Start twice (the Start menu appears then goes away). Don't double-click it - just click it once, let it open, then click it again and let it close.
  3. Type run23 on the on-screen keyboard.
  4. A run dialog box will appear, you can type in full path names. The CF card is called Storage Card so if you put your program mumble.exe in root on the CF card you would enter
    \Storage Card\mumble.exe
    
Note that it should be run23 not run32.

This technique does not work for .cab files. WinCE happily tells you to double-click such files even when there is no way to get to a position to double click them. The second method however does work.

The second method is using the Menu programs.

  1. Bring up the Menu program, Start - Programs - Menu
  2. Select Define
  3. Select a blank square and then from the top menu Edit-New
  4. Select application
  5. Select browse
  6. Double-click on the first item in the list, in my case that's aaview.lnk. This inserts \windows\aaview.lnk in the dialog box.
  7. Using the keyboard change the entry to be \Storage Card\whatever.cab
  8. Exit from the define menu, until you get back to the blue screen mode.
  9. Click on the new menu option

This page is maintained by Alan W Black awb@cs.cmu.edu