Palm (Pilot)
Клуб пользователей, Санкт-Петеpбуpг
 ENLiGHT Project. Новости об информационных технологиях, науке, авиации и космонавтике

ENLiGHT Project

оглавление | новости от ib/news | другие проекты | | письмо | win koi lat

Операционные системы и их версии
(дополнения приветствуются)

- PalmOS 

1996 год

PalmOS 1.0 - первоначальная версия OS для Palm 1000/5000

1997 год

PalmOS 2.0 - изменен GUI (к примеру, появилось меню в приложениях)

PalmOS 2.0 Pro - появилась поддержка TCP/IP, программа Mail

1998 год

PalmOS 3.0 - поддержка IR, устранены проблемы с фрагментацией памяти, API позволяет узнать серийный номер.

1999 год

PalmOS 3.1 - поддержка 4-х градаций серого

PalmOS 3.1.1 - патч устраняющий некоторые проблемы с обновлением экрана, звук от кнопок

PalmOS 3.2 - поддержка Wireless модема, для Palm VII

PalmOS 3.3 - Ускорен HotSync (115200), добавлен IR HotSync, символ Euro, поддержка IrCOMM, улучшен login script, поддержка 16 градаций серого.

2000 год

PalmOS 3.5 - Поддержка до 256 цветов. Изменения в DateBook, Alarm, Address Book, функции MenuHack, частично CaseToggle (и года не прошло :-/ )
Размер heap'a зависит от памяти в устройстве (< 2mb - 64k, >=2mb - 128k, >=4mb - 256k)
Некоторые старые приложения не работают под PalmOS 3.5
По утверждениям людей, наблюдается значительное снижение скорости работы в ряде приложений

PalmOS 3.5.1 - Кое-что исправлено (не скорость). Неебольшой текст от Дмитрия Михеева (владельца TRGPro)

PalmOS 3.5.2H - Дополнены приложения: Date Book, Calculator, World Clock

2001 год

PalmOS 4.0 - По утверждениям разработчиков, написан с нуля. Поддержка мультимедиа, улучшенная многозадачность, поддержка внешних модулей расширения. Возможна установка этой ОС на старые модели с Flash памятью;
Голосовые заметки;
Поддержка 16 бит экранов (65 тысяч цветов);
VFS (виртуальная файловая система для работы с Flash карточками).

2002 год

PalmOS 4.1 - Bug Fixes List:

When Sony released the N760C, it ran Palm OS 4.1, the first model to do so. Many people wondered what were the differences between OS 4.0 and 4.1. A Sony spokesperson said the only changes were to fix some bugs and there were no new features. Recently, a list of bug fixes was posted on the Palm Developer's Forum. For the most part, these are quite technical and none of the bugs fixed appear to be major problems with the OS.

The OS 4.1 update can't be applied as a patch; the entire ROM needs to be overwritten. Palm gave the updated code to the licensees but it is up to them to distribute it.

Below is a list of the most important bug fixes:

