diff --git a/Models/Instruments/MCDU1/PERF/TO/TO.xml b/Models/Instruments/MCDU1/PERF/TO/TO.xml index bf04aa88..993de71c 100644 --- a/Models/Instruments/MCDU1/PERF/TO/TO.xml +++ b/Models/Instruments/MCDU1/PERF/TO/TO.xml @@ -574,10 +574,58 @@ left-center yz-plane text-value - 1500/1500 + %s false BoeingCDU-Large.ttf - autopilot/serviceable + /systems/thrust/clbreduc-ft + true + false + false + 0.0040 + + 64 + 64 + + + + + thred + + -0.001 + -0.0355 + 0.030 + + left-center + yz-plane + text-value + /%s + false + BoeingCDU-Large.ttf + /it-autoflight/settings/reduc-agl-ft + true + false + false + 0.0040 + + 64 + 64 + + + + + thred2 + + -0.001 + -0.045 + 0.030 + + left-center + yz-plane + text-value + %s + false + BoeingCDU-Large.ttf + /systems/thrust/clbreduc-ft true false false @@ -588,6 +636,46 @@ + + thred2 + + -0.001 + -0.0335 + 0.030 + + left-center + yz-plane + text-value + /%s + false + BoeingCDU-Large.ttf + /it-autoflight/settings/reduc-agl-ft + true + false + false + 0.0050 + + 64 + 64 + + + + + select + thred + + /MCDUC/thracc-set + + + + + select + thred2 + + /MCDUC/thracc-set + + + flex2 @@ -842,6 +930,7 @@ trans2 eoaccel thred + thred2 flex 0 diff --git a/Models/Instruments/MCDU2/PERF/TO/TO.xml b/Models/Instruments/MCDU2/PERF/TO/TO.xml index bf04aa88..993de71c 100644 --- a/Models/Instruments/MCDU2/PERF/TO/TO.xml +++ b/Models/Instruments/MCDU2/PERF/TO/TO.xml @@ -574,10 +574,58 @@ left-center yz-plane text-value - 1500/1500 + %s false BoeingCDU-Large.ttf - autopilot/serviceable + /systems/thrust/clbreduc-ft + true + false + false + 0.0040 + + 64 + 64 + + + + + thred + + -0.001 + -0.0355 + 0.030 + + left-center + yz-plane + text-value + /%s + false + BoeingCDU-Large.ttf + /it-autoflight/settings/reduc-agl-ft + true + false + false + 0.0040 + + 64 + 64 + + + + + thred2 + + -0.001 + -0.045 + 0.030 + + left-center + yz-plane + text-value + %s + false + BoeingCDU-Large.ttf + /systems/thrust/clbreduc-ft true false false @@ -588,6 +636,46 @@ + + thred2 + + -0.001 + -0.0335 + 0.030 + + left-center + yz-plane + text-value + /%s + false + BoeingCDU-Large.ttf + /it-autoflight/settings/reduc-agl-ft + true + false + false + 0.0050 + + 64 + 64 + + + + + select + thred + + /MCDUC/thracc-set + + + + + select + thred2 + + /MCDUC/thracc-set + + + flex2 @@ -842,6 +930,7 @@ trans2 eoaccel thred + thred2 flex 0 diff --git a/Nasal/MCDU1.nas b/Nasal/MCDU1.nas index bbca2f14..9e9c9342 100644 --- a/Nasal/MCDU1.nas +++ b/Nasal/MCDU1.nas @@ -12,6 +12,7 @@ var MCDU_reset = func { setprop("/MCDU[0]/scratchpad", ""); setprop("/MCDUC/flight-num", ""); setprop("/MCDUC/flight-num-set", 0); + setprop("/MCDUC/thracc-set", 0); setprop("/FMGC/internal/dep-arpt", ""); setprop("/FMGC/internal/arr-arpt", ""); setprop("/FMGC/internal/tofrom-set", 0); @@ -38,6 +39,8 @@ var lskbutton = func(btn) { } else if (btn == "5") { if (getprop("/MCDU[0]/page") == "INITA") { initInputA("L5"); + } else if (getprop("/MCDU[0]/page") == "TO") { + PerfTOInput("L5"); } else if (getprop("/MCDU[0]/page") == "CLB") { perfCLBInput("L5"); } @@ -86,6 +89,7 @@ var initInputA = func(key) { setprop("/MCDUC/flight-num-set", 1); setprop("/MCDU[0]/scratchpad", ""); } else { + setprop("/MCDU[0]/scratchpad-msg", "1"); setprop("/MCDU[0]/scratchpad", "NOT ALLOWED"); } } @@ -105,9 +109,11 @@ var initInputA = func(key) { setprop("/FMGC/internal/cost-index-set", 1); setprop("/MCDU[0]/scratchpad", ""); } else { + setprop("/MCDU[0]/scratchpad-msg", "1"); setprop("/MCDU[0]/scratchpad", "NOT ALLOWED"); } } else { + setprop("/MCDU[0]/scratchpad-msg", "1"); setprop("/MCDU[0]/scratchpad", "NOT ALLOWED"); } } @@ -129,9 +135,11 @@ var initInputA = func(key) { setprop("/FMGC/internal/cruise-lvl-set", 1); setprop("/MCDU[0]/scratchpad", ""); } else { + setprop("/MCDU[0]/scratchpad-msg", "1"); setprop("/MCDU[0]/scratchpad", "NOT ALLOWED"); } } else { + setprop("/MCDU[0]/scratchpad-msg", "1"); setprop("/MCDU[0]/scratchpad", "NOT ALLOWED"); } } @@ -146,12 +154,21 @@ var initInputA = func(key) { var tfs = size(scratchpad); if (tfs == 9) { var fromto = split("/", scratchpad); - setprop("/FMGC/internal/dep-arpt", fromto[0]); - setprop("/FMGC/internal/arr-arpt", fromto[1]); - setprop("/FMGC/internal/tofrom-set", 1); - fmgc.updateARPT(); - setprop("/MCDU[0]/scratchpad", ""); + var froms = size(fromto[0]); + var tos = size(fromto[1]); + if (froms == 4 and tos == 4) { + setprop("/FMGC/internal/dep-arpt", fromto[0]); + setprop("/FMGC/internal/arr-arpt", fromto[1]); + setprop("/FMGC/internal/tofrom-set", 1); + fmgc.updateARPT(); + setprop("/MCDU[0]/scratchpad-msg", "1"); + setprop("/MCDU[0]/scratchpad", "GPS PRIMARY"); + } else { + setprop("/MCDU[0]/scratchpad-msg", "1"); + setprop("/MCDU[0]/scratchpad", "NOT ALLOWED"); + } } else { + setprop("/MCDU[0]/scratchpad-msg", "1"); setprop("/MCDU[0]/scratchpad", "NOT ALLOWED"); } } @@ -162,6 +179,39 @@ var initInputA = func(key) { } } +var PerfTOInput = func(key) { + var scratchpad = getprop("/MCDU[0]/scratchpad"); + if (key == "L5") { + if (scratchpad == "CLR") { + setprop("/systems/thrust/clbreduc-ft", "1500"); + setprop("/it-autoflight/settings/reduc-agl-ft", "3000"); + setprop("/MCDUC/thracc-set", 0); + setprop("/MCDU[0]/scratchpad", ""); + } else { + var tfs = size(scratchpad); + if (tfs == 9) { + var thracc = split("/", scratchpad); + var thrred = size(thracc[0]); + var acc = size(thracc[1]); + if ((thrred >= 1 and thrred <= 4) and (acc >= 1 and acc <= 4)) { + setprop("/systems/thrust/clbreduc-ft", thracc[0]); + setprop("/it-autoflight/settings/reduc-agl-ft", thracc[1]); + setprop("/MCDUC/thracc-set", 1); + setprop("/MCDU[0]/scratchpad", ""); + } else { + setprop("/MCDU[0]/scratchpad-msg", "1"); + setprop("/MCDU[0]/scratchpad", "NOT ALLOWED"); + } + } else { + setprop("/MCDU[0]/scratchpad-msg", "1"); + setprop("/MCDU[0]/scratchpad", "NOT ALLOWED"); + } + } + } else if (key == "R6") { + setprop("/MCDU[0]/page", "CLB"); + } +} + var perfCLBInput = func(key) { var scratchpad = getprop("/MCDU[0]/scratchpad"); if (key == "L5") { @@ -180,9 +230,11 @@ var perfCLBInput = func(key) { setprop("/FMGC/internal/cost-index-set", 1); setprop("/MCDU[0]/scratchpad", ""); } else { + setprop("/MCDU[0]/scratchpad-msg", "1"); setprop("/MCDU[0]/scratchpad", "NOT ALLOWED"); } } else { + setprop("/MCDU[0]/scratchpad-msg", "1"); setprop("/MCDU[0]/scratchpad", "NOT ALLOWED"); } } @@ -193,12 +245,6 @@ var perfCLBInput = func(key) { } } -var PerfTOInput = func(key) { - if (key == "R6") { - setprop("/MCDU[0]/page", "CLB"); - } -} - var perfCRZInput = func(key) { if (key == "L6") { setprop("/MCDU[0]/page", "CLB"); @@ -254,95 +300,136 @@ var button = func(btn) { var scratchpad = getprop("/MCDU[0]/scratchpad"); if (btn == "A") { setprop("/MCDU[0]/scratchpad", scratchpad ~ "A"); + setprop("/MCDU[0]/scratchpad-msg", "0"); } else if (btn == "B") { setprop("/MCDU[0]/scratchpad", scratchpad ~ "B"); + setprop("/MCDU[0]/scratchpad-msg", "0"); } else if (btn == "C") { setprop("/MCDU[0]/scratchpad", scratchpad ~ "C"); + setprop("/MCDU[0]/scratchpad-msg", "0"); } else if (btn == "D") { setprop("/MCDU[0]/scratchpad", scratchpad ~ "D"); + setprop("/MCDU[0]/scratchpad-msg", "0"); } else if (btn == "E") { setprop("/MCDU[0]/scratchpad", scratchpad ~ "E"); + setprop("/MCDU[0]/scratchpad-msg", "0"); } else if (btn == "F") { setprop("/MCDU[0]/scratchpad", scratchpad ~ "F"); + setprop("/MCDU[0]/scratchpad-msg", "0"); } else if (btn == "G") { setprop("/MCDU[0]/scratchpad", scratchpad ~ "G"); + setprop("/MCDU[0]/scratchpad-msg", "0"); } else if (btn == "H") { setprop("/MCDU[0]/scratchpad", scratchpad ~ "H"); + setprop("/MCDU[0]/scratchpad-msg", "0"); } else if (btn == "I") { setprop("/MCDU[0]/scratchpad", scratchpad ~ "I"); + setprop("/MCDU[0]/scratchpad-msg", "0"); } else if (btn == "J") { setprop("/MCDU[0]/scratchpad", scratchpad ~ "J"); + setprop("/MCDU[0]/scratchpad-msg", "0"); } else if (btn == "K") { setprop("/MCDU[0]/scratchpad", scratchpad ~ "K"); + setprop("/MCDU[0]/scratchpad-msg", "0"); } else if (btn == "L") { setprop("/MCDU[0]/scratchpad", scratchpad ~ "L"); + setprop("/MCDU[0]/scratchpad-msg", "0"); } else if (btn == "M") { setprop("/MCDU[0]/scratchpad", scratchpad ~ "M"); + setprop("/MCDU[0]/scratchpad-msg", "0"); } else if (btn == "N") { setprop("/MCDU[0]/scratchpad", scratchpad ~ "N"); + setprop("/MCDU[0]/scratchpad-msg", "0"); } else if (btn == "O") { setprop("/MCDU[0]/scratchpad", scratchpad ~ "O"); + setprop("/MCDU[0]/scratchpad-msg", "0"); } else if (btn == "P") { setprop("/MCDU[0]/scratchpad", scratchpad ~ "P"); + setprop("/MCDU[0]/scratchpad-msg", "0"); } else if (btn == "Q") { setprop("/MCDU[0]/scratchpad", scratchpad ~ "Q"); + setprop("/MCDU[0]/scratchpad-msg", "0"); } else if (btn == "R") { setprop("/MCDU[0]/scratchpad", scratchpad ~ "R"); + setprop("/MCDU[0]/scratchpad-msg", "0"); } else if (btn == "S") { setprop("/MCDU[0]/scratchpad", scratchpad ~ "S"); + setprop("/MCDU[0]/scratchpad-msg", "0"); } else if (btn == "T") { setprop("/MCDU[0]/scratchpad", scratchpad ~ "T"); + setprop("/MCDU[0]/scratchpad-msg", "0"); } else if (btn == "U") { setprop("/MCDU[0]/scratchpad", scratchpad ~ "U"); + setprop("/MCDU[0]/scratchpad-msg", "0"); } else if (btn == "V") { setprop("/MCDU[0]/scratchpad", scratchpad ~ "V"); + setprop("/MCDU[0]/scratchpad-msg", "0"); } else if (btn == "W") { setprop("/MCDU[0]/scratchpad", scratchpad ~ "W"); + setprop("/MCDU[0]/scratchpad-msg", "0"); } else if (btn == "X") { setprop("/MCDU[0]/scratchpad", scratchpad ~ "X"); + setprop("/MCDU[0]/scratchpad-msg", "0"); } else if (btn == "Y") { setprop("/MCDU[0]/scratchpad", scratchpad ~ "Y"); + setprop("/MCDU[0]/scratchpad-msg", "0"); } else if (btn == "Z") { setprop("/MCDU[0]/scratchpad", scratchpad ~ "Z"); + setprop("/MCDU[0]/scratchpad-msg", "0"); } else if (btn == "SLASH") { setprop("/MCDU[0]/scratchpad", scratchpad ~ "/"); + setprop("/MCDU[0]/scratchpad-msg", "0"); } else if (btn == "SP") { setprop("/MCDU[0]/scratchpad", scratchpad ~ " "); + setprop("/MCDU[0]/scratchpad-msg", "0"); } else if (btn == "CLR") { var scratchpad = getprop("/MCDU[0]/scratchpad"); if (size(scratchpad) == 0) { + setprop("/MCDU[0]/scratchpad-msg", "1"); setprop("/MCDU[0]/scratchpad", "CLR"); - } else if (scratchpad == "CLR") { - setprop("/MCDU[0]/scratchpad", ""); - } else if (scratchpad == "NOT ALLOWED") { + } else if (getprop("/MCDU[0]/scratchpad-msg") == 1) { setprop("/MCDU[0]/scratchpad", ""); + setprop("/MCDU[0]/scratchpad-msg", "0"); } else if (size(scratchpad) > 0) { setprop("/MCDU[0]/scratchpad", left(scratchpad, size(scratchpad)-1)); + setprop("/MCDU[0]/scratchpad-msg", "0"); } } else if (btn == "0") { setprop("/MCDU[0]/scratchpad", scratchpad ~ "0"); + setprop("/MCDU[0]/scratchpad-msg", "0"); } else if (btn == "1") { setprop("/MCDU[0]/scratchpad", scratchpad ~ "1"); + setprop("/MCDU[0]/scratchpad-msg", "0"); } else if (btn == "2") { setprop("/MCDU[0]/scratchpad", scratchpad ~ "2"); + setprop("/MCDU[0]/scratchpad-msg", "0"); } else if (btn == "3") { setprop("/MCDU[0]/scratchpad", scratchpad ~ "3"); + setprop("/MCDU[0]/scratchpad-msg", "0"); } else if (btn == "4") { setprop("/MCDU[0]/scratchpad", scratchpad ~ "4"); + setprop("/MCDU[0]/scratchpad-msg", "0"); } else if (btn == "5") { setprop("/MCDU[0]/scratchpad", scratchpad ~ "5"); + setprop("/MCDU[0]/scratchpad-msg", "0"); } else if (btn == "6") { setprop("/MCDU[0]/scratchpad", scratchpad ~ "6"); + setprop("/MCDU[0]/scratchpad-msg", "0"); } else if (btn == "7") { setprop("/MCDU[0]/scratchpad", scratchpad ~ "7"); + setprop("/MCDU[0]/scratchpad-msg", "0"); } else if (btn == "8") { setprop("/MCDU[0]/scratchpad", scratchpad ~ "8"); + setprop("/MCDU[0]/scratchpad-msg", "0"); } else if (btn == "9") { setprop("/MCDU[0]/scratchpad", scratchpad ~ "9"); + setprop("/MCDU[0]/scratchpad-msg", "0"); } else if (btn == "DOT") { setprop("/MCDU[0]/scratchpad", scratchpad ~ "."); + setprop("/MCDU[0]/scratchpad-msg", "0"); } else if (btn == "PLUSMINUS") { setprop("/MCDU[0]/scratchpad", scratchpad ~ "-"); + setprop("/MCDU[0]/scratchpad-msg", "0"); } } diff --git a/Nasal/MCDU2.nas b/Nasal/MCDU2.nas index bc1dd4d5..fb94d0ab 100644 --- a/Nasal/MCDU2.nas +++ b/Nasal/MCDU2.nas @@ -12,6 +12,7 @@ var MCDU_reset = func { setprop("/MCDU[1]/scratchpad", ""); setprop("/MCDUC/flight-num", ""); setprop("/MCDUC/flight-num-set", 0); + setprop("/MCDUC/thracc-set", 0); setprop("/FMGC/internal/dep-arpt", ""); setprop("/FMGC/internal/arr-arpt", ""); setprop("/FMGC/internal/tofrom-set", 0); @@ -38,6 +39,8 @@ var lskbutton = func(btn) { } else if (btn == "5") { if (getprop("/MCDU[1]/page") == "INITA") { initInputA("L5"); + } else if (getprop("/MCDU[1]/page") == "TO") { + PerfTOInput("L5"); } else if (getprop("/MCDU[1]/page") == "CLB") { perfCLBInput("L5"); } @@ -86,6 +89,7 @@ var initInputA = func(key) { setprop("/MCDUC/flight-num-set", 1); setprop("/MCDU[1]/scratchpad", ""); } else { + setprop("/MCDU[1]/scratchpad-msg", "1"); setprop("/MCDU[1]/scratchpad", "NOT ALLOWED"); } } @@ -105,9 +109,11 @@ var initInputA = func(key) { setprop("/FMGC/internal/cost-index-set", 1); setprop("/MCDU[1]/scratchpad", ""); } else { + setprop("/MCDU[1]/scratchpad-msg", "1"); setprop("/MCDU[1]/scratchpad", "NOT ALLOWED"); } } else { + setprop("/MCDU[1]/scratchpad-msg", "1"); setprop("/MCDU[1]/scratchpad", "NOT ALLOWED"); } } @@ -129,9 +135,11 @@ var initInputA = func(key) { setprop("/FMGC/internal/cruise-lvl-set", 1); setprop("/MCDU[1]/scratchpad", ""); } else { + setprop("/MCDU[1]/scratchpad-msg", "1"); setprop("/MCDU[1]/scratchpad", "NOT ALLOWED"); } } else { + setprop("/MCDU[1]/scratchpad-msg", "1"); setprop("/MCDU[1]/scratchpad", "NOT ALLOWED"); } } @@ -146,12 +154,21 @@ var initInputA = func(key) { var tfs = size(scratchpad); if (tfs == 9) { var fromto = split("/", scratchpad); - setprop("/FMGC/internal/dep-arpt", fromto[0]); - setprop("/FMGC/internal/arr-arpt", fromto[1]); - setprop("/FMGC/internal/tofrom-set", 1); - fmgc.updateARPT(); - setprop("/MCDU[1]/scratchpad", ""); + var froms = size(fromto[0]); + var tos = size(fromto[1]); + if (froms == 4 and tos == 4) { + setprop("/FMGC/internal/dep-arpt", fromto[0]); + setprop("/FMGC/internal/arr-arpt", fromto[1]); + setprop("/FMGC/internal/tofrom-set", 1); + fmgc.updateARPT(); + setprop("/MCDU[1]/scratchpad-msg", "1"); + setprop("/MCDU[1]/scratchpad", "GPS PRIMARY"); + } else { + setprop("/MCDU[1]/scratchpad-msg", "1"); + setprop("/MCDU[1]/scratchpad", "NOT ALLOWED"); + } } else { + setprop("/MCDU[1]/scratchpad-msg", "1"); setprop("/MCDU[1]/scratchpad", "NOT ALLOWED"); } } @@ -162,6 +179,39 @@ var initInputA = func(key) { } } +var PerfTOInput = func(key) { + var scratchpad = getprop("/MCDU[1]/scratchpad"); + if (key == "L5") { + if (scratchpad == "CLR") { + setprop("/systems/thrust/clbreduc-ft", "1500"); + setprop("/it-autoflight/settings/reduc-agl-ft", "3000"); + setprop("/MCDUC/thracc-set", 0); + setprop("/MCDU[1]/scratchpad", ""); + } else { + var tfs = size(scratchpad); + if (tfs == 9) { + var thracc = split("/", scratchpad); + var thrred = size(thracc[0]); + var acc = size(thracc[1]); + if ((thrred >= 1 and thrred <= 4) and (acc >= 1 and acc <= 4)) { + setprop("/systems/thrust/clbreduc-ft", thracc[0]); + setprop("/it-autoflight/settings/reduc-agl-ft", thracc[1]); + setprop("/MCDUC/thracc-set", 1); + setprop("/MCDU[1]/scratchpad", ""); + } else { + setprop("/MCDU[1]/scratchpad-msg", "1"); + setprop("/MCDU[1]/scratchpad", "NOT ALLOWED"); + } + } else { + setprop("/MCDU[1]/scratchpad-msg", "1"); + setprop("/MCDU[1]/scratchpad", "NOT ALLOWED"); + } + } + } else if (key == "R6") { + setprop("/MCDU[1]/page", "CLB"); + } +} + var perfCLBInput = func(key) { var scratchpad = getprop("/MCDU[1]/scratchpad"); if (key == "L5") { @@ -180,9 +230,11 @@ var perfCLBInput = func(key) { setprop("/FMGC/internal/cost-index-set", 1); setprop("/MCDU[1]/scratchpad", ""); } else { + setprop("/MCDU[1]/scratchpad-msg", "1"); setprop("/MCDU[1]/scratchpad", "NOT ALLOWED"); } } else { + setprop("/MCDU[1]/scratchpad-msg", "1"); setprop("/MCDU[1]/scratchpad", "NOT ALLOWED"); } } @@ -193,12 +245,6 @@ var perfCLBInput = func(key) { } } -var PerfTOInput = func(key) { - if (key == "R6") { - setprop("/MCDU[1]/page", "CLB"); - } -} - var perfCRZInput = func(key) { if (key == "L6") { setprop("/MCDU[1]/page", "CLB"); @@ -254,95 +300,136 @@ var button = func(btn) { var scratchpad = getprop("/MCDU[1]/scratchpad"); if (btn == "A") { setprop("/MCDU[1]/scratchpad", scratchpad ~ "A"); + setprop("/MCDU[1]/scratchpad-msg", "0"); } else if (btn == "B") { setprop("/MCDU[1]/scratchpad", scratchpad ~ "B"); + setprop("/MCDU[1]/scratchpad-msg", "0"); } else if (btn == "C") { setprop("/MCDU[1]/scratchpad", scratchpad ~ "C"); + setprop("/MCDU[1]/scratchpad-msg", "0"); } else if (btn == "D") { setprop("/MCDU[1]/scratchpad", scratchpad ~ "D"); + setprop("/MCDU[1]/scratchpad-msg", "0"); } else if (btn == "E") { setprop("/MCDU[1]/scratchpad", scratchpad ~ "E"); + setprop("/MCDU[1]/scratchpad-msg", "0"); } else if (btn == "F") { setprop("/MCDU[1]/scratchpad", scratchpad ~ "F"); + setprop("/MCDU[1]/scratchpad-msg", "0"); } else if (btn == "G") { setprop("/MCDU[1]/scratchpad", scratchpad ~ "G"); + setprop("/MCDU[1]/scratchpad-msg", "0"); } else if (btn == "H") { setprop("/MCDU[1]/scratchpad", scratchpad ~ "H"); + setprop("/MCDU[1]/scratchpad-msg", "0"); } else if (btn == "I") { setprop("/MCDU[1]/scratchpad", scratchpad ~ "I"); + setprop("/MCDU[1]/scratchpad-msg", "0"); } else if (btn == "J") { setprop("/MCDU[1]/scratchpad", scratchpad ~ "J"); + setprop("/MCDU[1]/scratchpad-msg", "0"); } else if (btn == "K") { setprop("/MCDU[1]/scratchpad", scratchpad ~ "K"); + setprop("/MCDU[1]/scratchpad-msg", "0"); } else if (btn == "L") { setprop("/MCDU[1]/scratchpad", scratchpad ~ "L"); + setprop("/MCDU[1]/scratchpad-msg", "0"); } else if (btn == "M") { setprop("/MCDU[1]/scratchpad", scratchpad ~ "M"); + setprop("/MCDU[1]/scratchpad-msg", "0"); } else if (btn == "N") { setprop("/MCDU[1]/scratchpad", scratchpad ~ "N"); + setprop("/MCDU[1]/scratchpad-msg", "0"); } else if (btn == "O") { setprop("/MCDU[1]/scratchpad", scratchpad ~ "O"); + setprop("/MCDU[1]/scratchpad-msg", "0"); } else if (btn == "P") { setprop("/MCDU[1]/scratchpad", scratchpad ~ "P"); + setprop("/MCDU[1]/scratchpad-msg", "0"); } else if (btn == "Q") { setprop("/MCDU[1]/scratchpad", scratchpad ~ "Q"); + setprop("/MCDU[1]/scratchpad-msg", "0"); } else if (btn == "R") { setprop("/MCDU[1]/scratchpad", scratchpad ~ "R"); + setprop("/MCDU[1]/scratchpad-msg", "0"); } else if (btn == "S") { setprop("/MCDU[1]/scratchpad", scratchpad ~ "S"); + setprop("/MCDU[1]/scratchpad-msg", "0"); } else if (btn == "T") { setprop("/MCDU[1]/scratchpad", scratchpad ~ "T"); + setprop("/MCDU[1]/scratchpad-msg", "0"); } else if (btn == "U") { setprop("/MCDU[1]/scratchpad", scratchpad ~ "U"); + setprop("/MCDU[1]/scratchpad-msg", "0"); } else if (btn == "V") { setprop("/MCDU[1]/scratchpad", scratchpad ~ "V"); + setprop("/MCDU[1]/scratchpad-msg", "0"); } else if (btn == "W") { setprop("/MCDU[1]/scratchpad", scratchpad ~ "W"); + setprop("/MCDU[1]/scratchpad-msg", "0"); } else if (btn == "X") { setprop("/MCDU[1]/scratchpad", scratchpad ~ "X"); + setprop("/MCDU[1]/scratchpad-msg", "0"); } else if (btn == "Y") { setprop("/MCDU[1]/scratchpad", scratchpad ~ "Y"); + setprop("/MCDU[1]/scratchpad-msg", "0"); } else if (btn == "Z") { setprop("/MCDU[1]/scratchpad", scratchpad ~ "Z"); + setprop("/MCDU[1]/scratchpad-msg", "0"); } else if (btn == "SLASH") { setprop("/MCDU[1]/scratchpad", scratchpad ~ "/"); + setprop("/MCDU[1]/scratchpad-msg", "0"); } else if (btn == "SP") { setprop("/MCDU[1]/scratchpad", scratchpad ~ " "); + setprop("/MCDU[1]/scratchpad-msg", "0"); } else if (btn == "CLR") { var scratchpad = getprop("/MCDU[1]/scratchpad"); if (size(scratchpad) == 0) { + setprop("/MCDU[1]/scratchpad-msg", "1"); setprop("/MCDU[1]/scratchpad", "CLR"); - } else if (scratchpad == "CLR") { - setprop("/MCDU[1]/scratchpad", ""); - } else if (scratchpad == "NOT ALLOWED") { + } else if (getprop("/MCDU[1]/scratchpad-msg") == 1) { setprop("/MCDU[1]/scratchpad", ""); + setprop("/MCDU[1]/scratchpad-msg", "0"); } else if (size(scratchpad) > 0) { setprop("/MCDU[1]/scratchpad", left(scratchpad, size(scratchpad)-1)); + setprop("/MCDU[1]/scratchpad-msg", "0"); } } else if (btn == "0") { setprop("/MCDU[1]/scratchpad", scratchpad ~ "0"); + setprop("/MCDU[1]/scratchpad-msg", "0"); } else if (btn == "1") { setprop("/MCDU[1]/scratchpad", scratchpad ~ "1"); + setprop("/MCDU[1]/scratchpad-msg", "0"); } else if (btn == "2") { setprop("/MCDU[1]/scratchpad", scratchpad ~ "2"); + setprop("/MCDU[1]/scratchpad-msg", "0"); } else if (btn == "3") { setprop("/MCDU[1]/scratchpad", scratchpad ~ "3"); + setprop("/MCDU[1]/scratchpad-msg", "0"); } else if (btn == "4") { setprop("/MCDU[1]/scratchpad", scratchpad ~ "4"); + setprop("/MCDU[1]/scratchpad-msg", "0"); } else if (btn == "5") { setprop("/MCDU[1]/scratchpad", scratchpad ~ "5"); + setprop("/MCDU[1]/scratchpad-msg", "0"); } else if (btn == "6") { setprop("/MCDU[1]/scratchpad", scratchpad ~ "6"); + setprop("/MCDU[1]/scratchpad-msg", "0"); } else if (btn == "7") { setprop("/MCDU[1]/scratchpad", scratchpad ~ "7"); + setprop("/MCDU[1]/scratchpad-msg", "0"); } else if (btn == "8") { setprop("/MCDU[1]/scratchpad", scratchpad ~ "8"); + setprop("/MCDU[1]/scratchpad-msg", "0"); } else if (btn == "9") { setprop("/MCDU[1]/scratchpad", scratchpad ~ "9"); + setprop("/MCDU[1]/scratchpad-msg", "0"); } else if (btn == "DOT") { setprop("/MCDU[1]/scratchpad", scratchpad ~ "."); + setprop("/MCDU[1]/scratchpad-msg", "0"); } else if (btn == "PLUSMINUS") { setprop("/MCDU[1]/scratchpad", scratchpad ~ "-"); + setprop("/MCDU[1]/scratchpad-msg", "0"); } }