diff --git a/A320-main.xml b/A320-main.xml
index a0aaf4b9..f8426474 100644
--- a/A320-main.xml
+++ b/A320-main.xml
@@ -337,6 +337,11 @@
+
+ 0
+ 1.0
+
+
0
0
diff --git a/Models/FlightDeck/a320.flightdeck.xml b/Models/FlightDeck/a320.flightdeck.xml
index 4dc64d17..78f4f8f8 100644
--- a/Models/FlightDeck/a320.flightdeck.xml
+++ b/Models/FlightDeck/a320.flightdeck.xml
@@ -2574,7 +2574,7 @@
-
+
diff --git a/Models/Instruments/MCDU1/MCDU1.xml b/Models/Instruments/MCDU1/MCDU1.xml
index 6bce3f67..754825a3 100644
--- a/Models/Instruments/MCDU1/MCDU1.xml
+++ b/Models/Instruments/MCDU1/MCDU1.xml
@@ -136,6 +136,50 @@
+
+ CLB
+ PERF/CLB/CLB.xml
+
+ 180
+ 180
+ 90
+
+
+
+
+ /systems/electrical/bus/ac1
+ 25
+
+
+ /MCDU[0]/page
+ CLB
+
+
+
+
+
+
+ CRZ
+ PERF/CRZ/CRZ.xml
+
+ 180
+ 180
+ 90
+
+
+
+
+ /systems/electrical/bus/ac1
+ 25
+
+
+ /MCDU[0]/page
+ CRZ
+
+
+
+
+
DATA2
DATA2/DATA2.xml
diff --git a/Models/Instruments/MCDU1/PERF/CLB/CLB.xml b/Models/Instruments/MCDU1/PERF/CLB/CLB.xml
new file mode 100644
index 00000000..11cc7d96
--- /dev/null
+++ b/Models/Instruments/MCDU1/PERF/CLB/CLB.xml
@@ -0,0 +1,538 @@
+
+
+
+
+
+
+ EMPTY.ac
+
+
+
+
+ page
+
+ -0.001
+ 0.0
+ 0.083
+
+ center-center
+ yz-plane
+ text-value
+ CLB
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ actmode
+
+ -0.001
+ -0.045
+ 0.0755
+
+ left-center
+ yz-plane
+ text-value
+ ACT MODE
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0040
+
+ 64
+ 64
+
+
+
+
+ actmode2
+
+ -0.001
+ -0.045
+ 0.0705
+
+ left-center
+ yz-plane
+ text-value
+ MANAGED
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0040
+
+ 64
+ 64
+
+
+
+
+ timedest
+
+ -0.001
+ -0.0
+ 0.0755
+
+ center-center
+ yz-plane
+ text-value
+ TIME DEST
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0040
+
+ 64
+ 64
+
+
+
+
+ timedest2
+
+ -0.001
+ -0.0
+ 0.0715
+
+ center-center
+ yz-plane
+ text-value
+ ---
+ false
+ helvetica_medium.txf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0040
+
+ 64
+ 64
+
+
+
+
+ efob
+
+ -0.001
+ 0.045
+ 0.0755
+
+ right-center
+ yz-plane
+ text-value
+ EFOB
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0040
+
+ 64
+ 64
+
+
+
+
+ efob2
+
+ -0.001
+ 0.045
+ 0.0715
+
+ right-center
+ yz-plane
+ text-value
+ ---
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ ci
+
+ -0.001
+ -0.045
+ 0.065
+
+ left-center
+ yz-plane
+ text-value
+ CI
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0040
+
+ 64
+ 64
+
+
+
+
+ ci2
+
+ -0.001
+ -0.045
+ 0.0605
+
+ left-center
+ yz-plane
+ text-value
+ ---
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+ ci3
+
+ -0.001
+ -0.045
+ 0.0605
+
+ left-center
+ yz-plane
+ text-value
+ %s
+ false
+ BoeingCDU-Large.ttf
+ /FMGC/internal/cost-index
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ select
+ ci2
+
+ /FMGC/internal/cost-index-set
+
+
+
+ select
+ ci3
+
+ /FMGC/internal/cost-index-set
+
+
+
+
+ managed
+
+ -0.001
+ -0.045
+ 0.0545
+
+ left-center
+ yz-plane
+ text-value
+ MANAGED
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0040
+
+ 64
+ 64
+
+
+
+
+ presel
+
+ -0.001
+ -0.045
+ 0.0435
+
+ left-center
+ yz-plane
+ text-value
+ PRESEL
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0040
+
+ 64
+ 64
+
+
+
+
+ presel2
+
+ -0.001
+ -0.045
+ 0.0385
+
+ left-center
+ yz-plane
+ text-value
+ *[ ]
+ false
+ helvetica_medium.txf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ previous
+
+ -0.001
+ -0.045
+ 0.0230
+
+ left-center
+ yz-plane
+ text-value
+ PREV
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0040
+
+ 64
+ 64
+
+
+
+ phase2
+
+ -0.001
+ -0.045
+ 0.0190
+
+ left-center
+ yz-plane
+ text-value
+ <PHASE
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ next
+
+ -0.001
+ 0.041
+ 0.0230
+
+ right-center
+ yz-plane
+ text-value
+ NEXT
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0040
+
+ 64
+ 64
+
+
+
+ phase
+
+ -0.001
+ 0.043
+ 0.0190
+
+ right-center
+ yz-plane
+ text-value
+ PHASE>
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+
+
+ material
+ page
+ actmode
+ managed
+ ci
+ efob
+ next
+ phase
+ previous
+ phase2
+ timedest
+
+ 1
+ 1
+ 1
+
+
+ 0
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+
+
+ 1
+ 1
+ 1
+
+
+
+
+
+ material
+ efob2
+ actmode2
+ timedest2
+
+ 0.2
+ 0.4
+ 0.2
+
+
+ 0
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+
+
+ 0.2
+ 0.4
+ 0.2
+
+
+
+
+
+ material
+ presel2
+ ci2
+ ci3
+
+ 0
+ 0.5
+ 0.7
+
+
+ 0
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+
+
+ 0
+ 0.5
+ 0.7
+
+
+
+
diff --git a/Models/Instruments/MCDU1/PERF/CLB/EMPTY.ac b/Models/Instruments/MCDU1/PERF/CLB/EMPTY.ac
new file mode 100644
index 00000000..4dd7e1f9
--- /dev/null
+++ b/Models/Instruments/MCDU1/PERF/CLB/EMPTY.ac
@@ -0,0 +1,3 @@
+AC3Db
+OBJECT world
+kids 0
diff --git a/Models/Instruments/MCDU1/PERF/CLB/bg.jpg b/Models/Instruments/MCDU1/PERF/CLB/bg.jpg
new file mode 100644
index 00000000..b6eece57
Binary files /dev/null and b/Models/Instruments/MCDU1/PERF/CLB/bg.jpg differ
diff --git a/Models/Instruments/MCDU1/PERF/CRZ/CRZ.xml b/Models/Instruments/MCDU1/PERF/CRZ/CRZ.xml
new file mode 100644
index 00000000..0cdbe6e3
--- /dev/null
+++ b/Models/Instruments/MCDU1/PERF/CRZ/CRZ.xml
@@ -0,0 +1,614 @@
+
+
+
+
+
+
+ EMPTY.ac
+
+
+
+
+ page
+
+ -0.001
+ 0.0
+ 0.083
+
+ center-center
+ yz-plane
+ text-value
+ CRZ
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ actmode3
+
+ -0.001
+ -0.045
+ 0.0755
+
+ left-center
+ yz-plane
+ text-value
+ ACT MODE
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0040
+
+ 64
+ 64
+
+
+
+
+ actmode4
+
+ -0.001
+ -0.045
+ 0.0705
+
+ left-center
+ yz-plane
+ text-value
+ MANAGED
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0040
+
+ 64
+ 64
+
+
+
+
+ timedest3
+
+ -0.001
+ -0.0
+ 0.0755
+
+ center-center
+ yz-plane
+ text-value
+ TIME DEST
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0040
+
+ 64
+ 64
+
+
+
+
+ timedest4
+
+ -0.001
+ -0.0
+ 0.0715
+
+ center-center
+ yz-plane
+ text-value
+ ---
+ false
+ helvetica_medium.txf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0040
+
+ 64
+ 64
+
+
+
+
+ efob3
+
+ -0.001
+ 0.045
+ 0.0755
+
+ right-center
+ yz-plane
+ text-value
+ EFOB
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0040
+
+ 64
+ 64
+
+
+
+
+ efob4
+
+ -0.001
+ 0.045
+ 0.0715
+
+ right-center
+ yz-plane
+ text-value
+ ---
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ ci5
+
+ -0.001
+ -0.045
+ 0.065
+
+ left-center
+ yz-plane
+ text-value
+ CI
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0040
+
+ 64
+ 64
+
+
+
+
+ ci6
+
+ -0.001
+ -0.045
+ 0.0605
+
+ left-center
+ yz-plane
+ text-value
+ ---
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+ ci7
+
+ -0.001
+ -0.045
+ 0.0605
+
+ left-center
+ yz-plane
+ text-value
+ %s
+ false
+ BoeingCDU-Large.ttf
+ /FMGC/internal/cost-index
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ select
+ ci6
+
+ /FMGC/internal/cost-index-set
+
+
+
+ select
+ ci7
+
+ /FMGC/internal/cost-index-set
+
+
+
+
+ managed2
+
+ -0.001
+ -0.045
+ 0.0545
+
+ left-center
+ yz-plane
+ text-value
+ MANAGED
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0040
+
+ 64
+ 64
+
+
+
+
+ presel3
+
+ -0.001
+ -0.045
+ 0.0435
+
+ left-center
+ yz-plane
+ text-value
+ PRESEL
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0040
+
+ 64
+ 64
+
+
+
+
+ presel4
+
+ -0.001
+ -0.045
+ 0.0385
+
+ left-center
+ yz-plane
+ text-value
+ *[ ]
+ false
+ helvetica_medium.txf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ previous2
+
+ -0.001
+ -0.045
+ 0.0230
+
+ left-center
+ yz-plane
+ text-value
+ PREV
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0040
+
+ 64
+ 64
+
+
+
+ phase4
+
+ -0.001
+ -0.045
+ 0.0190
+
+ left-center
+ yz-plane
+ text-value
+ <PHASE
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ next2
+
+ -0.001
+ 0.041
+ 0.0230
+
+ right-center
+ yz-plane
+ text-value
+ NEXT
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0040
+
+ 64
+ 64
+
+
+
+ phase3
+
+ -0.001
+ 0.043
+ 0.0190
+
+ right-center
+ yz-plane
+ text-value
+ PHASE>
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ descabinrate
+
+ -0.001
+ 0.0265
+ 0.030
+
+ right-center
+ yz-plane
+ text-value
+ -350
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ descabinrate2
+
+ -0.001
+ 0.045
+ 0.0345
+
+ right-center
+ yz-plane
+ text-value
+ DES CABIN RATE
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0040
+
+ 64
+ 64
+
+
+
+
+ descabinrate3
+
+ -0.001
+ 0.045
+ 0.030
+
+ right-center
+ yz-plane
+ text-value
+ FT/MIN
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+
+
+ material
+ page
+ actmode3
+ managed2
+ ci5
+ efob3
+ next2
+ phase3
+ previous2
+ phase4
+ presel3
+ descabinrate3
+ descabinrate2
+ timedest3
+
+ 1
+ 1
+ 1
+
+
+ 0
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+
+
+ 1
+ 1
+ 1
+
+
+
+
+
+ material
+ efob4
+ actmode4
+ timedest4
+
+ 0.2
+ 0.4
+ 0.2
+
+
+ 0
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+
+
+ 0.2
+ 0.4
+ 0.2
+
+
+
+
+
+ material
+ presel4
+ ci6
+ ci7
+ descabinrate
+
+ 0
+ 0.5
+ 0.7
+
+
+ 0
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+
+
+ 0
+ 0.5
+ 0.7
+
+
+
+
diff --git a/Models/Instruments/MCDU1/PERF/CRZ/EMPTY.ac b/Models/Instruments/MCDU1/PERF/CRZ/EMPTY.ac
new file mode 100644
index 00000000..4dd7e1f9
--- /dev/null
+++ b/Models/Instruments/MCDU1/PERF/CRZ/EMPTY.ac
@@ -0,0 +1,3 @@
+AC3Db
+OBJECT world
+kids 0
diff --git a/Models/Instruments/MCDU1/PERF/CRZ/bg.jpg b/Models/Instruments/MCDU1/PERF/CRZ/bg.jpg
new file mode 100644
index 00000000..b6eece57
Binary files /dev/null and b/Models/Instruments/MCDU1/PERF/CRZ/bg.jpg differ
diff --git a/Models/Instruments/MCDU2/MCDU2.xml b/Models/Instruments/MCDU2/MCDU2.xml
index f9522985..3946d9a5 100644
--- a/Models/Instruments/MCDU2/MCDU2.xml
+++ b/Models/Instruments/MCDU2/MCDU2.xml
@@ -136,6 +136,50 @@
+
+ CLB
+ PERF/CLB/CLB.xml
+
+ 180
+ 180
+ 90
+
+
+
+
+ /systems/electrical/bus/ac1
+ 25
+
+
+ /MCDU[1]/page
+ CLB
+
+
+
+
+
+
+ CRZ
+ PERF/CRZ/CRZ.xml
+
+ 180
+ 180
+ 90
+
+
+
+
+ /systems/electrical/bus/ac1
+ 25
+
+
+ /MCDU[1]/page
+ CRZ
+
+
+
+
+
DATA2
DATA2/DATA2.xml
diff --git a/Models/Instruments/MCDU2/PERF/CLB/CLB.xml b/Models/Instruments/MCDU2/PERF/CLB/CLB.xml
new file mode 100644
index 00000000..11cc7d96
--- /dev/null
+++ b/Models/Instruments/MCDU2/PERF/CLB/CLB.xml
@@ -0,0 +1,538 @@
+
+
+
+
+
+
+ EMPTY.ac
+
+
+
+
+ page
+
+ -0.001
+ 0.0
+ 0.083
+
+ center-center
+ yz-plane
+ text-value
+ CLB
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ actmode
+
+ -0.001
+ -0.045
+ 0.0755
+
+ left-center
+ yz-plane
+ text-value
+ ACT MODE
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0040
+
+ 64
+ 64
+
+
+
+
+ actmode2
+
+ -0.001
+ -0.045
+ 0.0705
+
+ left-center
+ yz-plane
+ text-value
+ MANAGED
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0040
+
+ 64
+ 64
+
+
+
+
+ timedest
+
+ -0.001
+ -0.0
+ 0.0755
+
+ center-center
+ yz-plane
+ text-value
+ TIME DEST
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0040
+
+ 64
+ 64
+
+
+
+
+ timedest2
+
+ -0.001
+ -0.0
+ 0.0715
+
+ center-center
+ yz-plane
+ text-value
+ ---
+ false
+ helvetica_medium.txf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0040
+
+ 64
+ 64
+
+
+
+
+ efob
+
+ -0.001
+ 0.045
+ 0.0755
+
+ right-center
+ yz-plane
+ text-value
+ EFOB
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0040
+
+ 64
+ 64
+
+
+
+
+ efob2
+
+ -0.001
+ 0.045
+ 0.0715
+
+ right-center
+ yz-plane
+ text-value
+ ---
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ ci
+
+ -0.001
+ -0.045
+ 0.065
+
+ left-center
+ yz-plane
+ text-value
+ CI
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0040
+
+ 64
+ 64
+
+
+
+
+ ci2
+
+ -0.001
+ -0.045
+ 0.0605
+
+ left-center
+ yz-plane
+ text-value
+ ---
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+ ci3
+
+ -0.001
+ -0.045
+ 0.0605
+
+ left-center
+ yz-plane
+ text-value
+ %s
+ false
+ BoeingCDU-Large.ttf
+ /FMGC/internal/cost-index
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ select
+ ci2
+
+ /FMGC/internal/cost-index-set
+
+
+
+ select
+ ci3
+
+ /FMGC/internal/cost-index-set
+
+
+
+
+ managed
+
+ -0.001
+ -0.045
+ 0.0545
+
+ left-center
+ yz-plane
+ text-value
+ MANAGED
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0040
+
+ 64
+ 64
+
+
+
+
+ presel
+
+ -0.001
+ -0.045
+ 0.0435
+
+ left-center
+ yz-plane
+ text-value
+ PRESEL
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0040
+
+ 64
+ 64
+
+
+
+
+ presel2
+
+ -0.001
+ -0.045
+ 0.0385
+
+ left-center
+ yz-plane
+ text-value
+ *[ ]
+ false
+ helvetica_medium.txf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ previous
+
+ -0.001
+ -0.045
+ 0.0230
+
+ left-center
+ yz-plane
+ text-value
+ PREV
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0040
+
+ 64
+ 64
+
+
+
+ phase2
+
+ -0.001
+ -0.045
+ 0.0190
+
+ left-center
+ yz-plane
+ text-value
+ <PHASE
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ next
+
+ -0.001
+ 0.041
+ 0.0230
+
+ right-center
+ yz-plane
+ text-value
+ NEXT
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0040
+
+ 64
+ 64
+
+
+
+ phase
+
+ -0.001
+ 0.043
+ 0.0190
+
+ right-center
+ yz-plane
+ text-value
+ PHASE>
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+
+
+ material
+ page
+ actmode
+ managed
+ ci
+ efob
+ next
+ phase
+ previous
+ phase2
+ timedest
+
+ 1
+ 1
+ 1
+
+
+ 0
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+
+
+ 1
+ 1
+ 1
+
+
+
+
+
+ material
+ efob2
+ actmode2
+ timedest2
+
+ 0.2
+ 0.4
+ 0.2
+
+
+ 0
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+
+
+ 0.2
+ 0.4
+ 0.2
+
+
+
+
+
+ material
+ presel2
+ ci2
+ ci3
+
+ 0
+ 0.5
+ 0.7
+
+
+ 0
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+
+
+ 0
+ 0.5
+ 0.7
+
+
+
+
diff --git a/Models/Instruments/MCDU2/PERF/CLB/EMPTY.ac b/Models/Instruments/MCDU2/PERF/CLB/EMPTY.ac
new file mode 100644
index 00000000..4dd7e1f9
--- /dev/null
+++ b/Models/Instruments/MCDU2/PERF/CLB/EMPTY.ac
@@ -0,0 +1,3 @@
+AC3Db
+OBJECT world
+kids 0
diff --git a/Models/Instruments/MCDU2/PERF/CLB/bg.jpg b/Models/Instruments/MCDU2/PERF/CLB/bg.jpg
new file mode 100644
index 00000000..b6eece57
Binary files /dev/null and b/Models/Instruments/MCDU2/PERF/CLB/bg.jpg differ
diff --git a/Models/Instruments/MCDU2/PERF/CRZ/CRZ.xml b/Models/Instruments/MCDU2/PERF/CRZ/CRZ.xml
new file mode 100644
index 00000000..0cdbe6e3
--- /dev/null
+++ b/Models/Instruments/MCDU2/PERF/CRZ/CRZ.xml
@@ -0,0 +1,614 @@
+
+
+
+
+
+
+ EMPTY.ac
+
+
+
+
+ page
+
+ -0.001
+ 0.0
+ 0.083
+
+ center-center
+ yz-plane
+ text-value
+ CRZ
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ actmode3
+
+ -0.001
+ -0.045
+ 0.0755
+
+ left-center
+ yz-plane
+ text-value
+ ACT MODE
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0040
+
+ 64
+ 64
+
+
+
+
+ actmode4
+
+ -0.001
+ -0.045
+ 0.0705
+
+ left-center
+ yz-plane
+ text-value
+ MANAGED
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0040
+
+ 64
+ 64
+
+
+
+
+ timedest3
+
+ -0.001
+ -0.0
+ 0.0755
+
+ center-center
+ yz-plane
+ text-value
+ TIME DEST
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0040
+
+ 64
+ 64
+
+
+
+
+ timedest4
+
+ -0.001
+ -0.0
+ 0.0715
+
+ center-center
+ yz-plane
+ text-value
+ ---
+ false
+ helvetica_medium.txf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0040
+
+ 64
+ 64
+
+
+
+
+ efob3
+
+ -0.001
+ 0.045
+ 0.0755
+
+ right-center
+ yz-plane
+ text-value
+ EFOB
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0040
+
+ 64
+ 64
+
+
+
+
+ efob4
+
+ -0.001
+ 0.045
+ 0.0715
+
+ right-center
+ yz-plane
+ text-value
+ ---
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ ci5
+
+ -0.001
+ -0.045
+ 0.065
+
+ left-center
+ yz-plane
+ text-value
+ CI
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0040
+
+ 64
+ 64
+
+
+
+
+ ci6
+
+ -0.001
+ -0.045
+ 0.0605
+
+ left-center
+ yz-plane
+ text-value
+ ---
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+ ci7
+
+ -0.001
+ -0.045
+ 0.0605
+
+ left-center
+ yz-plane
+ text-value
+ %s
+ false
+ BoeingCDU-Large.ttf
+ /FMGC/internal/cost-index
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ select
+ ci6
+
+ /FMGC/internal/cost-index-set
+
+
+
+ select
+ ci7
+
+ /FMGC/internal/cost-index-set
+
+
+
+
+ managed2
+
+ -0.001
+ -0.045
+ 0.0545
+
+ left-center
+ yz-plane
+ text-value
+ MANAGED
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0040
+
+ 64
+ 64
+
+
+
+
+ presel3
+
+ -0.001
+ -0.045
+ 0.0435
+
+ left-center
+ yz-plane
+ text-value
+ PRESEL
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0040
+
+ 64
+ 64
+
+
+
+
+ presel4
+
+ -0.001
+ -0.045
+ 0.0385
+
+ left-center
+ yz-plane
+ text-value
+ *[ ]
+ false
+ helvetica_medium.txf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ previous2
+
+ -0.001
+ -0.045
+ 0.0230
+
+ left-center
+ yz-plane
+ text-value
+ PREV
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0040
+
+ 64
+ 64
+
+
+
+ phase4
+
+ -0.001
+ -0.045
+ 0.0190
+
+ left-center
+ yz-plane
+ text-value
+ <PHASE
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ next2
+
+ -0.001
+ 0.041
+ 0.0230
+
+ right-center
+ yz-plane
+ text-value
+ NEXT
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0040
+
+ 64
+ 64
+
+
+
+ phase3
+
+ -0.001
+ 0.043
+ 0.0190
+
+ right-center
+ yz-plane
+ text-value
+ PHASE>
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ descabinrate
+
+ -0.001
+ 0.0265
+ 0.030
+
+ right-center
+ yz-plane
+ text-value
+ -350
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ descabinrate2
+
+ -0.001
+ 0.045
+ 0.0345
+
+ right-center
+ yz-plane
+ text-value
+ DES CABIN RATE
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0040
+
+ 64
+ 64
+
+
+
+
+ descabinrate3
+
+ -0.001
+ 0.045
+ 0.030
+
+ right-center
+ yz-plane
+ text-value
+ FT/MIN
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+
+
+ material
+ page
+ actmode3
+ managed2
+ ci5
+ efob3
+ next2
+ phase3
+ previous2
+ phase4
+ presel3
+ descabinrate3
+ descabinrate2
+ timedest3
+
+ 1
+ 1
+ 1
+
+
+ 0
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+
+
+ 1
+ 1
+ 1
+
+
+
+
+
+ material
+ efob4
+ actmode4
+ timedest4
+
+ 0.2
+ 0.4
+ 0.2
+
+
+ 0
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+
+
+ 0.2
+ 0.4
+ 0.2
+
+
+
+
+
+ material
+ presel4
+ ci6
+ ci7
+ descabinrate
+
+ 0
+ 0.5
+ 0.7
+
+
+ 0
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+
+
+ 0
+ 0.5
+ 0.7
+
+
+
+
diff --git a/Models/Instruments/MCDU2/PERF/CRZ/EMPTY.ac b/Models/Instruments/MCDU2/PERF/CRZ/EMPTY.ac
new file mode 100644
index 00000000..4dd7e1f9
--- /dev/null
+++ b/Models/Instruments/MCDU2/PERF/CRZ/EMPTY.ac
@@ -0,0 +1,3 @@
+AC3Db
+OBJECT world
+kids 0
diff --git a/Models/Instruments/MCDU2/PERF/CRZ/bg.jpg b/Models/Instruments/MCDU2/PERF/CRZ/bg.jpg
new file mode 100644
index 00000000..b6eece57
Binary files /dev/null and b/Models/Instruments/MCDU2/PERF/CRZ/bg.jpg differ
diff --git a/Models/Instruments/PFD/PFD1.xml b/Models/Instruments/PFD/PFD1.xml
index 189582ed..7feecc34 100644
--- a/Models/Instruments/PFD/PFD1.xml
+++ b/Models/Instruments/PFD/PFD1.xml
@@ -152,7 +152,7 @@
translate
fd_roll
/it-autoflight/fd/roll-bar
- 0.0001
+ 0.0002
0
1
@@ -1123,43 +1123,6 @@
-
- select
- thrust-mode-fma
-
-
-
- /it-autoflight/output/athr
- 1
-
-
- /systems/thrust/state1
- MAN THR
-
-
- /systems/thrust/state2
- MAN THR
-
-
- /systems/thrust/state1
- MCT
-
-
- /systems/thrust/state2
- MCT
-
-
- /systems/thrust/state1
- TOGA
-
-
- /systems/thrust/state2
- TOGA
-
-
-
-
-
pitch-mode-fma
@@ -1413,14 +1376,68 @@
1
-
- /systems/thrust/state1
- CL
-
-
- /systems/thrust/state2
- CL
-
+
+
+ /it-autoflight/output/thr-mode
+ 2
+
+
+
+ /it-autoflight/output/fd1
+ 1
+
+
+ /it-autoflight/output/fd2
+ 1
+
+
+
+
+ /systems/thrust/state1
+ CL
+
+
+ /systems/thrust/state2
+ CL
+
+
+
+
+
+
+ /it-autoflight/output/thr-mode
+ 2
+
+
+
+ /it-autoflight/output/fd1
+ 0
+
+
+ /it-autoflight/output/fd2
+ 0
+
+
+
+
+
+ /systems/thrust/state1
+ MAN
+
+
+ /systems/thrust/state2
+ MAN
+
+
+ /systems/thrust/state1
+ CL
+
+
+ /systems/thrust/state2
+ CL
+
+
+
@@ -1431,6 +1448,14 @@
athr-active-fma
+
+ /systems/thrust/alpha-floor
+ 0
+
+
+ /systems/thrust/toga-lk
+ 0
+
/it-autoflight/output/athr
1
@@ -1491,6 +1516,14 @@
1
+
+ /systems/thrust/alpha-floor
+ 1
+
+
+ /systems/thrust/toga-lk
+ 1
+
/systems/thrust/state1
MAN THR
@@ -1529,6 +1562,20 @@
/it-autoflight/output/athr
1
+
+ /it-autoflight/output/thr-mode
+ 2
+
+
+
+ /it-autoflight/output/fd1
+ 1
+
+
+ /it-autoflight/output/fd2
+ 1
+
+
/controls/engines/engine[0]/throttle
0.60
@@ -1537,14 +1584,6 @@
/controls/engines/engine[1]/throttle
0.60
-
- /controls/engines/engine[2]/throttle
- 0.60
-
-
- /controls/engines/engine[3]/throttle
- 0.60
-
@@ -1834,6 +1873,118 @@
/systems/thrust/lvrclb
1
+
+ /systems/thrust/alpha-floor
+ 0
+
+
+ /systems/thrust/toga-lk
+ 0
+
+
+
+
+
+
+ select
+ thrust-mode-fma
+ athr-lvrclb-fma
+ athr-thrlvr-fma
+ athr-thr-fma
+ athr-mct-fma
+ athr-toga-fma
+ athr-man-fma
+ athr-box-fma
+
+
+
+ /systems/thrust/alpha-floor
+ 0
+
+
+ /systems/thrust/toga-lk
+ 0
+
+
+
+
+
+
+ athr-afloor-fma
+
+ 0.00091828
+ -0.0546226
+ 0.0710781
+
+ center-center
+ yz-plane
+ text-value
+ A.FLOOR
+ autopilot/serviceable
+ helvetica_medium.txf
+ true
+ false
+ true
+ 0.0055
+
+ 32
+ 32
+
+
+
+
+ athr-togalk-fma
+
+ 0.00091828
+ -0.0546226
+ 0.0710781
+
+ center-center
+ yz-plane
+ text-value
+ TOGA LK
+ autopilot/serviceable
+ helvetica_medium.txf
+ true
+ false
+ true
+ 0.0055
+
+ 32
+ 32
+
+
+
+
+ select
+ athr-afloor-fma
+
+
+
+ /systems/thrust/alpha-floor
+ 1
+
+
+ /systems/thrust/toga-lk
+ 0
+
+
+
+
+
+
+ select
+ athr-togalk-fma
+
+
+
+ /systems/thrust/alpha-floor
+ 0
+
+
+ /systems/thrust/toga-lk
+ 1
+
@@ -2220,4 +2371,30 @@
+
+ material
+ athr-afloor-fma
+ athr-togalk-fma
+
+ 1
+ 0.45
+ 0
+
+
+ 0
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+
+
+ 1
+ 0.45
+ 0
+
+
+
diff --git a/Models/Instruments/PFD/PFD2.xml b/Models/Instruments/PFD/PFD2.xml
index 845e56f3..50eda2b5 100644
--- a/Models/Instruments/PFD/PFD2.xml
+++ b/Models/Instruments/PFD/PFD2.xml
@@ -152,7 +152,7 @@
translate
fd_roll
/it-autoflight/fd/roll-bar
- 0.0001
+ 0.0002
0
1
@@ -1123,43 +1123,6 @@
-
- select
- thrust-mode-fma
-
-
-
- /it-autoflight/output/athr
- 1
-
-
- /systems/thrust/state1
- MAN THR
-
-
- /systems/thrust/state2
- MAN THR
-
-
- /systems/thrust/state1
- MCT
-
-
- /systems/thrust/state2
- MCT
-
-
- /systems/thrust/state1
- TOGA
-
-
- /systems/thrust/state2
- TOGA
-
-
-
-
-
pitch-mode-fma
@@ -1413,14 +1376,68 @@
1
-
- /systems/thrust/state1
- CL
-
-
- /systems/thrust/state2
- CL
-
+
+
+ /it-autoflight/output/thr-mode
+ 2
+
+
+
+ /it-autoflight/output/fd1
+ 1
+
+
+ /it-autoflight/output/fd2
+ 1
+
+
+
+
+ /systems/thrust/state1
+ CL
+
+
+ /systems/thrust/state2
+ CL
+
+
+
+
+
+
+ /it-autoflight/output/thr-mode
+ 2
+
+
+
+ /it-autoflight/output/fd1
+ 0
+
+
+ /it-autoflight/output/fd2
+ 0
+
+
+
+
+
+ /systems/thrust/state1
+ MAN
+
+
+ /systems/thrust/state2
+ MAN
+
+
+ /systems/thrust/state1
+ CL
+
+
+ /systems/thrust/state2
+ CL
+
+
+
@@ -1431,6 +1448,14 @@
athr-active-fma
+
+ /systems/thrust/alpha-floor
+ 0
+
+
+ /systems/thrust/toga-lk
+ 0
+
/it-autoflight/output/athr
1
@@ -1491,6 +1516,14 @@
1
+
+ /systems/thrust/alpha-floor
+ 1
+
+
+ /systems/thrust/toga-lk
+ 1
+
/systems/thrust/state1
MAN THR
@@ -1529,6 +1562,20 @@
/it-autoflight/output/athr
1
+
+ /it-autoflight/output/thr-mode
+ 2
+
+
+
+ /it-autoflight/output/fd1
+ 1
+
+
+ /it-autoflight/output/fd2
+ 1
+
+
/controls/engines/engine[0]/throttle
0.60
@@ -1537,14 +1584,6 @@
/controls/engines/engine[1]/throttle
0.60
-
- /controls/engines/engine[2]/throttle
- 0.60
-
-
- /controls/engines/engine[3]/throttle
- 0.60
-
@@ -1834,6 +1873,118 @@
/systems/thrust/lvrclb
1
+
+ /systems/thrust/alpha-floor
+ 0
+
+
+ /systems/thrust/toga-lk
+ 0
+
+
+
+
+
+
+ select
+ thrust-mode-fma
+ athr-lvrclb-fma
+ athr-thrlvr-fma
+ athr-thr-fma
+ athr-mct-fma
+ athr-toga-fma
+ athr-man-fma
+ athr-box-fma
+
+
+
+ /systems/thrust/alpha-floor
+ 0
+
+
+ /systems/thrust/toga-lk
+ 0
+
+
+
+
+
+
+ athr-afloor-fma
+
+ 0.00091828
+ -0.0546226
+ 0.0710781
+
+ center-center
+ yz-plane
+ text-value
+ A.FLOOR
+ autopilot/serviceable
+ helvetica_medium.txf
+ true
+ false
+ true
+ 0.0055
+
+ 32
+ 32
+
+
+
+
+ athr-togalk-fma
+
+ 0.00091828
+ -0.0546226
+ 0.0710781
+
+ center-center
+ yz-plane
+ text-value
+ TOGA LK
+ autopilot/serviceable
+ helvetica_medium.txf
+ true
+ false
+ true
+ 0.0055
+
+ 32
+ 32
+
+
+
+
+ select
+ athr-afloor-fma
+
+
+
+ /systems/thrust/alpha-floor
+ 1
+
+
+ /systems/thrust/toga-lk
+ 0
+
+
+
+
+
+
+ select
+ athr-togalk-fma
+
+
+
+ /systems/thrust/alpha-floor
+ 0
+
+
+ /systems/thrust/toga-lk
+ 1
+
@@ -2220,4 +2371,30 @@
+
+ material
+ athr-afloor-fma
+ athr-togalk-fma
+
+ 1
+ 0.45
+ 0
+
+
+ 0
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+
+
+ 1
+ 0.45
+ 0
+
+
+
diff --git a/Nasal/MCDU1.nas b/Nasal/MCDU1.nas
index 8ecb832f..6580a74a 100644
--- a/Nasal/MCDU1.nas
+++ b/Nasal/MCDU1.nas
@@ -17,20 +17,31 @@ var MCDU_reset = func {
}
var lskbutton = func(btn) {
- if (btn == "4") {
+ if (btn == "2") {
+ if (getprop("/MCDU[0]/page") == "INITA") {
+ PerfInput("L2");
+ }
+ } else if (btn == "4") {
if (getprop("/MCDU[0]/page") == "DATA") {
setprop("/MCDU[0]/page", "STATUS");
}
} else if (btn == "5") {
if (getprop("/MCDU[0]/page") == "INITA") {
initInputA("L5");
+ } else if (getprop("/MCDU[0]/page") == "CLB") {
+ PerfCLBInput("L5");
}
} 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");
}
}
}
+
var initInputA = func(key) {
var scratchpad = getprop("/MCDU[0]/scratchpad");
@@ -79,8 +90,60 @@ var initInputA = func(key) {
}
}
+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", "");
+ } else {
+ var ci = int(scratchpad);
+ var cis = size(scratchpad);
+ if (cis >= 1 and cis <= 3) {
+ if (cis >= 0 and cis <= 120) {
+ setprop("/FMGC/internal/cost-index", ci);
+ setprop("/FMGC/internal/cost-index-set", 1);
+ setprop("/MCDU[0]/scratchpad", "");
+ } else {
+ setprop("/MCDU[0]/scratchpad", "NOT ALLOWED");
+ }
+ } else {
+ 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 PerfTOInput = func(key) {
+ if (key == "R6") {
+ setprop("/MCDU[0]/page", "CLB");
+ }
+}
+
+var PerfCRZInput = func(key) {
+ if (key == "L6") {
+ setprop("/MCDU[0]/page", "CLB");
+ }
+ # if (key == "R6") {
+ # setprop("/MCDU[0]/page", "DES");
+ # }
+}
+
var rskbutton = func(btn) {
- # LOL Nothing here :D
+ 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");
+ #}
+ }
}
var arrowbutton = func(btn) {
diff --git a/Nasal/MCDU2.nas b/Nasal/MCDU2.nas
index 2615a390..73ce4ad4 100644
--- a/Nasal/MCDU2.nas
+++ b/Nasal/MCDU2.nas
@@ -17,17 +17,27 @@ var MCDU_reset = func {
}
var lskbutton = func(btn) {
- if (btn == "4") {
+ if (btn == "2") {
+ if (getprop("/MCDU[1]/page") == "INITA") {
+ PerfInput("L2");
+ }
+ } else if (btn == "4") {
if (getprop("/MCDU[1]/page") == "DATA") {
setprop("/MCDU[1]/page", "STATUS");
}
} else if (btn == "5") {
if (getprop("/MCDU[1]/page") == "INITA") {
initInputA("L5");
+ } else if (getprop("/MCDU[1]/page") == "CLB") {
+ PerfCLBInput("L5");
}
} 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");
}
}
}
@@ -79,8 +89,59 @@ var initInputA = func(key) {
}
}
+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", "");
+ } else {
+ var ci = int(scratchpad);
+ var cis = size(scratchpad);
+ if (cis >= 1 and cis <= 3) {
+ if (cis >= 0 and cis <= 120) {
+ setprop("/FMGC/internal/cost-index", ci);
+ setprop("/FMGC/internal/cost-index-set", 1);
+ setprop("/MCDU[1]/scratchpad", "");
+ } else {
+ setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
+ }
+ } else {
+ 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 PerfTOInput = func(key) {
+ if (key == "R6") {
+ setprop("/MCDU[1]/page", "CLB");
+ }
+}
+
+var PerfCRZInput = func(key) {
+ if (key == "L6") {
+ setprop("/MCDU[1]/page", "CLB");
+ } # else if (key == "R6") {
+ # setprop("/MCDU[1]/page", "DES");
+ #}
+}
+
var rskbutton = func(btn) {
- # LOL Nothing here :D
+ 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") == "TO") {
+ # PerfCRZInput("R6");
+ # }
+ }
}
var arrowbutton = func(btn) {
diff --git a/Nasal/it-fbw.nas b/Nasal/it-fbw.nas
index 80d89a84..2052ade4 100644
--- a/Nasal/it-fbw.nas
+++ b/Nasal/it-fbw.nas
@@ -1,5 +1,5 @@
# Airbus A3XX FBW System by Joshua Davidson (it0uchpods)
-# V0.9.7.1
+# V0.9.8
###################
# Update Function #
@@ -37,6 +37,9 @@ var update_loop = func {
if (getprop("/position/gear-agl-ft") <= 2) {
setprop("/it-fbw/pitch-lim-max", "15");
setprop("/it-fbw/pitch-lim-min", "-5");
+ } else if (getprop("/controls/flight/flap-lever") == 4) {
+ setprop("/it-fbw/pitch-lim-max", "25");
+ setprop("/it-fbw/pitch-lim-min", "-15");
} else {
setprop("/it-fbw/pitch-lim-max", "30");
setprop("/it-fbw/pitch-lim-min", "-15");
diff --git a/Nasal/thrust.nas b/Nasal/thrust.nas
index 524e4e51..fa58d4c0 100644
--- a/Nasal/thrust.nas
+++ b/Nasal/thrust.nas
@@ -1,7 +1,10 @@
# A3XX Throttle Control System by Joshua Davidson (it0uchpods)
# Set A/THR modes to Custom IT-AUTOTHRUST, and other thrust modes like MCT, TOGA and eventually TO FLEX.
# Also handles FADEC
-# V1.9.1
+# V1.9.5
+
+setprop("/systems/thrust/alpha-floor", 0);
+setprop("/systems/thrust/toga-lk", 0);
setlistener("/sim/signals/fdm-initialized", func {
setprop("/controls/engines/thrust-limit", "TOGA");
@@ -16,51 +19,98 @@ setlistener("/sim/signals/fdm-initialized", func {
setlistener("/controls/engines/engine[0]/throttle-pos", func {
var thrr = getprop("/controls/engines/engine[0]/throttle-pos");
- if (thrr < 0.01) {
- setprop("/systems/thrust/state1", "IDLE");
- atoff_request();
- } else if (thrr >= 0.01 and thrr < 0.60) {
- setprop("/systems/thrust/state1", "MAN");
- } else if (thrr >= 0.60 and thrr < 0.65) {
- setprop("/systems/thrust/state1", "CL");
- } else if (thrr >= 0.65 and thrr < 0.78) {
- setprop("/systems/thrust/state1", "MAN THR");
- } else if (thrr >= 0.78 and thrr < 0.83) {
- setprop("/it-autoflight/input/athr", 1);
- setprop("/controls/engines/engine[0]/throttle-fdm", 0.90);
- setprop("/systems/thrust/state1", "MCT");
- } else if (thrr >= 0.83 and thrr < 0.95) {
- setprop("/it-autoflight/input/athr", 1);
- setprop("/systems/thrust/state1", "MAN THR");
- } else if (thrr >= 0.95) {
- setprop("/it-autoflight/input/athr", 1);
+ if (getprop("/systems/thrust/alpha-floor") == 0 and getprop("/systems/thrust/toga-lk") == 0) {
+ if (thrr < 0.01) {
+ setprop("/systems/thrust/state1", "IDLE");
+ atoff_request();
+ } else if (thrr >= 0.01 and thrr < 0.60) {
+ setprop("/systems/thrust/state1", "MAN");
+ } else if (thrr >= 0.60 and thrr < 0.65) {
+ setprop("/systems/thrust/state1", "CL");
+ } else if (thrr >= 0.65 and thrr < 0.78) {
+ setprop("/systems/thrust/state1", "MAN THR");
+ } else if (thrr >= 0.78 and thrr < 0.83) {
+ setprop("/it-autoflight/input/athr", 1);
+ setprop("/controls/engines/engine[0]/throttle-fdm", 0.90);
+ setprop("/systems/thrust/state1", "MCT");
+ } else if (thrr >= 0.83 and thrr < 0.95) {
+ setprop("/it-autoflight/input/athr", 1);
+ setprop("/systems/thrust/state1", "MAN THR");
+ } else if (thrr >= 0.95) {
+ setprop("/it-autoflight/input/athr", 1);
+ setprop("/controls/engines/engine[0]/throttle-fdm", 0.95);
+ setprop("/systems/thrust/state1", "TOGA");
+ }
+ } else {
+ if (thrr < 0.01) {
+ setprop("/systems/thrust/state1", "IDLE");
+ } else if (thrr >= 0.01 and thrr < 0.60) {
+ setprop("/systems/thrust/state1", "MAN");
+ } else if (thrr >= 0.60 and thrr < 0.65) {
+ setprop("/systems/thrust/state1", "CL");
+ } else if (thrr >= 0.65 and thrr < 0.78) {
+ setprop("/systems/thrust/state1", "MAN THR");
+ } else if (thrr >= 0.78 and thrr < 0.83) {
+ setprop("/systems/thrust/state1", "MCT");
+ } else if (thrr >= 0.83 and thrr < 0.95) {
+ setprop("/systems/thrust/state1", "MAN THR");
+ } else if (thrr >= 0.95) {
+ setprop("/systems/thrust/state1", "TOGA");
+ }
setprop("/controls/engines/engine[0]/throttle-fdm", 0.95);
- setprop("/systems/thrust/state1", "TOGA");
}
});
setlistener("/controls/engines/engine[1]/throttle-pos", func {
var thrr = getprop("/controls/engines/engine[1]/throttle-pos");
- if (thrr < 0.01) {
- setprop("/systems/thrust/state2", "IDLE");
- atoff_request();
- } else if (thrr >= 0.01 and thrr < 0.60) {
- setprop("/systems/thrust/state2", "MAN");
- } else if (thrr >= 0.60 and thrr < 0.65) {
- setprop("/systems/thrust/state2", "CL");
- } else if (thrr >= 0.65 and thrr < 0.78) {
- setprop("/systems/thrust/state2", "MAN THR");
- } else if (thrr >= 0.78 and thrr < 0.83) {
- setprop("/it-autoflight/input/athr", 1);
- setprop("/controls/engines/engine[1]/throttle-fdm", 0.90);
- setprop("/systems/thrust/state2", "MCT");
- } else if (thrr >= 0.83 and thrr < 0.95) {
- setprop("/it-autoflight/input/athr", 1);
- setprop("/systems/thrust/state2", "MAN THR");
- } else if (thrr >= 0.95) {
- setprop("/it-autoflight/input/athr", 1);
+ if (getprop("/systems/thrust/alpha-floor") == 0 and getprop("/systems/thrust/toga-lk") == 0) {
+ if (thrr < 0.01) {
+ setprop("/systems/thrust/state2", "IDLE");
+ atoff_request();
+ } else if (thrr >= 0.01 and thrr < 0.60) {
+ setprop("/systems/thrust/state2", "MAN");
+ } else if (thrr >= 0.60 and thrr < 0.65) {
+ setprop("/systems/thrust/state2", "CL");
+ } else if (thrr >= 0.65 and thrr < 0.78) {
+ setprop("/systems/thrust/state2", "MAN THR");
+ } else if (thrr >= 0.78 and thrr < 0.83) {
+ setprop("/it-autoflight/input/athr", 1);
+ setprop("/controls/engines/engine[1]/throttle-fdm", 0.90);
+ setprop("/systems/thrust/state2", "MCT");
+ } else if (thrr >= 0.83 and thrr < 0.95) {
+ setprop("/it-autoflight/input/athr", 1);
+ setprop("/systems/thrust/state2", "MAN THR");
+ } else if (thrr >= 0.95) {
+ setprop("/it-autoflight/input/athr", 1);
+ setprop("/controls/engines/engine[1]/throttle-fdm", 0.95);
+ setprop("/systems/thrust/state2", "TOGA");
+ }
+ } else {
+ if (thrr < 0.01) {
+ setprop("/systems/thrust/state2", "IDLE");
+ } else if (thrr >= 0.01 and thrr < 0.60) {
+ setprop("/systems/thrust/state2", "MAN");
+ } else if (thrr >= 0.60 and thrr < 0.65) {
+ setprop("/systems/thrust/state2", "CL");
+ } else if (thrr >= 0.65 and thrr < 0.78) {
+ setprop("/systems/thrust/state2", "MAN THR");
+ } else if (thrr >= 0.78 and thrr < 0.83) {
+ setprop("/systems/thrust/state2", "MCT");
+ } else if (thrr >= 0.83 and thrr < 0.95) {
+ setprop("/systems/thrust/state2", "MAN THR");
+ } else if (thrr >= 0.95) {
+ setprop("/systems/thrust/state2", "TOGA");
+ }
setprop("/controls/engines/engine[1]/throttle-fdm", 0.95);
- setprop("/systems/thrust/state2", "TOGA");
+ }
+});
+
+# Alpha Floor and Toga Lock
+setlistener("/it-autoflight/input/athr", func {
+ if (getprop("/systems/thrust/alpha-floor") == 1) {
+ setprop("/it-autoflight/input/athr", 1);
+ } else {
+ setprop("/systems/thrust/toga-lk", 0);
}
});
@@ -68,7 +118,7 @@ setlistener("/controls/engines/engine[1]/throttle-pos", func {
var atoff_request = func {
var state1 = getprop("/systems/thrust/state1");
var state2 = getprop("/systems/thrust/state2");
- if ((state1 == "IDLE") and (state2 == "IDLE")) {
+ if ((state1 == "IDLE") and (state2 == "IDLE") and (getprop("/systems/thrust/alpha-floor") == 0) and (getprop("/systems/thrust/toga-lk") == 0)) {
setprop("/it-autoflight/input/athr", 0);
}
}
@@ -87,7 +137,7 @@ var thrust_lim = func {
var thr1 = getprop("/controls/engines/engine[0]/throttle-pos");
var thr2 = getprop("/controls/engines/engine[0]/throttle-pos");
if (getprop("/gear/gear[1]/wow") == 0 and getprop("/gear/gear[2]/wow") == 0) {
- if (state1 == "TOGA" or state2 == "TOGA" or (state1 == "MAN THR" and thr1 >= 0.83) or (state2 == "MAN THR" and thr2 >= 0.83)) {
+ if ((state1 == "TOGA" or state2 == "TOGA" or (state1 == "MAN THR" and thr1 >= 0.83) or (state2 == "MAN THR" and thr2 >= 0.83)) or getprop("/systems/thrust/alpha-floor") == 1 or getprop("/systems/thrust/toga-lk") == 1) {
setprop("/controls/engines/thrust-limit", "TOGA");
setprop("/controls/engines/epr-limit", 1.308);
setprop("/controls/engines/n1-limit", 101.8);
@@ -128,6 +178,35 @@ var thrust_loop = func {
setprop("/systems/thrust/lvrclb", "0");
}
}
+
+# var AoA = getprop("/fdm/jsbsim/aero/alpha-deg");
+# var flaps = getprop("/controls/flight/flap-lever");
+# if (getprop("/gear/gear[1]/wow") == 0 and getprop("/gear/gear[2]/wow") == 0 and getprop("/it-fbw/law") == 0) {
+# if (AoA >= 6.0 and flaps == 0) {
+# setprop("/systems/thrust/alpha-floor", 1);
+# setprop("/systems/thrust/toga-lk", 0);
+# setprop("/it-autoflight/input/athr", 1);
+# } else if (AoA >= 8.0 and (flaps == 1 or flaps == 2)) {
+# setprop("/systems/thrust/alpha-floor", 1);
+# setprop("/systems/thrust/toga-lk", 0);
+# setprop("/it-autoflight/input/athr", 1);
+# } else if (AoA >= 8.0 and flaps == 3) {
+# setprop("/systems/thrust/alpha-floor", 1);
+# setprop("/systems/thrust/toga-lk", 0);
+# setprop("/it-autoflight/input/athr", 1);
+# } else if (AoA >= 7.5 and flaps == 4) {
+# setprop("/systems/thrust/alpha-floor", 1);
+# setprop("/systems/thrust/toga-lk", 0);
+# setprop("/it-autoflight/input/athr", 1);
+# } else if (getprop("/systems/thrust/alpha-floor") == 1) {
+# setprop("/systems/thrust/alpha-floor", 0);
+# setprop("/it-autoflight/input/athr", 1);
+# setprop("/systems/thrust/toga-lk", 1);
+# }
+# } else {
+# setprop("/systems/thrust/alpha-floor", 0);
+# setprop("/systems/thrust/toga-lk", 0);
+# }
}
# Timers
diff --git a/Systems/engine-timing.xml b/Systems/engine-timing.xml
index 9c5e0ccd..099c9f15 100644
--- a/Systems/engine-timing.xml
+++ b/Systems/engine-timing.xml
@@ -209,7 +209,7 @@
- 5
+ 10
@@ -220,7 +220,7 @@
/it-autoflight/internal/vert-speed-fpm
- 500
+ 1000
diff --git a/Systems/hydraulics.xml b/Systems/hydraulics.xml
index 9cbdb66b..05b14996 100644
--- a/Systems/hydraulics.xml
+++ b/Systems/hydraulics.xml
@@ -542,8 +542,7 @@
- /controls/flight/rudder
- 0.5
+ 0
diff --git a/Systems/it-fbw-b.xml b/Systems/it-fbw-b.xml
index 2bf03777..f1e88b28 100644
--- a/Systems/it-fbw-b.xml
+++ b/Systems/it-fbw-b.xml
@@ -220,6 +220,10 @@
/gear/gear[2]/wow
0
+
+ /it-fbw/alpha-hld
+ 0
+
/it-fbw/law
diff --git a/Systems/it-fbw.xml b/Systems/it-fbw.xml
index b0e8615f..9c37d04d 100644
--- a/Systems/it-fbw.xml
+++ b/Systems/it-fbw.xml
@@ -8,6 +8,8 @@
/it-fbw/roll-lim-min
/it-fbw/pitch-lim-max
/it-fbw/pitch-lim-min
+ /it-fbw/alpha-max
+ /it-fbw/alpha-min
@@ -61,6 +63,7 @@
+
diff --git a/Systems/thrust.xml b/Systems/thrust.xml
index b257b5df..ace2163b 100644
--- a/Systems/thrust.xml
+++ b/Systems/thrust.xml
@@ -54,24 +54,34 @@
output
-
+
- /systems/thrust/state1
- MAN THR
+ /systems/thrust/alpha-floor
+ 0
- /systems/thrust/state1
- CL
+ /systems/thrust/toga-lk
+ 0
-
- /systems/thrust/state1
- MAN
-
-
- /systems/thrust/state1
- IDLE
-
-
+
+
+ /systems/thrust/state1
+ MAN THR
+
+
+ /systems/thrust/state1
+ CL
+
+
+ /systems/thrust/state1
+ MAN
+
+
+ /systems/thrust/state1
+ IDLE
+
+
+
@@ -215,24 +225,34 @@
output
-
+
- /systems/thrust/state2
- MAN THR
+ /systems/thrust/alpha-floor
+ 0
- /systems/thrust/state2
- CL
+ /systems/thrust/toga-lk
+ 0
-
- /systems/thrust/state2
- MAN
-
-
- /systems/thrust/state2
- IDLE
-
-
+
+
+ /systems/thrust/state2
+ MAN THR
+
+
+ /systems/thrust/state2
+ CL
+
+
+ /systems/thrust/state2
+ MAN
+
+
+ /systems/thrust/state2
+ IDLE
+
+
+