* WinPaintPixel did not draw properly with custom pattern. If the custom pattern was active, calling WinPaintPixel caused the pixel to always draw using the background color.
* 3rd party Alarm sound databases using a different database name than the standard but with a lower version number displayed as options in the datebook's alarm picker, but would not actually play. Changed to not display in such a case.
* Leading spaces of URL in OpenURL menu crashed the device.
* CtlNewSliderControl did not set the graphical attribute on the slider controls it created.
* If you have a slider control with a non-exact background bitmap (i.e., the bitmap is not exactly the same width as your slider), you almost always got "Background must be at least half as wide as slider" whenever the OS attempts to draw the slider.
* Sliders with non-zero minValues did not work properly.
* Graphics filling rectangles using solid patterns with some transfer modes did the wrong thing.
* Resizing a file on a peripheral card for the first time by an amount that is larger than the space available on the peripheral card resulted in the rest of the space on the card being "lost."
* If two files are created on a peripheral card with filenames longer than 27 characters, and all characters after the first 13 are the same, the second file could not be accessed
* Strings that contain a Hiragana/Katakana vowel followed by a Cho-on (a bar that extends the sound of the previous vowel) don't sort correctly.
* TsmSetFepMode did not work if a numeric field has the focus in the form. It also did not work if there is no form being displayed.
* Calling ATSmsGetMessageCount with a message type "MA" caused Fatal exception
* RxEnable, RxDisable op codes for SrmControl did not work for virtual drivers.
* Could only dismount 1 file system.
* Could only mount 4 FAT file systems.
* INetLib filled in DeviceID in the CTP Header extension by calling the network interface directly.
* The stdFont for Japanese had incorrect glyphs for the Box drawing characters (and the kg and mg glyphs).
* A "bad window" error popped up on debug ROMs if the window bit depth was greater than that of the screen.
* The character height for Symbol7 font was incorrect.
* From Clipper,m a button labeled with Japanese text in an anchor tag with 'button' attribute was not displayed.
* Long volume name support was not compatible with peripheral card implementation (/palm/volinfo.txt vs. /Volume.nam)
* With some devices, 255 character volume names did not work.
* When opening a file for exclusive read access, a "File permissions denied" error was returned. When opening a directory, permissions were not ignored.
* When FSFileCreate was called to set the filename which has "space" character after 8th letter, the extension of alias name (DOS or legacy name) was wrong.
* VFSFileRead did not return vfsErrFileEOF when reading past the end of a file.
* sysNotifyEvtGotEvent notification was a significant performance drain for games because it went out for every event. This was fixed to limit the notification to a subset of events.
* LmGetLocaleSetting returned invalid characters for currencies in Japanese ROM.
* Using the dynamic UI creation routines did work properly when there was a list on the form with static entries created in Constructor.
* Using dynamic UI on a form with graphical or slider controls would corrupt which bitmaps are drawn unpredictably.
* Invalid pointer sent to TelPhbGetSelectedPhonebook resulted in crash
* Tapping on links that invoke a "palmcall" results in the title bar being temporarily frozen to reading, "Connecting...", with the hypnotic circle/meatball displayed.
* Shortcut .. 6 always displays the Palm OS 4.0 ROM compile date versus the device-specific ROM compile date.
* TCP window size is not updated when the window size drops below the maximum segment size, but is greater than zero.
* Netlib settings were improperly updated on disconnect.
* If web clipping isn't installed, viewing the contents of a card that includes a .pqa that uses the default icon, resulted in a fatal alert.
* Intermittent secure transaction error 1428 "The server has updated the security sequence number" when loading pqas
* "Hidden" peripheral card with no start.prc still caused switch to Launcher.
* Repeatedly inserting unformatted peripheral cards resulted in stacked format dialogs.
* HotSycing after adding a FAT file system to a device results in a Fatal Exception.

Список рекомендован к послеобеденному чтению. Вот реакция одного из читателей
Palm InfoCenter:

Only minor bug-fixes?
Posted by: Christian @ 10/21/2001 4:11:26 PM

So, Dear Ed, how come, that you think all of these are minor bug-fixes?

"VFSFileRead did not return vfsErrFileEOF when reading past the end of a file."

Did you ever try to write a correct-working programm on an operating-system which is not delivering you eof-information while processing a file?

There are so many problems (even msmount, mcfile and power-run) with files on the expansion-memory (sd-card) that the only solution to repair them (which I found) was to buy a desktoppc-sd/mmc-cardreader-writer.

Greetings from Switzerland
Christian Stocker

Palm OS 4.1.2

Palm OS 4.1.2 is Palm OS 4.1 with the addition of the Graffiti 2 handwriting recognition engine.

PalmOS 5

Предназначена для устройств на базе ARM процессора. Включает в себя эмулятор старых Palm (на 68000). Довольно много глюков.


