A Dream Pocket Computer: The IQ-9000 Organizer with the CE-902 BASIC IC Card

The Sharp IQ-9000, a 90s organizer running BASIC

Friends, today I present the Sharp CE-902 BASIC Card in combination with a IQ-9000 organizer, it's like having a 90s mini-laptop, and at the end a call for assistance. 
The CE-901/2 BASIC IC-Cards were, to my knowledge, the last BASIC cards Sharp released for the IQ/OZ organizer models. It can only be used in the IQ-89xx or 9xxx models(or the OZ equivalent which used a slightly different numbering scheme. e.g. OZ-9600).


The CE-902 BASIC card.

Introduction

The CE-902 is extremely rare, and this is the first one I've seen turn up on eBay in 4 years of searching. There are other BASIC cards for Sharp's IQ/OZ Organizers, but this is the pinacle of that IC-Card line.

A few of Sharp's other Organizer BASIC cards

Internals

You get a BASIC dialect that is pretty much the same as the one in Sharp's PC-E500, but with a few organizer specific additions. This is combined with either 128kb (CE-901) or 256kb (CE-902) of RAM. Sadly, there was absolutely no documentation with it. It seems to share its syntax with the Japan-only PV-1C95-2 card, which was released for, among others, the PV-F1 organizer.
Although it can be used in an IQ-8900, the card is optimized for the IQ-9000 series and takes advantage of the higher resolution, providing 53 x 18 text output. The character matrix has been upgraded to 6 x 13(!) dots and letter descenders are implemented.


Not only the highest text resolution of any Pocket Computer...

...also the highest charachter resolution....



...and finally real descenders and ascenders have been implemented

Graphic resolution is 320 x 240 and can be addressed through LINE, PSET, PRESET, GCURSOR, GPRINT etc. Sadly, GPRINT only supports the legacy height of 8 pixels, so you'll need to do a bit more work if you're going for a 1:1 text/graphic character overlap.


320 x 240 glorious monochrome pixels!

Pumping out that many pixels does put some strain on the CPU, and editing programs can feel a bit sluggish sometimes. The flicker seen in the video isn't noticeable to my (admittedly bad) eyes.






Of the 256 kb provided on the CE-902, only 128 kb are available as RAM, the rest is reserved for a RAM drive. That needs to be initialized with the INIT command first. the FILES command is used to list the contents of the RAM drive, as you would expect.

One half of RAM is for programming....

...the other is reserved for a RAM disk

Data I/O is achieved through the Sharp 15 pin interface, the same as it has been since getting introduced with the PC-1350. For data transfer to PC, I used the PB 1000 Data Communicator 32 software.

The IQ-9000 happily transfering data to a PC

PEEK and POKE work, but CALL, although still a reserved command, results in a syntax error. The same happens with WIDTH, which is normally used for printing double width/height characters, but I think that's because the syntax changed between BASIC card releases. It's listed in the command dropdown list, so I assume it should work.
WIDTH should work, but it's expecting different parameters than normally used.


A new command TOUCH is implemented, apparently as a substitute for KEY which was previously used for touch screen interrupt handling on other BASIC cards. TOUCH ON and ON TOUCH GOSUB don't result in an error, but they also don't work, so I'm missing some syntax.


According to the IQ-9x00/OZ-8 service manual there are two touch screen address areas in memory, and yet the entire block at 8800h-8900h seems to be filled with E0h, and every address in the block from 8C00h-8D00h seems to contain the Y address of the touch event. Strange.

I did a bit of programming to make a rudimentary memory sniffing utility (If you look closely at the pictures, you can see it evolving over time).


Don't mind me, I'm just having a look around.

The card space starts at &H20000 which, according to the IQ-9000 service manual, is exactly where it should start. Adressable space goes up to &HFFFFF.

Thanks to the kind soul that uploaded this to archive.org 

Strange things happen if you try PEEKing the LCD addresses (~&H8400) directly, so you might want to avoid that.


The organizer doesn't like you peeking around the LCD addresses

The list of BASIC commands on the CE-902 is at &H7D4A2-&H7D859. We see a new command ICON & for the first time since the PC-1600, INSTR makes a reappearance. The character following each command is one half of the BASIC token in HEX, the first half is FE.

BASIC commands part I

BASIC commands part II

BASIC tokens, by no means complete.

INSTR (BASIC Token FE D5) works as expected on the CE-902 BASIC card. It uses the same syntax as the Sharp PC-1600, for example, INSTR(A$, "Foo") returns the position of "Foo".

Hello INSTR, you were missed.
At &H6C2D0 you can find an easter egg! My thanks go out to all of the IC-Card team and especially Mr. Adachi. You are awesome, my friend!

Thank you so very much.

So, that's a quick overview of the rare-as-unicorn-tears CE-902 BASIC card. I'll post updated material as soon as I have some. If any of you have documentation related to this card, or even the PV-1C95-2 card, please, please drop me a note. I'm stuck at the moment trying to figure out the syntax of quite a few commands and also interesting addresses like the list circulating for the IQ-8B03 basic card.
On a related note, If you're planning on getting an IQ-9000 or OZ-9600, I would recommend the IQ-9000. Sharp apparently added a matte finish to the OZ screen. It cuts reflections, but makes the LCD harder to read.

The screen on the OZ-9600...

...compared to the screen on the IQ-9000.





Comments

Popular Posts