written by
[still under construction - and so is the manual since LapTopHack keeps evolving constantly]
NOTE. You can find a plain text version of this manual here and you can download it from here.
NOTE. This very same manual can be found online here (HTML) and here (text). You can also download them from here (HTML) and here (text).
Since pedit, LapTopHack, and pToolSet share components, if you use more than one of them, then they all must be of the same version, preferably the latest one.
PRESENT. palm + pedit + [optional] external keyboard = full LapTop power in text editing
PRESENT. palm + pedit + LapTopHack + [optional] external keyboard = practically full LapTop power
FUTURE. palm + all applications + [optional] external keyboard = full LapTop power
FUTURE. palm + all applications + [optional] external keyboard = full DeskTop power
Some users of LapTopHack 1.xx have voiced concerns that LapTopHack slowed down their otherwise speedy Palm OS. I must admit that their complaints were fully justified. Amazingly, this slow down effected only a few users. It took me along time to figure out how to alleviate the problem.
LapTopHack 2.00 was rewritten from the ground up. I tested it very thoroughly on all my Palms and I found no performance degradation whatsoever.
In addition, LapTopHack 2.00+ added [almost literally] a myriad new features to the feature list of 1.xx. LapTopHack 2.00+ is destined to be a winner.
As demonstrated by thousands and thousands of its users, LapTopHack 7.00+ is already a winner.
LapTopHack is a killer HackMaster extension which greatly enhances the power and usefulness of your beloved Palm Powered Handheld device whether or not you have an external keyboard attached to it.
LapTopHack picks up where Palm left off and turns your Palm into an even more powerful computer.