previewed the Palm OS 5 beta and announced that final delivery of the new operating system to Palm OS licensees is scheduled for early summer. Palm OS 5 will be the foundation to build a new class of devices that will help make mobile computing ubiquitous.

Palm OS 5 will bring the flexibility, innovation and ease of use of the Palm OS to powerful ARM-compliant processors. Licensees can choose from a full range of processors, starting with the ARM 7 CPU and scaling to the highest-performance  ARM chips from Intel, Motorola and Texas Instruments. In addition, the operating system will deliver enhanced performance, data security, multimedia and wireless networking, as well as compatibility with existing Palm OS software programs.


With eight times more software programs than any other handheld platform, the Palm OS subsidiary is working closely with developers to ensure that current software programs will run on Palm OS 5. Software programs supporting application programming interfaces (APIs) based on Palm OS 4.0 and above should be compatible and run faster on Palm OS 5. The Palm OS 5 Compatibility CD with  a preliminary version of Palm OS 5, tools, and 20 compatible software programs  is being distributed to developers at the PalmSourcer conference. Developers attending the conference can test their applications on pre-release hardware from Intel, Motorola and Texas Instruments.

Key Improvements:

Even with the enhancements to Palm OS 5, the operating system continues to have a small footprint. The benefits of the efficiency of the operating system translate to the same long battery life and modest hardware requirements that the Palm OS is known for.

Enhanced security -- To keep sensitive data private, Palm OS 5 offers strong 128-bit systemwide data-encryption services based on the de facto standard RC4  encryption algorithm from RSA Security. In addition, end-to-end security is provided through Secure Socket Layer (SSL) services for email, web browsing and online transactions.
Multimedia -- The ability to record sound and play CD-quality digital audio brings higher fidelity sound to mobile devices. Support for high-density screens (up to 320 x 320 pixels) doubles screen resolution, and new selectable  color themes will let users customize devices.
Wireless -- In addition to current support for WAN and Bluetooth, Palm OS 5 supports 802.11b for connections to wireless Local Area Networks.

PalmOS 5.2

Многочисленные исправления багов, Graffiti 2

Palm OS 5.2 is mainly a bug fix release. In addition, it contains a small set of new features and modifications, most notably a new handwriting recognition engine called Graffiti 2. The Graffiti 2 engine is based on the well-known Jot product from Communications Intelligence Corporation (CIC). Furthermore, as part of this release to licensees, we have defined a platform collapsible input area API for all licensees to use.

