The Nokia 9000i Communicator has 8 megabytes of Flash RAM in it. It is partitioned as follows:
The display is a grayscale LCD screen 640x200 pixels, measuring 115 by 36 millimeters. The screen is neither touch-sensitive nor pen operable. The left status pane is 80 pixels wide and the command buttons at the right have a variable width, so an application's usable screen dimensions will be less than or equal to 560x200 pixels. For instance, the web browser has 540x200 pixels of usable display for web pages.
Current Nokia 9000i Communicators support 4 levels of gray, but future versions (the GSM European and PCS United States versions) will support 8 levels of gray. Even though the 8-level grayscale devices default to 4 levels of gray, applications may change modes on-the-fly.
The keyboard is a standard QWERTY keyboard. English, French German and Scandinavian versions are currently available.
The following is a list of all the available fonts, their sizes, styles, and comments.
| Font: | Available Size: | Styles: | Comments: |
| FID_RESPONDER | 14 | Bold | -- |
| 16 | Plain, Bold | -- | |
| 17 | Plain | -- | |
| 18 | Plain, Bold, Italic, Bold-Italic | FID_RESPONDER 18 is the default font | |
| 20 | Bold, Bold-Italic | -- | |
| FID_TERMINAL | 8 | Plain | Tiny, 7 pixel wide font need to display 80 characters per line, for Telnet and the like |
| 16 | Plain | Also 7 pixels wide, but vertically stretched for legibility; you can only display 12 lines of text on the screen using this font. | |
| FID_TERMINAL_GRAPHIC | 8 | Plain | 7 pixel wide font need to display 80 characters per line. Has VT100 graphics above 80h.. |
| 16 | Plain | 7 pixels wide, but vertically stretched for legibility; you can only display 12 lines of text in this font. Has VT100 graphics above 80h. | |
| FID_DTC_URW_SANS | Any Size | -- | Outline font. |
| FID_DTC_URW_MONO | Any Size | -- | Outline font. |
| FID_DTC_URW_ROMAN | Any Size | -- | Outline font. |
| FID_BISON | -- | -- | This font has only one character, '*'. This is used for passwords. |
There are two types of icons: Status Pane Icons and File List Icons.
When creating a status pane icon using the Icon Editor, use the following settings:
When creating a file list icon using the Icon Editor, use the following settings:
Icons can make use of 4 layers of grey. When drawing an icon, use the following mapping of colors to create the correct gray level in the icon: (if other color values are used, they will not show up.)
| GEOS Color | Icon Level of Gray |
| C_WHITE | White |
| C_LIGHT_VIOLET | Light Gray |
| C_GREEN | Dark Gray |
| C_BLACK | Black |
Other graphics can make use of the 16 GEOS enumerated color types to choose the appropriate gray. The device will correctly map the color to the correct level of gray, depending on number of screen grays available. The following table displays how different colors will map to gray on 4- and 8- level grayscale modes.
| GEOS Color | 4 Levels of Gray | 8 Levels of Gray |
| C_BLACK, C_DARK_GRAY | Black | Black |
| C_BLUE, C_LIGHT_BLUE | Dark-dark gray | |
| C_GREEN, C_LIGHT_GREEN | Dark gray | Mid-dark gray |
| C_CYAN, C_LIGHT_CYAN | Light-dark gray | |
| C_RED, C_LIGHT_RED | Light gray | Dark-light gray |
| C_VIOLET, C_LIGHT_VIOLET | Mid-light gray | |
| C_YELLOW, C_BROWN | White | Light-light gray |
| C_WHITE, C_LIGHT_GRAY | White |
Often, it is useful to get a qualitative measure of the available free disk space to check whether the disk is dangerously full. The disk warning levels are:
To maintain a consistent look-and-feel for all Nokia 9000i applications, it is important that developers follow the same set of UI conventions. The most important navigation tool on the Nokia 9000i are the four triggers at the right side. The application specifies what these triggers are and which slot (0, 1, 2, or 3) each of these triggers belongs in. In general, applications should use:
Applications launched from "Extras" must have a close button that calls MSG_FSA_RETURN_TO_LAUNCHER
You can use up to 6 triggers by setting up two panes of triggers. If this is done, than the fourth trigger of each group must be either "More" or "Back" text monikers with the associated right and left pointing icons.
To reset the Nokia 9000i Communicator and effectively erase every bit of data on the phone (except, of course, the factory settings and data) you must pull out the main battery, put it back in, then hold down the keys Shift-Esc-f. You will be prompted to format the RAM of the device and you can cancel here if you don't really want to erase the data.
Once the phone has been reset you must re-enter all of the user data again, including your home country, name, and address.
You can get version information from the INI file on the
Nokia 9000i Communicator. The information is stored as a string in
[UI]swSerialNumber.
The string is 27 characters long. This same string can be seen on the last
line of About this product. The whole string looks like this:
000000/00/2a0030808044001/0.
The interesting part is: 2a0030808044001. The three first characters identify hardware version (here 2.10), six following characters identify software version (here 03.08.08), three following characters identify the country code (44 = Great Britain) and the last three characters identify the keyboard type (here 001 = English).
Here is sample code that shows how to extract the version information:
@start StringRes;
@chunk TCHAR UICategory[] = "ui";
@chunk TCHAR SWSerialNumber[] = "swSerialNumber";
@end StringRes;
...
@method TestProcessClass, MSG_TEST_PROCESS_GET_VERSION
{
TCHAR version[28] = "";
TCHAR * category;
TCHAR * key;
word value;
MemLock( OptrToHandle( @UICategory ) );
category = (TCHAR *) LMemDeref( @UICategory );
key = (TCHAR *) LMemDeref( @SWSerialNumber );
InitFileReadStringBuffer( category,
key,
version,
IFRF_SIZE | 28,
&value );
/*
* Extract the information you want from version string.
*/
MemUnlock( OptrToHandle( @UICategory ) );
}
After the Nokia 9000i Communicator's lid is closed, the Communicator waits for 30 seconds and then turns off the CPU. Of course, the CPU will not turn off until all applications are idle.
To receive notification that the lid is closed, an application should
register on the GCN list GCNSLT_RESPONDER_NOTIFICATIONS.
It should watch for MSG_META_NOTIFY with
notificationType == GWNT_RESPONDER_NOTIFICATION,
manufID == MANUFACTURER_ID_GEOWORKS and
data == RNT_LID_CLOSED.
(ResponderNotificationType is defined in N9000v20\CInclude\Internal\respondr.goh)
To debug on an actual Nokia 9000i Communicator, you need to attach your host PC to the device's 6-pin serial port and set the host ptty baud setting to 38400. Remove the battery so the phone shuts down. Then replace the battery and press:
SHIFT-D-O (that is 'O' not zero) to boot and wait for swat to attach.
SHIFT-D-B to boot with swat stub loaded, but doesn't wait for swat to attach.
Note that IR connections and PC connectivity won't work while the Nokia 9000i Communicator is in debug mode. (IR shares a UART with the swat port, so you trying to open the port will lock the device.)
Also note that debugging on the device is limited because you cannot set breakpoints in any of the system routines (since they are in ROM). Mostly you can check backtraces and set breakpoints in your own application.