]> git.proxmox.com Git - mirror_edk2.git/blobdiff - EdkModulePkg/Universal/UserInterface/DriverSample/Vfr.vfr
Add missing files in msa file and add module description in msa file, and reorganize...
[mirror_edk2.git] / EdkModulePkg / Universal / UserInterface / DriverSample / Vfr.vfr
diff --git a/EdkModulePkg/Universal/UserInterface/DriverSample/Vfr.vfr b/EdkModulePkg/Universal/UserInterface/DriverSample/Vfr.vfr
new file mode 100644 (file)
index 0000000..6509a66
--- /dev/null
@@ -0,0 +1,622 @@
+// *++\r
+//\r
+// Copyright (c) 2006, Intel Corporation                                                         \r
+// All rights reserved. This program and the accompanying materials                          \r
+// are licensed and made available under the terms and conditions of the BSD License         \r
+// which accompanies this distribution.  The full text of the license may be found at        \r
+// http://opensource.org/licenses/bsd-license.php                                            \r
+//                                                                                           \r
+// THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     \r
+// WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             \r
+// \r
+// Module Name:\r
+//\r
+//   Vfr.vfr \r
+// \r
+// Abstract:\r
+// \r
+//   Sample Setup formset\r
+// \r
+// Revision History: \r
+// \r
+// --*/\r
+\r
+\r
+#include "DriverSampleStrDefs.h" \r
\r
+#include "NVDataStruc.h"\r
+\r
+\r
+typedef struct {\r
+  UINT8         Field8;\r
+  UINT16        Field16;\r
+  UINT8         OrderedList[3];\r
+} MyIfrNVData2;\r
+\r
+typedef struct {\r
+  UINT8         Field8;\r
+  UINT16        Field16;\r
+  UINT8         OrderedList[3];\r
+} MyIfrNVData3;\r
+\r
+#define MY_TEXT_KEY                 0x100 \r
+\r
+#define LABEL_1_VALUE               0x01\r
+#define LABEL_2_VALUE               0x1000\r
+#define LABEL_UPDATE_BBS            0x2222\r
+#define LABEL_END_UPDATE_BBS        0x2223\r
+\r
+formset \r
+  guid     = FORMSET_GUID,\r
+  title    = STRING_TOKEN(STR_FORM_SET_TITLE),  \r
+  help     = STRING_TOKEN(STR_FORM_SET_TITLE_HELP), \r
+  class    = 0x10,      \r
+  subclass = 0,\r
+\r
+  varstore MyIfrNVData2, key = 0x1234, name = MY_DATA2, guid = FORMSET_GUID;\r
+\r
+\r
+  varstore MyIfrNVData3, key = 0x4321, name = MY_DATA3, guid = FORMSET_GUID;\r
+\r
+  form formid = 1,\r
+       title  = STRING_TOKEN(STR_FORM1_TITLE);  // note formid is a variable (for readability) (UINT16) - also added Form to the line to signify the Op-Code\r
+  \r
+    subtitle text = STRING_TOKEN(STR_SUBTITLE_TEXT);\r
+\r
+    subtitle text = STRING_TOKEN(STR_SUBTITLE_TEXT2);\r
+\r
+    banner \r
+      title = STRING_TOKEN(STR_BANNER_TITLE),\r
+      line  1,\r
+      align center;\r
+    \r
+    banner \r
+      title = STRING_TOKEN(STR_BANNER_TITLE),\r
+      line  2,\r
+      align left;\r
+\r
+    banner \r
+      title = STRING_TOKEN(STR_BANNER_TITLE),\r
+      line  2,\r
+      align right;\r
+\r
+       text \r
+      help   = STRING_TOKEN(STR_TEXT_HELP),  \r
+      text   = STRING_TOKEN(STR_CPU_STRING),\r
+           text   = STRING_TOKEN(STR_CPU_STRING2),\r
+      flags  = 0,\r
+      key    = 0;\r
+\r
+       text \r
+      help   = STRING_TOKEN(STR_EXIT_TEXT),  \r
+      text   = STRING_TOKEN(STR_EXIT_TEXT), \r
+           text   = STRING_TOKEN(STR_EXIT_TEXT),\r
+      flags  = INTERACTIVE,\r
+      key    = 0x1237;\r
+\r
+    oneof varid  = MyIfrNVData.SuppressGrayOutSomething,\r
+      prompt      = STRING_TOKEN(STR_ONE_OF_PROMPT),\r
+      help        = STRING_TOKEN(STR_ONE_OF_HELP),  \r
+      option text = STRING_TOKEN(STR_ONE_OF_TEXT4), value = 0x0, flags = 0; \r
+      option text = STRING_TOKEN(STR_ONE_OF_TEXT5), value = 0x1, flags = 0;\r
+      option text = STRING_TOKEN(STR_ONE_OF_TEXT6), value = 0x2, flags = DEFAULT;\r
+    endoneof;\r
+\r
+    oneof varid  = MyIfrNVData.BootOrderLarge,\r
+      prompt      = STRING_TOKEN(STR_ONE_OF_PROMPT),\r
+      help        = STRING_TOKEN(STR_ONE_OF_HELP),  \r
+      option text = STRING_TOKEN(STR_BOOT_ORDER1), value = 0x0, flags = INTERACTIVE, key = 1; \r
+      option text = STRING_TOKEN(STR_BOOT_ORDER2), value = 0x1, flags = INTERACTIVE | DEFAULT, key = 2;\r
+    endoneof;\r
+\r
+    grayoutif  ideqval MyIfrNVData.SuppressGrayOutSomething == 0x1;\r
+    suppressif ideqval MyIfrNVData.SuppressGrayOutSomething == 0x0;\r
+      label 0;\r
+      checkbox varid    = MyIfrNVData.ChooseToActivateNuclearWeaponry,\r
+              prompt   = STRING_TOKEN(STR_CHECK_BOX_PROMPT),\r
+              help     = STRING_TOKEN(STR_CHECK_BOX_HELP),  \r
+              flags    = 1,                  // Flags behavior for checkbox is overloaded so that it equals a DEFAULT value.  1 = ON, 0 = off\r
+              key      = 0,\r
+      endcheckbox;\r
+    endif;\r
+\r
+\r
+    //\r
+    // Ordered list: \r
+    //   sizeof(MyIfrNVData) storage must be UINT8 array, and\r
+    //   size written for the variable must be size of the entire\r
+    //   variable.\r
+    //\r
+    //\r
+    suppressif ideqval MyIfrNVData.SuppressGrayOutSomething == 0x0;\r
+      label LABEL_UPDATE_BBS;\r
+      orderedlist\r
+                varid       = MyIfrNVData.BootOrder,\r
+                prompt      = STRING_TOKEN(STR_BOOT_OPTIONS),\r
+                help        = STRING_TOKEN(STR_NULL_STRING),\r
+                option text = STRING_TOKEN(STR_BOOT_OPTION2), value = 2, flags = RESET_REQUIRED;\r
+                option text = STRING_TOKEN(STR_BOOT_OPTION1), value = 1, flags = RESET_REQUIRED;\r
+                option text = STRING_TOKEN(STR_BOOT_OPTION3), value = 3, flags = RESET_REQUIRED;\r
+                option text = STRING_TOKEN(STR_BOOT_OPTION4), value = 4, flags = RESET_REQUIRED;\r
+      endlist;      \r
+      label LABEL_END_UPDATE_BBS;\r
+    endif;\r
\r
+    suppressif ideqval MyIfrNVData.SuppressGrayOutSomething == 0x2;\r
+      orderedlist    \r
+        varid       = MyIfrNVData.OrderedList,\r
+        prompt      = STRING_TOKEN(STR_TEST_OPCODE),\r
+        help        = STRING_TOKEN(STR_TEXT_HELP),  \r
+        option text = STRING_TOKEN(STR_ONE_OF_TEXT1), value = 4, flags = RESET_REQUIRED;\r
+        option text = STRING_TOKEN(STR_ONE_OF_TEXT2), value = 3, flags = RESET_REQUIRED;\r
+        option text = STRING_TOKEN(STR_ONE_OF_TEXT3), value = 2, flags = RESET_REQUIRED;\r
+        option text = STRING_TOKEN(STR_TEXT_HELP),    value = 1, flags = RESET_REQUIRED;\r
+      endlist;\r
+    endif;\r
+     \r
+    label 100;\r
+\r
+    goto 0x1234, \r
+      prompt  = STRING_TOKEN(STR_GOTO_DYNAMIC), \r
+      help    = STRING_TOKEN(STR_GOTO_HELP),\r
+      flags   = INTERACTIVE, \r
+      key     = 0x1234;\r
+\r
+    goto 0x1234, \r
+      prompt  = STRING_TOKEN(STR_GOTO_DYNAMIC2), \r
+      help    = STRING_TOKEN(STR_GOTO_HELP),\r
+      flags   = INTERACTIVE, \r
+      key     = 0x1235;\r
+    \r
+    //\r
+    // VARSTORE tests\r
+    //\r
+    // Till now, been using variable NvData (must be reserved)\r
+    // now we do a varselect for variable NvData3\r
+    inconsistentif prompt = STRING_TOKEN(STR_ERROR_POPUP),\r
+      ideqid MyIfrNVData3.Field16 == MyIfrNVData3.Field16\r
+    endif;\r
+    // now we do a varselect_pair for variable NvData2 and NvData3\r
+    inconsistentif prompt = STRING_TOKEN(STR_ERROR_POPUP),\r
+      ideqid MyIfrNVData2.Field16 == MyIfrNVData3.Field16\r
+    endif;\r
+\r
+\r
+    // now we do a varselect_pair for variable NvData and NvData2\r
+//    inconsistentif prompt = STRING_TOKEN(STR_ERROR_POPUP),\r
+//      ideqid MyIfrNVData2.Field16 == MyIfrNVData.TestLateCheck\r
+//    endif;\r
+\r
+    inconsistentif prompt = STRING_TOKEN(STR_ERROR_POPUP),\r
+      ideqid MyIfrNVData.TestLateCheck == MyIfrNVData.TestLateCheck2\r
+    endif;\r
+\r
+    oneof varid  = MyIfrNVData.TestLateCheck,\r
+      prompt      = STRING_TOKEN(STR_TEST_OPCODE),\r
+      help        = STRING_TOKEN(STR_ONE_OF_HELP),  \r
+      option text = STRING_TOKEN(STR_ONE_OF_TEXT1), value = 0, flags = LATE_CHECK | RESET_REQUIRED;\r
+      option text = STRING_TOKEN(STR_ONE_OF_TEXT2), value = 1, flags = LATE_CHECK | DEFAULT | RESET_REQUIRED;\r
+    endoneof;\r
+\r
+    oneof varid  = MyIfrNVData.TestLateCheck2,\r
+      prompt      = STRING_TOKEN(STR_TEST_OPCODE2),\r
+      help        = STRING_TOKEN(STR_ONE_OF_HELP),  \r
+      option text = STRING_TOKEN(STR_ONE_OF_TEXT1), value = 0, flags = LATE_CHECK | DEFAULT | RESET_REQUIRED;\r
+      option text = STRING_TOKEN(STR_ONE_OF_TEXT2), value = 1, flags = LATE_CHECK | RESET_REQUIRED;\r
+\r
+    endoneof;\r
+\r
+    oneof varid  = MyIfrNVData.QuestionAboutTreeHugging,\r
+      prompt      = STRING_TOKEN(STR_ONE_OF_PROMPT),\r
+      help        = STRING_TOKEN(STR_ONE_OF_HELP),  \r
+      option text = STRING_TOKEN(STR_ONE_OF_TEXT1), value = 0, flags = RESET_REQUIRED;\r
+      option text = STRING_TOKEN(STR_ONE_OF_TEXT2), value = 1, flags = DEFAULT | RESET_REQUIRED;\r
+      option text = STRING_TOKEN(STR_ONE_OF_TEXT3), value = 0x03, flags = RESET_REQUIRED;\r
+\r
+    endoneof;\r
+\r
+    string    varid    = MyIfrNVData.MyStringData,\r
+              prompt   = STRING_TOKEN(STR_MY_STRING_PROMPT2),\r
+              help     = STRING_TOKEN(STR_MY_STRING_HELP2),\r
+              flags    = INTERACTIVE,\r
+              key      = 0x1234,\r
+              minsize  = 6,\r
+              maxsize  = 0x14,\r
+    endstring; \r
+\r
+       text \r
+      help   = STRING_TOKEN(STR_GRAYOUT_TEST),  \r
+      text   = STRING_TOKEN(STR_GRAYOUT_TEST),\r
+           text   = STRING_TOKEN(STR_GRAYOUT_TEST),\r
+      flags  = INTERACTIVE,\r
+      key    = 0x1555;\r
+\r
+       text \r
+      help   = STRING_TOKEN(STR_SUPPRESS_TEST),  \r
+      text   = STRING_TOKEN(STR_SUPPRESS_TEST),\r
+           text   = STRING_TOKEN(STR_SUPPRESS_TEST),\r
+      flags  = INTERACTIVE,\r
+      key    = 0x1556;\r
+\r
+       text \r
+      help   = STRING_TOKEN(STR_CLEAR_TEST),  \r
+      text   = STRING_TOKEN(STR_CLEAR_TEST),\r
+           text   = STRING_TOKEN(STR_CLEAR_TEST),\r
+      flags  = INTERACTIVE,\r
+      key    = 0x1557;\r
+\r
+    grayoutif  vareqval var(VAR_EQ_TEST_NAME) == 0x1;\r
+    suppressif vareqval var(VAR_EQ_TEST_NAME) == 0x1000; \r
+      label 30;\r
+      checkbox varid    = MyIfrNVData.ChooseToActivateNuclearWeaponry,\r
+              prompt   = STRING_TOKEN(STR_CHECK_BOX_PROMPT),\r
+              help     = STRING_TOKEN(STR_CHECK_BOX_HELP),  \r
+              flags    = 1,\r
+              key      = 0,\r
+      endcheckbox;\r
+    endif;\r
+\r
+\r
+    numeric varid   = MyIfrNVData.HowOldAreYouInYearsManual, \r
+            prompt  = STRING_TOKEN(STR_NUMERIC_MANUAL_PROMPT),\r
+            help    = STRING_TOKEN(STR_NUMERIC_HELP0),\r
+            minimum = 0,\r
+            maximum = 0xf0,      // 0xf0 = 240 in decimal\r
+            step    = 0,         // Stepping of 0 equates to a manual entering\r
+                                 // of a value, otherwise it will auto-increment\r
+                                 // with a left/right arrow\r
+            default = 21, \r
+\r
+    endnumeric;\r
+\r
+    numeric varid   = MyIfrNVData.HowTallAreYouManual, \r
+            prompt  = STRING_TOKEN(STR_TALL_MANUAL_PROMPT),\r
+            help    = STRING_TOKEN(STR_NUMERIC_HELP1),\r
+            minimum = 0,\r
+            maximum = 300,\r
+            step    = 0,         // Stepping of 0 equates to a manual entering\r
+                                 // of a value, otherwise it will auto-increment\r
+                                 // with a left/right arrow\r
+            default = 175, \r
+\r
+    endnumeric;\r
+\r
+    inventory\r
+      help    = STRING_TOKEN(STR_INVENTORY_HELP),\r
+      text    = STRING_TOKEN(STR_INVENTORY_TEXT1),\r
+      text    = STRING_TOKEN(STR_INVENTORY_TEXT2);\r
+\r
+      \r
+    restore defaults,\r
+      formid  = 4,\r
+      prompt  = STRING_TOKEN(STR_RESTORE_DEFAULTS_PROMPT),\r
+      help    = STRING_TOKEN(STR_RESTORE_DEFAULTS_HELP),\r
+      flags   = 0,\r
+      key     = 0;\r
+\r
+    save defaults,\r
+      formid  = 4,\r
+      prompt  = STRING_TOKEN(STR_SAVE_DEFAULTS_PROMPT),\r
+      help    = STRING_TOKEN(STR_SAVE_DEFAULTS_HELP),\r
+      flags   = 0,\r
+      key     = 0;\r
+\r
+    // \r
+    // Case with no flags or key\r
+    //\r
+    save defaults,\r
+      formid  = 4,\r
+      prompt  = STRING_TOKEN(STR_SAVE_DEFAULTS_PROMPT),\r
+      help    = STRING_TOKEN(STR_SAVE_DEFAULTS_HELP);\r
+    //\r
+    // Case with no key\r
+    //\r
+    save defaults,\r
+      formid  = 4,\r
+      prompt  = STRING_TOKEN(STR_SAVE_DEFAULTS_PROMPT),\r
+      help    = STRING_TOKEN(STR_SAVE_DEFAULTS_HELP),\r
+      flags   = 0;\r
+    //\r
+    // Case with no flags\r
+    //\r
+    save defaults,\r
+      formid  = 4,\r
+      prompt  = STRING_TOKEN(STR_SAVE_DEFAULTS_PROMPT),\r
+      help    = STRING_TOKEN(STR_SAVE_DEFAULTS_HELP),\r
+      key     = 0;\r
+\r
+    label LABEL_2_VALUE;\r
+\r
+    grayoutif  ideqval MyIfrNVData.HowOldAreYouInYearsManual == 23 AND ideqval MyIfrNVData.SuppressGrayOutSomething == 0x1;\r
+    numeric varid   = MyIfrNVData.HowOldAreYouInYears,   \r
+            prompt  = STRING_TOKEN(STR_NUMERIC_PROMPT),\r
+            help    = STRING_TOKEN(STR_NUMERIC_HELP2),\r
+            minimum = 0,\r
+            maximum = 243,\r
+            step    = 3,\r
+            default = 18,\r
+\r
+    endnumeric;\r
+\r
+    label LABEL_1_VALUE;\r
+\r
+    //\r
+    // Numeric with no step or default specified\r
+    //\r
+    numeric varid   = MyIfrNVData.HowTallAreYou, \r
+            prompt  = STRING_TOKEN(STR_NUMERIC_PROMPT1),\r
+            help    = STRING_TOKEN(STR_NUMERIC_HELP3),\r
+            minimum = 0,\r
+            maximum = 190,\r
+    //        step    = 1,       // Stepping of 1 if not specified\r
+    //        default = minimum; // if not specified\r
+    endnumeric;\r
+    endif;\r
+\r
+    string    varid    = MyIfrNVData.MyStringData,\r
+              prompt   = STRING_TOKEN(STR_MY_STRING_PROMPT),\r
+              help     = STRING_TOKEN(STR_MY_STRING_HELP),\r
+              minsize  = 6,\r
+              maxsize  = 0x14,\r
+    endstring; \r
+        \r
+    password  varid    = MyIfrNVData.WhatIsThePassword,\r
+              prompt   = STRING_TOKEN(STR_PASSWORD_PROMPT),\r
+              help     = STRING_TOKEN(STR_PASSWORD_HELP),\r
+              minsize  = 6,\r
+              maxsize  = 20, // new opcode \r
+              encoding = 1,\r
+    endpassword; \r
+    password  varid    = MyIfrNVData.WhatIsThePassword2,\r
+              prompt   = STRING_TOKEN(STR_PASSWORD_PROMPT),\r
+              help     = STRING_TOKEN(STR_PASSWORD_HELP),\r
+              minsize  = 6,\r
+              maxsize  = 20, // new opcode \r
+              encoding = 1,\r
+    endpassword; \r
+    //\r
+    // Test with flags and key fields\r
+    //\r
+    password  varid    = MyIfrNVData.WhatIsThePassword,\r
+              prompt   = STRING_TOKEN(STR_PASSWORD_PROMPT),\r
+              help     = STRING_TOKEN(STR_PASSWORD_HELP),\r
+              flags    = INTERACTIVE,\r
+              key      = 0x2000,\r
+              minsize  = 6,\r
+              maxsize  = 20, // new opcode \r
+              encoding = 1,\r
+    endpassword;\r
+\r
+    goto 2, \r
+      prompt = STRING_TOKEN(STR_GOTO_FORM2), //SecondSetupPage  // this too has no end-op and basically it's a jump to a form ONLY\r
+      help   = STRING_TOKEN(STR_GOTO_HELP);\r
+\r
+    goto 3, \r
+      prompt = STRING_TOKEN(STR_GOTO_FORM3), //ThirdSetupPage  // this too has no end-op and basically it's a jump to a form ONLY\r
+      help   = STRING_TOKEN(STR_GOTO_HELP);\r
+\r
+  endform;\r
+\r
+  form formid = 2,               // SecondSetupPage, \r
+       title = STRING_TOKEN(STR_FORM2_TITLE);  // note formid is a variable (for readability) (UINT16) - also added Form to the line to signify the Op-Code\r
+\r
+\r
+    date    year varid  = Date.Year,    // Note that it is a member of NULL, so the RTC will be the system resource to retrieve and save from\r
+            prompt      = STRING_TOKEN(STR_DATE_PROMPT),\r
+            help        = STRING_TOKEN(STR_DATE_YEAR_HELP),\r
+            minimum     = 1998,\r
+            maximum     = 2099,\r
+            step        = 1,\r
+            default     = 2004,\r
+\r
+            month varid = Date.Month,    // Note that it is a member of NULL, so the RTC will be the system resource to retrieve and save from\r
+            prompt      = STRING_TOKEN(STR_DATE_PROMPT),\r
+            help        = STRING_TOKEN(STR_DATE_MONTH_HELP),\r
+            minimum     = 1,\r
+            maximum     = 12,\r
+            step        = 1,\r
+            default     = 1,\r
+\r
+            day varid   = Date.Day,          // Note that it is a member of NULL, so the RTC will be the system resource to retrieve and save from\r
+            prompt      = STRING_TOKEN(STR_DATE_PROMPT),\r
+            help        = STRING_TOKEN(STR_DATE_DAY_HELP),\r
+            minimum     = 1,\r
+            maximum     = 31,\r
+            step        = 0x1,\r
+            default     = 1,\r
+\r
+    enddate;\r
+\r
+    time    hour varid  = Time.Hours,         // Note that it is a member of NULL, so the RTC will be the system resource to retrieve and save from\r
+            prompt      = STRING_TOKEN(STR_TIME_PROMPT),\r
+            help        = STRING_TOKEN(STR_TIME_HOUR_HELP),\r
+            minimum     = 0,\r
+            maximum     = 23,\r
+            step        = 1,\r
+            default     = 0,\r
+\r
+            minute varid  = Time.Minutes,       // Note that it is a member of NULL, so the RTC will be the system resource to retrieve and save from\r
+            prompt        = STRING_TOKEN(STR_TIME_PROMPT),\r
+            help          = STRING_TOKEN(STR_TIME_MINUTE_HELP),\r
+            minimum       = 0,\r
+            maximum       = 59,\r
+            step          = 1,\r
+            default       = 0,\r
+\r
+            second varid  = Time.Seconds,       // Note that it is a member of NULL, so the RTC will be the system resource to retrieve and save from\r
+            prompt        = STRING_TOKEN(STR_TIME_PROMPT),\r
+            help          = STRING_TOKEN(STR_TIME_SECOND_HELP),\r
+            minimum       = 0,\r
+            maximum       = 59,\r
+            step          = 1,\r
+            default       = 0,\r
+\r
+    endtime;\r
+\r
+    date    year varid  = Date.Year,    // Note that it is a member of NULL, so the RTC will be the system resource to retrieve and save from\r
+            prompt      = STRING_TOKEN(STR_DATE_PROMPT),\r
+            help        = STRING_TOKEN(STR_DATE_YEAR_HELP),\r
+            minimum     = 1939,\r
+            maximum     = 2101,\r
+            step        = 1,\r
+            default     = 1964,\r
+\r
+            month varid = Date.Month,    // Note that it is a member of NULL, so the RTC will be the system resource to retrieve and save from\r
+            prompt      = STRING_TOKEN(STR_DATE_PROMPT),\r
+            help        = STRING_TOKEN(STR_DATE_MONTH_HELP),\r
+            minimum     = 1,\r
+            maximum     = 12,\r
+            step        = 1,\r
+            default     = 1,\r
+\r
+            day varid   = Date.Day,          // Note that it is a member of NULL, so the RTC will be the system resource to retrieve and save from\r
+            prompt      = STRING_TOKEN(STR_DATE_PROMPT),\r
+            help        = STRING_TOKEN(STR_DATE_DAY_HELP),\r
+            minimum     = 1,\r
+            maximum     = 31,\r
+            step        = 0x1,\r
+            default     = 1,\r
+\r
+    enddate;\r
+\r
+    time    hour varid  = Time.Hours,         // Note that it is a member of NULL, so the RTC will be the system resource to retrieve and save from\r
+            prompt      = STRING_TOKEN(STR_TIME_PROMPT),\r
+            help        = STRING_TOKEN(STR_TIME_HOUR_HELP),\r
+            minimum     = 0,\r
+            maximum     = 23,\r
+            step        = 1,\r
+            default     = 0,\r
+\r
+            minute varid  = Time.Minutes,       // Note that it is a member of NULL, so the RTC will be the system resource to retrieve and save from\r
+            prompt        = STRING_TOKEN(STR_TIME_PROMPT),\r
+            help          = STRING_TOKEN(STR_TIME_MINUTE_HELP),\r
+            minimum       = 0,\r
+            maximum       = 59,\r
+            step          = 1,\r
+            default       = 0,\r
+\r
+            second varid  = Time.Seconds,       // Note that it is a member of NULL, so the RTC will be the system resource to retrieve and save from\r
+            prompt        = STRING_TOKEN(STR_TIME_PROMPT),\r
+            help          = STRING_TOKEN(STR_TIME_SECOND_HELP),\r
+            minimum       = 0,\r
+            maximum       = 59,\r
+            step          = 1,\r
+            default       = 0,\r
+\r
+    endtime;\r
+\r
+    grayoutif \r
+      ideqval Date.Day == 21\r
+      AND\r
+      ideqval Date.Month == 8;\r
+    \r
+    hidden  value = 32, key = 0x7777;\r
+\r
+    endif; // grayoutif\r
+\r
+    suppressif\r
+      ideqval Date.Day == 8\r
+      AND\r
+      ideqval Date.Month == 21; \r
+    \r
+    hidden  value = 32, key = 0x7777;\r
+\r
+    endif; // suppressif\r
+\r
+\r
+    hidden  value = 32, key = 0x1234;\r
+\r
+    inconsistentif prompt = STRING_TOKEN(STR_ERROR_POPUP),\r
+      ideqval MyIfrNVData.HowOldAreYouInYearsManual == 4\r
+    endif;\r
+     \r
+    inconsistentif prompt = STRING_TOKEN(STR_ERROR_POPUP),\r
+      ideqvallist MyIfrNVData.HowOldAreYouInYearsManual == 1 2 3 4\r
+    endif;\r
+\r
+    inconsistentif prompt = STRING_TOKEN(STR_ERROR_POPUP),\r
+      ideqid MyIfrNVData.HowOldAreYouInYearsManual == MyIfrNVData.MyFavoriteNumber\r
+    endif;\r
+\r
+//    grayoutif \r
+//\r
+// If the day is 31 AND months is any of the following 2, 4, 6, 9, 11\r
+//\r
+    inconsistentif prompt = STRING_TOKEN(STR_ERROR_POPUP),\r
+      ideqval Date.Day == 31 \r
+      AND\r
+      ideqvallist Date.Month == 2 4 6 9 11\r
+    endif;\r
+\r
+//\r
+// If the day is 30 AND month is 2\r
+//\r
+    inconsistentif prompt = STRING_TOKEN(STR_ERROR_POPUP),\r
+      ideqval Date.Day == 30\r
+      AND\r
+      ideqval Date.Month == 2\r
+    endif;\r
+\r
+//\r
+// If the day is 29 AND month is 2 AND it year is NOT a leapyear\r
+//\r
+    inconsistentif prompt = STRING_TOKEN(STR_ERROR_POPUP),\r
+      ideqval Date.Day == 0x1D\r
+      AND\r
+      ideqval Date.Month == 2 \r
+      AND\r
+      NOT\r
+      ideqvallist Date.Year == 2004 2008 20012 20016 2020 2024 2028 2032 2036\r
+    endif;\r
+\r
+    checkbox varid    = MyIfrNVData.ChooseToActivateNuclearWeaponry,\r
+            prompt   = STRING_TOKEN(STR_CHECK_BOX_PROMPT),\r
+            help     = STRING_TOKEN(STR_CHECK_BOX_HELP),  \r
+            flags    = 1,\r
+            key      = 0,\r
+    endcheckbox;\r
+\r
+    text  \r
+      help = STRING_TOKEN(STR_TEXT_HELP),  \r
+      text = STRING_TOKEN(STR_TEXT_TEXT_1);\r
+    \r
+    text \r
+      help   = STRING_TOKEN(STR_TEXT_HELP),  \r
+      text   = STRING_TOKEN(STR_TEXT_TEXT_1),\r
+      text   = STRING_TOKEN(STR_TEXT_TEXT_2),\r
+      flags  = 0,\r
+      key    = MY_TEXT_KEY;\r
+         \r
+    goto 1, \r
+      prompt = STRING_TOKEN(STR_GOTO_FORM1), //MainSetupPage  // this too has no end-op and basically it's a jump to a form ONLY\r
+      help   = STRING_TOKEN(STR_GOTO_HELP);\r
+\r
+  endform;\r
+\r
+  form formid = 3, title = STRING_TOKEN(STR_FORM3_TITLE);  // note formid is a variable (for readability) (UINT16) - also added Form to the line to signify the Op-Code\r
+\r
+    grayoutif  ideqval MyIfrNVData.SuppressGrayOutSomething == 0x1;\r
+      text  \r
+        help = STRING_TOKEN(STR_TEXT_HELP),  \r
+        text = STRING_TOKEN(STR_TEXT_TEXT_1);\r
+        \r
+    endif; //end grayoutif\r
+    \r
+    text  \r
+      help = STRING_TOKEN(STR_TEXT_HELP),  \r
+      text = STRING_TOKEN(STR_TEXT_TEXT_1);\r
+    \r
+  endform;\r
+  \r
+  form formid = 4, title = STRING_TOKEN(STR_FORM3_TITLE);\r
+\r
+  endform;\r
+\r
+  form formid = 0x1234,            // Dynamically created page, \r
+       title = STRING_TOKEN(STR_DYNAMIC_TITLE);  // note formid is a variable (for readability) (UINT16) - also added Form to the line to signify the Op-Code\r
+\r
+    label 0x1234;\r
+\r
+  endform;\r
+\r
+endformset;\r