+ oneof varid = MyIfrNVData.SerialPortNo, \r
+ prompt = STRING_TOKEN(STR_SERIAL_PORT),\r
+ help = STRING_TOKEN(STR_ONE_OF_HELP),\r
+\r
+ read cond (get(MyIfrNVData.SerialPortStatus) != 0 ? 0 : cond ((get(MyIfrNVData.SerialPortIo) & 0xF00) >> 0x8 == get(MyIfrNVData.SerialPortIrq) - 1 ? UNDEFINED : map (get(MyIfrNVData.SerialPortIo) : 0x3f8,1; 0x2F8,2; 0x3E8,3; 0x2E8,4;)));\r
+ write set(MyIfrNVData.SerialPortStatus, pushthis != 0) AND set(MyIfrNVData.SerialPortIo, map (pushthis : 1,0x3F8; 2,0x2F8; 3,0x3E8; 4,0x2E8;)) AND set (MyIfrNVData.SerialPortIrq, map (pushthis: 1,4; 2,3; 3,4; 4,3;));\r
+ \r
+ option text = STRING_TOKEN(STR_SERIAL_PORT_DISABLE), value = 0x0, flags = DEFAULT;\r
+ option text = STRING_TOKEN(STR_SERIAL_PORT1), value = 0x1, flags = 0;\r
+ option text = STRING_TOKEN(STR_SERIAL_PORT2), value = 0x2, flags = 0;\r
+ option text = STRING_TOKEN(STR_SERIAL_PORT3), value = 0x3, flags = 0;\r
+ option text = STRING_TOKEN(STR_SERIAL_PORT4), value = 0x4, flags = 0;\r
+ endoneof;\r
+\r
+ grayoutif TRUE;\r
+ checkbox varid = MyIfrNVData.SerialPortStatus,\r
+ prompt = STRING_TOKEN(STR_SERIAL_PORT_STATUS),\r
+ help = STRING_TOKEN(STR_CHECK_BOX_HELP),\r
+ endcheckbox;\r
+ endif;\r
+\r
+ grayoutif TRUE;\r
+ suppressif ideqval MyIfrNVData.SerialPortStatus == 0;\r
+ oneof varid = MyIfrNVData.SerialPortIo, \r
+ prompt = STRING_TOKEN(STR_SERIAL_PORT_IO_ADDRESS),\r
+ help = STRING_TOKEN(STR_ONE_OF_HELP),\r
+ \r
+ option text = STRING_TOKEN(STR_SERIAL_PORT1_IOADDR), value = 0x3F8, flags = DEFAULT;\r
+ option text = STRING_TOKEN(STR_SERIAL_PORT2_IOADDR), value = 0x2F8, flags = 0;\r
+ option text = STRING_TOKEN(STR_SERIAL_PORT3_IOADDR), value = 0x3E8, flags = 0;\r
+ option text = STRING_TOKEN(STR_SERIAL_PORT4_IOADDR), value = 0x2E8, flags = 0;\r
+ endoneof;\r
+ endif;\r