Major Features
The primary goal of LapTopHack is to fill a void which exists between LapTops and Palm Powered Handheld computing devices.
On one hand the Palm was designed to be as a simple handheld organizer whose [primary] input device is the stylus.
On the other hand, all current versions of the Palm are, in fact, powerful computers which in many respects are as good, if not better, than LapTop computers are.
LapTopHack greatly enhances the power and usefulness of your Palm Powered Handheld device whether or not you have an external keyboard attached to it.
Unfortunately, both the current Palm operating system and all third party applications largely ignore the fact that, with proper software support, attaching an external keyboard to a Palm Powered device will turn the package into a miniature powerhouse.
If you regularly use an external keyboard with your Palm, then you will quickly end up wondering how you could have existed without LapTopHack.
As of August 17, 2000, I am not aware of any single program written for the Palm platform which would exploit this tremendous potential. The only exception is my beloved pedit family of text editors.
Although there are a number of keyboards available for Palm Powered Handhelds such as the Palm Portable KeyBoard [aka PPK or Stowaway or Targus] and GoType!, and so forth, as of August 17, 2000, their software drivers are somewhat buggy and definitely less than perfect in terms of the sophistication needed the turn a Palm Powered Handheld into a "lapheld" powerhouse.
I want to state it clear and loud that I think both GoType! and PPK are absolutely first rate in terms of hardware, and I consider each an engineering marvel.
LapTopHack is going to be an ongoing project to create the correct interface between Palm Powered handhelds, keyboards, and the user who wants to be able to exploit the available opportunities to the largest extent.
QUESTION. Why would I want to use LapTopHack in conjunction with Graffiti, when a direct tap in the appropriate location on my Palm's screen in most cases would be easier and faster.
ANSWER. If your vision is 20/20, then you are absolutely right. You should always tap. Otherwise, you will soon realize that it may be much simpler and much faster to use Graffiti for certain operations than trying to tap on the screen. In fact, even if you are lucky to have a 20/20 vision, try the following.
EXPERIMENT. After you installed LapTopHack, go to DateBook (or DateBk3 or DateBk4) and tap on the "Go to" button. You end up in the Date Selector form. Now please enter SPACE via Graffiti. Did you see that the year moved? Isn't that easier than clicking the little arrow?
LapTopHack is a HackMaster extension. Therefore, just like any other HackMaster extension, it may or may not work on your Palm Powered Handheld device.
NOTE. Show me a HackMaster extension, and I bet I can make it crash your Palm.
NOTE. As a matter of fact, as of versions 0.90 and 0.91, HackMaster itself is defective. If you launch HackMaster approximately 15 times and you have at least one active HackMaster extension, then it will crash your Palm with a "chunk over locked" message. Amazingly, very few people are aware of this, not even most of the top HackMaster extension developers. I read about this defect on comp.sys.palmtops.pilot, and then my experiments on all of my Palms confirmed this. I recommend that you try it out.
Having scared you off, let me assure you that most properly written HackMaster extensions, including LapTopHack, will work fine most of the time.
Nevertheless, please keep in mind that each and every HackMaster extension violates the fundamental programming rule which is endorsed by Palm. Namely, use the publicly available SDK [Software Developers' Kit], and, even if you are smart enough to figure out the inner workings of the Palm operating system, pretend that you do not know the nitty-gritty details. Rely on nothing but the SDK.
TealMaster is my favorite HackMaster replacement, especially on Palm OS 4.0+ where HackMaster is seriously handicapped. I have used LapTopHack with TealMaster and Palm OS 3.5.x since approximately March, 2001, and I absolutely love it. I found TealMaster's user interface almost perfect. I just wish that TealMaster allowed the user to view the active HackMaster extensions only. I know TealMaster's author who runs much of TealPoint. He is a truly nice person who listens to users and I am sure that he will do his best to keep improving TealMaster.
Several LaptopHackers reported that LapTopHack works well with X-Master. Although I have not tested it, I added X-Master support to LapTopHack on May 28, 2001. Since I am currently very happy with TealMaster, I plan no X-Master tests. However, if I hear from our Laptophackers any bad news, I will note it in this manual.
I have tried out at least one other HackMaster extension installer application, and I found problems with it despite its fancy features and interface when compared with HackMaster.
Therefore, I recommend, endorse, and provide built-in LapTopHack support for HackMaster [despite the above mentioned defect], for TealMaster, and for X-Master [despite my lack of familiarity with it] only, and not for any other HackMaster extension manager application.
NOTE. Just in case I did not sound sufficiently loud and clear, I want to state it as explicitly as possible that if you run EVPlugBase, then please do not contact me asking for help if you notice that your LapTopHack either misbehaves or acts slower than what you would expect from it. Although, as of April 16, 2002, I received no crash reports from any LapTopHacker which could be traced back to EVPlugBase, I am familiar with several well-documented instances when LapTopHack works more than 10 times slower if used with EVPlugBase as opposed to HackMaster or TealMaster.
LapTopHack was tested in the regular RAM using the regular Palm Operating Systems 3.3 and 3.5.2, and the TRGPro version of Palm OS 3.5.1. In addition, it was also tested on POSE with non-debug versions of various Palm OSs.
Since HackMaster doesn't run on POSE with debug ROMs, I could not test LapTopHack with the latter.
NOTE. In case you did not know, "POSE" means "Palm Operating System Emulator".
LapTopHack was also field tested by thousands of Laptophackers, and, although they did find some bugs in it, the latest release of LapTopHack always incorporates fixes for all reported and reproducible bugs.
Tables sometimes represent a problem although I am not aware of any of them which are not mentioned in this manual. However, I spent an extraordinary amount of time and effort to resolve and/or to smooth out all the issues which arose in conjunction with trying to activate controls via LapTopHack in forms with tables.
NOTE. Do you know what tables are? For instance, if you open up Palm's built-in DateBook, then all the appointments you see is nothing but one table. In a sense, tables are similar to spreadsheets.
If you use one of those third party Palm OS performance enhancement tools such as over-clocking utilities or equivalents, and if you experience some LapTopHack incompatibilities with them, then please contact the makers of those tools, and ask them to make their product compatible with LapTopHack. Please tell them that I will be happy to assist them to find out why their product is incompatible with LapTopHack.
NOTE. If your Palm Handheld device has the Palm Portable KeyBoard [aka PPK or Stowaway or Targus] keyboard driver installed, whether it is activated or not, and if you do anything with your Palm while it is sitting in the regular cradle connected to your "real" computer, then all bets are off. Whether or not you have LapTopHack, you may experience mysterious events. This includes HotSyncing. For instance, if you assign an application different from HotSync to your "Cradle" button via the "HotSync..." button in the "Buttons" preference panel [this is a normal and legitimate procedure], then be ready for disaster every time you attempt to HotSync. It is my understanding that this is a consequence of the PPK driver implementation design [the Palm wakes up when you hit a key on the PPK]. I spent countless hours trying to find bugs in LapTopHack which turned out to be PPK features and not related to LapTopHack at all.
NOTE. HandEra and LapTopHack are mostly but not 100% compatible. This should not be shocking news since both do a variety of tricks to accomplish their tasks, and some of these tricks may conflict each other. Nevertheless, a number of HandEra owners are more than happy LapTopHacker, and I am not aware of any major problems.
NOTE. BackupBuddyVFS exhibited some odd behavior when LapTopHack was installed. PeterW and I spent countless hours trying to figure out what was going on. I came to the conclusion that, although I couldn't prove that LapTopHack was innocent, there was no way I could see how LapTopHack was involved in this BackupBuddyVFS problem. As it turns out, BackupBuddyVFS 1.1 no longer show this odd behavior. I guess this means that LapTopHack was not guilty after all. I very much appreciate PeterW's help in resolving this issue, and his courageous and strong public defense of LapTopHack which, in retrospect, turned out to be fully justified. Although initially Blue Nomad's FAQ mentioned LapTopHack as a potential cause of the problem, eventually they realized that this was not the case, and when I checked on September 10, 2001, the reference to LapTopHack was already removed. I also appreciate that the makers of BackupBuddyVFS [Blue Nomad] offered me to test a pre-release version of BackupBuddyVFS.
NOTE. One user, DirkS, reported that Clipper disables LapTopHack. Since Clipper is an OS patcher application which is not regulated by HackMaster, and since I heard about a few other Clipper related problems independently of LapTopHack, I recommend that if you have such a problem, then please report it to the Clipper people at Stand Alone. I know them, and I can assure you that they are good guys, and that they will do their best to help you.
NOTE. DALauncher's developer and I discovered the same trick. Namely, one can kidnap [monopolize] portions of the Graffiti area without affecting the operation of the SilkSCreen buttons. Alas, since we both use the same trick, DALauncher and LapTopHack have a slight conflict. I resolved this problem by allowing DALauncher to use the "Left of Home icon" [sic, although "i" should be upper cased] tap point [see DALauncher's preference-type panel], and the rest of the digitizer's left and right borders are used by LapTopHack.
NOTE. LapTopHack was found to misbehave in DateBk3 [up-to version 3.0u] but I built a kludge into LapTopHack which alleviated the problem. As soon as DateBk3 is updated, I may remove this kludge from LapTopHack. LapTopHack works perfectly with DateBk4.
NOTE. pInfoTool's RAM/ROM info was found to misbehave on some but not all Palms using JackFlash and Palm OS 3.5. My advice is that, if you use JackFlash, then please do not tap on RAM/ROM display since it may [or may not] hang your Palm. Thanks, Tammy, Nick, and Fred, [in chronological order], for reporting the problem.
NOTE. Monika reported exactly the same problem even though she uses FlashPro and not JackFlash. However, she was using some kind of a hacked ROM [she likes to test dangerous waters and is one of my best bug finders].
NOTE. If you happen to use Textware Solutions' FitalyStamp [or Fitaly], then I recommend that you activate LapTopHack first, and then FitalyStamp [Fitaly] in HackMaster, that is, the checked FitalyStamp should be listed above the checked LapTopHack. This way some of the Graffiti area hot spots and undocumented features of LapTopHack will not be preempted by FitalyStamp [Fitaly]. Needless to say, that you need to do this re-ordering after every soft reset of your Palm since the current version of HackMaster [0.90 and 0.91] does not keep track of the order of HackMaster extensions and it randomly re-orders them after each soft reset.
NOTE. If you use TealMaster, then please set LapTopHack's priority to 2 [two], and FitalyStamp [Fitaly] to priority 1 [one]. Then set every other HackMaster extension's priority to a higher number. Yes, this is the correct procedure despite what you may have read about TealMaster's priorities in the TealMaster manual or in the TealMaster FAQ such as this.
EXPLANATION. Activating LapTopHack first and then FitalyStamp [Fitaly] in HackMaster or giving a higher priority number to LapTopHack than to FitalyStamp [Fitaly] means that FitalyStamp [Fitaly] gets a higher preferential treatment by the HackMaster extension manager application and LapTopHack gets a lower preference. However, both FitalyStamp [Fitaly] and LapTopHack were coded in such a way that, in a very counter-intuitive manner, the higher priority HackMaster extension voluntarily gives up the priority to the lower priority HackMaster extension [a chaining effect]. Hence, despite FitalyStamp [Fitaly] enjoying a higher priority, LapTopHack gets processed first. If you think that this is confusing, don't despair. It took me days to understand this, and I am grateful to the makers of TealMaster who explained this to me.
NOTE. As Henk pointed out, Fitaly and FitalyStamp have a "slide" mode which may result in some unexpected behavior, since instead of entering a letter, say, "A", sliding enters "a" first, then deletes it, and then enters "A". Hence, please read the following advice, contributed by JohnH, on using these "slides" with LapTopHack and pedit.
In addition to the regular "slides", Fitaly and FitalyStamp users can also assign text strings of up to 25 characters to each letter of the alphabet through a "Custom Left Slide" feature. This is perfect for starting pScripts or doing other actions in LapTopHack and pedit, if the first character of the assigned string is the appropriate "ESC" character.
Note however that by default, the lower case letter character itself is immediately sent to the current application at the pen-down motion. If that pen-down motion is turned into a slide (even a slide to simply capitalize the letter), then the lower case letter is quickly erased and replaced by the "correct" one(s). Unfortunately, if the current application can respond to a single character (like LapTopHack and pedit do in certain cases), Fitaly cannot always retract it by deleting. The result is unexpected behavior.
The solution is to use Fitaly or FitalyStamp's Key Options menu to "Set letters at pen up". That way, nothing is sent to the application until the slide is done, at which time the correct character(s) are sent. According to the Fitaly manual, the "Set letters at pen up" option may slow Fitaly or FitalyStamp down. However, this has not been observed in actual usage.
NOTE. JohnH and TonyA suggested that if you use FitalyStamp in conjunction with LapTopHack, then make sure (no pun intended) not to set the "sure mode" (accessible via FitalyStamp's "i" => "Key options..." => "Set sure mode | set normal mode" toggle). When the "sure mode" is on, it seems to interfere with LapTopHack's control activation mechanism.
NOTE. Franklin Reader was found to cause a crash if LapTopHack is active. Please blame Franklin Reader and blame it loud and clear. In fact, you should contact the makers of FranklinReader and tell them to check out this which clearly explains that resource IDs 10000 through 32767 are reserved for system use. Thanks, JohnL, for reporting the problem.
NOTE. Franklin Covey's "Daily Record Of Events" also crashed while using LapTopHack's pToDoTool feature with current text selection. Please see my note above. It was frustrating and sad to watch "Daily Record Of Events" crash POSE [the PalmOS Emulator] five times every time it was started up. However, the "ToDo" crash itself was entirely my fault, and it was fixed as of version 5.70. Thanks, LarryC, for reporting the problem.
NOTE. LapTopHack's our ctrl activator and objectRotator were found to misbehave in HanDBase's EditRecord form, and, therefore, I disabled them in that particular form of HanDBase. However, starting with of version 5.70, I completely rewrote our ctrl activator, and the new version works fine with HanDBase. Thanks, Henk-Jan, for reporting the problem, and for your dedicated bug hunting and beta testing.
NOTE. LapTopHack was found to misbehave in IntelligentFind, and, therefore, I disabled it in IntelligentFind. Thanks, Jeffrey, for reporting the problem.
NOTE. Jeffrey told me on January 11, 2001, that IntelligentFind 2.1b3 no longer causes problems for LapTopHack so that, starting with version 2.70b, I re-enabled LapTopHack again in IntelligentFind.
NOTE. As of version 5.998, both LapTopHack and listNavigatorHack work with McPhling as long as you don't try to navigate in McPhling's popup list. If you do, and if your McPhling's version number is 3.01 or less, then you will end up with a crash. Prior to version 5.998 you could have experienced crashes even if you just tapped one of the SilkScreen buttons while McPhling was in action. I did a temporary fix which eliminates the crash in the latter case. However, the bug was in McPhling which I communicated to Mike McCollister, and I am happy to report that Mike did fix the problem in McPhling 3.02. It was a pleasure for me to work with Mike.
NOTE. MyBible's primary form does not fully co-operate with our ctrl activator since MyBible uses gadgets instead of triggers to pop lists up. There is nothing illegitimate about it, and MyBible doesn't violate any Palm user-interface rules. Nevertheless, if they changed their interface a little, say by epsilon, then this problem would be eliminated. Thanks, Michael, for reporting the problem.
NOTE. If you use peditHack, [p]editPad, magiPad, or scriptPad in text fields which have a dynamic size [that is, the height of the field expands as characters are entered into the field and contracts as characters are deleted from the field], then you may end up with some display problems after returning to your original text field. Alas, this is related to a Palm OS bug which appears even in Palm's built-in applications whether or not you have LapTopHack installed. My verdict is that Palm is to blame and LapTopHack is innocent.
EXAMPLE. Whether or not you have LapTopHack installed, go to Palm's built-in DateBook, and click on an blank time slot to start an appointment. Enter the number "1" into the text field. Then bring up the built-in virtual keyboard and continue entering
ENTER 2 ENTER 3
Now select all text and quit the virtual keyboard by tapping the "Done" button. Isn't it weird that you see a blinking cursor and some text selected at the same time?
EXAMPLE. If you use, for instance, KeyBoardHack, then you will see that it suffers from the same problem.
NOTE. LapTopHack's FIND was found to crash in Secret!, and, therefore, I disabled LapTopHack in Secret!. If I may say so, examining the insides of Secret! made me sick. I never seen such a sloppily constructed piece of software. If you don't believe me, use RsrcEdit to analyze the "tFRMs" Secret!. Hopefully, by the time you read this, the Secret! guys will have cleaned up their act, since they were told of of this conflict and of my opinion way back in the second millennium. Thanks, Chris, for reporting the problem.
WARNING. As the most recent POSE reveals, RsrcEdit 1.017b is full of memory leaks [bugs] which may cause serious problems. Hence, it is prudent to use utmost care when playing with RsrcEdit.
NOTE. One user, Mark, reported a slight conflict between LapTopHack and Swipe! since they both use similar pen strokes. However, you can eliminate this conflict by setting the proper preferences in LapTopHack.
NOTE. One user, Michael, reported some screen redraw problems when using TealEcho. However, neither he nor I was able to connect the problem to LapTopHack. In fact, I was even unable to reproduce the problem, and subsequent attempts by Michael also failed to exhibit the problem.
NOTE. The "U" [Undo] button may not always work in peditHack, [p]editPad, magiPad, and scriptPad. Please don't blame LapTopHack for it. MagicText exhibits the same problem. It seems that it works on certain Palms and it doesn't on others. It appears that this may be related to your OS and not to your hardware. My conjecture is that, starting with OS 3.5, Palm took a different approach to implementing "undo" and it only works now if it is performed right after the text editorial operation.
NOTE. If both LapTopHack and VirtualKB are installed and you bring up Palm's built-in virtual KeyBoard, then you may end up with a crash. My advice is that you complain as loud and as clear to the VirtualKB guys as you can. VirtualKB violated a basic rule of the Palm programming guidelines, and now you ended up paying the dear consequences. There is an excellent chance that by the time you read this, the VirtualKB guys have fixed the problem since it was conveyed to them before the end of the second millennium. Thanks, Monika and Bill, for reporting the problem. As Chad told me on April 6, 2001, the problem still persists in version 2.0b. Since LapTopHack 6.00+ eliminated certain features, it is possible that this problem is no longer relevant.
Homework. What is a "kludge"?
It is my understanding that the latest versions of POSE, effective with perhaps version 3.2, limit the size of the ClipBoard to a maximum of 1000 characters. This limit is hardcoded into POSE and cannot be changed. Therefore, you should never ever use POSE for serious work with either LapTopHack or pedit since POSE may truncate your text without any warning.
It is perfectly all right to test LapTopHack and pedit with POSE but please do not perform text related tasks with your essential data.
NOTE. As of version 5.73, I introduced a number of changes in LapTopHack in order to fix this problem, or at least to minimize its effects.
For instance, if LapTopHack sees that it is running on POSE, then it tries to keep the size of the ClipBoard to 1000 no matter how you set that value in LapTopHack's preferences.
In addition, a number of operations which used to be done via the ClipBoard have been replaced by other techniques. These operations include the various copying and pasting jobs when switching from one peditHack, [p]editPad, magiPad, or scriptPad to another one, or if quitting one of them back to your original text.
If you find any other conflicts between POSE and LapTopHack or pedit, or if you think that I may have introduced new bugs while trying to fix the above problems, then please let me know.
You can download LapTopHack here.
Although this manual is included in the LapTopHack.zip package, you can also access LapTopHack_man.html directly.
A LapTopHacker is a person who uses a legitimate copy of LapTopHack. A peditor is defined analogously.
In what follows, a "Palm" or a "Palm handheld device" refers to a PDA using the Palm Operating System [Palm OS]. This includes [but is not limited to] PDAs made by Palm itself, by HandEra [aka TRG], by HandSpring, and by Sony.
A Palmer is a person who uses a Palm handheld device.
NOTE. I was asked many times for advice on buying Palms. My pet response is "buy early and buy often". I refuse to endorse any Palm over any other Palm since I know thousands of happy [and unhappy] Palmers with all kinds of Palms. In addition, I am a down-to-earth guy who prefers functionality as opposed to cuteness. In particular, this explains why none of my Palms have a color display [as of August 23, 2001] and why I have several times more TRGPro's than Palm Vx's [my two favorites]. Yes, I do own quite a few Palms.
NOTE. However, Please keep in mind that all Palms break sooner or later. Hence the quality and speed of technical support may be the most important issue to consider when purchasing a Palm.
I hesitate to tell you the meaning of the abbreviation "PDA", since if I told you that it stands for "Personal Digital Assistant", then, as most Palmers and LapTopHackers will heartily agree with me, I would have grossly understated the facts. A Palm PDA "Practically Duplicates the Almighty".
In case you didn't know, this picture represents a form. Some people prefer to call it "dialog" or "window". If something like this is visible on the screen of your Palm, or was visible just prior to invoking some LapTopHack form, then I refer to it as the current form.

It illustrates what a button, push button, check box, selector trigger, popup trigger, popup list, and list is.
LapTopHack uses the concept of default controls which is a somewhat vaguely defined but still very useful notion.
QUESTION. Why to have default controls?
ANSWER. Because LapTopHack provides a number of direct mechanisms to activate default controls.
Basically, if your current form contains only one of the above control structures, then they are, by definition, the default.
For instance, if your form has one single button, then it is the default button by definition.
On the other hand, if your form has more than one of a given type of control structure, then the default one is the one which has the smaller "objIndex". The word "objIndex" means nothing to regular folks, but every Palm programmer knows what it refers to. It is the maker of your Palm application or HackMaster extension who decides the order of control structures, and, therefore, is responsible for picking the default control.
NOTE. There are some exceptions to these rules such as default controls need to have textual labels [with the exception of check boxes].
In particular, if you find that your application or HackMaster extension does not order the control structures in a logical order, then it is your job to complain loud and clear to the maker of your application or HackMaster extension. Please explain the significance of the correct ordering. If you are lucky, she may redesign the form in a more natural way.
EXAMPLE. If it turns out that your form has a "Done" and a "What's up doc?" button, then it seems logical, at least to me, that the former should be the default button.
A default button is usually, but not always, surrounded by a bold frame.
Default popup triggers and a default selector triggers can be recognized by their bold faced labels.
I decided not to give visual marks to default check boxes and default push buttons. Nevertheless, they do exist, and you can easily find out which ones are the default ones by using one of the default control activation mechanisms such as "ESC 1", "ESC 2", ... , "ESC 5".
NOTE. If you choose not to mark default buttons and/or default triggers visually, then they still exist except that you won't see [and know] which ones they are.
When I talk about controls or control structures, I am referring to buttons, push buttons, check boxes, selector triggers, and popup triggers.
The difference between a popup list and a regular list is that the former goes away once you click anywhere on the screen of your Palm.
An example of a selector trigger can be found in the "General" panel of Palm's built-in "Prefs" application.
Do you see the lower cased "i" in the top right of this picture below?

This "i" is called the "i tips" button associated with the above form. Tapping the "i Tips" button usually brings up some kind of help regarding your current form.
When I tell you to type ENTER or CARRIAGE-RETURN, then I am referring to the RETURN key on your keyboard. You can also enter ENTER [sorry] by doing a swiper job in the Graffiti area across the diagonal from NE to SW [just like "/" starting from the top].
In what follows, I use the word modal differently than the official Palm lingo. According to Palm, modal forms ignore pen events outside their boundaries. In this sense, LapTopHack "de-modals" almost all forms, since it makes almost all forms react to such events.
When I say that a form is modal, then I mean that it needs to kill itself before it can perform the action it was instructed to do, and then it needs to be invoked again if further action is required. For instance, in this sense, Palm's built-in virtual keyboard is non-modal since you can edit the text while the keyboard is on the screen, whereas almost all warning dialogs are modal.
In what follows, the expression Graffiti area refers to everything what you see under the screen, including the four SilkScreen buttons on the two sides and the large rectangle used for Graffiti input.
In what follows, the expression Graffiti pad below refers to the large rectangle used for Graffiti input.
In what follows, the expression digitizer refers to everything what is sensitive to the stylus touch, including the screen and the Graffiti area.
The venerable peditorial buttonShifts received a new interface in LapTopHack via buttonSlides.
I wish I could say that I am the inventor of this powerful idea, but, alas, I am not. In fact, I stole it from Jean Ichbiah of the ADA programming language fame [with his kind permission] who uses a similar but not identical concept in his Fitaly family of virtual keyboards.
buttonSlides are nothing but pen strokes generating a ctlExitEvent which is a rather rarely used event in the Palm universe.
In laymans terms, you create a buttonSlide by
EXAMPLE. The "S" button in peditHack, [p]editPad, magiPad, and scriptPad is slidable.
Once you mastered the concept of buttonSlides, the next step is to learn about directional buttonSlides, such as leftButtonSlides, rightButtonSlides, upButtonSlides, and downButtonSlides.
For instance, you create a leftButtonSlide by
EXAMPLE. The "&" button in the LapTopHack ESC form is up-slidable and down-slidable.
LapTopHack is meant to be used with Palm OS 4.xx or older, and it will not run on Palm OS 5.xx or newer.
NOTE. LapTopHack 7.00+ comes with some additional optional pModules such as pDateTool_LTH.prc, pInfoTool_LTH.prc, pSearchTool_LTH.prc, pTextEngine1_LTH.prc, and pToDoTool_LTH.prc which provide advanced features, and which can be installed via regular HotSyncing. These pModules do not require any special activation, they work transparently.
NOTE. If you have pToolSet installed, then you should not install these additional pModules, since they are already part of pToolSet. Just make sure that you always use the latest version of both LapTopHack and pToolSet.
WARNING. Some of the pModules such as pSearchTool_LTH and pToDoTool_LTH will not work well with pToolSet if your pToolSet is registered. In the latter case, you should always stick with the original pToolSet modules instead of LapTopHack's pModules.
NOTE. Use pToolSetZapper_LTH to delete unwanted pModules.
NOTE. Prior to version 7.00, some of LapTopHack's functions required that pedit be installed. As of version 7.00, this is no longer the case.
LapTopHack is a HackMaster extension. If you don't have it yet, then please get HackMaster or another Hack Manager first. I was told that both PalmGear and Handango keep a large number of Hack Managers in their current stock.
Then install both the Hack Manager and LapTopHack the usual way via a HotSync job. If you are not sure how to install Palm applications, please study the manual which came with your Palm.
NOTE. If you already have a Hack Manager and another LapTopHack on your Palm, then please go to your Hack Manager and disable your current LapTopHack by unchecking the box next to it prior to installing the newest version.
NOTE. If you forget to follow the above advice then upon installing LapTopHack, you will experience a innocent but guaranteed crash of your Palm.
NOTE. If you have LapTopHack 1.00 on your Palm, then please delete it from your Palm after you unchecked the box next to it in your Hack Manager prior to installing the current version of LapTopHack. If your old LapTopHack is at least 1.02, then there is no need to delete it since installing the current version will automatically delete the old one.
NOTE. Prior to version 7.00, LapTopHack had to be installed in the regular RAM since certain functions keept changing LapTopHack itself so that it had to remain writable all the time.
WARNING. If you use version 7.xx or newer of any of the pedits, LapTopHack, or pToolSet, then all your pedits, LapTopHack, and pToolSet must be 7.xx or newer since they are not compatible with version 6.xx or older.
In addition, since pedit, LapTopHack, and pToolSet constantly exchange information, it may be necessary that they be of the same version number.
NOTE. I suggest that you keep a backup copy of your peditDB.pdb which is somewhere in your HotSync backup directory on your desktop computer since you may need it in the highly unlikely event that you decide go back to versions 6.xx of pedit, pToolSet, and LapTopHack.

After you installed LapTopHack, don't forget to check the box next to LapTopHack in your Hack Manager. This will enable LapTopHack.
Next, tap on the "?" mark to the right from LapTopHack. This will bring up the About LapTopHack form. Now click on the "i" symbol which brings up the Help form.

Please read carefully these tips. They provide a short onboard introduction to LapTopHack. Among others, you will find out how to obtain contextual help in LapTopHack no matter what you are doing with your Palm Powered Handheld device.
While in your Hack Manager, please set LapTopHack's preferences by tapping on the "+" sign next to the "?" mark to the right from LapTopHack.
|
|
|
If you have already registered LapTopHack, then you should enter the registration information in the appropriate places. Then hit the "OK" button. This will free you from the inevitable nag screens which will eventually remind all currently unregistered users to become legitimate LapTopHackers.
NOTE. A very few users reported to me that although they entered the registration information, LapTopHack still kept insisting that they were unregistered LapTopHackers. As it turns out, the primary reason for this was that either the entered text was incorrect or else they forgot to hit the "OK" button. However, in a very small number of cases neither the user nor I were able to determine the cause of this misbehavior. In the latter instance I told the unfortunate LapTopHackers (i) to install RsrcEdit, (ii) to open up the Saved Preferences database, (iii) to delete all the records named pnLT which are LapTopHacker's preferences, and then (iv) to re-enter the registration information. This advice always worked. An alternate solution is to delete LapTopHack and to reinstall it. The latter action automatically deletes the preferences.
WARNING. As the most recent POSE reveals, RsrcEdit 1.017b is full of memory leaks [bugs] which may cause serious problems. Hence, it is prudent to use utmost care when playing with RsrcEdit.
In case you need help in deciding how to set the preferences in LapTopHack, just click on the "i" symbol which brings up the Help form which contains this information.
In fact, I should perhaps be more direct and tell you that you must read this when deciding the appropriate preference settings.
NOTE. If you are in a hurry and you install a pre-2.81b version of LapTopHack but you don't set or verify the preferences, then LapTopHack may end up nagging you prematurely to register it. The solution is simple. Just install the latest LapTopHack.
In particular, ...
Palm's built-in text-copy and text-cut to the ClipBoard can contain no more than 1,000 characters.
LapTopHack allows you to extend these limits by using the popup list next to the The ClipBoard size... label.
In most cases, unless you have very little free RAM, it is all right to pick the largest number which is equal to 32,768 [32K].
NOTE.
NOTE. If your application circumvents Palm's built-in text-copying and text-cutting functions, then please do not expect an extended ClipBoard from LapTopHack. Please contact the maker of your application and ask them if they use "FldCut ()" and "FldCopy ()". I heard that examples of such applications may include Eudora Internet Suite and WordSmith although I have no hard proof of this.
NOTE. The website for WordSmith has a page which notes why ClipBoard extenders may not work with WordSmith. Alas, their explanation is incorrect in case of LapTopHack although it may be still valid in all other cases. I pointed this out to the makers of WordSmith some time ago. Very unfortunately several LapTopHackers and peditors received the above explanation from the technical support department of WordSmith even though it is completely irrelevant.
TIP. If you want to use the contents of the ClipBoard which has WordSmith text pasted to it via peditHack, [p]editPad, magiPad, and scriptPad, then first quit WordSmith before you invoke them. It seems that the ClipBoard is non-standard while your are in WordSmith, but upon quitting it, the ClipBoard reverts to normal text. This is probably a WordSmith feature.
NOTE. Please keep in mind that in DOC editors and/or viewers, the current text field holds only a portion of the entire DOC file so that you will be unable to copy as much as you expect to copy. Please don't blame LapTopHack for this.
NOTE. For 7 bucks, ClipHack will also extend the ClipBoard of your Palm. However, it will also crash it on a regular basis if the OS is newer than 3.0 [this is a well documented fact].
In the original Palm environment, most text fields include a dotted underline [ruler] under each line of the text. If you check the no dotted rulers in text fields box, then LapTopHack removes those annoying rulers in multi-lined text fields. Unlike ClearHack which costs 5 bucks and is known to be defective, LapTopHack does this the right way.
NOTE. When I was a novice Palm programmer [that is, even more novice than right now], and I was working on pedit, some of the early peditors noticed that pedit had a slight conflict with ClearHack. It took me hard work to eliminate the conflict. Therefore, it gives me much pleasure that I was able to incorporate a non-defective version of ClearHack into LapTopHack, and that it took me only a few hours of work to figure out how to do it.
If dialogs such as this

bother you, then just check the no confirmation of can't undo box.
NOTE. If you are a LapTopHacker or peditor who is addicted to pScripting LapTopHack, pToolSet, and pedit, then you may want to activate this option.
NOTE. Please be aware that if you go for the no confirmation of can't undo option, then you will not be able to know which Palm text editing operations are undoable so that you need to be extra careful when editing text. It may be a good idea to use either LapTopHack's peditorial functions or pedit, since they both allow you to recover gracefully from unintended editorial fiascos.
If you check the no keyboard via Graffiti tap box, then you will not be able to activate Palm's built-in virtual KeyBoard by tapping on either of the alphabetic or numeric keyboard SilkScreen buttons, although you can still invoke the KeyBoard via the LapTopHack ESC form.
QUESTION. Why would I want to deactivate the SilkScreen alphabetic or numeric keyboard buttons?
ANSWER. Many Graffiti users, especially those working in dark, complained to me that they keep accidentally hitting those SilkScreen buttons, and, thereby, they keep unintentionally bringing up the virtual KeyBoard which can be a major distraction.
If you check the use Graffiti area hot spots box, then you activate the Graffiti area hot spots.
NOTE. If you choose not to mark default buttons and/or default triggers visually, then they still exist except that you won't see [and know] which ones are they.
You can try out LapTopHack for 45 days w/o any limitations. Once you reach the 45 day limit, LapTopHack will start to nag you to remind you of your duty to register it. The frequency of these naggings will increase as time goes on. However, LapTopHack remains fully functional despite the persistent nagging. At one point these naggings become quite a pain in the you-know-what. Hopefully, by then you will have registered LapTopHack so that the nags are history.
NOTE. If you are under the impression that LapTopHack nags you prematurely, then please read this.
I am told by an army of beta testers that this is a very generous policy, and not a single person decided against becoming a registered LapTopHacker [yet].
The current version of LapTopHack can be registered for US$14.00.
Occasionally you may get a discount if you register it via PaulComputing's website.
As I add more features to it, the registration fee may [will] increase. Once you registered LapTopHack, then most, but not necessarily all, future versions will be available to you free of charge. For practical purposes and for legal reasons, I reserve the right to change this policy [the latter happened when version 6.00 was released].
If you honestly cannot afford the registration fee but you must have my Palm products anyway, then please contact me for discount rates.
PayPal is the strongly preferred, easiest, and fastest way to register LapTopHack. Please register
at PayPal right now.
A working alternative is to mail a check for US$14.00 to Paul Nevai, 3346 Mansion Way, Columbus OH 43221-1573, USA. Please include your e-mail or your mailing address if you have no e-mail.
You can also register LapTophack at eSellerate: browse all, LapTopHack.
First, please read the section about troubleshooting.
Second, if the advice given in the section on troubleshooting did not solve your problem, then please contact me.
Please state clearly the version number and compilation time'n'date of your LapTopHack, the exact name of your Palm hardware, the version number of you Palm operating system, and please describe the problem you have experienced.
NOTE. If you are in the LapTopHack ESC form, then either entering "V" [upper case "V"] or using the Version Info..." command in the Util" menu gives you the version number and the compilation time'n'date of LapTopHack [see here for details].
If you live in North America, please provide your phone number, your time zone, and the times which are convenient for you.
Please note that you can also obtain help by contacting the peditors Forum. In fact, as it turns out, the collective mind of all peditors works better than mine alone. Therefore, in most if not all cases, it makes sense to write to the peditors Forum prior to contacting me.
On the advice of JohnH, I recommend that you use the following template when contacting me.
DO: Your Name (yourname@yourisp.com) year/month/day [such as 2001/09/11] Short description of the problem such as "I start up peditPro and my Palm crashes." Application: [LapTopHack | peditPro | pedit | pedit32 | peditLight] Version: [such as 5.73] Compilation time'n'date: [11:01:43 EST on Jan 19 2002] Handheld hardware: [such as TRGPro] PalmOS version: [such as 3.5.1] Other hardware (keyboard, expansion memory, etc.): Free memory: [such as 2Mb] Other HackMaster extensions active: [such as FitalyStamp] Other OS patching applications: [such as QuickBits] Steps to reproduce: Other comments: [such as "I love your stuff"]
First, please read the section about compatibility issues.
Second, turn off all your other HackMaster extensions and see if the problem goes away. If it did, then turn on your HackMaster extensions one by one and isolate the problem. Once you have identified the guilty party, please contact their technical support and explain the problem. I know from personal experience that most Palm developers provide superior support.
However, there are some exceptions. If you happen to experience the latter, then please be persistent. It may help your case if you send a copy of your correspondence to the peditors Forum and to some of the Palm related newsgroups such as comp.sys.palmtops.pilot and alt.comp.sys.palmtops.pilot.
You may also try Calvin's PGHQ FAQ. Much of my Palm knowledge comes from studying this FAQ database.
Next, check out the peditors Forum or write to peditors Forum since, as I mentioned it already, the collective mind of all peditors works better than mine alone.
If the problem still persists then contact LapTopHack's Technical Support.
LapTopHack
The escape character ESC [its default value is the backquote character "`"] allows you to initiate certain actions such as activating buttons, push buttons, and check boxes and selecting certain items on the screen from external keyboards and/or via Graffiti input.
The default ESC key can be changed in the LapTopHack Preferences form.
It is very important to understand that in LapTopHack's terminology ESC is NOT a hard key on your keyboard such as one labelled with Ctrl, or Alt, or Cmd, or whatever, but it is an ordinary key playing the role of ESC.
The way it works is as follows. First you hit ESC and then the required letter. Do it consecutively and not simultaneously . Of course, this is a very familiar concept to pedit, emacs, vi, and joe users, and to others as well.
EXAMPLE. "ESC C" ["`." if you have not defined your own ESC key] activates the "Cancel" button if you are in superFinderHack.
EXAMPLE. "ESC d" ["`d" if you have not defined your own ESC key] invokes date & info [aka pInfoTool, see here].
You will notice that there is a visual confirmation when you use ESC to activate a button, push button, or checkbox. Isn't that cool?
To use ESC ["`" if you have not defined your own ESC key] itself as a regular character in a text field, just enter ESC twice as in ESC ESC ["``"].
Please keep in mind that LapTopHack's commands are, at least in principle, case sensitive. Hence, generally speaking, "ESC a" and "ESC A" are different commands. However, as you will see there are very many exceptions to this rule.
NOTE. You can enter "`" via Graffiti by first tapping, and then by swiping from the bottom-right to the top-left and back to the bottom-right in the left side of the Graffiti input area.
NOTE. I like to use \ [back-slash] as the ESC key.
NOTE. On GoType! and on almost every other standard keyboard, "`" is an ideal choice for ESC. On the Palm Portable KeyBoard I recommend picking "\" [back-slash] as the ESC key.
NOTE. As BruceM correctly pointed it out, if you ever intend to use pScripting, then stay away from the forward slash "/" as an ESC key candidate.
Since pedit is also using the same escape key mechanism as LapTopHack, you can either redefine "ESC" in pedit or LapTopHack from "`" to something else, or just follow this advice and use "ESC ESC" ["``"] instead of "ESC" ["`"] whenever an escape key is called for.
EXAMPLE. If LapTopHack is installed, then "ESC ESC j" ["``j"] does a jumper job in pedit's EditView.
NOTE. LapTopHack does no more and no less than what is described in this section. In particular, LapTopHack does not have any effect on buttons and other controls unless it is explicitly described here.
As you will see, there will be rather few instances when LapTopHack fails. As of version 2.00, an example of LapTopHack's failure to help is related to [non popped-up] lists and tables and to selecting items from a such lists and tables. Of course, future versions of LapTopHack may address such issues.
NOTE. If you want to use LapTopHack with an external keyboard, then you need to have the driver for that particular keyboard installed and activated on your Palm Powered device since LapTopHack is a supplement to and not a substitute for the keyboard drivers.
NOTE. LapTopHack also works perfectly in conjunction with Graffiti and with many of the 3rd party virtual keyboard substitutes such as Fitaly and FitalyStamp.
LapTopHack provides so many features that even singling out a few of them is a highly non-trivial job. Please see the Abstract for an attempt to highlight some of these features.
When you enter the "ESC" key "`" or "back-quote" if you have not defined your own ESC key], LapTopHack takes you to the LapTopHack ESC form.
|
|
|
|
|
NOTE. As of version 5.6x, the LapTopHack ESC form is undergoing a major upgrade job so that the documentation below may not be 100% accurate. Please bear with me. I promise that you will love the final product [well, "final" in the well-known LapTopHackorial sense only].
You can think of this form as the cockpit of your LapTopHack. Most but not all LapTopHack operations originate from this form.
If you feel somewhat overwhelmed by the sight of this form, just hit the "i" symbol in the upper rigth corner of the screen or enter "h" which brings up the Help form which tells you this.
In particular, you will find out that a pen stroke from the very bottom right corner of the ENTIRE glass or plastic screen area to the very top left corner of the screen also brings up this very same LapTopHack ESC form.
You can also use Graffiti area hot spots to bring up the LapTopHack ESC form.
NOTE. Even though I use rectangularly framed buttons in LapTopHack ESC, none of them are push buttons. As all peditors know, I am a rectangular button aficionado who loves not only their esthetic appeal, but also recognizes that they allow better utilization of the valuable Palm screen real-estate.
The second generation LapTopHack ESC form has panels [pages] and menus. The former can be brought up using the following rules.
NOTE. If you change modes [see normalMode, advancedMode, and expertMode], then you will always restart with the default panel which is #0 [zero].
NOTE. The button labels may seem to start with odd letters. They are there for keyboard support. Each and every button can be activated by entering the first case-significant letter of its label.
NOTE. Some buttons have also buttonSlided actions associated with them.
The top four buttons in the LapTopHack ESC form's panel #0 activate the corresponding SilkScreen buttons.
NOTE. Yes, you guessed it right, j menu stands for "menu" but it is activated by entering "j" [lower case "j"].
NOTE. Use "J" [upper case "J"] to activate the LapTopHack ESC form's own menus.

