Features  
  1. The description of the screen layout is specified by compact binary coded scripts . Separate bit ranges used for commands , data prefixes , data and text .
  2. The User Interfaces - via the scripts - can be developed very quickly and very easily . Not only can products be released quicker but also more time is available for the User Interface design - eg. for maximising the quality and features of the design .
  3. Through the use of different script files for the same Application - different User Interfaces ( skins ) can be designed for different market areas thus maximising the market reach of your product . As such both large general and small niche markets can be easily and cheaply catered for .
  4. Scripts can be accessed as files - this allows the User Interface to be remotely changed and updated . Further because the Application acts only as a functional module the application code can be fixed - as it often would not need any alterations when the features are updated - where these are provided by the User Interface . Scripts can also be compiled in as part of the code .
  5. Multiple script files ( including library files ) can be simultaneously accessed . Script files can be closed .
  6. Script objects and associated display objects are created on script execution . Scripts can be instantiated - re-executed as separate entities . Full script , branch and overlay management and controls are provided .
    1. Screens .
    2. Overlayed Screens .
    3. Branches ( parent and child script objects ) .
    4. Segments - branch sections that can be removed from the branch .
    5. General and specific instantiation of branches .
    6. Command based removal of scripts ( script objects ) and branches ( parent and child script objects ) .
    7. Automatic displacement ( removal ) of scripts and branches displayed at the same position .
    8. Automatic detection and handling of conditions such as looped branches and implied script instantiation .
    9. Re-display of area associated scripts - when actions such as text field movement and re-sizing occurs .
    10. Automatic display object re-display ( on associated data change ) and automatic complete screen re-display .
  7. Inline ( within the script ) , System , Local ( to the scripts ) and Global ( Application ) Data . Indexed ( script and data array ) , Percentage , Script Table and Parameter based data . Numerical , string , document and picture data and graphics characters . Separate character ranges for commands , data description prefixes and data and screen text . Bi-directional parsing of scripts . Interchangeable data sources .
  8. Data Objects - all data types - including Unsigned and Signed Decimal , Binary , Hex , String , Document ( eg. .txt files ) and Picture . Initial value setting . Maximum value setting and checking . Inline and external setting via data messages . Static and Dynamic ( variable ) . Inline Table and Dynamic Array based data . Fixed and variable size string and text document data . Instantiated data . Parameter passed and referenced .
  9. Direct connection to Application Data and Functions - easily specified via Data ' Object ' Tables . Application data is automatically updated and application functions automatically called . Alteration of data in the Front End - User Interface - causes automatic updating of application data and calling of associated functions .
  10. Linkage to the Application is via simple tables - macros are supplied to encode the table entries . The tables specify the object names and the data and associated and separate functions .
  11. Linkage to the Application uses an ' object ' based format and provides for Gain Focus ( constructor ) and Lose Focus ( destructor ) functions . Objects are named within the Application and within the scripts . Linkage is on the basis of the ' object ' name and the ' object ' field number - within ANSI C format .
  12. Linkage from the Application to the Front End is via a simple set of macros .
  13. Application Data can be static or dynamic . If dynamic the application side Object Manager will automatically create the data on the heap .
  14. The Application can remotely change the system data to cause , for example , the display of a specified script .
  15. Linkage to Scripts and Data Based Selection of Scripts by :-
    1. Directly specified data within the script - out of a command parameter list - within the text area .
    2. Link command - displays the specified script .
    3. Multi Link command - displays the list of scripts for the number of scripts specified in the data . Has overlay controls .
    4. Call command - allows parameters to be passed from script to script - provides for the design of complex and portable screen objects - such as Menus and Combo Boxes .
    5. Call External command - allows parameters to be passed from a script to a script in an separate script file .
    6. 'Script Macros' - sections of script code and data can be defined as macros and be referred to as code or data .
    7. ' Widgets' - external scripts executed via numerical ( enumerated ) references . Widgets be referred to as code or data .
    8. Repeat command - repeats the specified script for the number of times specified in the data .
    9. Page command - repeats the specified script for the number of times specified in the data . Provides page controls - allows buttons ( eg. directory entries ) to be created and managed as a page .
    10. While command - repeats the specified script while the specified data is FALSE ( 0 value ) .
    11. Choice command - displays the script corresponding to the index specified in the data .
    12. Masked Link command - displays the list of scripts corresponding to the selection bits specified in the data .
  16. This allows scripts to be linked to ( executed at the current script position ) and allows the screen display to be altered in response to data changes . Altering the data causes an automatic update of the display .
    The Multi Link , Repeat , Page , While , Choice & Masked Link commands can also handle inline script code sections .
  17. Dependence of scripts on data - when the data is altered the script is re-executed ( re-displayed ) or removed .
  18. Internal Scripts - referred to by Script Number - and External Scripts - referred to by Script File Name . Scripts handled as files - can be externally loaded and updated . Script files can also be placed directly in the code space .
  19. Association of Scripts with data - when the data is altered the script is removed or is re-executed ( re-displayed ) .
  20. All styles are specified within Style Tables . Individual Frame , Area , Table , Field , Graphics and Font styles can be selected . Styles can also be overridden by using the Set Style command .
  21. Text Styles :-
    1. Type Face - eg. Arial , Garamond etc. .
    2. Style - eg. italic , bold etc. .
    3. Size .
    4. Background and Foreground Colours .
  22. Variable Font - full screen and data text display and cursor movement handling . Script lines are parsed - text and objects - to detect the overall line height and ascent . Control over the line height and ascent is provided .
  23. Frame Styles :-
    1. Flat , Raised and Lowered Edges .
    2. Edge Width setting .
    3. Rectangular and Rounded Corners .
    4. Frame Pattern and Colour with optional Background Picture .
    5. Background and Foreground Pattern and Colours .
    6. Raised and Lowered Lands .
    7. Left , Central and Right Aligned Labels .
    8. Default style and sub-style handling .
  24. Additional Associated Styles :-
    1. Fonts - type , style , size - screen text , areas and fields .
    2. Spacing - areas and fields .
  25. Framing of Text Displays , Areas , Fields , Tables and Table Cells .
  26. Setting of Font and Graphics Styles .
  27. Areas - defines start position , size and frame .
  28. Tables with Default and Custom Cells - handled as areas .
  29. Data Fields - with full data editing facilities :-
    1. Character , Word and Field Cursor Movement - Left and Right , Up and Down and between fields .
    2. Overflow and wrap around .
    3. Go To Line Start , Line End , Data Start and Data End .
    4. Page Up , Page Down , Page Left and Page Right .
    5. Previous Page and Next Page .
    6. Delete Previous Character & Delete Current Character .
    7. Insert & Revise .
    8. Mouse , Cursor and Word based Data Selections . Select All .
    9. Delete , Replace , Cut , Copy & Paste . Drag and drop - copy ( out of the field ) and move ( in the field ) operations .
    10. UnDo and Re-Do .
    11. Increment and Decrement data .
    12. Data fields display a ' window ' on the data - data is automatically moved into and out of the display area .
    13. Vertical and Horizontal Scroll Bars ( sliders with movement buttons ) .
    14. Grab Bars with Hide \ Show , Minimise \ Maximise and Close Controls . Movement and Re-sizing .
    15. The cursor can be allowed to move to the outer right of the display area .
    16. Password - '*' - characters can be displayed on character input .
    17. Descriptive Messages - removed from data on selection of the data field .
    18. Display Only and Display and Edit .
    19. Automatic association of data fields with associated data editor component - according to data type .
  30. Button Fields :-
    1. Full range of types and frame styles provided for . Can - via the GDI - display any button type - no frame , standard frame types , check box , radio button etc.
    2. Can be explicitly displayed or can be associated with text or screen areas .
    3. Can be displayed Up , Down or Highlighted .
    4. Can operate on Cursor Selection , Button Down or Down then Up - Mouse Button or Enter key , Right Click or Double Click .
    5. Can be toggled and auto toggled - eg. menu operation .
    6. Can be cursor selected .
    7. Field Selection , Mouse and Enter Key button press or Mouse Only button press .
    8. When pressed causes the execution of the associated script .
    9. The label can be specified inline or specified by data .
    10. The label can be left , center or right aligned .
    11. Can be field selected - eg. the selection of files within a directory . The selections ( button labels ) being loaded into system data which can then be sent through to the Application . The selections can also be pasted or dropped into data .
    12. Buttons can be clicked through - data labels can be edited - allows , for example , for file names to be changed .
    13. Menus with full page controls can be constructed .
    14. Link Section fields can be left mouse button activated , double click left left mouse button activated and right mouse button activated .
    15. Activate and Link Section fields can be overlayed on other fields .
  31. Button presses execute events :-
    1. Script Execution .
      or
    2. Data Setting .
      and \ or
    3. Application Function Execution .
  32. Link Section Fields - when the mouse button is pressed over the screen area ( defined as a script or rectangular section ) the associated script is executed .
  33. Activate Fields - executes the associated script when the mouse cursor is held over the area . Can be used to display descriptive ( eg. help ) text .
  34. Hidden Section Fields - when the button is pressed - toggled - the associated script is executed revealing a hidden section . This allows pages to be designed on the basis of drill down - going from titles & summaries to full content .
  35. Grab Bar Field - can be associated with data and can be used as a grab bar for areas and data fields .
  36. Slider Field - with movement buttons - can be associated with data and can be used as a scroll bar for a data field .
  37. Drop Field - allows data that has been selected to be dropped indirectly into data areas .
  38. Resource Field - Audio , Picture or Movie .
  39. Graph Field .
  40. Fields can be overlayed on top of each other .
  41. Positions: -
    1. Absolute and Relative positioning .
    2. Absolute and Relative rotation .
    3. Movement relative to line tops and bases .
    4. Movement relative to Area sides .
    5. Area associated positioning . Areas can be referred to from outside or from within the area .
    6. Table associated positioning . Tables can be referred to from outside or from within the table .
    7. Tabs with positions set by tab tables .
    8. Indents .
    9. Horizontal - left , center and right - Alignment .
    10. Vertical - top , middle and bottom - Alignment .
    11. Inherited and Current Display States .
  42. Ordered lists with type specification - ([{ a A 1 i I }]) - and with full nesting .
  43. Data Operations :-
    1. General - Select Data ( contextual based ) , Select Current Field Data & Select Specified Field Data , Externalise Data .
    2. Arrays - Clear Array , Set Number of Entries , Get Number of Entries , Set Entry Width , Get Entry Width , Get Entry Height , Sort & Reverse , Insert and Delete Entries .
    3. Button Width . Menu Width & Height .
    4. File Based - Load File Name , Search , Search extended , Load , Save , Store , Rename , Copy , Move and Delete .
    5. Data Base - Load , Save & Store , Insert & Delete Fields and Lines .
    6. Arithmetic - Load , Load Array , Exchange , Append , Clear , Increment , Add , Decrement , Subtract , Multiply , Divide , Remainder , Percent , Minimum , Maximum , Decrement on Not Zero and Negative .
    7. Arithmetic Conditional - Not Equal , Equal , Less Than , Less Than or Equal , Greater Than , Greater Than or Equal .
    8. Logical - And , And Not , Or , Xor , Shift Left , Shift Right , Invert , Not .
    9. Logical Conditional - No 1's Match , Some 1's Match , All 1's Match .
    10. Exit on Zero , Exit on Non Zero .
    11. Application Function Execution - Synchronous and Asynchronous .
  44. Graphics :-
    1. Lines .
    2. Rectangles .
    3. Arcs .
    4. Fill Graphic Areas .
    5. Blank Graphic Areas .
    The graphics commands , as with all commands , use formatted data - where the data source is specified as a prefix . As such if a variable data source is used and if the data is altered the whole script that contains the graphic command is re-executed - thus causing re-drawing of the graphics in the script .
  45. Graphics Styles :-
    1. Line Type .
    2. Line Width .
    3. Line Colour .
    4. Foreground and background colour .
  46. Automatic initialisation script execution . Setting of language section characteristics . Setting of default Display State characteristics - loaded on execution of scripts within script command specified ranges .
  47. Execute Script ( display script - constructor ) , Re-display Script and Remove Script ( script based and external application based removal of the script from display - destructor ) operations . Removal of overlay areas , branches and screens .
  48. Overlaid scripts and Areas . Transparent ( actions go through ) scripts and opaque ( actions don't go through ) Areas . Restriction of cursor movement to selected Areas . Localisation of actions to overlays . Overlay of screens ( ensures no transparency to the underlying screen ) .
  49. Automatic displacement of scripts of the same level previously displayed at the same position . Full management of scripts , script objects and associated objects . Automatic displacement of screens by screens .
  50. Script Timer operation provided - causes the execution of scripts after the expiration of a specified time . The timers can be single shot or repeated . Scripts can also be removed from display . Timer management facilities are also provided .
  51. Input Events can be generated within scripts and be executed on fields . This allows , for example , for keyboards to be constructed on the screen .
  52. Layout controls :-
    1. Vertical - organise into columns .
    2. Horizontal - organise into rows .
    3. Offset Y - tile overlayed .
    4. Offset X - tile overlayed .
  53. Headings .
  54. Headers and Footers .
  55. Spacing .
  56. Because the Module uses basic commands ( rather than complex display object graphic commands ) a very high level of control is available to specify the layout and appearance of complex screen objects . The commands provided can be easily put together to construct complex objects . As such Menus and Combo Boxes can , for example , have any button type and layout and lines between items. Further because these objects are constructed using component commands they can be widely varied in their design . As such , for example , overlaid buttons and dividing lines can be put on menu's and different button types can be used for combo boxes . As such full control is provided over the presentation of the User Interface .
  57. Full Multiple Language handling - either included within the script file or within a separate language file that is loaded when the language selector is altered - is provided . 8 bit extended ASCII ( eg. European ) character sets catered for .
  58. The Application can be remotely located from the User Interface . The User Interface can be located in a separate chip - Software On Silicon - single chip solution . This allows a distributed processing solution to be provided . The User Interface can be located on a separate computer - this minimises the byte space required on the embedded device .
  59. The Front End Module is asynchronous - ie. no lock ups !
  60. User Interfaces are asynchronous in nature as such they require :-
    1. Ease of movement between menus - branches - not only going up a branch but directly across to another branch .
    2. Inputs from multiple sources :-
      1. keyboard .
      2. mouse .
      3. the application .
    The User Interface must be able to react to these as they occur . As the Front End Module is asynchronous all these are handled .
  61. There is a MultiMedia framework - play engine - providing full management of decode operations . There aren't , however , any associated source , demultiplex , decode & sink components .
  62. The Module is easy to port - it only requires minimal OS and GDI functions and is extensively instrumented .
Architecture