The following list summarizes the bugs that were fixed in Palm OS 5.2 that may affect your application:

  • Formatting some 128MB and larger SD cards may freeze the device
  • Memory leak occurs if sound played asynchronously does not terminate before exit of application
  • Algorithm which computes the interval between two repeat events is incorrect
  • An emulated 68K "Exchange Library in Application" (ELIA) will not get called
  • Attempting to use a 68K FEPs on Palm OS 5.0/Palm OS 5.1 results in a Fatal Alert
  • Unable to check multiple SMS using a TCP connection with VirtualPhone test application
  • Netlib: NetLibSocketAccept returns garbage in address buffer.
  • Netlib: NetLibReceivePB with iovlen > 1 causes Fatal Exception
  • Netlib: The pointer of servNameP and protoNameP returned by NetLibGetServByName is wrong
  • The array of pointer aliasList and addressList in NetHostInfoBufType and NetLibGetHostByName is not terminated by NULL pointer.
  • Netlib: The value of port in NetSocketAddrINType returned by NetLibReceive, NetLibReceivePB, NetLibSocketAccept, NetLibSocketAddr is wrong
  • The value of ifInstance and ifCreator in NetSocketAddrRawType is wrong
  • The value of family in NetSocketAddrINType returned by NetLibReceivePB is endian swapped
  • The direction argument of NetLibSocketShutdown() is ignored and always handled as if the value is netSocketDirInput
  • NetLibTracePrintF with argments doesn't work
  • A zero-length packet cannot be received in UDP
  • NetLibReceivePB for UDP socket ignores iov array > 1
  • If using NetLibSocketConnect or NetLibSend for UDP without calling NetLibSocketBind in advance, the outgoing datagram has source port zero
  • TCP socket cannot send any data after receiving FIN from peer
  • NetLibSocketBind doesn't fail if the port is already used and busy
  • NetLibSend with zero length data fails with timeout error
  • Once NetIFAttach fails by specifying non-existing creator the system may crash with Fatal Exception.
  • If a background task is in the middle of GetHostByName and you attempt to shut down an interface (PPP or SLIP) from a foreground task (by turning off the device for example), the device crashes with a divide-by-zero exception in NetLib's udp_retransmit function
  • Noise is heard (for Unsampled Data) if a blank sound is inserted on one channel while the opposite channel has sound.
  • Crash in low-memory situations in the square-wave emulator
  • Values returned by SysBatteryInfo() function are wrong
  • Synchronizing to the memory card using VFSExportDatabaseToFile results in a PalmOS error message: "MemoryMgr.c Line:2571. Non-word aligned handle." on Palm OS 5.0/Palm OS 5.1
  • Calling SndPlaySmf () with the sndSmfCmdDuration SndSmfCmdEnum command value as the 2nd param returns a max UInt32 value (-1 as an Int32) instead of the actual MIDI sound duration in milliseconds.
  • LstSetListChoices fails if itemsText passed in is the same as the existing itemsText in the list
  • Transparent color cannot be set on version 2 bitmaps with16 bit color by calling BmpSetTransparentValue() and BmpGetTransparentValue() from 68K application
  • VCard data encoded by Base64 is decoded by vCard, 0x1b will not appear
  • MS-CHAP authentication over PPP fails ('normal' CHAP works)
  • When the Attention manager close its dialog, no update event was posted to update the form behind
  • Problem in TCP retransmission code cause unnecessary retransmission on slow link
  • If PPP environment allowed 8bit clean communication path, received packet is just passed from PPP to TCP/IP stack. But PPP data is non-aligned because the length of the PPP header can vary such as one octet. This causes Fatal Exception in TCP/IP stack.
  • TCP checksum error observed in packets sent from Palm OS 5.0.
  • NetLibSocketSend() returns 0 instead of netErrTimeout when it timed out.
  • If compressed bitmap size is greater than threshold, BmpCompress() returns an uncompressed bitmap but still sets the compression flag
  • Popup list closed when vchrAttnStateChanged is posted even if the attention manager is not opening a dialog. Example: such as with AlmEnableNotification(true) is called
  • a mistake in kCopyStructForDictParamsCmdBlk definition
  • DmOpenDatabaseInfo crashes the system when trying to obtain a LocalID
  • Every time a task is created and deleted (such as with sound playback) 8 bytes of memory is leaked.
  • SslDemo app fails to run on 32bit Roms
  • PACE crash calling AccFldGetLineInfo68K()
  • PACE does not properly copy over the selector field in the gadgetMisc structure
  • A fatal alert occurs when decoding specific vObjects
  • Fatal alert could occur when one shared library's install function calls SysLibLoad to load another shared library
  • Fatal error could occur when 68K callback (serial manager window handler, procedure alarm, attention manager, notification) is launched while native ARM application is being run. The fix in OS 5.2 does mean that the callback code can not "cache" things like form IDs to be used later.
  • Serial manager wakeup handler callback's pointer freed once active application exits
  • Only 1 procedure alarm among all applications can be set in the system at any one time.
  • 68K Shift/Rotate instructions don't work correctly on PACE in certain cases
  • VFSFileRead communication fails if bytesToRead is bigger than file

Graffiti 2 Handwriting

Graffiti 2 is a new character recognition engine that replaces the Graffiti engine that had been used in the past. The engine is based on the popular JOT product from CIC that you may be familiar with. The primary difference between Graffiti and Graffiti 2 is the addition of more natural character recognition by allowing users to use multi-stroke characters in the input area.