NOTE. The menus are pretty much self-explanatory. Please note that some of the commands in the "App" menu try to find the best possible program. For instance, pressing "5: Edit" or typing "5" and "ENTER" brings up your particular pedit if it is installed, and MemoPad otherwise. These menus are fully supported by the Menu Activation Mechanism. This feature is still under construction.
If you switch to panel #1, then the apps button is replaced by the DBs button which which gives you information about the currently open databases on your Palm. This information is useful for experts but is pretty much useless for ordinary mortals.
If you switch to panel #1, then the menu button is replaced by the mem button which gives you information on your Palm's memory.
If you switch to panel #1, then the find button is replaced by the ftr # button which gives you information on the currently used feature numbers in your Palm. This information is useful for experts but is pretty much useless for ordinary mortals.
If you switch to panel #1, then the calc button is replaced by the coord button which activates the pInfoTool's coordinator.
NOTE. A cousin of the coordinator is the "C" command in the pPointer [the Palm mouse].
NOTE. You will find the coordinator and its pPointer cousin especially useful when designing pScripts.
HINT. Use the coordinator to diagnose dead spots on the screen and Graffiti area of your Palm. If you tap and the coordinates do not show up, then it is time for you to call your particular Palm's technical support and to ask for a fixer upper job [hopefully, under warranty].
In the next row the left and right buttons activate the built-in virtual keyboard in alphabetic and numerical mode, respectively.
Of course, these two buttons are context sensitive so that you can only activate them when it is appropriate. For instance, if there is no editable text field in your current form, then you can't bring up the built-in virtual keyboard.
The light button tuggles the "BackLight" on and off as long as your particular Palm supports this feature.
The print button brings up printHack as long as you have it installed on your Palm. You can use printHack to print either the current text, or the current text selection, or the current textual contents of the ClipBoard.
NOTE. printHack requires that you have either Stevens Creek Software's PalmPrint, or TealPoint's TealPrint installed in your Palm.
If you switch to panel #1, then the four buttons labeled kScript, lScript [lower case "ell"], tScript, and nScript perform the pScripts whose pScriptNameIdentifiers are "kScript", "lScript" [ell], "tScript", and "nScript", respectively.
The date & info button activates pInfoTool.
The calendar button allows you to view Palm's built-in calendar. As an extra bonus, if you pick a date then that date will be copied to the ClipBoard and/or pasted into your currently active editable text field in the form of
YYYY/MM/DD [such as "1976/07/04"]
If you use the "Today" button in the calendar, then not only today's date will be recorded but a complete date'n'time stamp is copied and/or pasted in form of
YYYY/MM/DD HH:MM:SS [such as "1976/07/04 10:09:30"]
NOTE. The actual formatting of the date'n'time stamp uses the preferences set in the "Formats" Preference Panel.
NOTE. While you are in the calendar, the title of the dialog tells you whether the date'n'time stamp is going to end up copied to the ClipBoard or pasted into your currently active editable text field.
The DateTool button or "D" [upper case "D"], brings up pDateTool.
The Phone button or "P" [upper case "P"], brings up the phone number lookup command as long as you have a currently focused and editable text field.
The ToDoTool button or "T" [upper case "T"], brings up pToDoTool.
The btnsCust button brings up the customizable pScriptButtons.
On panel #1 btnsCust turns into BtnsCust with upper case "B" which allows you to jump to any page in the customizable pScriptButtons. Namely, use
Here "x" [0 < x < 1000] is a number you enter into the text field at the bottom right corner of the screen.
The dual duty power button turns your Palm off when your Palm is on, and turns it on otherwise.
NOTE. The power button may not work on all Palm Powered Handheld devices. I was told that one such example is the Visor.
In panel #1, the reset button soft-resets your Palm which is the same as if you reset your Palm using a paper clip or equivalent. This is considered a safe procedure which should not harm your data at all [as opposed to a hard-reset which wipes out the contents of all your RAM].
The three buttons between the btnsCust button and the power buttona manage the sound level of your Palm Powered Handheld device.
NOTE. If you happen to be in the "General" panel of Palm's built-in "Prefs" [Preferences] application, then it may not be a good idea to use LapTopHack to set the sound level since it may not work as you would expect it. I hope you won't mind if I don't go into a lengthy technical discussion why it may not work. If you are a Palm expert, then I am sure the explanation is obvious to you.
The copy txt [copy text] button is a double duty button in a sense. If you switch to panel #1, then the qopy txt button becomes the copy all button.
If you tap it or activate it with a lower case "q", and if you have a currently focused text field in your form, then it copies the currently selected text, if any, to the ClipBoard. This works even if the text field is not editable such as in DOC files.
If activate it by buttonSliding it or with an upper case "Q", or you tap it when it is called copy all, and if you have a currently focused text field in your form, then it copies the entire text, if any, to the ClipBoard. Again, this works even if the text field is not editable such as in DOC files.
NOTE. Please keep in mind that in DOC editors and/or viewers, the current text field holds only a portion of the entire DOC file.
If your current form has an "i-Tips" button, then the i-Tips button activates it. This usually brings up some kind of help regarding your current form.
On the other hand, if you want help in this LapTopHack ESC form, then either hit the "i-Tips" button in the upper right corner of the screen, or enter "h" to bring up this onboard help.
If your Palm OS is at least 3.3, then the paste [paste text] button is a double duty button too. If you switch to panel #1, then the paste button becomes the append button.
If you tap it or activate it with a lower case "x", and if you have a currently focused editable text field in your form, then it pastes the contents of the ClipBoard into your current text in the usual way, that is, it either replaces the current text selection or inserts it at the current cursor location.
If your Palm OS is at least 3.3, and if you activate it by upButtonSliding it, or with an upper case "X", or you tap it when it is called append, and if you have a currently focused text field in your form, then it appends the currently selected text, if any, to the text ClipBoard. This works even if the text field is not editable such as in DOC files.
NOTE. Of course, you can perform the above pasting job in a myriad ways, and you don't need the power of LapTopHack to do it. On the other hand, on many occasions you may not be able to copy from your current text in any other way but the LapTopHack way.
NOTE. If your Palm OS is at most 3.2, then you cannot append to the ClipBoard.
NOTE. Of course, appending to the text ClipBoard is just that. Nothing more and nothing less. Do not expect the old text and the new text to be separated in any meaningful way.
The peditHack button activates peditHack, whereas the editPad and magiPad buttons activates [p]editPad, and magiPad, respectively. If you are a peditor, then these three features are certainly going to be some of the most popular components of your LapTopHack.
Typing "M" [upper case "M"] or upButtonSliding the magiPad button brings up a shrunken version of magiPad whose position can be controlled by tapping outside magiPad on your Palm's screen.
downButtonSliding the peditHack button brings up pToolSet's pTextTool, if installed [it does not need to be turned on via pToolOn].
downButtonSliding the editPad button brings up pToolSet's pEditTool, if installed [it does not need to be turned on via pToolOn].
downButtonSliding the magiPad button brings up pToolSet's pMagiPad, if installed, which is a more sophisticated version of LapTopHack's magiPad.
Typing "s" [lower case "s"] or using the scriptPad button in panel #1, takes you to scriptPad.
Typing "S" [upper case "S"] or upButtonSliding the scriptPad button brings up a shrunken version of scriptPad whose position can be controlled by tapping outside scriptPad on your Palm's screen.
downButtonSliding the scriptPad button brings up pToolSet's pScriptPad, if installed, which is a more sophisticated version of LapTopHack's scriptPad.
The six buttons in a row are some of the most essential components of LapTopHack.
Please see here for all the subtle details of the control activation mechanism which can be accessed with the our ctrl activator, "R", "1", "2", and "3" buttons, and by the keys "4", "5", "!", "@", "#", "$", and "%".
Typing SPACE", or entering any "arrow" [left, right, up, or down], or upButtonSliding the our ctrl activator button, or tapping the Our pointer button [panel #1] brings up the pPointer [the Palm mouse].
Typing "G" or downButtonSliding the our ctrl activator button brings up the Graffiti area pPointer [the Palm mouse].
The "r" button plays a triple duty role.
If the "r" button is invoked either by upButtonSliding it or by entering "R" [upper case "R"], and if you current form has a table in it which has editable text fields, then this command allows you to walk through the text fields one by one and allows you to place the cursor in each of them. In other words, this is the "tableRotator".
If the "r" button is invoked either by downButtonSliding it or by entering "F" [upper case "F"], and if you current form has non-table style text fields, then this command allows you to walk through the text fields one by one and allows you to place the cursor in each of them. In other words, this is the "fieldRotator".
NOTE. There are many examples of application where these commands are useful. Palm's built-in DateBook is probably the best known among them.
Please see here regarding the "&" button which is the gateway to pScripting your Palm by bringing up the pScript entry dialog.
NOTE. If you type "Z" [upper case "Z"] instead of "&", then first it turns on the pScriptorial globalMacroMode, and then it brings up a silent version of the pScript entry dialog.
The "ESC = \" button allows you to use your ESC character as a regular character. For instance, if you defined "\" as the ESC character, then this button places "\" into the currently focused text field in your current form [if such an object exists].
NOTE. Did you notice that the "ESC = \" button is surrounded by a bold frame? The bold frame means that it is the default button in the LapTopHack ESC form so that it can be activated by ENTER.
NOTE. If you brought up the LapTopHack ESC form with a tap or a stylus stroke instead of typing the ESC character, then the "ESC = \" button acts as the .Cancel button.
NOTE. Sometimes you will see that hitting the "ESC = \" button brings up the LapTopHack ESC form one more time. There is a technical explanation for that which boils down to the fact the given application reposts certain events and the Palm OS has no way of determining what your true intentions were. If this happens, just use the "ESC = \" button one more time. Please view this as a "feature" and not as a bug. This happens, for instance, if you are in MemoPad's "ListView" [table of contents].
upButtonSliding the "ESC = \" button brings up pToolSet's pMasterTool as long as your Palm's OS is at least 3.1. However, pToolSet itself will be operational via pMasterTool only if your Palm's OS is at least 3.5 and you have turned it on via pToolOn.
Use the .Cancel button to quit the LapTopHack ESC form without taking any further action.
The "U" button sets the "auto power off" timer to the number of seconds in the field next to the "U" button as long as the field and its contents satisfy the following conditions.
NOTE. Similarly to setting the sound level, if you happen to be in the "General" panel of Palm's built-in "Prefs" [Preferences] application, then it may not be a good idea to use LapTopHack to set the "auto power off" timer since it may not work as you would expect it.
NOTE. If you set the "auto power off" timer to a time which cannot be displayed in the "Auto-off after" popup trigger of the "General" panel of Palm's built-in "Prefs" [Preferences] application, then it will show the default value which, as of December 8, 2000, is 2 minutes.
NOTE. If you have a TRGPro, then you may notice that the value of the "auto power off" timer setting is not always preserved after system resets [including crashes]. The same was reported to me about one Visor and one Palm Vx. The latter was also doing this after HotSync jobs. Although I have no idea why this is happening, I don't think you should blame LapTopHack for it since exactly the same happens if you set the value of the timer with other 3rd party utilities. As a matter of fact, some of my fellow Palm developers think of this as a "feature" as opposed to a bug [don't ask me why]. However, newer Palm OSs no longer have this "feature".
The advancedMode and expertMode. If you are an expert LapTopHacker then you may prefer if the LapTopHack ESC form did not show up on your Palm's screen when entering it, and if it did its job silently. You can achieve this by entering either "A" [upper case "A"] or "E" [upper case "E"] while you are in the LapTopHack ESC form, or, in short, "ESC A" or "ESC E". This will take you to the advancedMode and expertMode, respectively. If you are in the advancedMode or expertMode, then you can return to the normalMode by entering the LapTopHack ESC form and typing "N" [upper case N], or, in short, "ESC N".
NOTE. There is absolutely no difference whatsoever between normalMode, advancedMode, and expertMode except that in the latter two you will not see the LapTopHack ESC form. Whether you see the LapTopHack ESC form or not, it functions exactly the same way. In particular, you can get out of it by typing "." [period]. Of course, if you are in the advancedMode or expertMode, then many of your LapTopHack operations will significantly accelerate since your Palm does not have to waste precious processor time on drawing various graphical user interfaces.
NOTE. The only difference between the advancedMode and expertMode is that in the former a small "ESC" reminder label shows up on your Palm's screen while you are in the LapTopHack ESC form whereas the latter is absolutely silent. Therefore, you may want to use the latter only if you are extremely efficient in LapTopHack. However, please read about the "/GZ", "/Gz", "/0x03" and "/0x04" pScriptorial globalMacroMode tokens since they also have almost the same effect as the expertMode.
NOTE. If you are outside the LapTopHack ESC form, then normalMode, advancedMode, expertMode, and globalMacroMode may have different effects on your LapTopHack operations. Please see here for an explanation of the effects of these various modes.
NOTE. If you are inside the LapTopHack ESC form, and you are in any mode different from normalMode, including globalMacroMode, then after a few seconds of inactivity you are automagically returned to normalMode so that you don't need to panic while trying to figure out whether you are in, say, expertMode or your Palm died. You can also use this trick to turn off the pScriptorial globalMacroMode.
NOTE. Before you start to complain about the steep learning curve of LapTopHack, please keep in mind that LapTopHack is fully functional even without using the myriad additional fancy-shmancy features.
As opposed to the keyboard drivers of Palm Portable KeyBoard [aka PPK or Stowaway or Targus] and GoType!, LapTopHack allows virtually every control structure [buttons, check boxes, and so forth] to be activated via external keyboards, Graffiti, or even via several 3rd party virtual keyboards.
In addition, as opposed to the above mentioned keyboard drivers, LapTopHack provides positive visual confirmation of every action taken on such controls.
The primary way of activating controls is via our ctrl activator which can be invoked by
"ESC o" = "ESC O" [Oh] = "ESC 0" [zero] = our ctrl activator
which brings up this form.

