Written by Igor Nesterov (C) 2002-03
Download latest release from: http://www.palmoid.com/laycoder/laycoder.zip
Download YAHM hack manager for deadhack support (optional for PalmOS v3.x-4.x and required for PalmOS v5.x) from: http://yahm.palmoid.com/yahm.zip
LayCoder is a Win32 utility for creation custom keyboard layouts for Palm Portable Keyboard (also known as Stowaway keyboard).
ThinkOutside Inc, keyboard manufacturers offer Stowaway Development Kit for PalmOS. Basing on KdbLayout sample from SDK you can create your own layouts with help of Metrowerks CodeWarrior development system. This approach requires expensive tools and hard manual work for finding and mapping keys in "Key Code Matrix".
With help of LayCoder layout development can be simplified. Each key table represented as keyboard in text file:
[Plain] |1 |2 |3 |4 |5 |6 |7 |8 |9 |0 |- |= |BS | |NxtFl|q |w |e |r |t |y |u |i |o |p |[ |] |\ | |Caps |a |s |d |f |g |h |j |k |l |; |' |Enter| |LShft|z |x |c |v |b |n |m |, |. |/ |RShft|Up | |Ctrl |Fn |Alt |Cmd |Space|Space|` |Done |Del |Left |Down |Right| |Date |Phone|Todo |Memo | |
Utility help you convert simple text description like above to 'map_' resource. You can use build-prc utility to compile map into .pdb file.
With help of LayCoder package you can type accented characters in desktop style, with accent first. For example to type A. you should enter ^ character and A character. Diaeresis, circumflex, degree, grave, acute and cedilla accents are processed now. If you need another accent characters, mail to support@palmoid.com.
Package includes sample map map_fra1.map and ready to use French layout kbdfrenchtm.pdb. Dead key ( ^ character really) mapped to next button after P. Dead key with shift is mapped to diaeresis accent.
To use this extension you should install deadhack.prc to the palm. Unzip hack from archive and install it with Installer Tool. Enable it in your favorite HackManager for PalmOS 3.x-4.x (Use my freeware YAHM if you have no any HackManager).
For PalmOS5 you should use YAHM hack manager with ARM support.( Take new version 2.0 from http://yahm.palmoid.com/yahm.zip ). Using hack with TealMaster OS5 cause significant system slowdown. YAHM can handle special hacks, writtten in pure ARM.
Thanks to Christian Pennaforte for the brilliant idea of dead char support.
Version: 1 Name: English (US) Language: 0 Keyboard layout: 1033 Copyright: Copyright (c) 2000-2001, Think Outside, Inc. Creator: Think Outside, Inc. [Plain] |1 |2 |3 |4 |5 |6 |7 |8 |9 |0 |- |= |BS | |NxtFl|q |w |e |r |t |y |u |i |o |p |[ |] |\ | |Caps |a |s |d |f |g |h |j |k |l |; |' |Enter| |LShft|z |x |c |v |b |n |m |, |. |/ |RShft|Up | |Ctrl |Fn |Alt |Cmd |Space|Space|` |Done |Del |Left |Down |Right| |Date |Phone|Todo |Memo | |
| Keyword | Meaning | ||||||||||||||
| Version | Version keyword must be equal to 1. | ||||||||||||||
| Name | Name keyword describe textual description of keyboard layout. This name shows in layout manager. | ||||||||||||||
| Language | Language keyword define numeric language ID. There are 7 defined IDs:
|
||||||||||||||
| Keyboard layout | Keyboard layout numeric codes are based on MS language identifiers. You can find them in languages.h file form SDK (included into distribution). | ||||||||||||||
| Copyright | Text string with copyright (64 chars max). | ||||||||||||||
| Creator | Text string with layout author (32 chars max). |
Text file defines 11 different keyboard tables, for each modifier keys combination:
All tables must come in above strict order. Each table begin with modifier name in square brackets. Six keyboard rows follows it. Last row consist of four application buttons. Each row consist of button definitions. Buttons are separated by | character. Each button resides on 5 character positions. There are four types of button encoding:
|q |w |e |r |t |y |
"Fn ", "Alt ", "LShft", "RShft", "Cmd ", "Caps ", "Ctrl ""BS ", "Enter", "Up ", "Down ", "Left ", "Right", "Del "
"NxtFl" (next field), "PrvFl" (prev field), "SDown" (page down), "SUp " (page up)
"Backl" (toggle backlight), "SKbrd" (onscreen keyboard), "Shrtk" (shortcut stroke)"Copy ", "Cut ", "Paste""Apps ", "Menu ", "Calc ", "Find ", "Date ", "Phone", "Todo ", "Memo ""Done " (done,fertig), "Delet" (delete,löschen), "New " (new,neu), "Show " (show, einblenden), "OK ", "Note " (note,notiz), "Send" (send,shieken,senden,go,check & send,send & check)(this button mistakenly labeled 'Today'), "Edit " (edit,bearbeiten), "Dtail", "Cancl" (cancel, abbr, abbrechen)"+^ " (Circumflex Accent), "+` " (Grave Accent), "+~ " (Tilde), "+' " (Acute Accent), "+o " (Degree Sign), "+: " (Diaeresis)|Date |Phone|Todo |Memo |
|#0121|#010F|#0112|
| | |
[Plain] |1 |2 |3 |4 |5 |6 |7 |8 |9 |0 |- |= |BS | |NxtFl|q |w |e |r |t |y |u |i |o |p |[ |] |\ | |Caps |a |s |d |f |g |h |j |k |l |; |' |Enter| |LShft|z |x |c |v |b |n |m |, |. |/ |RShft|Up | |Ctrl |Fn |Alt |Cmd |Space|Space|` |Done |Del |Left |Down |Right| |Date |Phone|Todo |Memo | |
LayCoder l "binary_layout_file_name" > "text_layout_file_name"
This command convert binary format to text layout file.
LayCoder c "binary_layout__or_pdb_file_name" "text_layout_file_name"
This command conver text layout file to binary file or PDB database. Output file format determined by used extension: if output file have ".prc" or ".pdb" extension, than output will be database. Otherwise it will be binary layout.LayCoder c kbdlay.pdb map_041a.mapThat's all! Steps below can be helpful if you want to add more than one layout to database.LayCoder c map_041a.bin map_041a.mapbuild-prc.exe -o kbdlay.pdb -t DATA -c KO01 -n "Sample layout" map_041a.bin
or next line for PRC-Tools v2.2build-prc.exe --no-check-resources -o kbdlay.pdb -t DATA -c KO01 -n "Sample layout" map_041a.bin
You can change PDB name from 'kbdlay.pdb' and internal name from "Sample layout". First name identifies file on PC, second - on Palm.
build-prc.exe -o kbdlay.pdb -t DATA -c KO01 -n "Sample layout" map_041a.bin map_041b.binNew Ultra-Thin keyboard have some differences from classic PPK keyboard. Current keyboard driver use old keyboard layout with some hacks. New version support this hacks.
Four new pseudo-buttons were added to last row. Don't touch them! Leave this buttons as is.