In Graffiti 2, the first stroke of a multi-byte character might match the stroke for another character. In this case, the Graffiti 2 engine first enqueues the interim single-stroke character followed by a backspace and then finally the multi-stroke character. For example, The first stroke of a "k" character matches the stroke for the "l" character. When the user draws the first stroke of the "k," the Graffiti 2 engine processes that stroke and sends the "l" character to the key queue. When the user draws the second stroke of the "k," the Graffiti 2 engine sends a backspace to erase the "l" and then sends the "k" character. If your application has processed the "l" in the meantime, it has done so in error.

If your application processes characters as they are received, you should be aware that the following characters could be the interim first stroke characters of a multi-stroke character:

  • The letter l
  • The space character
  • The single quote
  • The minus sign

In most cases applications do not process character keyDownEvents one by one and will need to change very little if at all. The twomost common compatibility scenarios that we have come upon in third party testing are:

  • Applications that use the "l" character and multi-stroke characters as menu shortcuts or application-defined command characters
  • Applications with field autofill functionality

See the Graffiti 2 Compatibility Tips FAQ in the developer Knowledge Base for more detailed information about when you need to and how you can work around compatibility issue with Graffiti 2. See the updated Palm OS Programmer's API Reference for a description of the Graffiti 2 feature set.

Other New Features and Modifications

1) Flag added for Internal Cellular Phone modules
Added the following line to SerialVdrv.h:

#define portCellularPort 0x00000400 // Set if the port is a direct connection to an internal cellular phone module
#define serDevCellularCapable 0x00000080 // Connects to a cellular phone module

to SerialMgr.h and modified SerialMgr.c to report the new flag.

2) Dropped automatic request for telephony RSSI value from phone in response to a Bluetooth PPP connection. This improves both interoperability with Bluetooth phones as well as performance when connected.

3) Increased netMaxNumSockets from 4 to 11.

4) Increased number of network packet buffers in the system.

5) Increase compatibility with SMS networks.

6) Added extended sound stream APIs that are built on top of the existing sound stream architecture. A developer can specify a format type when creating a stream and then feed compressed data into that stream, provided the device has the proper codec. Palm OS contains only the raw PCM codec; licensees can add others, such as MP3 or Vorbis.

Collapsible Input Area API

For Palm OS 5.2 we worked with our licensees to define a platform API for collapsible input areas, and licensees have agreed to conform to this API. Although we have yet to add support for a collapsible input area into the OS, this will match the API that we will use in the future. As a third party developer, this means that moving forward you will be able to target a single API, and at least the majority of your interactions with the input area will work on multiple devices and on future releases.

Because we have not yet officially implemented this feature as part of the OS, there is no reference implementation via a Palm OS Simulator or emulator ROM for developers to test against. As licensees release devices that do implement support for collapsible input areas we will work with them to make a Simulator and/or Emulator ROMs available to developers.


- Другие ОС

Существует ucLinux for Pilot. Однако, он тpебует pасшиpения памяти до 8MB (trg). Кроме того это не настоящий Linux.

Есть еще один "Linux" - Linux DA: (около 800kb)

..это контроллерный вариант. Там на сайте подробно указано оборудование. А если под palmtop вы понимаете палм (собственно uClinux это вариант линукса для ЦПУ без ММУ по до что подходит только старый палм и его аналоги), то вам нужен порт линукса с GUI. Hапример:

Под старые палмы есть ядро uClinux которое может грузиться, паример путем синхронизации (если хотите так хоть через JPilot). Hо на более-менее современных устройствах запуск этого реликта приводит к краху. Проверено на соньках.

Если вы хотите дополнить FAQ - пожалуйста пишите. Ваши вопросы и ответы по e-mail могут быть помещены в форум или опубликованы в FAQ.

design/collection/some content by Frog,
PALM FAQ (C) Frog 2000-2003,