Navigation

User login

Main Menu

The Views Framework project can be accelerated with your support

You can help move Views and Framework forward by purchasing products and subscriptions listed below. Communicate with us directly by e-mail or phone about other ways to contribute and get involved, especially if you skilled in the following areas: Programming and web design, technical writing, blogging, editing and electronic publishing. We are looking for specific expertise in semiconductor layout and asynchronous delay-insensitive standard-cells and PDK cell development. e-mail to our contact link above and feel free to communicate about related issues.

Subscriptions and Products

The web hosting and service packages we provide can be mixed and matched for you needs. They include

* web hosted cloud computing server development accounts with support for client side hardware based secure access, sharing and collaboration.
* web-based commerce hosting range for the minimal business to large inventories with massive database search capabilities as well as
* special features such as high resolution magnifier that minimizes intense traffic, load balancing and ultra fast setup, all with myriad of standard web based services such as calendars with mail and mobile automated group notifications and more.

Windows-based Framework versions are fully back-compatible with libraries, macros and dictionary files of DOS-based Framework versions. However, the number of Framework key names was increased from 64 to 128 and additional names for library macros were added.

DOS-based Framework macro names included only the Alt-key combination key group (group 36). The Windows-based Framework allow four additional key-combinations to be used as macro names in Libraries, Those are Ctrl-Alt-key (group 70), Ctrl-Shift-key (group 71), Alt-Shift-Key (group 72), and Ctrl-Alt-Shift-key (group 73). Like all FRED key names the new names can be filtered using the @keyfilter function.

Framework provide a simple keyboard setup file which allow users to redirect any key or key combination to any character in any FRED group (a FRED key name). In addition built-in new FRED functions make it possible to freely and dynamically perform the same redirection of keys while Framework is running.

Following is a summary of terms and concepts as well as practical examples of how to edit the keyboard setting file as well as dynamically redirect any physical keyboard keys to any FRED key name, performing any Framework key press functionality, while Framework is running.

Framework key names are listed in Framework help but it is easier to determine a key name by pressing it after calling the following formula:

@keyname(@nextkey)

For example, calculating the above formula and pressing Return (Enter) will return the string {return}. Most key names represent individual keys but some keys such as printable characters such as a or combination characters such as Shift-a, Alt-a or Ctrl-a belong to a key group. A key group can have 256 values, one for each ASCII character.

To find the number of a FRED key name or group use the following formula:

@int({Keyname})/256

for example
@int({F1})/256 = 1
@int({F2})/256 = 2
@int({F10})/256 =10
@int({F11})/256 =87
@int({F12})/256 =88
@int({Return})/256 = 29
@int({Ctrl-Alt-Esc})/256 = 64
@int({Ctrl-Alt-Shift-a})/256 = 73
@int({Ctrl-Alt-Return})/256 = 117
etc...

That formula simply reflect the fact that FRED keys are arranged in a matrix that is 256 columns wide. The key name (or group) number is simply the row number in that matrix.

To find the column number of an individual key in a group:

@mod(@int({Keyname}),256)

That formula return the key offset from the beginning of its group. As an example: The printable group number is 11 so the location of ASCII 65 (A) is in a row number 11, column 65.

Accordingly @int({A})/256 will return 11, while @mod(@int({A}),256) will return 65.

Windows-based Framework make it easy in to redirect keyboard keys to specific FRED key names.

Framework loads a simple text file named FW8KTBL at start up time (the KTBL file for short). The file name and extension are specified in the FW8ENV.INI file. Multiple FW8KTBL files for different keyboard layout and languages are provided with Framework. Both files, FW8ENV.INI and the FW8KTBL can be edited and saved as text files.

Each line in a KTBL file corresponds to a physical keyboard key. The line content determine the behavior of that key press as well as the 7 key combination of that key that are recognized by Framework. Those combinations are: Shift-key, Alt-key, Ctrl-key, Ctrl-Alt-key, Ctrl-Alt-Shift-key, Ctrl-Shift-key; and Alt-Shift-key.

Each line is divided to 8 columns separated by semicolons (;). The columns correspond to the 8 key presses described above (in that order). The first determine the behavior of a normal key press, the second of the Shift-key combination and so on.

Each of the 8 columns should contain a pair of numbers separated by a coma. The first number represent the FRED key name or group number that that key will be redirected to. The second number represent the specific key in the group that will be perform. For example, the 'a' key should be directed to the printable group (number 11), and perform ASCII 97 (column 97 in the internal key matrix). Keys names such as the Return key are not a group so they have a 0 for the second number.

To direct the normal key press of the key 'a' to group 11 (a printable group) and make it type ASCII 97 we specify 11,97; in the first column of the line corresponding to the physical key a.

How to find which line in file the determine the behavior of a particular physical key?

To find which line determine the behavior of a particular physical key use the function @getscankey. Calling that function and then pressing a key will return that key's line number in the KTBL file. This allow users to quickly find lines numbers of keys in different keyboards including special keyboard dedicated to news and trade as well as industrial equipments and mobile devices such as laptops and tablet computers. A number of keyboards with additional keys at the top and functions keys on both the left side and the top are available from Framework Computers as well as companies such as Logitech. Note that having function keys on the left can be quite an advantage when working with Framework.

The example below demonstrate how to make the physical a key perform the b key in Framework (ASCII's 97,65 to 98,66 in Icode 11)

First find the line number of a by calculating the formula

@nextscankey

and pressing a. The return result, 30, is the line number in the KTBL file that should be updated.

The function @getscankey(30) can be used to see the existing lines. It will return the line as a string. Note that this is not a genral function that takes parameters, it only used with the current KTBL file.

@getscankey(30) = 11,97;11,65;37,65;36,65;70,97;71,65;72,65;73,65;

Now use the function @setscankey to determine the new functionality we want -- we want to replace ASCII 65 with ASCII 66 and 97 with 98. When we do that we will update all key combinations by you can also choose change individual combinations or any number of combinations.

@setscankey(30,"11,98;11,66;37,65;36,65;70,98;71,65;72,65;73,65")

Now press a and Framework should perform b .

This allows the redirection specific keyboard keys to specific key names in Framework in order to customize Framework for different keyboard layout and languages while running. Note that redirecting physical keyboard keys to Framework key name provides a traditional "keyboard driver" functionality to users. It have nothing to do with the Framework FRED key names which can be filtered and used programmatically in functions such as @keyname, @nextkey, @keyfilter, @key, {Key} etc, to create and manage context based interactive user interface.