[HN Gopher] With PowerPC, Windows CE and the WiiN-Pad Slate, Eve...
       ___________________________________________________________________
        
       With PowerPC, Windows CE and the WiiN-Pad Slate, Everyone's a WiiN-
       Er
        
       Author : goldenskye
       Score  : 92 points
       Date   : 2024-05-05 05:42 UTC (1 days ago)
        
 (HTM) web link (oldvcr.blogspot.com)
 (TXT) w3m dump (oldvcr.blogspot.com)
        
       | nubinetwork wrote:
       | The shape of that battery looks like it's got a pair of 18650s in
       | them.
       | 
       | > This machine came from the Atlanta, Georgia area (snip), and
       | certain identifiers left on it trace it back to Patient Care
       | Technologies, a home-care, hospice and telehealth software
       | provider. It's not clear if this machine was actually in the
       | field or only used internally for testing. PtCT was bought by
       | Meditech in 2007.
       | 
       | I'm sort of not surprised, the ancient winCE UI is about as
       | ancient as meditech's UI.
        
       | WillAdams wrote:
       | As a person who really wanted the Sharp Mobilon TriPad PV-6000,
       | this sort of thing makes me sad for what might have been.
       | 
       | I almost returned my Samsung Galaxy Book 12 to Best Buy back when
       | the stylus was crippled to scrolling by Fall Creator's Update ---
       | even now, I constantly have to toggle its compatibility state in
       | Windows 11 to use it with different programs.
       | 
       | That said, my next tech purchase is a Raspberry Pi 5 and a Wacom
       | One 13 w/ Touch --- hopefully it will work as well as the first
       | gen. unit did w/ an rPi 4 and I can get off this software
       | treadmill and just focus on using the machine as opposed to re-
       | learning whatever UI update MS is inflicting this quarter.
        
         | fock wrote:
         | hmmm, Surface works fine with Linux here, so that might be a
         | sleeker alternative.
        
           | WillAdams wrote:
           | Yes, for folks who can stand NTrig, that works --- Wacom EMR
           | or bust here.
        
             | ukuina wrote:
             | Why would you prefer one over the other?
        
           | tcmart14 wrote:
           | I really wish my wife wouldn't have given her mom the surface
           | I bought for her. I was really curious how well Linux would
           | work on it while she had it for school.
        
       | mlhpdx wrote:
       | Wow. Maybe if WinCE had this kind of thorough documentation back
       | then it would have done better. Excellent article and history
       | lesson.
        
         | classichasclass wrote:
         | (author) Hey, thanks!
        
           | sumtechguy wrote:
           | WinCE was an interesting beast. The ones we made were MIPS
           | (picked over an ARM system). Running a wildly patched 2.12.
           | Also your PCMCIA issues? Trust nothing. It could be anything.
           | But my guess is it is the driver, as getting that type of
           | flash card to work consistently and correctly takes a steady
           | hand. Your flash could also be slightly corrupt. We had
           | almost that exact same chipset and found it would randomly
           | stop taking commands after awhile and the flash leveling
           | would cause writes to time out leaving half written pages.
           | You also discovered Visual C++ for wince has a _lot_ of
           | interesting bugs. I think it got so bad we were about to
           | start breaking each method into one cpp file as things could
           | 'smear' between methods before the whole thing went EoL.
           | There are newer versions of the compiler that may help some
           | (maybe you already have it). If you got into the right
           | program (or the right company) you could get the ODM build
           | set. Which would compile the whole OS (based on a very
           | bespoke version of visual studio 6 and a crazy mixture of
           | using mklink and crazy batch files). But it would also let
           | you debug the drivers. As for my 'trust nothing' I mean it.
           | The API calls that should 'just work' may randomly crash or
           | leak. Good luck!
        
             | JoeAltmaier wrote:
             | We had the ODM. Had to rewrite critical pieces of it to
             | make it work at all. The timer service had races - we fixed
             | it and offered the fixes back, but arrogant Microsoft
             | wouldn't take them, they were smarter than us and didn't
             | need our help. So we had to repatch every release as they
             | shipped the same broken code again and again.
             | 
             | Had to rewrite the DHCP code, theirs was one run-on
             | procedure written by some intern. Didn't handle half the
             | cases, took forever to conclude if it ever did at all. We
             | needed to roam across subnets on the order of 100's of ms.
             | Theirs took seconds to maybe complete. Junk. They of course
             | rejected that too.
             | 
             | Best if WinCE were buried and forgotten?
        
               | sumtechguy wrote:
               | I think MS didnt really 'own' the code. There was another
               | company (b squared?) that owned large portions of it. We
               | had the same DHCP issue. Also fixed _many_ bugs in the
               | ATL code taking up precious flash space for our bespoke
               | version as we were 2 vendors removed from getting to talk
               | directly to MS.
               | 
               | > Best if WinCE were buried and forgotten?
               | 
               | I am going to say yes. If someone ever finds one of the
               | ones I worked on, my advice is to set it on fire then
               | once it is done smoldering bin the thing and just get
               | something better.
        
               | garaetjjte wrote:
               | From my experience (though it was with CE 7) I got the
               | impression that core kernel code is decent, but the rest
               | of stack is haphazard collection of barely working hacks.
               | APIs look like their NT equivalents, but not really,
               | often missing crucial functionality. Documentation is
               | often wrong or outdated, especially in BSP area, where it
               | frequently mixes up how OAL interacts with the kernel
               | with details of the optional PQOAL library. Same thing
               | with driver documentation, where it confuses driver
               | interface with describing MDD libraries. Finer semantics
               | of the interfaces are mostly guesswork. Multiple barely
               | documented touch device stacked on top of each other,
               | with various ways of loading the driver and sending
               | events to GWES. And the build system... that thing is
               | just hideous.
        
               | JoeAltmaier wrote:
               | If I remember right, Bill set several teams to writing an
               | os for devices. The one that finished first, shipped. The
               | 'winners' weren't even OS programmers. Thus, the naive
               | implementations of so many critical OS functions
               | (drivers, timers, interrupt handling, flash)
        
             | classichasclass wrote:
             | Wow, I had no idea it was that iffy under the hood. I might
             | do more messing with the flash if it gets goofier. Yes, the
             | issues with VC++ got annoying in a hurry.
        
               | sumtechguy wrote:
               | Had one bug where we had a stray tab between methods.
               | Would cause it to crash out the compiler. Putting us
               | squarely in the no tabs camp.
        
       | dfox wrote:
       | It is somehow weird to see MPC821 in this kind of device. The
       | point of (Power)QUICC line is that the Communications Processor
       | is some kind of RISC/VLIW core, that offloads various
       | communications tasks and has firmware support for various serial
       | telco protocols. I would not be too surprised if MPC821 and
       | MPC860 are in fact the same hardware only with different firmware
       | that somehow bitbangs the LCD interface by (ab)using the SCC
       | channels (original m68k QUICC datasheet mentions that there is a
       | way to make one of the channels behave like Centronics parallel
       | port).
       | 
       | In any case PowerQUICC with LCD interface is a device that is
       | quite obviously meant for something like dektop phone with large
       | LCD, not for tablets.
       | 
       | Quite large usage of PowerQUICC were Cisco 17xx/26xx series
       | routers (with 16xx using m68k QUICC) that were used by many
       | telcos in early 2000's as "SHDSL modems". If you squint enough
       | the m68k QUICC is an entire Cisco 2500 on a single chip (with the
       | added benefit that the QUICC SCC can more or less do scatter
       | gather DMA directly into IOS's particle buffer datastructure,
       | which IIRC was not the case with the Z8530-derived USARTs in
       | 2500).
        
         | Aloha wrote:
         | We're still shipping hardware with PowerQUICC stuff in it, its
         | used in a TDM/IP intelligent channel bank.
        
       | sedatk wrote:
       | Wow, the author's gone above and beyond. Pages and pages of
       | useful information, and this statement is just in the middle of a
       | sentence:
       | 
       | "turn this into a phony ELF binary"
       | 
       | That would alone take me days to tackle (convert a PowerPC PE
       | into a PowerPC ELF). He mentions it like it's similar to copying
       | a line on a text editor.
       | 
       | Totally amazed at the level of detail and amount of work went
       | into this article. Thanks!
        
         | classichasclass wrote:
         | (author) Thank you! But this was actually not very difficult.
         | The PE format is well-documented, so I just extracted the code
         | segment addresses, then generated an ELF by emitting code like
         | this with a hacky Perl script:                 .globl main
         | main:          trap          .byte 0xfc          .byte 0xff
         | ...
         | 
         | etc. Assemble, run that in gdb, it traps immediately, and just
         | disassemble from PC.
        
       ___________________________________________________________________
       (page generated 2024-05-06 23:01 UTC)