Once you brought up our ctrl activator, type the first few letters of the control you want to activate into the text field which currently displays !enter label here!. It is sufficient to type in those letters which uniquely identify your control.
Once you entered the partial name of the control you want to activate, just hit the ;Go button.
"ENTER" = ";" = the ";Go" button
NOTE. For no particular earth-shaking reason, I chose to allow a maximum of 8 [eight] letters to be processed by our ctrl activator. There will be very few instances when this creates a problem. Had I allowed more letters to be typed into the text field of our ctrl activator, this occasionally might have created a situation when not the entire text is visible [the screen real estate is in short supply].
Of course, you can always change your mind by issuing a "Cancel" order via
"," = the ",Cncl" button
You can get help with
":" = help
In particular, if some controls are obscured by the our ctrl activator form, then you can move it out of the way by using
"page down" = "down arrow" = move our ctrl activator downward
"page up" = "up arrow" = move our ctrl activator upward
If your current form has a default button, then you can activate it by
"ENTER" = ";" = the ";Go" button
without bothering to enter the partial name of that default button. More precisely, if the text field contains !enter label here! or is empty, then
"ENTER" = ";" = the ";Go" button
activates the default button.
Now let's talk a little more about activating default controls.
If you are still in your form and you want to active the default button, then you can use
"ESC 1" = "ESC o ENTER" = "ESC O ENTER" [Oh] = "ESC 0 ENTER" [zero] = = default button
or
"ESC 1" = "ESC o ENTER" = "ESC O ENTER" [Oh] = "ESC 0 ENTER" [zero] = = default button
In addition to a default button, your form may also contain a default popup trigger and/or a default selector trigger and/or a default check box and/or a default push button [see here for details]. The first two can be recognized by their bold faced labels [unless you choose not to display them in bold when you set LapTopHack's preferences].
NOTE. There may be more than one bold faced label in your form. If your application creates a bold faced label, LapTopHack does not undo it.
If you are still in your form and you want to active the default controls then you can use
"ESC 1" = = default button
"ESC 2" = = default popup trigger
"ESC 3" = default selector trigger
"ESC 4" = = default check box
"ESC 5" = = default push button
This is the onboard summary of the commands you can use in our ctrl activator.
An inherent shortcoming of our ctrl activator is that it can only activates controls which have a textual label. In addition, these labels must have uniquely identifiable texts. Alas, the Palm universe is full of controls with graphical labels and with labels which are not unique.
An excellent, or some would say horrific, example is Palm's own built-in DateBook.

Had I been consulted by the Palm guys, I would have advised them to use "R" for Thursday and "U" for "Sunday" in the English version of the Palm OS, and would have suggested similar considerations for all other languages. Well, let's not cry over spilled milk.
Enter the objectRotator, which can be accessed by
"ESC r" = "ESC 5-way navigator select button" = objectRotator
if you go to it from your form, and by
"r" = "5-way navigator select button" = objectRotator
if you are currently in the LapTopHack ESC form already.
The concept of the objectRotator is very simple. First, identify your object structure, and then activate it.
You can use objectRotator to activate dialog titles [menus], controls such as buttons, push buttons, check boxes, and repeating buttons, and also text fields via keyboard and Graffiti input. They are called "objects".
Here are the rules.
The objectRotator has a full range of transparent speed adjustment commands as well.
This is the onboard summary of the commands you can use in the objectRotator.
In addition, if you know what type of control structure you are looking for, then you may want to use the individual object rotators instead of the general object rotator. The individual control rotators work exactly as the objectRotator except that they concentrate on specific control structures only.
The buttonRotator looks for regular buttons, the popupListRotator looks for popup lists, the selectorTriggerRotator looks for selector triggers, the checkBoxRotator looks for check boxes, and the pushButtonRotator looks for push buttons.
This is not all! Haven't you noticed that quite a few forms do not have any text input field at all? Some of these are called "Custom Alerts", and a special case is called simply "Alert". Here are a couple of examples.
|
|
|
When LapTopHack is active, you can recognize such a form by the "i-Tip" symbol in the LEFT of the title bar [tap on it for contextual help].
In "Custom Alerts" and "Alerts" you don't have to bother with ESC characters and with the LapTopHack ESC form. Just follow these instructions.
Of course, the entire arsenal of LapTopHack ESC is still at your disposal. You may need it if one or more button start with the same letter.
In addition, you can bring up the pScripter dialog by entering "&".
This is the onboard summary of the commands you can use in "Custom Alerts" and "Alerts".
As of version 5.62, LapTopHack allows you to navigate inside menus, and to activate all menu commands via keyboard and Graffiti input. It works transparently and in a natural way.
First you bring up the menu using either the dedicated menu key on your external keyboard or by entering "ESC j" or by tapping the jMenu button in your "LapTopHack ESC" form [or by entering "ESC =" if you are in pedit's ListView or EditView].
Second, you pick different pull-down [drop-down] menus by using the left arrow or BACKSPACE or previous field keys and the right arrow or SPACE or next field keys or their Graffiti equivalents.
Third, you pick different menu items within a pulled-down [dropped-down] menu by using the up arrow and down arrow keys or their Graffiti equivalents, or by using the pageUp and pageDown keys of your Palm.
Fourth, you pick your selected command by entering a carriage return [linefeed] or its Graffiti equivalent, or the letter O [upper case "Oh"]
Summary of Commands.
NOTE. Although I could have easily implemented the latter "menu item # selection" on all Palms [at the expense of additional code], I decided to do it only if your Palm OS is at least 3.1. If you still use OS 3.0x, then this will be an excellent excuse for you to upgrade.
QUESTION. My Palm had a crash while using the menus via an external keyboard. What should I do?
ANSWER. Install the latest version of LapTopHack [at least 5.70].
QUESTION. How come that in one of my applications either some or none of the above navigational command work?
ANSWER #1. The application substituted Palm's built-in menu mechanism by its own custom code. Please contact the maker of your application and find out if this is the case. By the way, I have yet to see an application where this doesn't work.
ANSWER #2. Although I tested LapTopHack's menu activation mechanism on all Palm OSs from 3.0 up to 4.0, I may have missed something. If your Palm OS is under 3.5, then I cannot guarantee that this will work. You may experience some graphical glitches. If you do, the please let me know. However, based on input from dozens of LapTopHackers with a great variety of Palms, it seems that I hit the nail on its head and the menu activation mechanism now works flawlessly. Hence, I suggest that we go back to answer #1.
NOTE. George Wyner pointed out this GoType! for PalmOS FAQ page. I'd love to comment on it but I am afraid that if I did, then I would be perceived to be even more arrogant than I actually am.
NOTE. LapTopHack also fixes an inherent Palm OS bug which processed all characters entered while the menu was pulled down as if they were entered without the menu being pulled down. This could lead to disasters. Do I need to create scenarios for illustration? However, I must admit that some people consider this bug a "feature". If you are one of those, the please accept my apologies.
The pPointer [the Palm mouse] is similar to Robert Gasparotto's excellent PointerHack although the actual implementation is completely different. In fact, Robert invented the idea and I got hooked on it after I examined the publicly available source code of PointerHack. I was amazed to see how differently Robert and I approached the same problem. This is yet another proof that there is more than one way to skin a cat [I don't believe that I wrote this - I am a vegetarian and would never hurt a cat]. I am grateful to Robert for his great contribution to the Palm community. In addition, I also appreciate that, after I told Robert about pPointer, he agreed, and, to some extent, even encouraged me to use his idea in LapTopHack, and to improve upon his baby.
The point of both pPointer and PointerHack is to allow the user to put up a pointer [similar to an arrow] on the screen of the Palm, to move the pointer to an appropriate location, and then to click at the chosen location to simulate a tap by an actual stylus.
The primary commands are as follows. Here "bullseye" means the center of pPointer.
NOTE. If you have the Graffiti area under pPointer's jurisdiction, that is you see a virtual Graffiti drawn on your screen, then a single tap or single stroke acts as if done in the actual Graffiti area.
WARNING. Currently, the word and screenLine selection commands work only if you have a text field at the bullseye. If you use these two commands when the bullseye is over other objects, then the consequences are unpredictable. "W" works by issuing a double-tap at the bullseye, whereas "L" issues a triple-tap at the bullseye.
WARNING. Currently, the page or scroll command works only if the bullseye is over a scroll object such as a scrollUpArrow, scrollDownArrow, scrollUpPage [the grey area above the black scrollBar], scrollDownPage [the grey area below the black scrollBar], or scrollBar [the back area]. If you use this command when the bullseye is over other objects, then the consequences are unpredictable. You can usually resolve the situation by tapping in the Graffiti area of your Palm. "C" works by issuing a single tap in a rather trick way since a regular tap would not do the job. Somewhat more precisely but still not accurately, a "tapDown" is followed by a waiting period, and then a "tapUp" follows.
By the way, here is the definition of screenLines.
NOTE. In case you wonder what "toggling on and off the point anchor" means, try it. Turn it on, move the pPointer a couple of times, and then turn it off again. You will understand it immediately.
NOTE. While the Graffiti area is included into the pPointer's jurisdiction, not all pPointer commands are operational since only those work which make sense. For instance, the text and scrolling operations are disabled.
pPointer has a full range of transparent navigational and speed adjustment commands.
1 ... 9 0 = set the pPointer speed to 1 ... 9 10
"+" = "=" = increase pPointer speed by 1
"-" = "_" [underscore] = decrease pPointer speed by 1
"*" = double pPointer speed
"/" = halve pPointer speed
"f" [lower case] = set pPointer speed to fast
"n" [lower case] = set pPointer speed to normal
"s" [lower case] = set pPointer speed to slow
"v" [lower case] = set pPointer speed to very slow
"x" [lower case] = set pPointer speed to extra fast
NOTE. pPointer remembers its last position and speed unless you reset your Palm between two invocations of pPointer.
QUESTION. How come that in some applications such as NotePad, I can't make the "sTroke" command "T" work as I would like to?
ANSWER. In the Palm universe, there is no unique definition of what a stroke means. pPointer defines it as a "tapDown" at the anchor and then a full "tap" at the bullseye.
QUESTION. When is the "sTroke" command "T" useful?
ANSWER. You tell me. More precisely, please join the peditors Forum, and then please post your ingenious discoveries to here. For instance, you can use the "sTroke" command to create perfectly positioned rectangles and circles in TealPaint.
QUESTION. What is the best way to use pPointer in the Graffiti and adjacent areas?
ANSWER. I suggest using it for taps, double-taps, tripple-taps, and pen strokes, especially in conjunction with the myriad HackMaster extensions which can be activated by a myriad combinations of such actions. In addition, if you have nothing else to do, then you can also use the pPointer "sTroke" command to create certain letters via Graffiti. If you have FitalyStamp, then you can put up quite a show which will freak out even veteran Palm users.
NOTE. If your Palm appears to be frozen after a pPointer operation, then it may only be hibernating, that is, it suspended all operations entirely and it is waiting for a "tapUp", and then a simple tap will wake it up.
This is the onboard summary of the commands you can use in pPointer.
NOTE. This feature is in the process of fine tuning so that the details and the mechanism may change as I get more input from out LapTopHackers and peditors. Stay tuned...
If you have one of those foldable-portable keyboards made by Think Outside, Inc., and marketed under various names such as Palm Portable KeyBoard [PPK], Stowaway, and Targus, then you can use the Ctrl-Fn keys in conjunction with other keys to access quickly some of LapTopHack's features.
In addition, this feature works also with any other external keyboard in virtual Palm resident keyboard capable of producing Ctrl-Fn signals, that is "controlKeyMask" and "optionKeyMask"
In what follows, the Ctrl-Fn keys need be pressed simultaneously with the key under consideration.
First, please see here for the details about activating pScripts with any of the number keys 0 [zero] through 9 [nine] pressed simultaneously with Ctrl-Fn.
Experimentally, you can use the following shortcuts.
Ctrl-Fn-SPACE [NOT SPACEBAR!!!] = the pPointer at the last location
Ctrl-Fn-BACKSPACE = the pPointer at the default location
Ctrl-Fn-| [absolute value] = the pPointer at the current cursor location [if exists]
Ctrl-Fn-b [lower case "b"] = the default button
Ctrl-Fn-B [upper case "B"] = the buttonRotator
Ctrl-Fn-e [lower case "e"] = peditHack
Ctrl-Fn-E [upper case "E"] = [p]editPad
Ctrl-Fn-f [lower case "f"] = fieldRotator
Ctrl-Fn-h [lower case "h"] = the default check box
Ctrl-Fn-H [upper case "H"] = the checkBoxRotator
Ctrl-Fn-k [lower case "k"] = the kursorRotator
Ctrl-Fn-K [upper case "K"] = the Kustomizable pScriptButtons
Ctrl-Fn-l [lower case "ell"] = the default popup list [including category lists]
Ctrl-Fn-L [upper case "L"] = the popupListRotator
Ctrl-Fn-m [lower case "m"] = magiPad
Ctrl-Fn-M [upper case "M"] = scriptPad
Ctrl-Fn-o [lower case "o"] = our ctrl activator
Ctrl-Fn-p [lower case "p"] = the default push button
Ctrl-Fn-P [upper case "P"] = the pushButtonRotator
Ctrl-Fn-r [lower case "r"] = objectRotator
Ctrl-Fn-s [lower case "s"] = the default selector trigger
Ctrl-Fn-S [upper case "S"] = the selectorTriggerRotator
Ctrl-Fn-? = onboard help for the KeyBoard ShortCuts
QUESTION. Why only PPK and not GoType!?
ANSWER. I studied both keyboard drivers very carefully, and came to the conclusion that the GoType! driver is incapable of supporting the above features. Maybe you could approach the GoType! people and request that they upgrade their driver.
This is the onboard summary of the commands you can use as KeyBoard Shortcuts.
NOTE. This feature is in the process of fine tuning so that the details and the mechanism may change as I get more input from out LapTopHackers and peditors. Stay tuned...
First, the expression Graffiti area below refers to everything what you see under the screen, including the four SilkScreen buttons on the two sides and the large rectangle used for Graffiti input.
Second, in order to be functional, the Graffiti area hot spots feature needs to be turned on. You accomplish this by checking the appropriate box in the second page of the LapTopHack Preferences dialog [use the "more" button to get to the second page].
Third, this feature can be as simple as you wish and it can be made as sophisticated as you are ever likely to see in the Palm universe. Hence, both "newbies" and veteran "experts" will benefit from it. If you are a "newbie", just turn the