diff --git a/A320-main.xml b/A320-main.xml
index 07fa111d..065f3dae 100644
--- a/A320-main.xml
+++ b/A320-main.xml
@@ -826,10 +826,24 @@
Aircraft/A320Family/Nasal/FMGC-b.nas
- Aircraft/A320Family/Nasal/MCDU/MCDU1.nas
+ Aircraft/A320Family/Nasal/MCDU1/MCDU.nas
+ Aircraft/A320Family/Nasal/MCDU1/INITA.nas
+ Aircraft/A320Family/Nasal/MCDU1/INITB.nas
+ Aircraft/A320Family/Nasal/MCDU1/PERFCLB.nas
+ Aircraft/A320Family/Nasal/MCDU1/PERFCRZ.nas
+ Aircraft/A320Family/Nasal/MCDU1/PERFDES.nas
+ Aircraft/A320Family/Nasal/MCDU1/PERFTO.nas
+ Aircraft/A320Family/Nasal/MCDU1/RADNAV.nas
- Aircraft/A320Family/Nasal/MCDU/MCDU2.nas
+ Aircraft/A320Family/Nasal/MCDU2/MCDU.nas
+ Aircraft/A320Family/Nasal/MCDU2/INITA.nas
+ Aircraft/A320Family/Nasal/MCDU2/INITB.nas
+ Aircraft/A320Family/Nasal/MCDU2/PERFCLB.nas
+ Aircraft/A320Family/Nasal/MCDU2/PERFCRZ.nas
+ Aircraft/A320Family/Nasal/MCDU2/PERFDES.nas
+ Aircraft/A320Family/Nasal/MCDU2/PERFTO.nas
+ Aircraft/A320Family/Nasal/MCDU2/RADNAV.nas
Aircraft/A320Family/Models/Instruments/ND/canvas/ND.nas
diff --git a/Nasal/MCDU/MCDU1.nas b/Nasal/MCDU/MCDU1.nas
deleted file mode 100644
index f0eeabc6..00000000
--- a/Nasal/MCDU/MCDU1.nas
+++ /dev/null
@@ -1,1118 +0,0 @@
-##################################################################
-# A3XX mCDU by Joshua Davidson (it0uchpods) and Jonathan Redpath #
-##################################################################
-
-var MCDU_init = func {
- setprop("/MCDU[0]/brightness", "1.0");
- MCDU_reset(); # Reset MCDU, clears data
-}
-
-var MCDU_reset = func {
- setprop("/it-autoflight/settings/togaspd", 157);
- setprop("/MCDU[0]/last-scratchpad", "");
- setprop("/MCDU[0]/last-fmgc-page", "STATUS");
- setprop("/MCDU[0]/page", "MCDU");
- setprop("/MCDU[0]/scratchpad", "SELECT DESIRED SYSTEM");
- setprop("/MCDU[0]/scratchpad-msg", 0);
- setprop("/MCDUC/flight-num", "");
- setprop("/MCDUC/thracc-set", 0);
- setprop("/MCDUC/reducacc-set", 0);
- setprop("/MCDUC/flight-num-set", 0);
- setprop("/FMGC/internal/flex", 0);
- setprop("/FMGC/internal/dep-arpt", "");
- setprop("/FMGC/internal/arr-arpt", "");
- setprop("/FMGC/internal/cruise-ft", 10000);
- setprop("/FMGC/internal/cruise-fl", 100);
- setprop("/FMGC/internal/cost-index", "0");
- setprop("/FMGC/internal/trans-alt", 18000);
- setprop("/FMGC/internal/reduc-agl-ft", "3000");
- setprop("/FMGC/internal/eng-out-reduc", "3500");
- setprop("/FMGC/internal/v1", 0);
- setprop("/FMGC/internal/vr", 0);
- setprop("/FMGC/internal/v2", 0);
- setprop("/FMGC/internal/block", 0.0);
- setprop("/FMGC/internal/v1-set", 0);
- setprop("/FMGC/internal/vr-set", 0);
- setprop("/FMGC/internal/v2-set", 0);
- setprop("/FMGC/internal/block-set", 0);
- setprop("/FMGC/internal/to-flap", 0);
- setprop("/FMGC/internal/to-ths", "0.0");
- setprop("/FMGC/internal/tofrom-set", 0);
- setprop("/FMGC/internal/cost-index-set", 0);
- setprop("/FMGC/internal/cruise-lvl-set", 0);
- setprop("/FMGC/internal/flap-ths-set", 0);
- setprop("/FMGC/internal/flex-set", 0);
- setprop("/FMGC/internal/vor1freq-set", 0);
- setprop("/FMGC/internal/vor1crs-set", 0);
- setprop("/FMGC/internal/vor2freq-set", 0);
- setprop("/FMGC/internal/vor2crs-set", 0);
-}
-
-var lskbutton = func(btn) {
- if (btn == "1") {
- if (getprop("/MCDU[0]/page") == "MCDU") {
- setprop("/MCDU[0]/page", getprop("/MCDU[0]/last-fmgc-page"));
- setprop("/MCDU[0]/scratchpad", "");
- } else if (getprop("/MCDU[0]/page") == "TO") {
- perfTOInput("L1");
- } else if (getprop("/MCDU[0]/page") == "RADNAV") {
- radnavInput("L1");
- } else {
- if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
- }
- setprop("/MCDU[0]/scratchpad-msg", "1");
- setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
- }
- } else if (btn == "2") {
- if (getprop("/MCDU[0]/page") == "INITA") {
- PerfInput("L2");
- } else if (getprop("/MCDU[0]/page") == "TO") {
- perfTOInput("L2");
- } else if (getprop("/MCDU[0]/page") == "RADNAV") {
- radnavInput("L2");
- } else if (getprop("/MCDU[0]/page") == "CLB") {
- initInputA("L5"); # Does the same thing as on the INIT page
- } else if (getprop("/MCDU[0]/page") == "CRZ") {
- initInputA("L5");
- } else if (getprop("/MCDU[0]/page") == "DES") {
- initInputA("L5");
- } else {
- if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
- }
- setprop("/MCDU[0]/scratchpad-msg", "1");
- setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
- }
- } else if (btn == "3") {
- if (getprop("/MCDU[0]/page") == "INITA") {
- initInputA("L3");
- } else if (getprop("/MCDU[0]/page") == "TO") {
- perfTOInput("L3");
- } else if (getprop("/MCDU[0]/page") == "RADNAV") {
- radnavInput("L3");
- } else {
- if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
- }
- setprop("/MCDU[0]/scratchpad-msg", "1");
- setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
- }
- } else if (btn == "4") {
- if (getprop("/MCDU[0]/page") == "DATA") {
- setprop("/MCDU[0]/page", "STATUS");
- } else if (getprop("/MCDU[0]/page") == "TO") {
- perfTOInput("L4");
- } else if (getprop("/MCDU[0]/page") == "RADNAV") {
- radnavInput("L4");
- } else {
- if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
- }
- setprop("/MCDU[0]/scratchpad-msg", "1");
- setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
- }
- } 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");
- } else if (getprop("/MCDU[0]/page") == "CRZ") {
- perfCRZInput("L5");
- } else if (getprop("/MCDU[0]/page") == "DES") {
- perfDESInput("L5");
- } else {
- if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
- }
- setprop("/MCDU[0]/scratchpad-msg", "1");
- setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
- }
- } else if (btn == "6") {
- if (getprop("/MCDU[0]/page") == "INITA") {
- initInputA("L6");
- } else if (getprop("/MCDU[0]/page") == "CLB") {
- perfCLBInput("L6");
- } else if (getprop("/MCDU[0]/page") == "CRZ") {
- perfCRZInput("L6");
- } else if (getprop("/MCDU[0]/page") == "DES") {
- perfDESInput("L6");
- } else {
- if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
- }
- setprop("/MCDU[0]/scratchpad-msg", "1");
- setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
- }
- }
-}
-
-var lskbutton_b = func(btn) {
- # Special Middle Click Functions
-}
-
-var rskbutton = func(btn) {
- if (btn == "1") {
- if (getprop("/MCDU[0]/page") == "INITA") {
- initInputA("R1");
- } else if (getprop("/MCDU[0]/page") == "RADNAV") {
- radnavInput("R1");
- } else {
- if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
- }
- setprop("/MCDU[0]/scratchpad-msg", "1");
- setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
- }
- } else if (btn == "2") {
- if (getprop("/MCDU[0]/page") == "INITB") {
- initInputB("R2");
- } else if (getprop("/MCDU[0]/page") == "RADNAV") {
- radnavInput("R2");
- } else {
- if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
- }
- setprop("/MCDU[0]/scratchpad-msg", "1");
- setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
- }
- } else if (btn == "3") {
- if (getprop("/MCDU[0]/page") == "INITA") {
- initInputA("R3");
- } else if (getprop("/MCDU[0]/page") == "TO") {
- perfTOInput("R3");
- } else {
- if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
- }
- setprop("/MCDU[0]/scratchpad-msg", "1");
- setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
- }
- } else if (btn == "4") {
- if (getprop("/MCDU[0]/page") == "TO") {
- perfTOInput("R4");
- } else if (getprop("/MCDU[0]/page") == "RADNAV") {
- radnavInput("R4");
- } else {
- if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
- }
- setprop("/MCDU[0]/scratchpad-msg", "1");
- setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
- }
- } else if (btn == "5") {
- if (getprop("/MCDU[0]/page") == "TO") {
- perfTOInput("R5");
- } else {
- if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
- }
- setprop("/MCDU[0]/scratchpad-msg", "1");
- setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
- }
- } else if (btn == "6") {
- if (getprop("/MCDU[0]/page") == "TO") {
- perfTOInput("R6");
- } else if (getprop("/MCDU[0]/page") == "CLB") {
- perfCLBInput("R6");
- } else if (getprop("/MCDU[0]/page") == "CRZ") {
- perfCRZInput("R6");
- } else {
- if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
- }
- setprop("/MCDU[0]/scratchpad-msg", "1");
- setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
- }
- }
-}
-
-var rskbutton_b = func(btn) {
- # Special Middle Click Functions
-}
-
-var radnavInput = func(key) {
- var scratchpad = getprop("/MCDU[0]/scratchpad");
- if (key == "L1") {
- if (scratchpad == "CLR") {
- setprop("/FMGC/internal/vor1freq-set", 0);
- setprop("/MCDU[0]/scratchpad-msg", "0");
- setprop("/MCDU[0]/scratchpad", "");
- } else {
- var tfs = size(scratchpad);
- if (tfs == 3 or tfs == 5 or tfs == 6) {
- if (scratchpad >= 108.10 and scratchpad <= 111.95) {
- if (scratchpad == 108.10 or scratchpad == 108.15 or scratchpad == 108.30 or scratchpad == 108.35 or scratchpad == 108.50 or scratchpad == 108.55 or scratchpad == 108.70 or scratchpad == 108.75 or scratchpad == 108.90 or scratchpad == 108.95
- or scratchpad == 109.10 or scratchpad == 109.15 or scratchpad == 109.30 or scratchpad == 109.35 or scratchpad == 109.50 or scratchpad == 109.55 or scratchpad == 109.70 or scratchpad == 109.75 or scratchpad == 109.90 or scratchpad == 109.95
- or scratchpad == 110.10 or scratchpad == 110.15 or scratchpad == 110.30 or scratchpad == 110.35 or scratchpad == 110.50 or scratchpad == 110.55 or scratchpad == 110.70 or scratchpad == 110.75 or scratchpad == 110.90 or scratchpad == 110.95
- or scratchpad == 111.10 or scratchpad == 111.15 or scratchpad == 111.30 or scratchpad == 111.35 or scratchpad == 111.50 or scratchpad == 111.55 or scratchpad == 111.70 or scratchpad == 111.75 or scratchpad == 111.90 or scratchpad == 111.95) {
- if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
- }
- setprop("/MCDU[0]/scratchpad-msg", "1");
- setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
- } else {
- setprop("/instrumentation/nav[0]/frequencies/selected-mhz", scratchpad);
- setprop("/FMGC/internal/vor1freq-set", 1);
- setprop("/MCDU[0]/scratchpad", "");
- }
- } else if (scratchpad >= 112.00 and scratchpad <= 117.95) {
- setprop("/instrumentation/nav[0]/frequencies/selected-mhz", scratchpad);
- setprop("/FMGC/internal/vor1freq-set", 1);
- setprop("/MCDU[0]/scratchpad", "");
- } else {
- if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
- }
- setprop("/MCDU[0]/scratchpad-msg", "1");
- setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
- }
- } else {
- if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
- }
- setprop("/MCDU[0]/scratchpad-msg", "1");
- setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
- }
- }
- } else if (key == "L2") {
- if (scratchpad == "CLR") {
- setprop("/FMGC/internal/vor1crs-set", 0);
- setprop("/MCDU[0]/scratchpad-msg", "0");
- setprop("/MCDU[0]/scratchpad", "");
- } else {
- var tfs = size(scratchpad);
- if (tfs >= 1 and tfs <= 3) {
- if (scratchpad >= 0 and scratchpad <= 360) {
- setprop("/instrumentation/nav[0]/radials/selected-deg", scratchpad);
- setprop("/FMGC/internal/vor1crs-set", 1);
- setprop("/MCDU[0]/scratchpad", "");
- } else {
- if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
- }
- setprop("/MCDU[0]/scratchpad-msg", "1");
- setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
- }
- } else {
- if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
- }
- setprop("/MCDU[0]/scratchpad-msg", "1");
- setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
- }
- }
- } else if (key == "L3") {
- if (scratchpad == "CLR") {
- setprop("/FMGC/internal/vor1freq-set", 0);
- setprop("/MCDU[0]/scratchpad-msg", "0");
- setprop("/MCDU[0]/scratchpad", "");
- } else {
- var tfs = size(scratchpad);
- if (tfs == 3 or tfs == 5 or tfs == 6) {
- if (scratchpad >= 108.10 and scratchpad <= 111.95) {
- if (scratchpad == 108.10 or scratchpad == 108.15 or scratchpad == 108.30 or scratchpad == 108.35 or scratchpad == 108.50 or scratchpad == 108.55 or scratchpad == 108.70 or scratchpad == 108.75 or scratchpad == 108.90 or scratchpad == 108.95
- or scratchpad == 109.10 or scratchpad == 109.15 or scratchpad == 109.30 or scratchpad == 109.35 or scratchpad == 109.50 or scratchpad == 109.55 or scratchpad == 109.70 or scratchpad == 109.75 or scratchpad == 109.90 or scratchpad == 109.95
- or scratchpad == 110.10 or scratchpad == 110.15 or scratchpad == 110.30 or scratchpad == 110.35 or scratchpad == 110.50 or scratchpad == 110.55 or scratchpad == 110.70 or scratchpad == 110.75 or scratchpad == 110.90 or scratchpad == 110.95
- or scratchpad == 111.10 or scratchpad == 111.15 or scratchpad == 111.30 or scratchpad == 111.35 or scratchpad == 111.50 or scratchpad == 111.55 or scratchpad == 111.70 or scratchpad == 111.75 or scratchpad == 111.90 or scratchpad == 111.95) {
- setprop("/instrumentation/nav[0]/frequencies/selected-mhz", scratchpad);
- setprop("/FMGC/internal/vor1freq-set", 1);
- setprop("/MCDU[0]/scratchpad", "");
- } else {
- if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
- }
- setprop("/MCDU[0]/scratchpad-msg", "1");
- setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
- }
- } else {
- if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
- }
- setprop("/MCDU[0]/scratchpad-msg", "1");
- setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
- }
- } else {
- if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
- }
- setprop("/MCDU[0]/scratchpad-msg", "1");
- setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
- }
- }
- } else if (key == "L4") {
- if (scratchpad == "CLR") {
- setprop("/FMGC/internal/vor1crs-set", 0);
- setprop("/MCDU[0]/scratchpad-msg", "0");
- setprop("/MCDU[0]/scratchpad", "");
- } else {
- var tfs = size(scratchpad);
- if (tfs >= 1 and tfs <= 3) {
- if (scratchpad >= 0 and scratchpad <= 360) {
- setprop("/instrumentation/nav[0]/radials/selected-deg", scratchpad);
- setprop("/FMGC/internal/vor1crs-set", 1);
- setprop("/MCDU[0]/scratchpad", "");
- } else {
- if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
- }
- setprop("/MCDU[0]/scratchpad-msg", "1");
- setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
- }
- } else {
- if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
- }
- setprop("/MCDU[0]/scratchpad-msg", "1");
- setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
- }
- }
- } else if (key == "R1") {
- if (scratchpad == "CLR") {
- setprop("/FMGC/internal/vor2freq-set", 0);
- setprop("/MCDU[0]/scratchpad-msg", "0");
- setprop("/MCDU[0]/scratchpad", "");
- } else {
- var tfs = size(scratchpad);
- if (tfs == 3 or tfs == 5 or tfs == 6) {
- if (scratchpad >= 108.10 and scratchpad <= 111.95) {
- if (scratchpad == 108.10 or scratchpad == 108.15 or scratchpad == 108.30 or scratchpad == 108.35 or scratchpad == 108.50 or scratchpad == 108.55 or scratchpad == 108.70 or scratchpad == 108.75 or scratchpad == 108.90 or scratchpad == 108.95
- or scratchpad == 109.10 or scratchpad == 109.15 or scratchpad == 109.30 or scratchpad == 109.35 or scratchpad == 109.50 or scratchpad == 109.55 or scratchpad == 109.70 or scratchpad == 109.75 or scratchpad == 109.90 or scratchpad == 109.95
- or scratchpad == 110.10 or scratchpad == 110.15 or scratchpad == 110.30 or scratchpad == 110.35 or scratchpad == 110.50 or scratchpad == 110.55 or scratchpad == 110.70 or scratchpad == 110.75 or scratchpad == 110.90 or scratchpad == 110.95
- or scratchpad == 111.10 or scratchpad == 111.15 or scratchpad == 111.30 or scratchpad == 111.35 or scratchpad == 111.50 or scratchpad == 111.55 or scratchpad == 111.70 or scratchpad == 111.75 or scratchpad == 111.90 or scratchpad == 111.95) {
- if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
- }
- setprop("/MCDU[0]/scratchpad-msg", "1");
- setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
- } else {
- setprop("/instrumentation/nav[1]/frequencies/selected-mhz", scratchpad);
- setprop("/FMGC/internal/vor2freq-set", 1);
- setprop("/MCDU[0]/scratchpad", "");
- }
- } else if (scratchpad >= 112.00 and scratchpad <= 117.95) {
- setprop("/instrumentation/nav[1]/frequencies/selected-mhz", scratchpad);
- setprop("/FMGC/internal/vor2freq-set", 1);
- setprop("/MCDU[0]/scratchpad", "");
- } else {
- if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
- }
- setprop("/MCDU[0]/scratchpad-msg", "1");
- setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
- }
- } else {
- if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
- }
- setprop("/MCDU[0]/scratchpad-msg", "1");
- setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
- }
- }
- } else if (key == "R2") {
- if (scratchpad == "CLR") {
- setprop("/FMGC/internal/vor2crs-set", 0);
- setprop("/MCDU[0]/scratchpad-msg", "0");
- setprop("/MCDU[0]/scratchpad", "");
- } else {
- var tfs = size(scratchpad);
- if (tfs >= 1 and tfs <= 3) {
- if (scratchpad >= 0 and scratchpad <= 360) {
- setprop("/instrumentation/nav[1]/radials/selected-deg", scratchpad);
- setprop("/FMGC/internal/vor2crs-set", 1);
- setprop("/MCDU[0]/scratchpad", "");
- } else {
- if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
- }
- setprop("/MCDU[0]/scratchpad-msg", "1");
- setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
- }
- } else {
- if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
- }
- setprop("/MCDU[0]/scratchpad-msg", "1");
- setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
- }
- }
- }
-}
-
-var initInputA = func(key) {
- var scratchpad = getprop("/MCDU[0]/scratchpad");
- if (key == "L3") {
- if (scratchpad == "CLR") {
- setprop("/MCDUC/flight-num", "");
- setprop("/MCDUC/flight-num-set", 0);
- setprop("/MCDU[0]/scratchpad-msg", "0");
- setprop("/MCDU[0]/scratchpad", "");
- } else {
- var flts = size(scratchpad);
- if (flts >= 1 and flts <= 8) {
- setprop("/MCDUC/flight-num", scratchpad);
- setprop("/MCDUC/flight-num-set", 1);
- setprop("/MCDU[0]/scratchpad", "");
- } else {
- if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
- }
- setprop("/MCDU[0]/scratchpad-msg", "1");
- setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
- }
- }
- } else if (key == "L5") {
- if (scratchpad == "CLR") {
- setprop("/FMGC/internal/cost-index", 0);
- setprop("/FMGC/internal/cost-index-set", 0);
- setprop("/MCDU[0]/scratchpad-msg", "0");
- setprop("/MCDU[0]/scratchpad", "");
- } else {
- var ci = int(scratchpad);
- var cis = size(scratchpad);
- if (cis >= 1 and cis <= 3) {
- if (ci == nil) {
- if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
- }
- setprop("/MCDU[0]/scratchpad-msg", "1");
- setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
- } else if (ci >= 0 and ci <= 120) {
- setprop("/FMGC/internal/cost-index", ci);
- setprop("/FMGC/internal/cost-index-set", 1);
- setprop("/MCDU[0]/scratchpad", "");
- } else {
- if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
- }
- setprop("/MCDU[0]/scratchpad-msg", "1");
- setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
- }
- } else {
- if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
- }
- setprop("/MCDU[0]/scratchpad-msg", "1");
- setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
- }
- }
- } else if (key == "L6") {
- if (scratchpad == "CLR") {
- setprop("/FMGC/internal/cruise-ft", 10000);
- setprop("/FMGC/internal/cruise-fl", 100);
- setprop("/FMGC/internal/cruise-lvl-set", 0);
- setprop("/MCDU[0]/scratchpad-msg", "0");
- setprop("/MCDU[0]/scratchpad", "");
- } else {
- var crz = int(scratchpad);
- var crzs = size(scratchpad);
- if (crzs >= 1 and crzs <= 3) {
- if (crz == nil) {
- if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
- }
- setprop("/MCDU[0]/scratchpad-msg", "1");
- setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
- } else if (crz > 0 and crz <= 430) {
- setprop("/FMGC/internal/cruise-ft", crz * 100);
- setprop("/FMGC/internal/cruise-fl", crz);
- setprop("/FMGC/internal/cruise-lvl-set", 1);
- setprop("/MCDU[0]/scratchpad", "");
- } else {
- if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
- }
- setprop("/MCDU[0]/scratchpad-msg", "1");
- setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
- }
- } else {
- if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
- }
- setprop("/MCDU[0]/scratchpad-msg", "1");
- setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
- }
- }
- } else if (key == "R1") {
- if (scratchpad == "CLR") {
- setprop("/FMGC/internal/dep-arpt", "");
- setprop("/FMGC/internal/arr-arpt", "");
- setprop("/FMGC/internal/tofrom-set", 0);
- fmgc.updateARPT();
- setprop("/MCDU[0]/scratchpad-msg", "0");
- setprop("/MCDU[0]/scratchpad", "");
- } else {
- var tfs = size(scratchpad);
- if (tfs == 9) {
- var fromto = split("/", 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);
- setprop("/MCDU[0]/scratchpad", "");
- fmgc.updateARPT();
- } else {
- if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
- }
- setprop("/MCDU[0]/scratchpad-msg", "1");
- setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
- }
- } else {
- if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
- }
- setprop("/MCDU[0]/scratchpad-msg", "1");
- setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
- }
- }
- } else if (key == "R3") {
- if (getprop("/controls/adirs/mcducbtn") == 0) {
- setprop("/controls/adirs/mcducbtn", 1);
- }
- }
-}
-
-var initInputB = func(key) {
- var scratchpad = getprop("/MCDU[0]/scratchpad");
- if (key == "R2") {
- if (scratchpad == "CLR") {
- setprop("/FMGC/internal/block", 0.0);
- setprop("/FMGC/internal/block-set", 0);
- setprop("/MCDU[0]/scratchpad-msg", "0");
- setprop("/MCDU[0]/scratchpad", "");
- } else {
- var tfs = size(scratchpad);
- var maxblock = getprop("/options/maxblock");
- if (tfs == 2 or tfs == 4 or tfs == 5) {
- if (scratchpad >= 1.0 and scratchpad <= maxblock) {
- setprop("/FMGC/internal/block", scratchpad);
- setprop("/FMGC/internal/block-set", 1);
- setprop("/MCDU[0]/scratchpad", "");
- } else {
- if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
- }
- setprop("/MCDU[0]/scratchpad-msg", "1");
- setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
- }
- } else {
- if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
- }
- setprop("/MCDU[0]/scratchpad-msg", "1");
- setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
- }
- }
- }
-}
-
-var perfTOInput = func(key) {
- var scratchpad = getprop("/MCDU[0]/scratchpad");
- if (key == "L1") {
- if (scratchpad == "CLR") {
- setprop("/FMGC/internal/v1", 0);
- setprop("/FMGC/internal/v1-set", 0);
- setprop("/MCDU[0]/scratchpad-msg", "0");
- setprop("/MCDU[0]/scratchpad", "");
- } else {
- var tfs = size(scratchpad);
- if (tfs == 3) {
- if (scratchpad >= 100 and scratchpad <= 200) {
- setprop("/FMGC/internal/v1", scratchpad);
- setprop("/FMGC/internal/v1-set", 1);
- setprop("/MCDU[0]/scratchpad", "");
- } else {
- if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
- }
- setprop("/MCDU[0]/scratchpad-msg", "1");
- setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
- }
- } else {
- if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
- }
- setprop("/MCDU[0]/scratchpad-msg", "1");
- setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
- }
- }
- } else if (key == "L2") {
- if (scratchpad == "CLR") {
- setprop("/FMGC/internal/vr", 0);
- setprop("/FMGC/internal/vr-set", 0);
- setprop("/MCDU[0]/scratchpad-msg", "0");
- setprop("/MCDU[0]/scratchpad", "");
- } else {
- var tfs = size(scratchpad);
- if (tfs == 3) {
- if (scratchpad >= 100 and scratchpad <= 200) {
- setprop("/FMGC/internal/vr", scratchpad);
- setprop("/FMGC/internal/vr-set", 1);
- setprop("/MCDU[0]/scratchpad", "");
- } else {
- if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
- }
- setprop("/MCDU[0]/scratchpad-msg", "1");
- setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
- }
- } else {
- if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
- }
- setprop("/MCDU[0]/scratchpad-msg", "1");
- setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
- }
- }
- } else if (key == "L3") {
- if (scratchpad == "CLR") {
- setprop("/FMGC/internal/v2", 0);
- setprop("/FMGC/internal/v2-set", 0);
- setprop("/it-autoflight/settings/togaspd", 157);
- setprop("/MCDU[0]/scratchpad-msg", "0");
- setprop("/MCDU[0]/scratchpad", "");
- } else {
- var tfs = size(scratchpad);
- if (tfs == 3) {
- if (scratchpad >= 100 and scratchpad <= 200) {
- setprop("/FMGC/internal/v2", scratchpad);
- setprop("/FMGC/internal/v2-set", 1);
- setprop("/it-autoflight/settings/togaspd", scratchpad + 10);
- setprop("/MCDU[0]/scratchpad", "");
- } else {
- if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
- }
- setprop("/MCDU[0]/scratchpad-msg", "1");
- setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
- }
- } else {
- if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
- }
- setprop("/MCDU[0]/scratchpad-msg", "1");
- setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
- }
- }
- } else if (key == "L4") {
- if (scratchpad == "CLR") {
- if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
- }
- setprop("/MCDU[0]/scratchpad-msg", "1");
- setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
- } else {
- var tfs = size(scratchpad);
- if (tfs == 4 or tfs == 5) {
- if (scratchpad >= 1000 and scratchpad <= 18000) {
- setprop("/FMGC/internal/trans-alt", scratchpad);
- setprop("/MCDU[0]/scratchpad", "");
- } else {
- if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
- }
- setprop("/MCDU[0]/scratchpad-msg", "1");
- setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
- }
- } else {
- if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
- }
- setprop("/MCDU[0]/scratchpad-msg", "1");
- setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
- }
- }
- } else if (key == "L5") {
- if (scratchpad == "CLR") {
- setprop("/systems/thrust/clbreduc-ft", "1500");
- setprop("/FMGC/internal/reduc-agl-ft", "3000");
- setprop("/MCDUC/thracc-set", 0);
- setprop("/MCDU[0]/scratchpad-msg", "0");
- setprop("/MCDU[0]/scratchpad", "");
- } else {
- var tfs = size(scratchpad);
- if (tfs >= 7 or tfs <= 9) {
- var thracc = split("/", scratchpad);
- var thrred = size(thracc[0]);
- var acc = size(thracc[1]);
- if ((thrred >= 3 and thrred <= 5) and (acc >= 3 and acc <= 5)) {
- setprop("/systems/thrust/clbreduc-ft", thracc[0]);
- setprop("/FMGC/internal/reduc-agl-ft", thracc[1]);
- setprop("/MCDUC/thracc-set", 1);
- setprop("/MCDU[0]/scratchpad", "");
- } else {
- if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
- }
- setprop("/MCDU[0]/scratchpad-msg", "1");
- setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
- }
- } else {
- if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
- }
- setprop("/MCDU[0]/scratchpad-msg", "1");
- setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
- }
- }
- } else if (key == "R6") {
- setprop("/MCDU[0]/page", "CLB");
- } else if (key == "R3") {
- if (scratchpad == "CLR") {
- setprop("/FMGC/internal/to-flap", 0);
- setprop("/FMGC/internal/to-ths", "0.0");
- setprop("/FMGC/internal/flap-ths-set", 0);
- setprop("/MCDU[0]/scratchpad-msg", "0");
- setprop("/MCDU[0]/scratchpad", "");
- } else {
- var tfs = size(scratchpad);
- if (tfs == 7) {
- var flapths = split("/UP", scratchpad);
- if ((flapths[0] >= 1 and flapths[0] <= 4) and (flapths[1] >= 0.0 and flapths[1] <= 2.5)) {
- setprop("/FMGC/internal/to-flap", flapths[0]);
- setprop("/FMGC/internal/to-ths", flapths[1]);
- setprop("/FMGC/internal/flap-ths-set", 1);
- setprop("/MCDU[0]/scratchpad", "");
- } else {
- if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
- }
- setprop("/MCDU[0]/scratchpad-msg", "1");
- setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
- }
- } else {
- if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
- }
- setprop("/MCDU[0]/scratchpad-msg", "1");
- setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
- }
- }
- } else if (key == "R4") {
- if (scratchpad == "CLR") {
- setprop("/FMGC/internal/flex", 0);
- setprop("/FMGC/internal/flex-set", 0);
- setprop("/MCDU[0]/scratchpad-msg", "0");
- setprop("/MCDU[0]/scratchpad", "");
- } else {
- var tfs = size(scratchpad);
- if (tfs == 1 or tfs == 2) {
- if (scratchpad >= 0 and scratchpad <= 70) {
- setprop("/FMGC/internal/flex", scratchpad);
- setprop("/FMGC/internal/flex-set", 1);
- var flex_calc = getprop("/FMGC/internal/flex") - getprop("/environment/temperature-degc");
- setprop("/FMGC/internal/flex-cmd", flex_calc);
- setprop("/MCDU[0]/scratchpad", "");
- } else {
- if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
- }
- setprop("/MCDU[0]/scratchpad-msg", "1");
- setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
- }
- } else {
- if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
- }
- setprop("/MCDU[0]/scratchpad-msg", "1");
- setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
- }
- }
- } else if (key == "R5") {
- if (scratchpad == "CLR") {
- setprop("/FMGC/internal/eng-out-reduc", "3500");
- setprop("/MCDUC/reducacc-set", 0);
- setprop("/MCDU[0]/scratchpad-msg", "0");
- setprop("/MCDU[0]/scratchpad", "");
- } else {
- var tfs = size(scratchpad);
- if (tfs >= 3 and tfs <= 5) {
- setprop("/FMGC/internal/eng-out-reduc", scratchpad);
- setprop("/MCDUC/reducacc-set", 1);
- setprop("/MCDU[0]/scratchpad", "");
- } else {
- if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
- }
- setprop("/MCDU[0]/scratchpad-msg", "1");
- setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
- }
- }
- }
-}
-
-var perfCLBInput = func(key) {
- var scratchpad = getprop("/MCDU[0]/scratchpad");
- if (key == "L5") {
- if (scratchpad == "CLR") {
- setprop("/FMGC/internal/cost-index", 0);
- setprop("/FMGC/internal/cost-index-set", 0);
- setprop("/MCDU[0]/scratchpad-msg", "0");
- setprop("/MCDU[0]/scratchpad", "");
- } else {
- var ci = int(scratchpad);
- var cis = size(scratchpad);
- if (cis >= 1 and cis <= 3) {
- if (ci == nil) {
- if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
- }
- setprop("/MCDU[0]/scratchpad-msg", "1");
- setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
- } else if (ci >= 0 and ci <= 120) {
- setprop("/FMGC/internal/cost-index", ci);
- setprop("/FMGC/internal/cost-index-set", 1);
- setprop("/MCDU[0]/scratchpad", "");
- } else {
- if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
- }
- setprop("/MCDU[0]/scratchpad-msg", "1");
- setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
- }
- } else {
- if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
- }
- setprop("/MCDU[0]/scratchpad-msg", "1");
- setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
- }
- }
- } else if (key == "L6") {
- setprop("/MCDU[0]/page", "TO");
- } else if (key == "R6") {
- setprop("/MCDU[0]/page", "CRZ");
- }
-}
-
-var perfCRZInput = func(key) {
- if (key == "L6") {
- setprop("/MCDU[0]/page", "CLB");
- }
- if (key == "R6") {
- setprop("/MCDU[0]/page", "DES");
- }
-}
-
-var perfDESInput = func(key) {
- if (key == "L6") {
- setprop("/MCDU[0]/page", "CRZ");
- }
-}
-
-var arrowbutton = func(btn) {
- if (btn == "left") {
- if (getprop("/MCDU[0]/page") == "DATA") {
- setprop("/MCDU[0]/page", "DATA2");
- } else if (getprop("/MCDU[0]/page") == "DATA2") {
- setprop("/MCDU[0]/page", "DATA");
- }
- if (getprop("/MCDU[0]/page") == "INITA") {
- setprop("/MCDU[0]/page", "INITB");
- } else if (getprop("/MCDU[0]/page") == "INITB") {
- setprop("/MCDU[0]/page", "INITA");
- }
- } else if (btn == "right") {
- if (getprop("/MCDU[0]/page") == "DATA") {
- setprop("/MCDU[0]/page", "DATA2");
- } else if (getprop("/MCDU[0]/page") == "DATA2") {
- setprop("/MCDU[0]/page", "DATA");
- }
- if (getprop("/MCDU[0]/page") == "INITA") {
- setprop("/MCDU[0]/page", "INITB");
- } else if (getprop("/MCDU[0]/page") == "INITB") {
- setprop("/MCDU[0]/page", "INITA");
- }
- } else if (btn == "up") {
- # Nothing for now
- } else if (btn == "down") {
- # Nothing for now
- }
-}
-
-var pagebutton = func(btn) {
- if (getprop("/MCDU[0]/page") != "MCDU") {
- if (btn == "radnav") {
- setprop("/MCDU[0]/page", "RADNAV");
- } else if (btn == "perf") {
- if (getprop("/FMGC/status/phase") == 0 or getprop("/FMGC/status/phase") == 1) {
- setprop("/MCDU[0]/page", "TO");
- } else if (getprop("/FMGC/status/phase") == 2) {
- setprop("/MCDU[0]/page", "CLB");
- } else if (getprop("/FMGC/status/phase") == 3) {
- setprop("/MCDU[0]/page", "CRZ");
- }
- } else if (btn == "init") {
- setprop("/MCDU[0]/page", "INITA");
- } else if (btn == "data") {
- setprop("/MCDU[0]/page", "DATA");
- } else if (btn == "mcdu") {
- setprop("/MCDU[0]/last-fmgc-page", getprop("/MCDU[0]/page"));
- setprop("/MCDU[0]/scratchpad", "SELECT DESIRED SYSTEM");
- setprop("/MCDU[0]/page", "MCDU");
- }
- }
-}
-
-var button = func(btn) {
- if (getprop("/MCDU[0]/scratchpad-msg") == 0 and getprop("/MCDU[0]/page") != "MCDU") {
- 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 (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");
- }
- } 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 (getprop("/MCDU[0]/scratchpad-msg") == 1) {
- setprop("/MCDU[0]/scratchpad", getprop("/MCDU[0]/last-scratchpad"));
- setprop("/MCDU[0]/scratchpad-msg", "0");
- }
- }
- }
-}
-
-var screenFlash = func(time) {
- var page = getprop("/MCDU[0]/page");
- setprop("/MCDU[0]/page", "NONE");
- settimer(func {
- setprop("/MCDU[0]/page", page);
- }, time);
-}
diff --git a/Nasal/MCDU/MCDU2.nas b/Nasal/MCDU/MCDU2.nas
deleted file mode 100644
index fd694830..00000000
--- a/Nasal/MCDU/MCDU2.nas
+++ /dev/null
@@ -1,1118 +0,0 @@
-##################################################################
-# A3XX mCDU by Joshua Davidson (it0uchpods) and Jonathan Redpath #
-##################################################################
-
-var MCDU_init = func {
- setprop("/MCDU[1]/brightness", "1.0");
- MCDU_reset(); # Reset MCDU, clears data
-}
-
-var MCDU_reset = func {
- setprop("/it-autoflight/settings/togaspd", 157);
- setprop("/MCDU[1]/last-scratchpad", "");
- setprop("/MCDU[1]/last-fmgc-page", "STATUS");
- setprop("/MCDU[1]/page", "MCDU");
- setprop("/MCDU[1]/scratchpad", "SELECT DESIRED SYSTEM");
- setprop("/MCDU[1]/scratchpad-msg", 0);
- setprop("/MCDUC/flight-num", "");
- setprop("/MCDUC/thracc-set", 0);
- setprop("/MCDUC/reducacc-set", 0);
- setprop("/MCDUC/flight-num-set", 0);
- setprop("/FMGC/internal/flex", 0);
- setprop("/FMGC/internal/dep-arpt", "");
- setprop("/FMGC/internal/arr-arpt", "");
- setprop("/FMGC/internal/cruise-ft", 10000);
- setprop("/FMGC/internal/cruise-fl", 100);
- setprop("/FMGC/internal/cost-index", "0");
- setprop("/FMGC/internal/trans-alt", 18000);
- setprop("/FMGC/internal/reduc-agl-ft", "3000");
- setprop("/FMGC/internal/eng-out-reduc", "3500");
- setprop("/FMGC/internal/v1", 0);
- setprop("/FMGC/internal/vr", 0);
- setprop("/FMGC/internal/v2", 0);
- setprop("/FMGC/internal/block", 0.0);
- setprop("/FMGC/internal/v1-set", 0);
- setprop("/FMGC/internal/vr-set", 0);
- setprop("/FMGC/internal/v2-set", 0);
- setprop("/FMGC/internal/block-set", 0);
- setprop("/FMGC/internal/to-flap", 0);
- setprop("/FMGC/internal/to-ths", "0.0");
- setprop("/FMGC/internal/tofrom-set", 0);
- setprop("/FMGC/internal/cost-index-set", 0);
- setprop("/FMGC/internal/cruise-lvl-set", 0);
- setprop("/FMGC/internal/flap-ths-set", 0);
- setprop("/FMGC/internal/flex-set", 0);
- setprop("/FMGC/internal/vor1freq-set", 0);
- setprop("/FMGC/internal/vor1crs-set", 0);
- setprop("/FMGC/internal/vor2freq-set", 0);
- setprop("/FMGC/internal/vor2crs-set", 0);
-}
-
-var lskbutton = func(btn) {
- if (btn == "1") {
- if (getprop("/MCDU[1]/page") == "MCDU") {
- setprop("/MCDU[1]/page", getprop("/MCDU[1]/last-fmgc-page"));
- setprop("/MCDU[1]/scratchpad", "");
- } else if (getprop("/MCDU[1]/page") == "TO") {
- perfTOInput("L1");
- } else if (getprop("/MCDU[1]/page") == "RADNAV") {
- radnavInput("L1");
- } else {
- if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
- }
- setprop("/MCDU[1]/scratchpad-msg", "1");
- setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
- }
- } else if (btn == "2") {
- if (getprop("/MCDU[1]/page") == "INITA") {
- PerfInput("L2");
- } else if (getprop("/MCDU[1]/page") == "TO") {
- perfTOInput("L2");
- } else if (getprop("/MCDU[1]/page") == "RADNAV") {
- radnavInput("L2");
- } else if (getprop("/MCDU[1]/page") == "CLB") {
- initInputA("L5"); # Does the same thing as on the INIT page
- } else if (getprop("/MCDU[1]/page") == "CRZ") {
- initInputA("L5");
- } else if (getprop("/MCDU[1]/page") == "DES") {
- initInputA("L5");
- } else {
- if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
- }
- setprop("/MCDU[1]/scratchpad-msg", "1");
- setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
- }
- } else if (btn == "3") {
- if (getprop("/MCDU[1]/page") == "INITA") {
- initInputA("L3");
- } else if (getprop("/MCDU[1]/page") == "TO") {
- perfTOInput("L3");
- } else if (getprop("/MCDU[1]/page") == "RADNAV") {
- radnavInput("L3");
- } else {
- if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
- }
- setprop("/MCDU[1]/scratchpad-msg", "1");
- setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
- }
- } else if (btn == "4") {
- if (getprop("/MCDU[1]/page") == "DATA") {
- setprop("/MCDU[1]/page", "STATUS");
- } else if (getprop("/MCDU[1]/page") == "TO") {
- perfTOInput("L4");
- } else if (getprop("/MCDU[1]/page") == "RADNAV") {
- radnavInput("L4");
- } else {
- if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
- }
- setprop("/MCDU[1]/scratchpad-msg", "1");
- setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
- }
- } 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");
- } else if (getprop("/MCDU[1]/page") == "CRZ") {
- perfCRZInput("L5");
- } else if (getprop("/MCDU[1]/page") == "DES") {
- perfDESInput("L5");
- } else {
- if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
- }
- setprop("/MCDU[1]/scratchpad-msg", "1");
- setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
- }
- } else if (btn == "6") {
- if (getprop("/MCDU[1]/page") == "INITA") {
- initInputA("L6");
- } else if (getprop("/MCDU[1]/page") == "CLB") {
- perfCLBInput("L6");
- } else if (getprop("/MCDU[1]/page") == "CRZ") {
- perfCRZInput("L6");
- } else if (getprop("/MCDU[1]/page") == "DES") {
- perfDESInput("L6");
- } else {
- if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
- }
- setprop("/MCDU[1]/scratchpad-msg", "1");
- setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
- }
- }
-}
-
-var lskbutton_b = func(btn) {
- # Special Middle Click Functions
-}
-
-var rskbutton = func(btn) {
- if (btn == "1") {
- if (getprop("/MCDU[1]/page") == "INITA") {
- initInputA("R1");
- } else if (getprop("/MCDU[1]/page") == "RADNAV") {
- radnavInput("R1");
- } else {
- if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
- }
- setprop("/MCDU[1]/scratchpad-msg", "1");
- setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
- }
- } else if (btn == "2") {
- if (getprop("/MCDU[1]/page") == "INITB") {
- initInputB("R2");
- } else if (getprop("/MCDU[1]/page") == "RADNAV") {
- radnavInput("R2");
- } else {
- if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
- }
- setprop("/MCDU[1]/scratchpad-msg", "1");
- setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
- }
- } else if (btn == "3") {
- if (getprop("/MCDU[1]/page") == "INITA") {
- initInputA("R3");
- } else if (getprop("/MCDU[1]/page") == "TO") {
- perfTOInput("R3");
- } else {
- if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
- }
- setprop("/MCDU[1]/scratchpad-msg", "1");
- setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
- }
- } else if (btn == "4") {
- if (getprop("/MCDU[1]/page") == "TO") {
- perfTOInput("R4");
- } else if (getprop("/MCDU[1]/page") == "RADNAV") {
- radnavInput("R4");
- } else {
- if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
- }
- setprop("/MCDU[1]/scratchpad-msg", "1");
- setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
- }
- } else if (btn == "5") {
- if (getprop("/MCDU[1]/page") == "TO") {
- perfTOInput("R5");
- } else {
- if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
- }
- setprop("/MCDU[1]/scratchpad-msg", "1");
- setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
- }
- } else if (btn == "6") {
- if (getprop("/MCDU[1]/page") == "TO") {
- perfTOInput("R6");
- } else if (getprop("/MCDU[1]/page") == "CLB") {
- perfCLBInput("R6");
- } else if (getprop("/MCDU[1]/page") == "CRZ") {
- perfCRZInput("R6");
- } else {
- if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
- }
- setprop("/MCDU[1]/scratchpad-msg", "1");
- setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
- }
- }
-}
-
-var rskbutton_b = func(btn) {
- # Special Middle Click Functions
-}
-
-var radnavInput = func(key) {
- var scratchpad = getprop("/MCDU[1]/scratchpad");
- if (key == "L1") {
- if (scratchpad == "CLR") {
- setprop("/FMGC/internal/vor1freq-set", 0);
- setprop("/MCDU[1]/scratchpad-msg", "0");
- setprop("/MCDU[1]/scratchpad", "");
- } else {
- var tfs = size(scratchpad);
- if (tfs == 3 or tfs == 5 or tfs == 6) {
- if (scratchpad >= 108.10 and scratchpad <= 111.95) {
- if (scratchpad == 108.10 or scratchpad == 108.15 or scratchpad == 108.30 or scratchpad == 108.35 or scratchpad == 108.50 or scratchpad == 108.55 or scratchpad == 108.70 or scratchpad == 108.75 or scratchpad == 108.90 or scratchpad == 108.95
- or scratchpad == 109.10 or scratchpad == 109.15 or scratchpad == 109.30 or scratchpad == 109.35 or scratchpad == 109.50 or scratchpad == 109.55 or scratchpad == 109.70 or scratchpad == 109.75 or scratchpad == 109.90 or scratchpad == 109.95
- or scratchpad == 110.10 or scratchpad == 110.15 or scratchpad == 110.30 or scratchpad == 110.35 or scratchpad == 110.50 or scratchpad == 110.55 or scratchpad == 110.70 or scratchpad == 110.75 or scratchpad == 110.90 or scratchpad == 110.95
- or scratchpad == 111.10 or scratchpad == 111.15 or scratchpad == 111.30 or scratchpad == 111.35 or scratchpad == 111.50 or scratchpad == 111.55 or scratchpad == 111.70 or scratchpad == 111.75 or scratchpad == 111.90 or scratchpad == 111.95) {
- if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
- }
- setprop("/MCDU[1]/scratchpad-msg", "1");
- setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
- } else {
- setprop("/instrumentation/nav[0]/frequencies/selected-mhz", scratchpad);
- setprop("/FMGC/internal/vor1freq-set", 1);
- setprop("/MCDU[1]/scratchpad", "");
- }
- } else if (scratchpad >= 112.00 and scratchpad <= 117.95) {
- setprop("/instrumentation/nav[0]/frequencies/selected-mhz", scratchpad);
- setprop("/FMGC/internal/vor1freq-set", 1);
- setprop("/MCDU[1]/scratchpad", "");
- } else {
- if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
- }
- setprop("/MCDU[1]/scratchpad-msg", "1");
- setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
- }
- } else {
- if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
- }
- setprop("/MCDU[1]/scratchpad-msg", "1");
- setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
- }
- }
- } else if (key == "L2") {
- if (scratchpad == "CLR") {
- setprop("/FMGC/internal/vor1crs-set", 0);
- setprop("/MCDU[1]/scratchpad-msg", "0");
- setprop("/MCDU[1]/scratchpad", "");
- } else {
- var tfs = size(scratchpad);
- if (tfs >= 1 and tfs <= 3) {
- if (scratchpad >= 0 and scratchpad <= 360) {
- setprop("/instrumentation/nav[0]/radials/selected-deg", scratchpad);
- setprop("/FMGC/internal/vor1crs-set", 1);
- setprop("/MCDU[1]/scratchpad", "");
- } else {
- if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
- }
- setprop("/MCDU[1]/scratchpad-msg", "1");
- setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
- }
- } else {
- if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
- }
- setprop("/MCDU[1]/scratchpad-msg", "1");
- setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
- }
- }
- } else if (key == "L3") {
- if (scratchpad == "CLR") {
- setprop("/FMGC/internal/vor1freq-set", 0);
- setprop("/MCDU[1]/scratchpad-msg", "0");
- setprop("/MCDU[1]/scratchpad", "");
- } else {
- var tfs = size(scratchpad);
- if (tfs == 3 or tfs == 5 or tfs == 6) {
- if (scratchpad >= 108.10 and scratchpad <= 111.95) {
- if (scratchpad == 108.10 or scratchpad == 108.15 or scratchpad == 108.30 or scratchpad == 108.35 or scratchpad == 108.50 or scratchpad == 108.55 or scratchpad == 108.70 or scratchpad == 108.75 or scratchpad == 108.90 or scratchpad == 108.95
- or scratchpad == 109.10 or scratchpad == 109.15 or scratchpad == 109.30 or scratchpad == 109.35 or scratchpad == 109.50 or scratchpad == 109.55 or scratchpad == 109.70 or scratchpad == 109.75 or scratchpad == 109.90 or scratchpad == 109.95
- or scratchpad == 110.10 or scratchpad == 110.15 or scratchpad == 110.30 or scratchpad == 110.35 or scratchpad == 110.50 or scratchpad == 110.55 or scratchpad == 110.70 or scratchpad == 110.75 or scratchpad == 110.90 or scratchpad == 110.95
- or scratchpad == 111.10 or scratchpad == 111.15 or scratchpad == 111.30 or scratchpad == 111.35 or scratchpad == 111.50 or scratchpad == 111.55 or scratchpad == 111.70 or scratchpad == 111.75 or scratchpad == 111.90 or scratchpad == 111.95) {
- setprop("/instrumentation/nav[0]/frequencies/selected-mhz", scratchpad);
- setprop("/FMGC/internal/vor1freq-set", 1);
- setprop("/MCDU[1]/scratchpad", "");
- } else {
- if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
- }
- setprop("/MCDU[1]/scratchpad-msg", "1");
- setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
- }
- } else {
- if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
- }
- setprop("/MCDU[1]/scratchpad-msg", "1");
- setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
- }
- } else {
- if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
- }
- setprop("/MCDU[1]/scratchpad-msg", "1");
- setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
- }
- }
- } else if (key == "L4") {
- if (scratchpad == "CLR") {
- setprop("/FMGC/internal/vor1crs-set", 0);
- setprop("/MCDU[1]/scratchpad-msg", "0");
- setprop("/MCDU[1]/scratchpad", "");
- } else {
- var tfs = size(scratchpad);
- if (tfs >= 1 and tfs <= 3) {
- if (scratchpad >= 0 and scratchpad <= 360) {
- setprop("/instrumentation/nav[0]/radials/selected-deg", scratchpad);
- setprop("/FMGC/internal/vor1crs-set", 1);
- setprop("/MCDU[1]/scratchpad", "");
- } else {
- if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
- }
- setprop("/MCDU[1]/scratchpad-msg", "1");
- setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
- }
- } else {
- if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
- }
- setprop("/MCDU[1]/scratchpad-msg", "1");
- setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
- }
- }
- } else if (key == "R1") {
- if (scratchpad == "CLR") {
- setprop("/FMGC/internal/vor2freq-set", 0);
- setprop("/MCDU[1]/scratchpad-msg", "0");
- setprop("/MCDU[1]/scratchpad", "");
- } else {
- var tfs = size(scratchpad);
- if (tfs == 3 or tfs == 5 or tfs == 6) {
- if (scratchpad >= 108.10 and scratchpad <= 111.95) {
- if (scratchpad == 108.10 or scratchpad == 108.15 or scratchpad == 108.30 or scratchpad == 108.35 or scratchpad == 108.50 or scratchpad == 108.55 or scratchpad == 108.70 or scratchpad == 108.75 or scratchpad == 108.90 or scratchpad == 108.95
- or scratchpad == 109.10 or scratchpad == 109.15 or scratchpad == 109.30 or scratchpad == 109.35 or scratchpad == 109.50 or scratchpad == 109.55 or scratchpad == 109.70 or scratchpad == 109.75 or scratchpad == 109.90 or scratchpad == 109.95
- or scratchpad == 110.10 or scratchpad == 110.15 or scratchpad == 110.30 or scratchpad == 110.35 or scratchpad == 110.50 or scratchpad == 110.55 or scratchpad == 110.70 or scratchpad == 110.75 or scratchpad == 110.90 or scratchpad == 110.95
- or scratchpad == 111.10 or scratchpad == 111.15 or scratchpad == 111.30 or scratchpad == 111.35 or scratchpad == 111.50 or scratchpad == 111.55 or scratchpad == 111.70 or scratchpad == 111.75 or scratchpad == 111.90 or scratchpad == 111.95) {
- if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
- }
- setprop("/MCDU[1]/scratchpad-msg", "1");
- setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
- } else {
- setprop("/instrumentation/nav[1]/frequencies/selected-mhz", scratchpad);
- setprop("/FMGC/internal/vor2freq-set", 1);
- setprop("/MCDU[1]/scratchpad", "");
- }
- } else if (scratchpad >= 112.00 and scratchpad <= 117.95) {
- setprop("/instrumentation/nav[1]/frequencies/selected-mhz", scratchpad);
- setprop("/FMGC/internal/vor2freq-set", 1);
- setprop("/MCDU[1]/scratchpad", "");
- } else {
- if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
- }
- setprop("/MCDU[1]/scratchpad-msg", "1");
- setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
- }
- } else {
- if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
- }
- setprop("/MCDU[1]/scratchpad-msg", "1");
- setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
- }
- }
- } else if (key == "R2") {
- if (scratchpad == "CLR") {
- setprop("/FMGC/internal/vor2crs-set", 0);
- setprop("/MCDU[1]/scratchpad-msg", "0");
- setprop("/MCDU[1]/scratchpad", "");
- } else {
- var tfs = size(scratchpad);
- if (tfs >= 1 and tfs <= 3) {
- if (scratchpad >= 0 and scratchpad <= 360) {
- setprop("/instrumentation/nav[1]/radials/selected-deg", scratchpad);
- setprop("/FMGC/internal/vor2crs-set", 1);
- setprop("/MCDU[1]/scratchpad", "");
- } else {
- if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
- }
- setprop("/MCDU[1]/scratchpad-msg", "1");
- setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
- }
- } else {
- if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
- }
- setprop("/MCDU[1]/scratchpad-msg", "1");
- setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
- }
- }
- }
-}
-
-var initInputA = func(key) {
- var scratchpad = getprop("/MCDU[1]/scratchpad");
- if (key == "L3") {
- if (scratchpad == "CLR") {
- setprop("/MCDUC/flight-num", "");
- setprop("/MCDUC/flight-num-set", 0);
- setprop("/MCDU[1]/scratchpad-msg", "0");
- setprop("/MCDU[1]/scratchpad", "");
- } else {
- var flts = size(scratchpad);
- if (flts >= 1 and flts <= 8) {
- setprop("/MCDUC/flight-num", scratchpad);
- setprop("/MCDUC/flight-num-set", 1);
- setprop("/MCDU[1]/scratchpad", "");
- } else {
- if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
- }
- setprop("/MCDU[1]/scratchpad-msg", "1");
- setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
- }
- }
- } else if (key == "L5") {
- if (scratchpad == "CLR") {
- setprop("/FMGC/internal/cost-index", 0);
- setprop("/FMGC/internal/cost-index-set", 0);
- setprop("/MCDU[1]/scratchpad-msg", "0");
- setprop("/MCDU[1]/scratchpad", "");
- } else {
- var ci = int(scratchpad);
- var cis = size(scratchpad);
- if (cis >= 1 and cis <= 3) {
- if (ci == nil) {
- if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
- }
- setprop("/MCDU[1]/scratchpad-msg", "1");
- setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
- } else if (ci >= 0 and ci <= 120) {
- setprop("/FMGC/internal/cost-index", ci);
- setprop("/FMGC/internal/cost-index-set", 1);
- setprop("/MCDU[1]/scratchpad", "");
- } else {
- if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
- }
- setprop("/MCDU[1]/scratchpad-msg", "1");
- setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
- }
- } else {
- if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
- }
- setprop("/MCDU[1]/scratchpad-msg", "1");
- setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
- }
- }
- } else if (key == "L6") {
- if (scratchpad == "CLR") {
- setprop("/FMGC/internal/cruise-ft", 10000);
- setprop("/FMGC/internal/cruise-fl", 100);
- setprop("/FMGC/internal/cruise-lvl-set", 0);
- setprop("/MCDU[1]/scratchpad-msg", "0");
- setprop("/MCDU[1]/scratchpad", "");
- } else {
- var crz = int(scratchpad);
- var crzs = size(scratchpad);
- if (crzs >= 1 and crzs <= 3) {
- if (crz == nil) {
- if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
- }
- setprop("/MCDU[1]/scratchpad-msg", "1");
- setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
- } else if (crz > 0 and crz <= 430) {
- setprop("/FMGC/internal/cruise-ft", crz * 100);
- setprop("/FMGC/internal/cruise-fl", crz);
- setprop("/FMGC/internal/cruise-lvl-set", 1);
- setprop("/MCDU[1]/scratchpad", "");
- } else {
- if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
- }
- setprop("/MCDU[1]/scratchpad-msg", "1");
- setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
- }
- } else {
- if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
- }
- setprop("/MCDU[1]/scratchpad-msg", "1");
- setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
- }
- }
- } else if (key == "R1") {
- if (scratchpad == "CLR") {
- setprop("/FMGC/internal/dep-arpt", "");
- setprop("/FMGC/internal/arr-arpt", "");
- setprop("/FMGC/internal/tofrom-set", 0);
- fmgc.updateARPT();
- setprop("/MCDU[1]/scratchpad-msg", "0");
- setprop("/MCDU[1]/scratchpad", "");
- } else {
- var tfs = size(scratchpad);
- if (tfs == 9) {
- var fromto = split("/", 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);
- setprop("/MCDU[1]/scratchpad", "");
- fmgc.updateARPT();
- } else {
- if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
- }
- setprop("/MCDU[1]/scratchpad-msg", "1");
- setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
- }
- } else {
- if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
- }
- setprop("/MCDU[1]/scratchpad-msg", "1");
- setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
- }
- }
- } else if (key == "R3") {
- if (getprop("/controls/adirs/mcducbtn") == 0) {
- setprop("/controls/adirs/mcducbtn", 1);
- }
- }
-}
-
-var initInputB = func(key) {
- var scratchpad = getprop("/MCDU[1]/scratchpad");
- if (key == "R2") {
- if (scratchpad == "CLR") {
- setprop("/FMGC/internal/block", 0.0);
- setprop("/FMGC/internal/block-set", 0);
- setprop("/MCDU[1]/scratchpad-msg", "0");
- setprop("/MCDU[1]/scratchpad", "");
- } else {
- var tfs = size(scratchpad);
- var maxblock = getprop("/options/maxblock");
- if (tfs == 2 or tfs == 4 or tfs == 5) {
- if (scratchpad >= 1.0 and scratchpad <= maxblock) {
- setprop("/FMGC/internal/block", scratchpad);
- setprop("/FMGC/internal/block-set", 1);
- setprop("/MCDU[1]/scratchpad", "");
- } else {
- if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
- }
- setprop("/MCDU[1]/scratchpad-msg", "1");
- setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
- }
- } else {
- if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
- }
- setprop("/MCDU[1]/scratchpad-msg", "1");
- setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
- }
- }
- }
-}
-
-var perfTOInput = func(key) {
- var scratchpad = getprop("/MCDU[1]/scratchpad");
- if (key == "L1") {
- if (scratchpad == "CLR") {
- setprop("/FMGC/internal/v1", 0);
- setprop("/FMGC/internal/v1-set", 0);
- setprop("/MCDU[1]/scratchpad-msg", "0");
- setprop("/MCDU[1]/scratchpad", "");
- } else {
- var tfs = size(scratchpad);
- if (tfs == 3) {
- if (scratchpad >= 100 and scratchpad <= 200) {
- setprop("/FMGC/internal/v1", scratchpad);
- setprop("/FMGC/internal/v1-set", 1);
- setprop("/MCDU[1]/scratchpad", "");
- } else {
- if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
- }
- setprop("/MCDU[1]/scratchpad-msg", "1");
- setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
- }
- } else {
- if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
- }
- setprop("/MCDU[1]/scratchpad-msg", "1");
- setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
- }
- }
- } else if (key == "L2") {
- if (scratchpad == "CLR") {
- setprop("/FMGC/internal/vr", 0);
- setprop("/FMGC/internal/vr-set", 0);
- setprop("/MCDU[1]/scratchpad-msg", "0");
- setprop("/MCDU[1]/scratchpad", "");
- } else {
- var tfs = size(scratchpad);
- if (tfs == 3) {
- if (scratchpad >= 100 and scratchpad <= 200) {
- setprop("/FMGC/internal/vr", scratchpad);
- setprop("/FMGC/internal/vr-set", 1);
- setprop("/MCDU[1]/scratchpad", "");
- } else {
- if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
- }
- setprop("/MCDU[1]/scratchpad-msg", "1");
- setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
- }
- } else {
- if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
- }
- setprop("/MCDU[1]/scratchpad-msg", "1");
- setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
- }
- }
- } else if (key == "L3") {
- if (scratchpad == "CLR") {
- setprop("/FMGC/internal/v2", 0);
- setprop("/FMGC/internal/v2-set", 0);
- setprop("/it-autoflight/settings/togaspd", 157);
- setprop("/MCDU[1]/scratchpad-msg", "0");
- setprop("/MCDU[1]/scratchpad", "");
- } else {
- var tfs = size(scratchpad);
- if (tfs == 3) {
- if (scratchpad >= 100 and scratchpad <= 200) {
- setprop("/FMGC/internal/v2", scratchpad);
- setprop("/FMGC/internal/v2-set", 1);
- setprop("/it-autoflight/settings/togaspd", scratchpad + 10);
- setprop("/MCDU[1]/scratchpad", "");
- } else {
- if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
- }
- setprop("/MCDU[1]/scratchpad-msg", "1");
- setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
- }
- } else {
- if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
- }
- setprop("/MCDU[1]/scratchpad-msg", "1");
- setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
- }
- }
- } else if (key == "L4") {
- if (scratchpad == "CLR") {
- if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
- }
- setprop("/MCDU[1]/scratchpad-msg", "1");
- setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
- } else {
- var tfs = size(scratchpad);
- if (tfs == 4 or tfs == 5) {
- if (scratchpad >= 1000 and scratchpad <= 18000) {
- setprop("/FMGC/internal/trans-alt", scratchpad);
- setprop("/MCDU[1]/scratchpad", "");
- } else {
- if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
- }
- setprop("/MCDU[1]/scratchpad-msg", "1");
- setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
- }
- } else {
- if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
- }
- setprop("/MCDU[1]/scratchpad-msg", "1");
- setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
- }
- }
- } else if (key == "L5") {
- if (scratchpad == "CLR") {
- setprop("/systems/thrust/clbreduc-ft", "1500");
- setprop("/FMGC/internal/reduc-agl-ft", "3000");
- setprop("/MCDUC/thracc-set", 0);
- setprop("/MCDU[1]/scratchpad-msg", "0");
- setprop("/MCDU[1]/scratchpad", "");
- } else {
- var tfs = size(scratchpad);
- if (tfs >= 7 or tfs <= 9) {
- var thracc = split("/", scratchpad);
- var thrred = size(thracc[0]);
- var acc = size(thracc[1]);
- if ((thrred >= 3 and thrred <= 5) and (acc >= 3 and acc <= 5)) {
- setprop("/systems/thrust/clbreduc-ft", thracc[0]);
- setprop("/FMGC/internal/reduc-agl-ft", thracc[1]);
- setprop("/MCDUC/thracc-set", 1);
- setprop("/MCDU[1]/scratchpad", "");
- } else {
- if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
- }
- setprop("/MCDU[1]/scratchpad-msg", "1");
- setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
- }
- } else {
- if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
- }
- setprop("/MCDU[1]/scratchpad-msg", "1");
- setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
- }
- }
- } else if (key == "R6") {
- setprop("/MCDU[1]/page", "CLB");
- } else if (key == "R3") {
- if (scratchpad == "CLR") {
- setprop("/FMGC/internal/to-flap", 0);
- setprop("/FMGC/internal/to-ths", "0.0");
- setprop("/FMGC/internal/flap-ths-set", 0);
- setprop("/MCDU[1]/scratchpad-msg", "0");
- setprop("/MCDU[1]/scratchpad", "");
- } else {
- var tfs = size(scratchpad);
- if (tfs == 7) {
- var flapths = split("/UP", scratchpad);
- if ((flapths[0] >= 1 and flapths[0] <= 4) and (flapths[1] >= 0.0 and flapths[1] <= 2.5)) {
- setprop("/FMGC/internal/to-flap", flapths[0]);
- setprop("/FMGC/internal/to-ths", flapths[1]);
- setprop("/FMGC/internal/flap-ths-set", 1);
- setprop("/MCDU[1]/scratchpad", "");
- } else {
- if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
- }
- setprop("/MCDU[1]/scratchpad-msg", "1");
- setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
- }
- } else {
- if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
- }
- setprop("/MCDU[1]/scratchpad-msg", "1");
- setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
- }
- }
- } else if (key == "R4") {
- if (scratchpad == "CLR") {
- setprop("/FMGC/internal/flex", 0);
- setprop("/FMGC/internal/flex-set", 0);
- setprop("/MCDU[1]/scratchpad-msg", "0");
- setprop("/MCDU[1]/scratchpad", "");
- } else {
- var tfs = size(scratchpad);
- if (tfs == 1 or tfs == 2) {
- if (scratchpad >= 0 and scratchpad <= 70) {
- setprop("/FMGC/internal/flex", scratchpad);
- setprop("/FMGC/internal/flex-set", 1);
- var flex_calc = getprop("/FMGC/internal/flex") - getprop("/environment/temperature-degc");
- setprop("/FMGC/internal/flex-cmd", flex_calc);
- setprop("/MCDU[1]/scratchpad", "");
- } else {
- if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
- }
- setprop("/MCDU[1]/scratchpad-msg", "1");
- setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
- }
- } else {
- if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
- }
- setprop("/MCDU[1]/scratchpad-msg", "1");
- setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
- }
- }
- } else if (key == "R5") {
- if (scratchpad == "CLR") {
- setprop("/FMGC/internal/eng-out-reduc", "3500");
- setprop("/MCDUC/reducacc-set", 0);
- setprop("/MCDU[1]/scratchpad-msg", "0");
- setprop("/MCDU[1]/scratchpad", "");
- } else {
- var tfs = size(scratchpad);
- if (tfs >= 3 and tfs <= 5) {
- setprop("/FMGC/internal/eng-out-reduc", scratchpad);
- setprop("/MCDUC/reducacc-set", 1);
- setprop("/MCDU[1]/scratchpad", "");
- } else {
- if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
- }
- setprop("/MCDU[1]/scratchpad-msg", "1");
- setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
- }
- }
- }
-}
-
-var perfCLBInput = func(key) {
- var scratchpad = getprop("/MCDU[1]/scratchpad");
- if (key == "L5") {
- if (scratchpad == "CLR") {
- setprop("/FMGC/internal/cost-index", 0);
- setprop("/FMGC/internal/cost-index-set", 0);
- setprop("/MCDU[1]/scratchpad-msg", "0");
- setprop("/MCDU[1]/scratchpad", "");
- } else {
- var ci = int(scratchpad);
- var cis = size(scratchpad);
- if (cis >= 1 and cis <= 3) {
- if (ci == nil) {
- if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
- }
- setprop("/MCDU[1]/scratchpad-msg", "1");
- setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
- } else if (ci >= 0 and ci <= 120) {
- setprop("/FMGC/internal/cost-index", ci);
- setprop("/FMGC/internal/cost-index-set", 1);
- setprop("/MCDU[1]/scratchpad", "");
- } else {
- if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
- }
- setprop("/MCDU[1]/scratchpad-msg", "1");
- setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
- }
- } else {
- if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
- setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
- }
- setprop("/MCDU[1]/scratchpad-msg", "1");
- setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
- }
- }
- } else if (key == "L6") {
- setprop("/MCDU[1]/page", "TO");
- } else if (key == "R6") {
- setprop("/MCDU[1]/page", "CRZ");
- }
-}
-
-var perfCRZInput = func(key) {
- if (key == "L6") {
- setprop("/MCDU[1]/page", "CLB");
- }
- if (key == "R6") {
- setprop("/MCDU[1]/page", "DES");
- }
-}
-
-var perfDESInput = func(key) {
- if (key == "L6") {
- setprop("/MCDU[1]/page", "CRZ");
- }
-}
-
-var arrowbutton = func(btn) {
- if (btn == "left") {
- if (getprop("/MCDU[1]/page") == "DATA") {
- setprop("/MCDU[1]/page", "DATA2");
- } else if (getprop("/MCDU[1]/page") == "DATA2") {
- setprop("/MCDU[1]/page", "DATA");
- }
- if (getprop("/MCDU[1]/page") == "INITA") {
- setprop("/MCDU[1]/page", "INITB");
- } else if (getprop("/MCDU[1]/page") == "INITB") {
- setprop("/MCDU[1]/page", "INITA");
- }
- } else if (btn == "right") {
- if (getprop("/MCDU[1]/page") == "DATA") {
- setprop("/MCDU[1]/page", "DATA2");
- } else if (getprop("/MCDU[1]/page") == "DATA2") {
- setprop("/MCDU[1]/page", "DATA");
- }
- if (getprop("/MCDU[1]/page") == "INITA") {
- setprop("/MCDU[1]/page", "INITB");
- } else if (getprop("/MCDU[1]/page") == "INITB") {
- setprop("/MCDU[1]/page", "INITA");
- }
- } else if (btn == "up") {
- # Nothing for now
- } else if (btn == "down") {
- # Nothing for now
- }
-}
-
-var pagebutton = func(btn) {
- if (getprop("/MCDU[1]/page") != "MCDU") {
- if (btn == "radnav") {
- setprop("/MCDU[1]/page", "RADNAV");
- } else if (btn == "perf") {
- if (getprop("/FMGC/status/phase") == 0 or getprop("/FMGC/status/phase") == 1) {
- setprop("/MCDU[1]/page", "TO");
- } else if (getprop("/FMGC/status/phase") == 2) {
- setprop("/MCDU[1]/page", "CLB");
- } else if (getprop("/FMGC/status/phase") == 3) {
- setprop("/MCDU[1]/page", "CRZ");
- }
- } else if (btn == "init") {
- setprop("/MCDU[1]/page", "INITA");
- } else if (btn == "data") {
- setprop("/MCDU[1]/page", "DATA");
- } else if (btn == "mcdu") {
- setprop("/MCDU[1]/last-fmgc-page", getprop("/MCDU[1]/page"));
- setprop("/MCDU[1]/scratchpad", "SELECT DESIRED SYSTEM");
- setprop("/MCDU[1]/page", "MCDU");
- }
- }
-}
-
-var button = func(btn) {
- if (getprop("/MCDU[1]/scratchpad-msg") == 0 and getprop("/MCDU[1]/page") != "MCDU") {
- 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 (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");
- }
- } 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 (getprop("/MCDU[1]/scratchpad-msg") == 1) {
- setprop("/MCDU[1]/scratchpad", getprop("/MCDU[1]/last-scratchpad"));
- setprop("/MCDU[1]/scratchpad-msg", "0");
- }
- }
- }
-}
-
-var screenFlash = func(time) {
- var page = getprop("/MCDU[1]/page");
- setprop("/MCDU[1]/page", "NONE");
- settimer(func {
- setprop("/MCDU[1]/page", page);
- }, time);
-}
diff --git a/Nasal/MCDU1/INITA.nas b/Nasal/MCDU1/INITA.nas
new file mode 100644
index 00000000..1f8dbbde
--- /dev/null
+++ b/Nasal/MCDU1/INITA.nas
@@ -0,0 +1,139 @@
+##################################################################
+# A3XX mCDU by Joshua Davidson (it0uchpods) and Jonathan Redpath #
+##################################################################
+
+var initInputA = func(key) {
+ var scratchpad = getprop("/MCDU[0]/scratchpad");
+ if (key == "L3") {
+ if (scratchpad == "CLR") {
+ setprop("/MCDUC/flight-num", "");
+ setprop("/MCDUC/flight-num-set", 0);
+ setprop("/MCDU[0]/scratchpad-msg", "0");
+ setprop("/MCDU[0]/scratchpad", "");
+ } else {
+ var flts = size(scratchpad);
+ if (flts >= 1 and flts <= 8) {
+ setprop("/MCDUC/flight-num", scratchpad);
+ setprop("/MCDUC/flight-num-set", 1);
+ setprop("/MCDU[0]/scratchpad", "");
+ } else {
+ if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
+ }
+ setprop("/MCDU[0]/scratchpad-msg", "1");
+ setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
+ }
+ }
+ } else if (key == "L5") {
+ if (scratchpad == "CLR") {
+ setprop("/FMGC/internal/cost-index", 0);
+ setprop("/FMGC/internal/cost-index-set", 0);
+ setprop("/MCDU[0]/scratchpad-msg", "0");
+ setprop("/MCDU[0]/scratchpad", "");
+ } else {
+ var ci = int(scratchpad);
+ var cis = size(scratchpad);
+ if (cis >= 1 and cis <= 3) {
+ if (ci == nil) {
+ if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
+ }
+ setprop("/MCDU[0]/scratchpad-msg", "1");
+ setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
+ } else if (ci >= 0 and ci <= 120) {
+ setprop("/FMGC/internal/cost-index", ci);
+ setprop("/FMGC/internal/cost-index-set", 1);
+ setprop("/MCDU[0]/scratchpad", "");
+ } else {
+ if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
+ }
+ setprop("/MCDU[0]/scratchpad-msg", "1");
+ setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
+ }
+ } else {
+ if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
+ }
+ setprop("/MCDU[0]/scratchpad-msg", "1");
+ setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
+ }
+ }
+ } else if (key == "L6") {
+ if (scratchpad == "CLR") {
+ setprop("/FMGC/internal/cruise-ft", 10000);
+ setprop("/FMGC/internal/cruise-fl", 100);
+ setprop("/FMGC/internal/cruise-lvl-set", 0);
+ setprop("/MCDU[0]/scratchpad-msg", "0");
+ setprop("/MCDU[0]/scratchpad", "");
+ } else {
+ var crz = int(scratchpad);
+ var crzs = size(scratchpad);
+ if (crzs >= 1 and crzs <= 3) {
+ if (crz == nil) {
+ if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
+ }
+ setprop("/MCDU[0]/scratchpad-msg", "1");
+ setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
+ } else if (crz > 0 and crz <= 430) {
+ setprop("/FMGC/internal/cruise-ft", crz * 100);
+ setprop("/FMGC/internal/cruise-fl", crz);
+ setprop("/FMGC/internal/cruise-lvl-set", 1);
+ setprop("/MCDU[0]/scratchpad", "");
+ } else {
+ if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
+ }
+ setprop("/MCDU[0]/scratchpad-msg", "1");
+ setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
+ }
+ } else {
+ if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
+ }
+ setprop("/MCDU[0]/scratchpad-msg", "1");
+ setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
+ }
+ }
+ } else if (key == "R1") {
+ if (scratchpad == "CLR") {
+ setprop("/FMGC/internal/dep-arpt", "");
+ setprop("/FMGC/internal/arr-arpt", "");
+ setprop("/FMGC/internal/tofrom-set", 0);
+ fmgc.updateARPT();
+ setprop("/MCDU[0]/scratchpad-msg", "0");
+ setprop("/MCDU[0]/scratchpad", "");
+ } else {
+ var tfs = size(scratchpad);
+ if (tfs == 9) {
+ var fromto = split("/", 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);
+ setprop("/MCDU[0]/scratchpad", "");
+ fmgc.updateARPT();
+ } else {
+ if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
+ }
+ setprop("/MCDU[0]/scratchpad-msg", "1");
+ setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
+ }
+ } else {
+ if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
+ }
+ setprop("/MCDU[0]/scratchpad-msg", "1");
+ setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
+ }
+ }
+ } else if (key == "R3") {
+ if (getprop("/controls/adirs/mcducbtn") == 0) {
+ setprop("/controls/adirs/mcducbtn", 1);
+ }
+ }
+}
diff --git a/Nasal/MCDU1/INITB.nas b/Nasal/MCDU1/INITB.nas
new file mode 100644
index 00000000..1c552b95
--- /dev/null
+++ b/Nasal/MCDU1/INITB.nas
@@ -0,0 +1,37 @@
+##################################################################
+# A3XX mCDU by Joshua Davidson (it0uchpods) and Jonathan Redpath #
+##################################################################
+
+var initInputB = func(key) {
+ var scratchpad = getprop("/MCDU[0]/scratchpad");
+ if (key == "R2") {
+ if (scratchpad == "CLR") {
+ setprop("/FMGC/internal/block", 0.0);
+ setprop("/FMGC/internal/block-set", 0);
+ setprop("/MCDU[0]/scratchpad-msg", "0");
+ setprop("/MCDU[0]/scratchpad", "");
+ } else {
+ var tfs = size(scratchpad);
+ var maxblock = getprop("/options/maxblock");
+ if (tfs == 2 or tfs == 4 or tfs == 5) {
+ if (scratchpad >= 1.0 and scratchpad <= maxblock) {
+ setprop("/FMGC/internal/block", scratchpad);
+ setprop("/FMGC/internal/block-set", 1);
+ setprop("/MCDU[0]/scratchpad", "");
+ } else {
+ if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
+ }
+ setprop("/MCDU[0]/scratchpad-msg", "1");
+ setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
+ }
+ } else {
+ if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
+ }
+ setprop("/MCDU[0]/scratchpad-msg", "1");
+ setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
+ }
+ }
+ }
+}
diff --git a/Nasal/MCDU1/MCDU.nas b/Nasal/MCDU1/MCDU.nas
new file mode 100644
index 00000000..4344bb80
--- /dev/null
+++ b/Nasal/MCDU1/MCDU.nas
@@ -0,0 +1,448 @@
+##################################################################
+# A3XX mCDU by Joshua Davidson (it0uchpods) and Jonathan Redpath #
+##################################################################
+
+var MCDU_init = func {
+ setprop("/MCDU[0]/brightness", "1.0");
+ MCDU_reset(); # Reset MCDU, clears data
+}
+
+var MCDU_reset = func {
+ setprop("/it-autoflight/settings/togaspd", 157);
+ setprop("/MCDU[0]/last-scratchpad", "");
+ setprop("/MCDU[0]/last-fmgc-page", "STATUS");
+ setprop("/MCDU[0]/page", "MCDU");
+ setprop("/MCDU[0]/scratchpad", "SELECT DESIRED SYSTEM");
+ setprop("/MCDU[0]/scratchpad-msg", 0);
+ setprop("/MCDUC/flight-num", "");
+ setprop("/MCDUC/thracc-set", 0);
+ setprop("/MCDUC/reducacc-set", 0);
+ setprop("/MCDUC/flight-num-set", 0);
+ setprop("/FMGC/internal/flex", 0);
+ setprop("/FMGC/internal/dep-arpt", "");
+ setprop("/FMGC/internal/arr-arpt", "");
+ setprop("/FMGC/internal/cruise-ft", 10000);
+ setprop("/FMGC/internal/cruise-fl", 100);
+ setprop("/FMGC/internal/cost-index", "0");
+ setprop("/FMGC/internal/trans-alt", 18000);
+ setprop("/FMGC/internal/reduc-agl-ft", "3000");
+ setprop("/FMGC/internal/eng-out-reduc", "3500");
+ setprop("/FMGC/internal/v1", 0);
+ setprop("/FMGC/internal/vr", 0);
+ setprop("/FMGC/internal/v2", 0);
+ setprop("/FMGC/internal/block", 0.0);
+ setprop("/FMGC/internal/v1-set", 0);
+ setprop("/FMGC/internal/vr-set", 0);
+ setprop("/FMGC/internal/v2-set", 0);
+ setprop("/FMGC/internal/block-set", 0);
+ setprop("/FMGC/internal/to-flap", 0);
+ setprop("/FMGC/internal/to-ths", "0.0");
+ setprop("/FMGC/internal/tofrom-set", 0);
+ setprop("/FMGC/internal/cost-index-set", 0);
+ setprop("/FMGC/internal/cruise-lvl-set", 0);
+ setprop("/FMGC/internal/flap-ths-set", 0);
+ setprop("/FMGC/internal/flex-set", 0);
+ setprop("/FMGC/internal/vor1freq-set", 0);
+ setprop("/FMGC/internal/vor1crs-set", 0);
+ setprop("/FMGC/internal/vor2freq-set", 0);
+ setprop("/FMGC/internal/vor2crs-set", 0);
+}
+
+var lskbutton = func(btn) {
+ if (btn == "1") {
+ if (getprop("/MCDU[0]/page") == "MCDU") {
+ setprop("/MCDU[0]/page", getprop("/MCDU[0]/last-fmgc-page"));
+ setprop("/MCDU[0]/scratchpad", "");
+ } else if (getprop("/MCDU[0]/page") == "TO") {
+ perfTOInput("L1");
+ } else if (getprop("/MCDU[0]/page") == "RADNAV") {
+ radnavInput("L1");
+ } else {
+ if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
+ }
+ setprop("/MCDU[0]/scratchpad-msg", "1");
+ setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
+ }
+ } else if (btn == "2") {
+ if (getprop("/MCDU[0]/page") == "INITA") {
+ PerfInput("L2");
+ } else if (getprop("/MCDU[0]/page") == "TO") {
+ perfTOInput("L2");
+ } else if (getprop("/MCDU[0]/page") == "RADNAV") {
+ radnavInput("L2");
+ } else if (getprop("/MCDU[0]/page") == "CLB") {
+ initInputA("L5"); # Does the same thing as on the INIT page
+ } else if (getprop("/MCDU[0]/page") == "CRZ") {
+ initInputA("L5");
+ } else if (getprop("/MCDU[0]/page") == "DES") {
+ initInputA("L5");
+ } else {
+ if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
+ }
+ setprop("/MCDU[0]/scratchpad-msg", "1");
+ setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
+ }
+ } else if (btn == "3") {
+ if (getprop("/MCDU[0]/page") == "INITA") {
+ initInputA("L3");
+ } else if (getprop("/MCDU[0]/page") == "TO") {
+ perfTOInput("L3");
+ } else if (getprop("/MCDU[0]/page") == "RADNAV") {
+ radnavInput("L3");
+ } else {
+ if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
+ }
+ setprop("/MCDU[0]/scratchpad-msg", "1");
+ setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
+ }
+ } else if (btn == "4") {
+ if (getprop("/MCDU[0]/page") == "DATA") {
+ setprop("/MCDU[0]/page", "STATUS");
+ } else if (getprop("/MCDU[0]/page") == "TO") {
+ perfTOInput("L4");
+ } else if (getprop("/MCDU[0]/page") == "RADNAV") {
+ radnavInput("L4");
+ } else {
+ if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
+ }
+ setprop("/MCDU[0]/scratchpad-msg", "1");
+ setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
+ }
+ } 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");
+ } else if (getprop("/MCDU[0]/page") == "CRZ") {
+ perfCRZInput("L5");
+ } else if (getprop("/MCDU[0]/page") == "DES") {
+ perfDESInput("L5");
+ } else {
+ if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
+ }
+ setprop("/MCDU[0]/scratchpad-msg", "1");
+ setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
+ }
+ } else if (btn == "6") {
+ if (getprop("/MCDU[0]/page") == "INITA") {
+ initInputA("L6");
+ } else if (getprop("/MCDU[0]/page") == "CLB") {
+ perfCLBInput("L6");
+ } else if (getprop("/MCDU[0]/page") == "CRZ") {
+ perfCRZInput("L6");
+ } else if (getprop("/MCDU[0]/page") == "DES") {
+ perfDESInput("L6");
+ } else {
+ if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
+ }
+ setprop("/MCDU[0]/scratchpad-msg", "1");
+ setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
+ }
+ }
+}
+
+var lskbutton_b = func(btn) {
+ # Special Middle Click Functions
+}
+
+var rskbutton = func(btn) {
+ if (btn == "1") {
+ if (getprop("/MCDU[0]/page") == "INITA") {
+ initInputA("R1");
+ } else if (getprop("/MCDU[0]/page") == "RADNAV") {
+ radnavInput("R1");
+ } else {
+ if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
+ }
+ setprop("/MCDU[0]/scratchpad-msg", "1");
+ setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
+ }
+ } else if (btn == "2") {
+ if (getprop("/MCDU[0]/page") == "INITB") {
+ initInputB("R2");
+ } else if (getprop("/MCDU[0]/page") == "RADNAV") {
+ radnavInput("R2");
+ } else {
+ if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
+ }
+ setprop("/MCDU[0]/scratchpad-msg", "1");
+ setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
+ }
+ } else if (btn == "3") {
+ if (getprop("/MCDU[0]/page") == "INITA") {
+ initInputA("R3");
+ } else if (getprop("/MCDU[0]/page") == "TO") {
+ perfTOInput("R3");
+ } else {
+ if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
+ }
+ setprop("/MCDU[0]/scratchpad-msg", "1");
+ setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
+ }
+ } else if (btn == "4") {
+ if (getprop("/MCDU[0]/page") == "TO") {
+ perfTOInput("R4");
+ } else if (getprop("/MCDU[0]/page") == "RADNAV") {
+ radnavInput("R4");
+ } else {
+ if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
+ }
+ setprop("/MCDU[0]/scratchpad-msg", "1");
+ setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
+ }
+ } else if (btn == "5") {
+ if (getprop("/MCDU[0]/page") == "TO") {
+ perfTOInput("R5");
+ } else {
+ if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
+ }
+ setprop("/MCDU[0]/scratchpad-msg", "1");
+ setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
+ }
+ } else if (btn == "6") {
+ if (getprop("/MCDU[0]/page") == "TO") {
+ perfTOInput("R6");
+ } else if (getprop("/MCDU[0]/page") == "CLB") {
+ perfCLBInput("R6");
+ } else if (getprop("/MCDU[0]/page") == "CRZ") {
+ perfCRZInput("R6");
+ } else {
+ if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
+ }
+ setprop("/MCDU[0]/scratchpad-msg", "1");
+ setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
+ }
+ }
+}
+
+var rskbutton_b = func(btn) {
+ # Special Middle Click Functions
+}
+
+var arrowbutton = func(btn) {
+ if (btn == "left") {
+ if (getprop("/MCDU[0]/page") == "DATA") {
+ setprop("/MCDU[0]/page", "DATA2");
+ } else if (getprop("/MCDU[0]/page") == "DATA2") {
+ setprop("/MCDU[0]/page", "DATA");
+ }
+ if (getprop("/MCDU[0]/page") == "INITA") {
+ setprop("/MCDU[0]/page", "INITB");
+ } else if (getprop("/MCDU[0]/page") == "INITB") {
+ setprop("/MCDU[0]/page", "INITA");
+ }
+ } else if (btn == "right") {
+ if (getprop("/MCDU[0]/page") == "DATA") {
+ setprop("/MCDU[0]/page", "DATA2");
+ } else if (getprop("/MCDU[0]/page") == "DATA2") {
+ setprop("/MCDU[0]/page", "DATA");
+ }
+ if (getprop("/MCDU[0]/page") == "INITA") {
+ setprop("/MCDU[0]/page", "INITB");
+ } else if (getprop("/MCDU[0]/page") == "INITB") {
+ setprop("/MCDU[0]/page", "INITA");
+ }
+ } else if (btn == "up") {
+ # Nothing for now
+ } else if (btn == "down") {
+ # Nothing for now
+ }
+}
+
+var pagebutton = func(btn) {
+ if (getprop("/MCDU[0]/page") != "MCDU") {
+ if (btn == "radnav") {
+ setprop("/MCDU[0]/page", "RADNAV");
+ } else if (btn == "perf") {
+ if (getprop("/FMGC/status/phase") == 0 or getprop("/FMGC/status/phase") == 1) {
+ setprop("/MCDU[0]/page", "TO");
+ } else if (getprop("/FMGC/status/phase") == 2) {
+ setprop("/MCDU[0]/page", "CLB");
+ } else if (getprop("/FMGC/status/phase") == 3) {
+ setprop("/MCDU[0]/page", "CRZ");
+ }
+ } else if (btn == "init") {
+ setprop("/MCDU[0]/page", "INITA");
+ } else if (btn == "data") {
+ setprop("/MCDU[0]/page", "DATA");
+ } else if (btn == "mcdu") {
+ setprop("/MCDU[0]/last-fmgc-page", getprop("/MCDU[0]/page"));
+ setprop("/MCDU[0]/scratchpad", "SELECT DESIRED SYSTEM");
+ setprop("/MCDU[0]/page", "MCDU");
+ }
+ }
+}
+
+var button = func(btn) {
+ if (getprop("/MCDU[0]/scratchpad-msg") == 0 and getprop("/MCDU[0]/page") != "MCDU") {
+ 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 (getprop("/MCDU[0]/scratchpad-msg") == 1) {
+ setprop("/MCDU[0]/scratchpad", "");
+ setprop("/MCDU[0]/scratchpad-msg", "0");
+ } else if (size(scratchpad) > 0) {
+ setprop("/MCDU[0]/last-scratchpad", "");
+ 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");
+ }
+ } 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 (getprop("/MCDU[0]/scratchpad-msg") == 1) {
+ setprop("/MCDU[0]/scratchpad", getprop("/MCDU[0]/last-scratchpad"));
+ setprop("/MCDU[0]/last-scratchpad", "");
+ setprop("/MCDU[0]/scratchpad-msg", "0");
+ }
+ }
+ }
+}
+
+var screenFlash = func(time) {
+ var page = getprop("/MCDU[0]/page");
+ setprop("/MCDU[0]/page", "NONE");
+ settimer(func {
+ setprop("/MCDU[0]/page", page);
+ }, time);
+}
diff --git a/Nasal/MCDU1/PERFCLB.nas b/Nasal/MCDU1/PERFCLB.nas
new file mode 100644
index 00000000..a6f36f38
--- /dev/null
+++ b/Nasal/MCDU1/PERFCLB.nas
@@ -0,0 +1,47 @@
+##################################################################
+# A3XX mCDU by Joshua Davidson (it0uchpods) and Jonathan Redpath #
+##################################################################
+
+var perfCLBInput = func(key) {
+ var scratchpad = getprop("/MCDU[0]/scratchpad");
+ if (key == "L5") {
+ if (scratchpad == "CLR") {
+ setprop("/FMGC/internal/cost-index", 0);
+ setprop("/FMGC/internal/cost-index-set", 0);
+ setprop("/MCDU[0]/scratchpad-msg", "0");
+ setprop("/MCDU[0]/scratchpad", "");
+ } else {
+ var ci = int(scratchpad);
+ var cis = size(scratchpad);
+ if (cis >= 1 and cis <= 3) {
+ if (ci == nil) {
+ if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
+ }
+ setprop("/MCDU[0]/scratchpad-msg", "1");
+ setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
+ } else if (ci >= 0 and ci <= 120) {
+ setprop("/FMGC/internal/cost-index", ci);
+ setprop("/FMGC/internal/cost-index-set", 1);
+ setprop("/MCDU[0]/scratchpad", "");
+ } else {
+ if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
+ }
+ setprop("/MCDU[0]/scratchpad-msg", "1");
+ setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
+ }
+ } else {
+ if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
+ }
+ setprop("/MCDU[0]/scratchpad-msg", "1");
+ setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
+ }
+ }
+ } else if (key == "L6") {
+ setprop("/MCDU[0]/page", "TO");
+ } else if (key == "R6") {
+ setprop("/MCDU[0]/page", "CRZ");
+ }
+}
diff --git a/Nasal/MCDU1/PERFCRZ.nas b/Nasal/MCDU1/PERFCRZ.nas
new file mode 100644
index 00000000..024f6a8e
--- /dev/null
+++ b/Nasal/MCDU1/PERFCRZ.nas
@@ -0,0 +1,12 @@
+##################################################################
+# A3XX mCDU by Joshua Davidson (it0uchpods) and Jonathan Redpath #
+##################################################################
+
+var perfCRZInput = func(key) {
+ if (key == "L6") {
+ setprop("/MCDU[0]/page", "CLB");
+ }
+ if (key == "R6") {
+ setprop("/MCDU[0]/page", "DES");
+ }
+}
diff --git a/Nasal/MCDU1/PERFDES.nas b/Nasal/MCDU1/PERFDES.nas
new file mode 100644
index 00000000..3900e64d
--- /dev/null
+++ b/Nasal/MCDU1/PERFDES.nas
@@ -0,0 +1,9 @@
+##################################################################
+# A3XX mCDU by Joshua Davidson (it0uchpods) and Jonathan Redpath #
+##################################################################
+
+var perfDESInput = func(key) {
+ if (key == "L6") {
+ setprop("/MCDU[0]/page", "CRZ");
+ }
+}
diff --git a/Nasal/MCDU1/PERFTO.nas b/Nasal/MCDU1/PERFTO.nas
new file mode 100644
index 00000000..3f5fb477
--- /dev/null
+++ b/Nasal/MCDU1/PERFTO.nas
@@ -0,0 +1,238 @@
+##################################################################
+# A3XX mCDU by Joshua Davidson (it0uchpods) and Jonathan Redpath #
+##################################################################
+
+var perfTOInput = func(key) {
+ var scratchpad = getprop("/MCDU[0]/scratchpad");
+ if (key == "L1") {
+ if (scratchpad == "CLR") {
+ setprop("/FMGC/internal/v1", 0);
+ setprop("/FMGC/internal/v1-set", 0);
+ setprop("/MCDU[0]/scratchpad-msg", "0");
+ setprop("/MCDU[0]/scratchpad", "");
+ } else {
+ var tfs = size(scratchpad);
+ if (tfs == 3) {
+ if (scratchpad >= 100 and scratchpad <= 200) {
+ setprop("/FMGC/internal/v1", scratchpad);
+ setprop("/FMGC/internal/v1-set", 1);
+ setprop("/MCDU[0]/scratchpad", "");
+ } else {
+ if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
+ }
+ setprop("/MCDU[0]/scratchpad-msg", "1");
+ setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
+ }
+ } else {
+ if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
+ }
+ setprop("/MCDU[0]/scratchpad-msg", "1");
+ setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
+ }
+ }
+ } else if (key == "L2") {
+ if (scratchpad == "CLR") {
+ setprop("/FMGC/internal/vr", 0);
+ setprop("/FMGC/internal/vr-set", 0);
+ setprop("/MCDU[0]/scratchpad-msg", "0");
+ setprop("/MCDU[0]/scratchpad", "");
+ } else {
+ var tfs = size(scratchpad);
+ if (tfs == 3) {
+ if (scratchpad >= 100 and scratchpad <= 200) {
+ setprop("/FMGC/internal/vr", scratchpad);
+ setprop("/FMGC/internal/vr-set", 1);
+ setprop("/MCDU[0]/scratchpad", "");
+ } else {
+ if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
+ }
+ setprop("/MCDU[0]/scratchpad-msg", "1");
+ setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
+ }
+ } else {
+ if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
+ }
+ setprop("/MCDU[0]/scratchpad-msg", "1");
+ setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
+ }
+ }
+ } else if (key == "L3") {
+ if (scratchpad == "CLR") {
+ setprop("/FMGC/internal/v2", 0);
+ setprop("/FMGC/internal/v2-set", 0);
+ setprop("/it-autoflight/settings/togaspd", 157);
+ setprop("/MCDU[0]/scratchpad-msg", "0");
+ setprop("/MCDU[0]/scratchpad", "");
+ } else {
+ var tfs = size(scratchpad);
+ if (tfs == 3) {
+ if (scratchpad >= 100 and scratchpad <= 200) {
+ setprop("/FMGC/internal/v2", scratchpad);
+ setprop("/FMGC/internal/v2-set", 1);
+ setprop("/it-autoflight/settings/togaspd", scratchpad + 10);
+ setprop("/MCDU[0]/scratchpad", "");
+ } else {
+ if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
+ }
+ setprop("/MCDU[0]/scratchpad-msg", "1");
+ setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
+ }
+ } else {
+ if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
+ }
+ setprop("/MCDU[0]/scratchpad-msg", "1");
+ setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
+ }
+ }
+ } else if (key == "L4") {
+ if (scratchpad == "CLR") {
+ if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
+ }
+ setprop("/MCDU[0]/scratchpad-msg", "1");
+ setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
+ } else {
+ var tfs = size(scratchpad);
+ if (tfs == 4 or tfs == 5) {
+ if (scratchpad >= 1000 and scratchpad <= 18000) {
+ setprop("/FMGC/internal/trans-alt", scratchpad);
+ setprop("/MCDU[0]/scratchpad", "");
+ } else {
+ if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
+ }
+ setprop("/MCDU[0]/scratchpad-msg", "1");
+ setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
+ }
+ } else {
+ if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
+ }
+ setprop("/MCDU[0]/scratchpad-msg", "1");
+ setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
+ }
+ }
+ } else if (key == "L5") {
+ if (scratchpad == "CLR") {
+ setprop("/systems/thrust/clbreduc-ft", "1500");
+ setprop("/FMGC/internal/reduc-agl-ft", "3000");
+ setprop("/MCDUC/thracc-set", 0);
+ setprop("/MCDU[0]/scratchpad-msg", "0");
+ setprop("/MCDU[0]/scratchpad", "");
+ } else {
+ var tfs = size(scratchpad);
+ if (tfs >= 7 or tfs <= 9) {
+ var thracc = split("/", scratchpad);
+ var thrred = size(thracc[0]);
+ var acc = size(thracc[1]);
+ if ((thrred >= 3 and thrred <= 5) and (acc >= 3 and acc <= 5)) {
+ setprop("/systems/thrust/clbreduc-ft", thracc[0]);
+ setprop("/FMGC/internal/reduc-agl-ft", thracc[1]);
+ setprop("/MCDUC/thracc-set", 1);
+ setprop("/MCDU[0]/scratchpad", "");
+ } else {
+ if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
+ }
+ setprop("/MCDU[0]/scratchpad-msg", "1");
+ setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
+ }
+ } else {
+ if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
+ }
+ setprop("/MCDU[0]/scratchpad-msg", "1");
+ setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
+ }
+ }
+ } else if (key == "R6") {
+ setprop("/MCDU[0]/page", "CLB");
+ } else if (key == "R3") {
+ if (scratchpad == "CLR") {
+ setprop("/FMGC/internal/to-flap", 0);
+ setprop("/FMGC/internal/to-ths", "0.0");
+ setprop("/FMGC/internal/flap-ths-set", 0);
+ setprop("/MCDU[0]/scratchpad-msg", "0");
+ setprop("/MCDU[0]/scratchpad", "");
+ } else {
+ var tfs = size(scratchpad);
+ if (tfs == 7) {
+ var flapths = split("/UP", scratchpad);
+ if ((flapths[0] >= 1 and flapths[0] <= 4) and (flapths[1] >= 0.0 and flapths[1] <= 2.5)) {
+ setprop("/FMGC/internal/to-flap", flapths[0]);
+ setprop("/FMGC/internal/to-ths", flapths[1]);
+ setprop("/FMGC/internal/flap-ths-set", 1);
+ setprop("/MCDU[0]/scratchpad", "");
+ } else {
+ if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
+ }
+ setprop("/MCDU[0]/scratchpad-msg", "1");
+ setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
+ }
+ } else {
+ if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
+ }
+ setprop("/MCDU[0]/scratchpad-msg", "1");
+ setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
+ }
+ }
+ } else if (key == "R4") {
+ if (scratchpad == "CLR") {
+ setprop("/FMGC/internal/flex", 0);
+ setprop("/FMGC/internal/flex-set", 0);
+ setprop("/MCDU[0]/scratchpad-msg", "0");
+ setprop("/MCDU[0]/scratchpad", "");
+ } else {
+ var tfs = size(scratchpad);
+ if (tfs == 1 or tfs == 2) {
+ if (scratchpad >= 0 and scratchpad <= 70) {
+ setprop("/FMGC/internal/flex", scratchpad);
+ setprop("/FMGC/internal/flex-set", 1);
+ var flex_calc = getprop("/FMGC/internal/flex") - getprop("/environment/temperature-degc");
+ setprop("/FMGC/internal/flex-cmd", flex_calc);
+ setprop("/MCDU[0]/scratchpad", "");
+ } else {
+ if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
+ }
+ setprop("/MCDU[0]/scratchpad-msg", "1");
+ setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
+ }
+ } else {
+ if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
+ }
+ setprop("/MCDU[0]/scratchpad-msg", "1");
+ setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
+ }
+ }
+ } else if (key == "R5") {
+ if (scratchpad == "CLR") {
+ setprop("/FMGC/internal/eng-out-reduc", "3500");
+ setprop("/MCDUC/reducacc-set", 0);
+ setprop("/MCDU[0]/scratchpad-msg", "0");
+ setprop("/MCDU[0]/scratchpad", "");
+ } else {
+ var tfs = size(scratchpad);
+ if (tfs >= 3 and tfs <= 5) {
+ setprop("/FMGC/internal/eng-out-reduc", scratchpad);
+ setprop("/MCDUC/reducacc-set", 1);
+ setprop("/MCDU[0]/scratchpad", "");
+ } else {
+ if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
+ }
+ setprop("/MCDU[0]/scratchpad-msg", "1");
+ setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
+ }
+ }
+ }
+}
diff --git a/Nasal/MCDU1/RADNAV.nas b/Nasal/MCDU1/RADNAV.nas
new file mode 100644
index 00000000..49260743
--- /dev/null
+++ b/Nasal/MCDU1/RADNAV.nas
@@ -0,0 +1,211 @@
+##################################################################
+# A3XX mCDU by Joshua Davidson (it0uchpods) and Jonathan Redpath #
+##################################################################
+
+var radnavInput = func(key) {
+ var scratchpad = getprop("/MCDU[0]/scratchpad");
+ if (key == "L1") {
+ if (scratchpad == "CLR") {
+ setprop("/FMGC/internal/vor1freq-set", 0);
+ setprop("/MCDU[0]/scratchpad-msg", "0");
+ setprop("/MCDU[0]/scratchpad", "");
+ } else {
+ var tfs = size(scratchpad);
+ if (tfs == 3 or tfs == 5 or tfs == 6) {
+ if (scratchpad >= 108.10 and scratchpad <= 111.95) {
+ if (scratchpad == 108.10 or scratchpad == 108.15 or scratchpad == 108.30 or scratchpad == 108.35 or scratchpad == 108.50 or scratchpad == 108.55 or scratchpad == 108.70 or scratchpad == 108.75 or scratchpad == 108.90 or scratchpad == 108.95
+ or scratchpad == 109.10 or scratchpad == 109.15 or scratchpad == 109.30 or scratchpad == 109.35 or scratchpad == 109.50 or scratchpad == 109.55 or scratchpad == 109.70 or scratchpad == 109.75 or scratchpad == 109.90 or scratchpad == 109.95
+ or scratchpad == 110.10 or scratchpad == 110.15 or scratchpad == 110.30 or scratchpad == 110.35 or scratchpad == 110.50 or scratchpad == 110.55 or scratchpad == 110.70 or scratchpad == 110.75 or scratchpad == 110.90 or scratchpad == 110.95
+ or scratchpad == 111.10 or scratchpad == 111.15 or scratchpad == 111.30 or scratchpad == 111.35 or scratchpad == 111.50 or scratchpad == 111.55 or scratchpad == 111.70 or scratchpad == 111.75 or scratchpad == 111.90 or scratchpad == 111.95) {
+ if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
+ }
+ setprop("/MCDU[0]/scratchpad-msg", "1");
+ setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
+ } else {
+ setprop("/instrumentation/nav[0]/frequencies/selected-mhz", scratchpad);
+ setprop("/FMGC/internal/vor1freq-set", 1);
+ setprop("/MCDU[0]/scratchpad", "");
+ }
+ } else if (scratchpad >= 112.00 and scratchpad <= 117.95) {
+ setprop("/instrumentation/nav[0]/frequencies/selected-mhz", scratchpad);
+ setprop("/FMGC/internal/vor1freq-set", 1);
+ setprop("/MCDU[0]/scratchpad", "");
+ } else {
+ if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
+ }
+ setprop("/MCDU[0]/scratchpad-msg", "1");
+ setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
+ }
+ } else {
+ if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
+ }
+ setprop("/MCDU[0]/scratchpad-msg", "1");
+ setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
+ }
+ }
+ } else if (key == "L2") {
+ if (scratchpad == "CLR") {
+ setprop("/FMGC/internal/vor1crs-set", 0);
+ setprop("/MCDU[0]/scratchpad-msg", "0");
+ setprop("/MCDU[0]/scratchpad", "");
+ } else {
+ var tfs = size(scratchpad);
+ if (tfs >= 1 and tfs <= 3) {
+ if (scratchpad >= 0 and scratchpad <= 360) {
+ setprop("/instrumentation/nav[0]/radials/selected-deg", scratchpad);
+ setprop("/FMGC/internal/vor1crs-set", 1);
+ setprop("/MCDU[0]/scratchpad", "");
+ } else {
+ if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
+ }
+ setprop("/MCDU[0]/scratchpad-msg", "1");
+ setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
+ }
+ } else {
+ if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
+ }
+ setprop("/MCDU[0]/scratchpad-msg", "1");
+ setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
+ }
+ }
+ } else if (key == "L3") {
+ if (scratchpad == "CLR") {
+ setprop("/FMGC/internal/vor1freq-set", 0);
+ setprop("/MCDU[0]/scratchpad-msg", "0");
+ setprop("/MCDU[0]/scratchpad", "");
+ } else {
+ var tfs = size(scratchpad);
+ if (tfs == 3 or tfs == 5 or tfs == 6) {
+ if (scratchpad >= 108.10 and scratchpad <= 111.95) {
+ if (scratchpad == 108.10 or scratchpad == 108.15 or scratchpad == 108.30 or scratchpad == 108.35 or scratchpad == 108.50 or scratchpad == 108.55 or scratchpad == 108.70 or scratchpad == 108.75 or scratchpad == 108.90 or scratchpad == 108.95
+ or scratchpad == 109.10 or scratchpad == 109.15 or scratchpad == 109.30 or scratchpad == 109.35 or scratchpad == 109.50 or scratchpad == 109.55 or scratchpad == 109.70 or scratchpad == 109.75 or scratchpad == 109.90 or scratchpad == 109.95
+ or scratchpad == 110.10 or scratchpad == 110.15 or scratchpad == 110.30 or scratchpad == 110.35 or scratchpad == 110.50 or scratchpad == 110.55 or scratchpad == 110.70 or scratchpad == 110.75 or scratchpad == 110.90 or scratchpad == 110.95
+ or scratchpad == 111.10 or scratchpad == 111.15 or scratchpad == 111.30 or scratchpad == 111.35 or scratchpad == 111.50 or scratchpad == 111.55 or scratchpad == 111.70 or scratchpad == 111.75 or scratchpad == 111.90 or scratchpad == 111.95) {
+ setprop("/instrumentation/nav[0]/frequencies/selected-mhz", scratchpad);
+ setprop("/FMGC/internal/vor1freq-set", 1);
+ setprop("/MCDU[0]/scratchpad", "");
+ } else {
+ if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
+ }
+ setprop("/MCDU[0]/scratchpad-msg", "1");
+ setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
+ }
+ } else {
+ if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
+ }
+ setprop("/MCDU[0]/scratchpad-msg", "1");
+ setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
+ }
+ } else {
+ if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
+ }
+ setprop("/MCDU[0]/scratchpad-msg", "1");
+ setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
+ }
+ }
+ } else if (key == "L4") {
+ if (scratchpad == "CLR") {
+ setprop("/FMGC/internal/vor1crs-set", 0);
+ setprop("/MCDU[0]/scratchpad-msg", "0");
+ setprop("/MCDU[0]/scratchpad", "");
+ } else {
+ var tfs = size(scratchpad);
+ if (tfs >= 1 and tfs <= 3) {
+ if (scratchpad >= 0 and scratchpad <= 360) {
+ setprop("/instrumentation/nav[0]/radials/selected-deg", scratchpad);
+ setprop("/FMGC/internal/vor1crs-set", 1);
+ setprop("/MCDU[0]/scratchpad", "");
+ } else {
+ if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
+ }
+ setprop("/MCDU[0]/scratchpad-msg", "1");
+ setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
+ }
+ } else {
+ if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
+ }
+ setprop("/MCDU[0]/scratchpad-msg", "1");
+ setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
+ }
+ }
+ } else if (key == "R1") {
+ if (scratchpad == "CLR") {
+ setprop("/FMGC/internal/vor2freq-set", 0);
+ setprop("/MCDU[0]/scratchpad-msg", "0");
+ setprop("/MCDU[0]/scratchpad", "");
+ } else {
+ var tfs = size(scratchpad);
+ if (tfs == 3 or tfs == 5 or tfs == 6) {
+ if (scratchpad >= 108.10 and scratchpad <= 111.95) {
+ if (scratchpad == 108.10 or scratchpad == 108.15 or scratchpad == 108.30 or scratchpad == 108.35 or scratchpad == 108.50 or scratchpad == 108.55 or scratchpad == 108.70 or scratchpad == 108.75 or scratchpad == 108.90 or scratchpad == 108.95
+ or scratchpad == 109.10 or scratchpad == 109.15 or scratchpad == 109.30 or scratchpad == 109.35 or scratchpad == 109.50 or scratchpad == 109.55 or scratchpad == 109.70 or scratchpad == 109.75 or scratchpad == 109.90 or scratchpad == 109.95
+ or scratchpad == 110.10 or scratchpad == 110.15 or scratchpad == 110.30 or scratchpad == 110.35 or scratchpad == 110.50 or scratchpad == 110.55 or scratchpad == 110.70 or scratchpad == 110.75 or scratchpad == 110.90 or scratchpad == 110.95
+ or scratchpad == 111.10 or scratchpad == 111.15 or scratchpad == 111.30 or scratchpad == 111.35 or scratchpad == 111.50 or scratchpad == 111.55 or scratchpad == 111.70 or scratchpad == 111.75 or scratchpad == 111.90 or scratchpad == 111.95) {
+ if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
+ }
+ setprop("/MCDU[0]/scratchpad-msg", "1");
+ setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
+ } else {
+ setprop("/instrumentation/nav[1]/frequencies/selected-mhz", scratchpad);
+ setprop("/FMGC/internal/vor2freq-set", 1);
+ setprop("/MCDU[0]/scratchpad", "");
+ }
+ } else if (scratchpad >= 112.00 and scratchpad <= 117.95) {
+ setprop("/instrumentation/nav[1]/frequencies/selected-mhz", scratchpad);
+ setprop("/FMGC/internal/vor2freq-set", 1);
+ setprop("/MCDU[0]/scratchpad", "");
+ } else {
+ if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
+ }
+ setprop("/MCDU[0]/scratchpad-msg", "1");
+ setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
+ }
+ } else {
+ if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
+ }
+ setprop("/MCDU[0]/scratchpad-msg", "1");
+ setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
+ }
+ }
+ } else if (key == "R2") {
+ if (scratchpad == "CLR") {
+ setprop("/FMGC/internal/vor2crs-set", 0);
+ setprop("/MCDU[0]/scratchpad-msg", "0");
+ setprop("/MCDU[0]/scratchpad", "");
+ } else {
+ var tfs = size(scratchpad);
+ if (tfs >= 1 and tfs <= 3) {
+ if (scratchpad >= 0 and scratchpad <= 360) {
+ setprop("/instrumentation/nav[1]/radials/selected-deg", scratchpad);
+ setprop("/FMGC/internal/vor2crs-set", 1);
+ setprop("/MCDU[0]/scratchpad", "");
+ } else {
+ if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
+ }
+ setprop("/MCDU[0]/scratchpad-msg", "1");
+ setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
+ }
+ } else {
+ if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
+ }
+ setprop("/MCDU[0]/scratchpad-msg", "1");
+ setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
+ }
+ }
+ }
+}
diff --git a/Nasal/MCDU2/INITA.nas b/Nasal/MCDU2/INITA.nas
new file mode 100644
index 00000000..9afed068
--- /dev/null
+++ b/Nasal/MCDU2/INITA.nas
@@ -0,0 +1,139 @@
+##################################################################
+# A3XX mCDU by Joshua Davidson (it0uchpods) and Jonathan Redpath #
+##################################################################
+
+var initInputA = func(key) {
+ var scratchpad = getprop("/MCDU[1]/scratchpad");
+ if (key == "L3") {
+ if (scratchpad == "CLR") {
+ setprop("/MCDUC/flight-num", "");
+ setprop("/MCDUC/flight-num-set", 0);
+ setprop("/MCDU[1]/scratchpad-msg", "0");
+ setprop("/MCDU[1]/scratchpad", "");
+ } else {
+ var flts = size(scratchpad);
+ if (flts >= 1 and flts <= 8) {
+ setprop("/MCDUC/flight-num", scratchpad);
+ setprop("/MCDUC/flight-num-set", 1);
+ setprop("/MCDU[1]/scratchpad", "");
+ } else {
+ if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
+ }
+ setprop("/MCDU[1]/scratchpad-msg", "1");
+ setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
+ }
+ }
+ } else if (key == "L5") {
+ if (scratchpad == "CLR") {
+ setprop("/FMGC/internal/cost-index", 0);
+ setprop("/FMGC/internal/cost-index-set", 0);
+ setprop("/MCDU[1]/scratchpad-msg", "0");
+ setprop("/MCDU[1]/scratchpad", "");
+ } else {
+ var ci = int(scratchpad);
+ var cis = size(scratchpad);
+ if (cis >= 1 and cis <= 3) {
+ if (ci == nil) {
+ if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
+ }
+ setprop("/MCDU[1]/scratchpad-msg", "1");
+ setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
+ } else if (ci >= 0 and ci <= 120) {
+ setprop("/FMGC/internal/cost-index", ci);
+ setprop("/FMGC/internal/cost-index-set", 1);
+ setprop("/MCDU[1]/scratchpad", "");
+ } else {
+ if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
+ }
+ setprop("/MCDU[1]/scratchpad-msg", "1");
+ setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
+ }
+ } else {
+ if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
+ }
+ setprop("/MCDU[1]/scratchpad-msg", "1");
+ setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
+ }
+ }
+ } else if (key == "L6") {
+ if (scratchpad == "CLR") {
+ setprop("/FMGC/internal/cruise-ft", 10000);
+ setprop("/FMGC/internal/cruise-fl", 100);
+ setprop("/FMGC/internal/cruise-lvl-set", 0);
+ setprop("/MCDU[1]/scratchpad-msg", "0");
+ setprop("/MCDU[1]/scratchpad", "");
+ } else {
+ var crz = int(scratchpad);
+ var crzs = size(scratchpad);
+ if (crzs >= 1 and crzs <= 3) {
+ if (crz == nil) {
+ if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
+ }
+ setprop("/MCDU[1]/scratchpad-msg", "1");
+ setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
+ } else if (crz > 0 and crz <= 430) {
+ setprop("/FMGC/internal/cruise-ft", crz * 100);
+ setprop("/FMGC/internal/cruise-fl", crz);
+ setprop("/FMGC/internal/cruise-lvl-set", 1);
+ setprop("/MCDU[1]/scratchpad", "");
+ } else {
+ if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
+ }
+ setprop("/MCDU[1]/scratchpad-msg", "1");
+ setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
+ }
+ } else {
+ if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
+ }
+ setprop("/MCDU[1]/scratchpad-msg", "1");
+ setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
+ }
+ }
+ } else if (key == "R1") {
+ if (scratchpad == "CLR") {
+ setprop("/FMGC/internal/dep-arpt", "");
+ setprop("/FMGC/internal/arr-arpt", "");
+ setprop("/FMGC/internal/tofrom-set", 0);
+ fmgc.updateARPT();
+ setprop("/MCDU[1]/scratchpad-msg", "0");
+ setprop("/MCDU[1]/scratchpad", "");
+ } else {
+ var tfs = size(scratchpad);
+ if (tfs == 9) {
+ var fromto = split("/", 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);
+ setprop("/MCDU[1]/scratchpad", "");
+ fmgc.updateARPT();
+ } else {
+ if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
+ }
+ setprop("/MCDU[1]/scratchpad-msg", "1");
+ setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
+ }
+ } else {
+ if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
+ }
+ setprop("/MCDU[1]/scratchpad-msg", "1");
+ setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
+ }
+ }
+ } else if (key == "R3") {
+ if (getprop("/controls/adirs/mcducbtn") == 0) {
+ setprop("/controls/adirs/mcducbtn", 1);
+ }
+ }
+}
diff --git a/Nasal/MCDU2/INITB.nas b/Nasal/MCDU2/INITB.nas
new file mode 100644
index 00000000..a37331bd
--- /dev/null
+++ b/Nasal/MCDU2/INITB.nas
@@ -0,0 +1,37 @@
+##################################################################
+# A3XX mCDU by Joshua Davidson (it0uchpods) and Jonathan Redpath #
+##################################################################
+
+var initInputB = func(key) {
+ var scratchpad = getprop("/MCDU[1]/scratchpad");
+ if (key == "R2") {
+ if (scratchpad == "CLR") {
+ setprop("/FMGC/internal/block", 0.0);
+ setprop("/FMGC/internal/block-set", 0);
+ setprop("/MCDU[1]/scratchpad-msg", "0");
+ setprop("/MCDU[1]/scratchpad", "");
+ } else {
+ var tfs = size(scratchpad);
+ var maxblock = getprop("/options/maxblock");
+ if (tfs == 2 or tfs == 4 or tfs == 5) {
+ if (scratchpad >= 1.0 and scratchpad <= maxblock) {
+ setprop("/FMGC/internal/block", scratchpad);
+ setprop("/FMGC/internal/block-set", 1);
+ setprop("/MCDU[1]/scratchpad", "");
+ } else {
+ if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
+ }
+ setprop("/MCDU[1]/scratchpad-msg", "1");
+ setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
+ }
+ } else {
+ if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
+ }
+ setprop("/MCDU[1]/scratchpad-msg", "1");
+ setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
+ }
+ }
+ }
+}
diff --git a/Nasal/MCDU2/MCDU.nas b/Nasal/MCDU2/MCDU.nas
new file mode 100644
index 00000000..d91b50c3
--- /dev/null
+++ b/Nasal/MCDU2/MCDU.nas
@@ -0,0 +1,448 @@
+##################################################################
+# A3XX mCDU by Joshua Davidson (it0uchpods) and Jonathan Redpath #
+##################################################################
+
+var MCDU_init = func {
+ setprop("/MCDU[1]/brightness", "1.0");
+ MCDU_reset(); # Reset MCDU, clears data
+}
+
+var MCDU_reset = func {
+ setprop("/it-autoflight/settings/togaspd", 157);
+ setprop("/MCDU[1]/last-scratchpad", "");
+ setprop("/MCDU[1]/last-fmgc-page", "STATUS");
+ setprop("/MCDU[1]/page", "MCDU");
+ setprop("/MCDU[1]/scratchpad", "SELECT DESIRED SYSTEM");
+ setprop("/MCDU[1]/scratchpad-msg", 0);
+ setprop("/MCDUC/flight-num", "");
+ setprop("/MCDUC/thracc-set", 0);
+ setprop("/MCDUC/reducacc-set", 0);
+ setprop("/MCDUC/flight-num-set", 0);
+ setprop("/FMGC/internal/flex", 0);
+ setprop("/FMGC/internal/dep-arpt", "");
+ setprop("/FMGC/internal/arr-arpt", "");
+ setprop("/FMGC/internal/cruise-ft", 10000);
+ setprop("/FMGC/internal/cruise-fl", 100);
+ setprop("/FMGC/internal/cost-index", "0");
+ setprop("/FMGC/internal/trans-alt", 18000);
+ setprop("/FMGC/internal/reduc-agl-ft", "3000");
+ setprop("/FMGC/internal/eng-out-reduc", "3500");
+ setprop("/FMGC/internal/v1", 0);
+ setprop("/FMGC/internal/vr", 0);
+ setprop("/FMGC/internal/v2", 0);
+ setprop("/FMGC/internal/block", 0.0);
+ setprop("/FMGC/internal/v1-set", 0);
+ setprop("/FMGC/internal/vr-set", 0);
+ setprop("/FMGC/internal/v2-set", 0);
+ setprop("/FMGC/internal/block-set", 0);
+ setprop("/FMGC/internal/to-flap", 0);
+ setprop("/FMGC/internal/to-ths", "0.0");
+ setprop("/FMGC/internal/tofrom-set", 0);
+ setprop("/FMGC/internal/cost-index-set", 0);
+ setprop("/FMGC/internal/cruise-lvl-set", 0);
+ setprop("/FMGC/internal/flap-ths-set", 0);
+ setprop("/FMGC/internal/flex-set", 0);
+ setprop("/FMGC/internal/vor1freq-set", 0);
+ setprop("/FMGC/internal/vor1crs-set", 0);
+ setprop("/FMGC/internal/vor2freq-set", 0);
+ setprop("/FMGC/internal/vor2crs-set", 0);
+}
+
+var lskbutton = func(btn) {
+ if (btn == "1") {
+ if (getprop("/MCDU[1]/page") == "MCDU") {
+ setprop("/MCDU[1]/page", getprop("/MCDU[1]/last-fmgc-page"));
+ setprop("/MCDU[1]/scratchpad", "");
+ } else if (getprop("/MCDU[1]/page") == "TO") {
+ perfTOInput("L1");
+ } else if (getprop("/MCDU[1]/page") == "RADNAV") {
+ radnavInput("L1");
+ } else {
+ if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
+ }
+ setprop("/MCDU[1]/scratchpad-msg", "1");
+ setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
+ }
+ } else if (btn == "2") {
+ if (getprop("/MCDU[1]/page") == "INITA") {
+ PerfInput("L2");
+ } else if (getprop("/MCDU[1]/page") == "TO") {
+ perfTOInput("L2");
+ } else if (getprop("/MCDU[1]/page") == "RADNAV") {
+ radnavInput("L2");
+ } else if (getprop("/MCDU[1]/page") == "CLB") {
+ initInputA("L5"); # Does the same thing as on the INIT page
+ } else if (getprop("/MCDU[1]/page") == "CRZ") {
+ initInputA("L5");
+ } else if (getprop("/MCDU[1]/page") == "DES") {
+ initInputA("L5");
+ } else {
+ if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
+ }
+ setprop("/MCDU[1]/scratchpad-msg", "1");
+ setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
+ }
+ } else if (btn == "3") {
+ if (getprop("/MCDU[1]/page") == "INITA") {
+ initInputA("L3");
+ } else if (getprop("/MCDU[1]/page") == "TO") {
+ perfTOInput("L3");
+ } else if (getprop("/MCDU[1]/page") == "RADNAV") {
+ radnavInput("L3");
+ } else {
+ if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
+ }
+ setprop("/MCDU[1]/scratchpad-msg", "1");
+ setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
+ }
+ } else if (btn == "4") {
+ if (getprop("/MCDU[1]/page") == "DATA") {
+ setprop("/MCDU[1]/page", "STATUS");
+ } else if (getprop("/MCDU[1]/page") == "TO") {
+ perfTOInput("L4");
+ } else if (getprop("/MCDU[1]/page") == "RADNAV") {
+ radnavInput("L4");
+ } else {
+ if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
+ }
+ setprop("/MCDU[1]/scratchpad-msg", "1");
+ setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
+ }
+ } 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");
+ } else if (getprop("/MCDU[1]/page") == "CRZ") {
+ perfCRZInput("L5");
+ } else if (getprop("/MCDU[1]/page") == "DES") {
+ perfDESInput("L5");
+ } else {
+ if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
+ }
+ setprop("/MCDU[1]/scratchpad-msg", "1");
+ setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
+ }
+ } else if (btn == "6") {
+ if (getprop("/MCDU[1]/page") == "INITA") {
+ initInputA("L6");
+ } else if (getprop("/MCDU[1]/page") == "CLB") {
+ perfCLBInput("L6");
+ } else if (getprop("/MCDU[1]/page") == "CRZ") {
+ perfCRZInput("L6");
+ } else if (getprop("/MCDU[1]/page") == "DES") {
+ perfDESInput("L6");
+ } else {
+ if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
+ }
+ setprop("/MCDU[1]/scratchpad-msg", "1");
+ setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
+ }
+ }
+}
+
+var lskbutton_b = func(btn) {
+ # Special Middle Click Functions
+}
+
+var rskbutton = func(btn) {
+ if (btn == "1") {
+ if (getprop("/MCDU[1]/page") == "INITA") {
+ initInputA("R1");
+ } else if (getprop("/MCDU[1]/page") == "RADNAV") {
+ radnavInput("R1");
+ } else {
+ if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
+ }
+ setprop("/MCDU[1]/scratchpad-msg", "1");
+ setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
+ }
+ } else if (btn == "2") {
+ if (getprop("/MCDU[1]/page") == "INITB") {
+ initInputB("R2");
+ } else if (getprop("/MCDU[1]/page") == "RADNAV") {
+ radnavInput("R2");
+ } else {
+ if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
+ }
+ setprop("/MCDU[1]/scratchpad-msg", "1");
+ setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
+ }
+ } else if (btn == "3") {
+ if (getprop("/MCDU[1]/page") == "INITA") {
+ initInputA("R3");
+ } else if (getprop("/MCDU[1]/page") == "TO") {
+ perfTOInput("R3");
+ } else {
+ if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
+ }
+ setprop("/MCDU[1]/scratchpad-msg", "1");
+ setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
+ }
+ } else if (btn == "4") {
+ if (getprop("/MCDU[1]/page") == "TO") {
+ perfTOInput("R4");
+ } else if (getprop("/MCDU[1]/page") == "RADNAV") {
+ radnavInput("R4");
+ } else {
+ if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
+ }
+ setprop("/MCDU[1]/scratchpad-msg", "1");
+ setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
+ }
+ } else if (btn == "5") {
+ if (getprop("/MCDU[1]/page") == "TO") {
+ perfTOInput("R5");
+ } else {
+ if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
+ }
+ setprop("/MCDU[1]/scratchpad-msg", "1");
+ setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
+ }
+ } else if (btn == "6") {
+ if (getprop("/MCDU[1]/page") == "TO") {
+ perfTOInput("R6");
+ } else if (getprop("/MCDU[1]/page") == "CLB") {
+ perfCLBInput("R6");
+ } else if (getprop("/MCDU[1]/page") == "CRZ") {
+ perfCRZInput("R6");
+ } else {
+ if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
+ }
+ setprop("/MCDU[1]/scratchpad-msg", "1");
+ setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
+ }
+ }
+}
+
+var rskbutton_b = func(btn) {
+ # Special Middle Click Functions
+}
+
+var arrowbutton = func(btn) {
+ if (btn == "left") {
+ if (getprop("/MCDU[1]/page") == "DATA") {
+ setprop("/MCDU[1]/page", "DATA2");
+ } else if (getprop("/MCDU[1]/page") == "DATA2") {
+ setprop("/MCDU[1]/page", "DATA");
+ }
+ if (getprop("/MCDU[1]/page") == "INITA") {
+ setprop("/MCDU[1]/page", "INITB");
+ } else if (getprop("/MCDU[1]/page") == "INITB") {
+ setprop("/MCDU[1]/page", "INITA");
+ }
+ } else if (btn == "right") {
+ if (getprop("/MCDU[1]/page") == "DATA") {
+ setprop("/MCDU[1]/page", "DATA2");
+ } else if (getprop("/MCDU[1]/page") == "DATA2") {
+ setprop("/MCDU[1]/page", "DATA");
+ }
+ if (getprop("/MCDU[1]/page") == "INITA") {
+ setprop("/MCDU[1]/page", "INITB");
+ } else if (getprop("/MCDU[1]/page") == "INITB") {
+ setprop("/MCDU[1]/page", "INITA");
+ }
+ } else if (btn == "up") {
+ # Nothing for now
+ } else if (btn == "down") {
+ # Nothing for now
+ }
+}
+
+var pagebutton = func(btn) {
+ if (getprop("/MCDU[1]/page") != "MCDU") {
+ if (btn == "radnav") {
+ setprop("/MCDU[1]/page", "RADNAV");
+ } else if (btn == "perf") {
+ if (getprop("/FMGC/status/phase") == 0 or getprop("/FMGC/status/phase") == 1) {
+ setprop("/MCDU[1]/page", "TO");
+ } else if (getprop("/FMGC/status/phase") == 2) {
+ setprop("/MCDU[1]/page", "CLB");
+ } else if (getprop("/FMGC/status/phase") == 3) {
+ setprop("/MCDU[1]/page", "CRZ");
+ }
+ } else if (btn == "init") {
+ setprop("/MCDU[1]/page", "INITA");
+ } else if (btn == "data") {
+ setprop("/MCDU[1]/page", "DATA");
+ } else if (btn == "mcdu") {
+ setprop("/MCDU[1]/last-fmgc-page", getprop("/MCDU[1]/page"));
+ setprop("/MCDU[1]/scratchpad", "SELECT DESIRED SYSTEM");
+ setprop("/MCDU[1]/page", "MCDU");
+ }
+ }
+}
+
+var button = func(btn) {
+ if (getprop("/MCDU[1]/scratchpad-msg") == 0 and getprop("/MCDU[1]/page") != "MCDU") {
+ 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 (getprop("/MCDU[1]/scratchpad-msg") == 1) {
+ setprop("/MCDU[1]/scratchpad", "");
+ setprop("/MCDU[1]/scratchpad-msg", "0");
+ } else if (size(scratchpad) > 0) {
+ setprop("/MCDU[1]/last-scratchpad", "");
+ 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");
+ }
+ } 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 (getprop("/MCDU[1]/scratchpad-msg") == 1) {
+ setprop("/MCDU[1]/scratchpad", getprop("/MCDU[1]/last-scratchpad"));
+ setprop("/MCDU[1]/last-scratchpad", "");
+ setprop("/MCDU[1]/scratchpad-msg", "0");
+ }
+ }
+ }
+}
+
+var screenFlash = func(time) {
+ var page = getprop("/MCDU[1]/page");
+ setprop("/MCDU[1]/page", "NONE");
+ settimer(func {
+ setprop("/MCDU[1]/page", page);
+ }, time);
+}
diff --git a/Nasal/MCDU2/PERFCLB.nas b/Nasal/MCDU2/PERFCLB.nas
new file mode 100644
index 00000000..1377b7fb
--- /dev/null
+++ b/Nasal/MCDU2/PERFCLB.nas
@@ -0,0 +1,47 @@
+##################################################################
+# A3XX mCDU by Joshua Davidson (it0uchpods) and Jonathan Redpath #
+##################################################################
+
+var perfCLBInput = func(key) {
+ var scratchpad = getprop("/MCDU[1]/scratchpad");
+ if (key == "L5") {
+ if (scratchpad == "CLR") {
+ setprop("/FMGC/internal/cost-index", 0);
+ setprop("/FMGC/internal/cost-index-set", 0);
+ setprop("/MCDU[1]/scratchpad-msg", "0");
+ setprop("/MCDU[1]/scratchpad", "");
+ } else {
+ var ci = int(scratchpad);
+ var cis = size(scratchpad);
+ if (cis >= 1 and cis <= 3) {
+ if (ci == nil) {
+ if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
+ }
+ setprop("/MCDU[1]/scratchpad-msg", "1");
+ setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
+ } else if (ci >= 0 and ci <= 120) {
+ setprop("/FMGC/internal/cost-index", ci);
+ setprop("/FMGC/internal/cost-index-set", 1);
+ setprop("/MCDU[1]/scratchpad", "");
+ } else {
+ if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
+ }
+ setprop("/MCDU[1]/scratchpad-msg", "1");
+ setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
+ }
+ } else {
+ if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
+ }
+ setprop("/MCDU[1]/scratchpad-msg", "1");
+ setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
+ }
+ }
+ } else if (key == "L6") {
+ setprop("/MCDU[1]/page", "TO");
+ } else if (key == "R6") {
+ setprop("/MCDU[1]/page", "CRZ");
+ }
+}
diff --git a/Nasal/MCDU2/PERFCRZ.nas b/Nasal/MCDU2/PERFCRZ.nas
new file mode 100644
index 00000000..00cd28a8
--- /dev/null
+++ b/Nasal/MCDU2/PERFCRZ.nas
@@ -0,0 +1,12 @@
+##################################################################
+# A3XX mCDU by Joshua Davidson (it0uchpods) and Jonathan Redpath #
+##################################################################
+
+var perfCRZInput = func(key) {
+ if (key == "L6") {
+ setprop("/MCDU[1]/page", "CLB");
+ }
+ if (key == "R6") {
+ setprop("/MCDU[1]/page", "DES");
+ }
+}
diff --git a/Nasal/MCDU2/PERFDES.nas b/Nasal/MCDU2/PERFDES.nas
new file mode 100644
index 00000000..83fe58b8
--- /dev/null
+++ b/Nasal/MCDU2/PERFDES.nas
@@ -0,0 +1,9 @@
+##################################################################
+# A3XX mCDU by Joshua Davidson (it0uchpods) and Jonathan Redpath #
+##################################################################
+
+var perfDESInput = func(key) {
+ if (key == "L6") {
+ setprop("/MCDU[1]/page", "CRZ");
+ }
+}
diff --git a/Nasal/MCDU2/PERFTO.nas b/Nasal/MCDU2/PERFTO.nas
new file mode 100644
index 00000000..349b2827
--- /dev/null
+++ b/Nasal/MCDU2/PERFTO.nas
@@ -0,0 +1,238 @@
+##################################################################
+# A3XX mCDU by Joshua Davidson (it0uchpods) and Jonathan Redpath #
+##################################################################
+
+var perfTOInput = func(key) {
+ var scratchpad = getprop("/MCDU[1]/scratchpad");
+ if (key == "L1") {
+ if (scratchpad == "CLR") {
+ setprop("/FMGC/internal/v1", 0);
+ setprop("/FMGC/internal/v1-set", 0);
+ setprop("/MCDU[1]/scratchpad-msg", "0");
+ setprop("/MCDU[1]/scratchpad", "");
+ } else {
+ var tfs = size(scratchpad);
+ if (tfs == 3) {
+ if (scratchpad >= 100 and scratchpad <= 200) {
+ setprop("/FMGC/internal/v1", scratchpad);
+ setprop("/FMGC/internal/v1-set", 1);
+ setprop("/MCDU[1]/scratchpad", "");
+ } else {
+ if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
+ }
+ setprop("/MCDU[1]/scratchpad-msg", "1");
+ setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
+ }
+ } else {
+ if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
+ }
+ setprop("/MCDU[1]/scratchpad-msg", "1");
+ setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
+ }
+ }
+ } else if (key == "L2") {
+ if (scratchpad == "CLR") {
+ setprop("/FMGC/internal/vr", 0);
+ setprop("/FMGC/internal/vr-set", 0);
+ setprop("/MCDU[1]/scratchpad-msg", "0");
+ setprop("/MCDU[1]/scratchpad", "");
+ } else {
+ var tfs = size(scratchpad);
+ if (tfs == 3) {
+ if (scratchpad >= 100 and scratchpad <= 200) {
+ setprop("/FMGC/internal/vr", scratchpad);
+ setprop("/FMGC/internal/vr-set", 1);
+ setprop("/MCDU[1]/scratchpad", "");
+ } else {
+ if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
+ }
+ setprop("/MCDU[1]/scratchpad-msg", "1");
+ setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
+ }
+ } else {
+ if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
+ }
+ setprop("/MCDU[1]/scratchpad-msg", "1");
+ setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
+ }
+ }
+ } else if (key == "L3") {
+ if (scratchpad == "CLR") {
+ setprop("/FMGC/internal/v2", 0);
+ setprop("/FMGC/internal/v2-set", 0);
+ setprop("/it-autoflight/settings/togaspd", 157);
+ setprop("/MCDU[1]/scratchpad-msg", "0");
+ setprop("/MCDU[1]/scratchpad", "");
+ } else {
+ var tfs = size(scratchpad);
+ if (tfs == 3) {
+ if (scratchpad >= 100 and scratchpad <= 200) {
+ setprop("/FMGC/internal/v2", scratchpad);
+ setprop("/FMGC/internal/v2-set", 1);
+ setprop("/it-autoflight/settings/togaspd", scratchpad + 10);
+ setprop("/MCDU[1]/scratchpad", "");
+ } else {
+ if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
+ }
+ setprop("/MCDU[1]/scratchpad-msg", "1");
+ setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
+ }
+ } else {
+ if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
+ }
+ setprop("/MCDU[1]/scratchpad-msg", "1");
+ setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
+ }
+ }
+ } else if (key == "L4") {
+ if (scratchpad == "CLR") {
+ if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
+ }
+ setprop("/MCDU[1]/scratchpad-msg", "1");
+ setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
+ } else {
+ var tfs = size(scratchpad);
+ if (tfs == 4 or tfs == 5) {
+ if (scratchpad >= 1000 and scratchpad <= 18000) {
+ setprop("/FMGC/internal/trans-alt", scratchpad);
+ setprop("/MCDU[1]/scratchpad", "");
+ } else {
+ if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
+ }
+ setprop("/MCDU[1]/scratchpad-msg", "1");
+ setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
+ }
+ } else {
+ if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
+ }
+ setprop("/MCDU[1]/scratchpad-msg", "1");
+ setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
+ }
+ }
+ } else if (key == "L5") {
+ if (scratchpad == "CLR") {
+ setprop("/systems/thrust/clbreduc-ft", "1500");
+ setprop("/FMGC/internal/reduc-agl-ft", "3000");
+ setprop("/MCDUC/thracc-set", 0);
+ setprop("/MCDU[1]/scratchpad-msg", "0");
+ setprop("/MCDU[1]/scratchpad", "");
+ } else {
+ var tfs = size(scratchpad);
+ if (tfs >= 7 or tfs <= 9) {
+ var thracc = split("/", scratchpad);
+ var thrred = size(thracc[0]);
+ var acc = size(thracc[1]);
+ if ((thrred >= 3 and thrred <= 5) and (acc >= 3 and acc <= 5)) {
+ setprop("/systems/thrust/clbreduc-ft", thracc[0]);
+ setprop("/FMGC/internal/reduc-agl-ft", thracc[1]);
+ setprop("/MCDUC/thracc-set", 1);
+ setprop("/MCDU[1]/scratchpad", "");
+ } else {
+ if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
+ }
+ setprop("/MCDU[1]/scratchpad-msg", "1");
+ setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
+ }
+ } else {
+ if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
+ }
+ setprop("/MCDU[1]/scratchpad-msg", "1");
+ setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
+ }
+ }
+ } else if (key == "R6") {
+ setprop("/MCDU[1]/page", "CLB");
+ } else if (key == "R3") {
+ if (scratchpad == "CLR") {
+ setprop("/FMGC/internal/to-flap", 0);
+ setprop("/FMGC/internal/to-ths", "0.0");
+ setprop("/FMGC/internal/flap-ths-set", 0);
+ setprop("/MCDU[1]/scratchpad-msg", "0");
+ setprop("/MCDU[1]/scratchpad", "");
+ } else {
+ var tfs = size(scratchpad);
+ if (tfs == 7) {
+ var flapths = split("/UP", scratchpad);
+ if ((flapths[0] >= 1 and flapths[0] <= 4) and (flapths[1] >= 0.0 and flapths[1] <= 2.5)) {
+ setprop("/FMGC/internal/to-flap", flapths[0]);
+ setprop("/FMGC/internal/to-ths", flapths[1]);
+ setprop("/FMGC/internal/flap-ths-set", 1);
+ setprop("/MCDU[1]/scratchpad", "");
+ } else {
+ if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
+ }
+ setprop("/MCDU[1]/scratchpad-msg", "1");
+ setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
+ }
+ } else {
+ if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
+ }
+ setprop("/MCDU[1]/scratchpad-msg", "1");
+ setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
+ }
+ }
+ } else if (key == "R4") {
+ if (scratchpad == "CLR") {
+ setprop("/FMGC/internal/flex", 0);
+ setprop("/FMGC/internal/flex-set", 0);
+ setprop("/MCDU[1]/scratchpad-msg", "0");
+ setprop("/MCDU[1]/scratchpad", "");
+ } else {
+ var tfs = size(scratchpad);
+ if (tfs == 1 or tfs == 2) {
+ if (scratchpad >= 0 and scratchpad <= 70) {
+ setprop("/FMGC/internal/flex", scratchpad);
+ setprop("/FMGC/internal/flex-set", 1);
+ var flex_calc = getprop("/FMGC/internal/flex") - getprop("/environment/temperature-degc");
+ setprop("/FMGC/internal/flex-cmd", flex_calc);
+ setprop("/MCDU[1]/scratchpad", "");
+ } else {
+ if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
+ }
+ setprop("/MCDU[1]/scratchpad-msg", "1");
+ setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
+ }
+ } else {
+ if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
+ }
+ setprop("/MCDU[1]/scratchpad-msg", "1");
+ setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
+ }
+ }
+ } else if (key == "R5") {
+ if (scratchpad == "CLR") {
+ setprop("/FMGC/internal/eng-out-reduc", "3500");
+ setprop("/MCDUC/reducacc-set", 0);
+ setprop("/MCDU[1]/scratchpad-msg", "0");
+ setprop("/MCDU[1]/scratchpad", "");
+ } else {
+ var tfs = size(scratchpad);
+ if (tfs >= 3 and tfs <= 5) {
+ setprop("/FMGC/internal/eng-out-reduc", scratchpad);
+ setprop("/MCDUC/reducacc-set", 1);
+ setprop("/MCDU[1]/scratchpad", "");
+ } else {
+ if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
+ }
+ setprop("/MCDU[1]/scratchpad-msg", "1");
+ setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
+ }
+ }
+ }
+}
diff --git a/Nasal/MCDU2/RADNAV.nas b/Nasal/MCDU2/RADNAV.nas
new file mode 100644
index 00000000..413556af
--- /dev/null
+++ b/Nasal/MCDU2/RADNAV.nas
@@ -0,0 +1,211 @@
+##################################################################
+# A3XX mCDU by Joshua Davidson (it0uchpods) and Jonathan Redpath #
+##################################################################
+
+var radnavInput = func(key) {
+ var scratchpad = getprop("/MCDU[1]/scratchpad");
+ if (key == "L1") {
+ if (scratchpad == "CLR") {
+ setprop("/FMGC/internal/vor1freq-set", 0);
+ setprop("/MCDU[1]/scratchpad-msg", "0");
+ setprop("/MCDU[1]/scratchpad", "");
+ } else {
+ var tfs = size(scratchpad);
+ if (tfs == 3 or tfs == 5 or tfs == 6) {
+ if (scratchpad >= 108.10 and scratchpad <= 111.95) {
+ if (scratchpad == 108.10 or scratchpad == 108.15 or scratchpad == 108.30 or scratchpad == 108.35 or scratchpad == 108.50 or scratchpad == 108.55 or scratchpad == 108.70 or scratchpad == 108.75 or scratchpad == 108.90 or scratchpad == 108.95
+ or scratchpad == 109.10 or scratchpad == 109.15 or scratchpad == 109.30 or scratchpad == 109.35 or scratchpad == 109.50 or scratchpad == 109.55 or scratchpad == 109.70 or scratchpad == 109.75 or scratchpad == 109.90 or scratchpad == 109.95
+ or scratchpad == 110.10 or scratchpad == 110.15 or scratchpad == 110.30 or scratchpad == 110.35 or scratchpad == 110.50 or scratchpad == 110.55 or scratchpad == 110.70 or scratchpad == 110.75 or scratchpad == 110.90 or scratchpad == 110.95
+ or scratchpad == 111.10 or scratchpad == 111.15 or scratchpad == 111.30 or scratchpad == 111.35 or scratchpad == 111.50 or scratchpad == 111.55 or scratchpad == 111.70 or scratchpad == 111.75 or scratchpad == 111.90 or scratchpad == 111.95) {
+ if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
+ }
+ setprop("/MCDU[1]/scratchpad-msg", "1");
+ setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
+ } else {
+ setprop("/instrumentation/nav[0]/frequencies/selected-mhz", scratchpad);
+ setprop("/FMGC/internal/vor1freq-set", 1);
+ setprop("/MCDU[1]/scratchpad", "");
+ }
+ } else if (scratchpad >= 112.00 and scratchpad <= 117.95) {
+ setprop("/instrumentation/nav[0]/frequencies/selected-mhz", scratchpad);
+ setprop("/FMGC/internal/vor1freq-set", 1);
+ setprop("/MCDU[1]/scratchpad", "");
+ } else {
+ if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
+ }
+ setprop("/MCDU[1]/scratchpad-msg", "1");
+ setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
+ }
+ } else {
+ if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
+ }
+ setprop("/MCDU[1]/scratchpad-msg", "1");
+ setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
+ }
+ }
+ } else if (key == "L2") {
+ if (scratchpad == "CLR") {
+ setprop("/FMGC/internal/vor1crs-set", 0);
+ setprop("/MCDU[1]/scratchpad-msg", "0");
+ setprop("/MCDU[1]/scratchpad", "");
+ } else {
+ var tfs = size(scratchpad);
+ if (tfs >= 1 and tfs <= 3) {
+ if (scratchpad >= 0 and scratchpad <= 360) {
+ setprop("/instrumentation/nav[0]/radials/selected-deg", scratchpad);
+ setprop("/FMGC/internal/vor1crs-set", 1);
+ setprop("/MCDU[1]/scratchpad", "");
+ } else {
+ if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
+ }
+ setprop("/MCDU[1]/scratchpad-msg", "1");
+ setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
+ }
+ } else {
+ if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
+ }
+ setprop("/MCDU[1]/scratchpad-msg", "1");
+ setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
+ }
+ }
+ } else if (key == "L3") {
+ if (scratchpad == "CLR") {
+ setprop("/FMGC/internal/vor1freq-set", 0);
+ setprop("/MCDU[1]/scratchpad-msg", "0");
+ setprop("/MCDU[1]/scratchpad", "");
+ } else {
+ var tfs = size(scratchpad);
+ if (tfs == 3 or tfs == 5 or tfs == 6) {
+ if (scratchpad >= 108.10 and scratchpad <= 111.95) {
+ if (scratchpad == 108.10 or scratchpad == 108.15 or scratchpad == 108.30 or scratchpad == 108.35 or scratchpad == 108.50 or scratchpad == 108.55 or scratchpad == 108.70 or scratchpad == 108.75 or scratchpad == 108.90 or scratchpad == 108.95
+ or scratchpad == 109.10 or scratchpad == 109.15 or scratchpad == 109.30 or scratchpad == 109.35 or scratchpad == 109.50 or scratchpad == 109.55 or scratchpad == 109.70 or scratchpad == 109.75 or scratchpad == 109.90 or scratchpad == 109.95
+ or scratchpad == 110.10 or scratchpad == 110.15 or scratchpad == 110.30 or scratchpad == 110.35 or scratchpad == 110.50 or scratchpad == 110.55 or scratchpad == 110.70 or scratchpad == 110.75 or scratchpad == 110.90 or scratchpad == 110.95
+ or scratchpad == 111.10 or scratchpad == 111.15 or scratchpad == 111.30 or scratchpad == 111.35 or scratchpad == 111.50 or scratchpad == 111.55 or scratchpad == 111.70 or scratchpad == 111.75 or scratchpad == 111.90 or scratchpad == 111.95) {
+ setprop("/instrumentation/nav[0]/frequencies/selected-mhz", scratchpad);
+ setprop("/FMGC/internal/vor1freq-set", 1);
+ setprop("/MCDU[1]/scratchpad", "");
+ } else {
+ if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
+ }
+ setprop("/MCDU[1]/scratchpad-msg", "1");
+ setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
+ }
+ } else {
+ if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
+ }
+ setprop("/MCDU[1]/scratchpad-msg", "1");
+ setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
+ }
+ } else {
+ if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
+ }
+ setprop("/MCDU[1]/scratchpad-msg", "1");
+ setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
+ }
+ }
+ } else if (key == "L4") {
+ if (scratchpad == "CLR") {
+ setprop("/FMGC/internal/vor1crs-set", 0);
+ setprop("/MCDU[1]/scratchpad-msg", "0");
+ setprop("/MCDU[1]/scratchpad", "");
+ } else {
+ var tfs = size(scratchpad);
+ if (tfs >= 1 and tfs <= 3) {
+ if (scratchpad >= 0 and scratchpad <= 360) {
+ setprop("/instrumentation/nav[0]/radials/selected-deg", scratchpad);
+ setprop("/FMGC/internal/vor1crs-set", 1);
+ setprop("/MCDU[1]/scratchpad", "");
+ } else {
+ if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
+ }
+ setprop("/MCDU[1]/scratchpad-msg", "1");
+ setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
+ }
+ } else {
+ if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
+ }
+ setprop("/MCDU[1]/scratchpad-msg", "1");
+ setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
+ }
+ }
+ } else if (key == "R1") {
+ if (scratchpad == "CLR") {
+ setprop("/FMGC/internal/vor2freq-set", 0);
+ setprop("/MCDU[1]/scratchpad-msg", "0");
+ setprop("/MCDU[1]/scratchpad", "");
+ } else {
+ var tfs = size(scratchpad);
+ if (tfs == 3 or tfs == 5 or tfs == 6) {
+ if (scratchpad >= 108.10 and scratchpad <= 111.95) {
+ if (scratchpad == 108.10 or scratchpad == 108.15 or scratchpad == 108.30 or scratchpad == 108.35 or scratchpad == 108.50 or scratchpad == 108.55 or scratchpad == 108.70 or scratchpad == 108.75 or scratchpad == 108.90 or scratchpad == 108.95
+ or scratchpad == 109.10 or scratchpad == 109.15 or scratchpad == 109.30 or scratchpad == 109.35 or scratchpad == 109.50 or scratchpad == 109.55 or scratchpad == 109.70 or scratchpad == 109.75 or scratchpad == 109.90 or scratchpad == 109.95
+ or scratchpad == 110.10 or scratchpad == 110.15 or scratchpad == 110.30 or scratchpad == 110.35 or scratchpad == 110.50 or scratchpad == 110.55 or scratchpad == 110.70 or scratchpad == 110.75 or scratchpad == 110.90 or scratchpad == 110.95
+ or scratchpad == 111.10 or scratchpad == 111.15 or scratchpad == 111.30 or scratchpad == 111.35 or scratchpad == 111.50 or scratchpad == 111.55 or scratchpad == 111.70 or scratchpad == 111.75 or scratchpad == 111.90 or scratchpad == 111.95) {
+ if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
+ }
+ setprop("/MCDU[1]/scratchpad-msg", "1");
+ setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
+ } else {
+ setprop("/instrumentation/nav[1]/frequencies/selected-mhz", scratchpad);
+ setprop("/FMGC/internal/vor2freq-set", 1);
+ setprop("/MCDU[1]/scratchpad", "");
+ }
+ } else if (scratchpad >= 112.00 and scratchpad <= 117.95) {
+ setprop("/instrumentation/nav[1]/frequencies/selected-mhz", scratchpad);
+ setprop("/FMGC/internal/vor2freq-set", 1);
+ setprop("/MCDU[1]/scratchpad", "");
+ } else {
+ if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
+ }
+ setprop("/MCDU[1]/scratchpad-msg", "1");
+ setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
+ }
+ } else {
+ if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
+ }
+ setprop("/MCDU[1]/scratchpad-msg", "1");
+ setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
+ }
+ }
+ } else if (key == "R2") {
+ if (scratchpad == "CLR") {
+ setprop("/FMGC/internal/vor2crs-set", 0);
+ setprop("/MCDU[1]/scratchpad-msg", "0");
+ setprop("/MCDU[1]/scratchpad", "");
+ } else {
+ var tfs = size(scratchpad);
+ if (tfs >= 1 and tfs <= 3) {
+ if (scratchpad >= 0 and scratchpad <= 360) {
+ setprop("/instrumentation/nav[1]/radials/selected-deg", scratchpad);
+ setprop("/FMGC/internal/vor2crs-set", 1);
+ setprop("/MCDU[1]/scratchpad", "");
+ } else {
+ if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
+ }
+ setprop("/MCDU[1]/scratchpad-msg", "1");
+ setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
+ }
+ } else {
+ if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
+ setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
+ }
+ setprop("/MCDU[1]/scratchpad-msg", "1");
+ setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
+ }
+ }
+ }
+}