diff --git a/Models/Instruments/MCDU1/DATA/PRINTFUNC.xml b/Models/Instruments/MCDU1/DATA/PRINTFUNC.xml
new file mode 100644
index 00000000..33202f2e
--- /dev/null
+++ b/Models/Instruments/MCDU1/DATA/PRINTFUNC.xml
@@ -0,0 +1,831 @@
+
+
+
+
+
+
+ EMPTY.ac
+
+
+ page
+
+ -0.001
+ 0.0
+ 0.083
+
+ center-center
+ yz-plane
+ text-value
+ PRINT FUNCTION 1/2
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ page
+
+ -0.001
+ 0.04
+ 0.083
+
+ center-center
+ yz-plane
+ text-value
+ <->
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ manual
+
+ -0.001
+ 0.043
+ 0.0765
+
+ right-center
+ yz-plane
+ text-value
+ MANUAL
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0040
+
+ 64
+ 64
+
+
+
+
+ center1
+
+ -0.001
+ 0
+ 0.0715
+
+ center-center
+ yz-plane
+ text-value
+ F-PLN INIT
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ print1R
+
+ -0.001
+ 0.0435
+ 0.0715
+
+ right-center
+ yz-plane
+ text-value
+ PRINT
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ printstar1
+
+ -0.001
+ 0.045
+ 0.0715
+
+ right-center
+ yz-plane
+ text-value
+ *
+ false
+ helvetica_medium.txf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ center2
+
+ -0.001
+ 0
+ 0.061
+
+ center-center
+ yz-plane
+ text-value
+ TO DATA
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ print2R
+
+ -0.001
+ 0.0435
+ 0.061
+
+ right-center
+ yz-plane
+ text-value
+ PRINT
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ printstar2
+
+ -0.001
+ 0.045
+ 0.061
+
+ right-center
+ yz-plane
+ text-value
+ *
+ false
+ helvetica_medium.txf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ center3
+
+ -0.001
+ 0
+ 0.0505
+
+ center-center
+ yz-plane
+ text-value
+ WIND DATA
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ print3R
+
+ -0.001
+ 0.0435
+ 0.0505
+
+ right-center
+ yz-plane
+ text-value
+ PRINT
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ printstar3
+
+ -0.001
+ 0.045
+ 0.0505
+
+ right-center
+ yz-plane
+ text-value
+ *
+ false
+ helvetica_medium.txf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ print1L
+
+ -0.001
+ -0.0428
+ 0.0715
+
+ left-center
+ yz-plane
+ text-value
+ NO
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ print1L2
+
+ -0.001
+ -0.0428
+ 0.0715
+
+ left-center
+ yz-plane
+ text-value
+ YES
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ printstar4
+
+ -0.001
+ -0.045
+ 0.0715
+
+ left-center
+ yz-plane
+ text-value
+ *
+ false
+ helvetica_medium.txf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ print2L
+
+ -0.001
+ -0.0428
+ 0.061
+
+ left-center
+ yz-plane
+ text-value
+ NO
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ print2L2
+
+ -0.001
+ -0.0428
+ 0.061
+
+ left-center
+ yz-plane
+ text-value
+ YES
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ printstar5
+
+ -0.001
+ -0.045
+ 0.061
+
+ left-center
+ yz-plane
+ text-value
+ *
+ false
+ helvetica_medium.txf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ print3L
+
+ -0.001
+ -0.0428
+ 0.0505
+
+ left-center
+ yz-plane
+ text-value
+ NO
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ print3L2
+
+ -0.001
+ -0.0428
+ 0.0505
+
+ left-center
+ yz-plane
+ text-value
+ YES
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ printstar6
+
+ -0.001
+ -0.045
+ 0.0505
+
+ left-center
+ yz-plane
+ text-value
+ *
+ false
+ helvetica_medium.txf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ auto
+
+ -0.001
+ -0.043
+ 0.0765
+
+ left-center
+ yz-plane
+ text-value
+ AUTO
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0040
+
+ 64
+ 64
+
+
+
+
+ return
+
+ -0.001
+ -0.045
+ 0.0190
+
+ left-center
+ yz-plane
+ text-value
+ <RETURN
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+ aoc
+
+ -0.001
+ 0.041
+ 0.0230
+
+ right-center
+ yz-plane
+ text-value
+ AOC
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0040
+
+ 64
+ 64
+
+
+
+ aoc2
+
+ -0.001
+ 0.043
+ 0.0190
+
+ right-center
+ yz-plane
+ text-value
+ FUNCTION>
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ select
+ printstar4
+ print1L
+
+
+ FMGC/print/mcdu/page1/L1auto
+
+
+
+
+
+ select
+ printstar5
+ print2L
+
+
+ FMGC/print/mcdu/page1/L2auto
+
+
+
+
+
+ select
+ printstar6
+ print3L
+
+
+ FMGC/print/mcdu/page1/L3auto
+
+
+
+
+
+ select
+ print1L2
+
+
+ FMGC/print/mcdu/page1/L1auto
+ 1
+
+
+
+
+
+ select
+ print2L2
+
+
+ FMGC/print/mcdu/page1/L2auto
+ 1
+
+
+
+
+
+ select
+ print3L2
+
+
+ FMGC/print/mcdu/page1/L3auto
+ 1
+
+
+
+
+
+ select
+ printstar1
+
+
+ FMGC/print/mcdu/page1/R1req
+
+
+
+
+
+ select
+ printstar2
+
+
+ FMGC/print/mcdu/page1/R2req
+
+
+
+
+
+ select
+ printstar3
+
+
+ FMGC/print/mcdu/page1/R3req
+
+
+
+
+
+
+ material
+ page
+ return
+ manual
+ auto
+ aoc
+ aoc2
+
+ 1
+ 1
+ 1
+
+
+ 0
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+
+
+ 1
+ 1
+ 1
+
+
+
+
+
+ material
+ printstar1
+ printstar2
+ printstar3
+ print1R
+ print2R
+ print3R
+
+ 1
+ 0.3
+ 0
+
+
+ 0
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+
+
+ 1
+ 0.3
+ 0
+
+
+
+
+
+ material
+ printstar4
+ printstar5
+ printstar6
+ print1L
+ print2L
+ print3L
+ print1L2
+ print2L2
+ print3L2
+
+ 0
+ 0.5
+ 0.7
+
+
+ 0
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+
+
+ 0
+ 0.5
+ 0.7
+
+
+
+
+
+ material
+ center1
+ center2
+ center3
+
+ 0.2
+ 0.4
+ 0.2
+
+
+ 0
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+
+
+ 0.2
+ 0.4
+ 0.2
+
+
+
+
diff --git a/Models/Instruments/MCDU1/DATA/PRINTFUNC2.xml b/Models/Instruments/MCDU1/DATA/PRINTFUNC2.xml
new file mode 100644
index 00000000..99687337
--- /dev/null
+++ b/Models/Instruments/MCDU1/DATA/PRINTFUNC2.xml
@@ -0,0 +1,1014 @@
+
+
+
+
+
+
+ EMPTY.ac
+
+
+ page
+
+ -0.001
+ 0.0
+ 0.083
+
+ center-center
+ yz-plane
+ text-value
+ PRINT FUNCTION 2/2
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ page
+
+ -0.001
+ 0.04
+ 0.083
+
+ center-center
+ yz-plane
+ text-value
+ <->
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ manual
+
+ -0.001
+ 0.043
+ 0.0765
+
+ right-center
+ yz-plane
+ text-value
+ MANUAL
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0040
+
+ 64
+ 64
+
+
+
+
+ center1
+
+ -0.001
+ 0
+ 0.0715
+
+ center-center
+ yz-plane
+ text-value
+ PREFLIGHT
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ print1R
+
+ -0.001
+ 0.0435
+ 0.0715
+
+ right-center
+ yz-plane
+ text-value
+ PRINT
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ printstar1
+
+ -0.001
+ 0.045
+ 0.0715
+
+ right-center
+ yz-plane
+ text-value
+ *
+ false
+ helvetica_medium.txf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ center2
+
+ -0.001
+ 0
+ 0.061
+
+ center-center
+ yz-plane
+ text-value
+ INFLIGHT
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ print2R
+
+ -0.001
+ 0.0435
+ 0.061
+
+ right-center
+ yz-plane
+ text-value
+ PRINT
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ printstar2
+
+ -0.001
+ 0.045
+ 0.061
+
+ right-center
+ yz-plane
+ text-value
+ *
+ false
+ helvetica_medium.txf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ center3
+
+ -0.001
+ 0
+ 0.0505
+
+ center-center
+ yz-plane
+ text-value
+ POSTFLIGHT
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ print3R
+
+ -0.001
+ 0.0435
+ 0.0505
+
+ right-center
+ yz-plane
+ text-value
+ PRINT
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ printstar3
+
+ -0.001
+ 0.045
+ 0.0505
+
+ right-center
+ yz-plane
+ text-value
+ *
+ false
+ helvetica_medium.txf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ print1L
+
+ -0.001
+ -0.0428
+ 0.0715
+
+ left-center
+ yz-plane
+ text-value
+ NO
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ print1L2
+
+ -0.001
+ -0.0428
+ 0.0715
+
+ left-center
+ yz-plane
+ text-value
+ YES
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ printstar4
+
+ -0.001
+ -0.045
+ 0.0715
+
+ left-center
+ yz-plane
+ text-value
+ *
+ false
+ helvetica_medium.txf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ print2L
+
+ -0.001
+ -0.0428
+ 0.061
+
+ left-center
+ yz-plane
+ text-value
+ NO
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ print2L2
+
+ -0.001
+ -0.0428
+ 0.061
+
+ left-center
+ yz-plane
+ text-value
+ YES
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ printstar5
+
+ -0.001
+ -0.045
+ 0.061
+
+ left-center
+ yz-plane
+ text-value
+ *
+ false
+ helvetica_medium.txf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ print3L
+
+ -0.001
+ -0.0428
+ 0.0505
+
+ left-center
+ yz-plane
+ text-value
+ NO
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ print3L2
+
+ -0.001
+ -0.0428
+ 0.0505
+
+ left-center
+ yz-plane
+ text-value
+ YES
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ printstar6
+
+ -0.001
+ -0.045
+ 0.0505
+
+ left-center
+ yz-plane
+ text-value
+ *
+ false
+ helvetica_medium.txf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ print4L
+
+ -0.001
+ -0.0428
+ 0.0395
+
+ left-center
+ yz-plane
+ text-value
+ NO
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ print4L2
+
+ -0.001
+ -0.0428
+ 0.0395
+
+ left-center
+ yz-plane
+ text-value
+ YES
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ printstar7
+
+ -0.001
+ -0.045
+ 0.0395
+
+ left-center
+ yz-plane
+ text-value
+ *
+ false
+ helvetica_medium.txf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ print4R
+
+ -0.001
+ 0.0435
+ 0.0395
+
+ right-center
+ yz-plane
+ text-value
+ PRINT
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ printstar8
+
+ -0.001
+ 0.045
+ 0.0395
+
+ right-center
+ yz-plane
+ text-value
+ *
+ false
+ helvetica_medium.txf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ center4
+
+ -0.001
+ 0
+ 0.0395
+
+ center-center
+ yz-plane
+ text-value
+ SEC F-PLN
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ auto
+
+ -0.001
+ -0.043
+ 0.0765
+
+ left-center
+ yz-plane
+ text-value
+ AUTO
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0040
+
+ 64
+ 64
+
+
+
+
+ return
+
+ -0.001
+ -0.045
+ 0.0190
+
+ left-center
+ yz-plane
+ text-value
+ <RETURN
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+ aoc
+
+ -0.001
+ 0.041
+ 0.0230
+
+ right-center
+ yz-plane
+ text-value
+ AOC
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0040
+
+ 64
+ 64
+
+
+
+ aoc2
+
+ -0.001
+ 0.043
+ 0.0190
+
+ right-center
+ yz-plane
+ text-value
+ FUNCTION>
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ select
+ printstar1
+
+
+ FMGC/print/mcdu/page2/R1req
+
+
+
+
+
+ select
+ printstar2
+
+
+ FMGC/print/mcdu/page2/R2req
+
+
+
+
+
+ select
+ printstar3
+
+
+ FMGC/print/mcdu/page2/R3req
+
+
+
+
+
+ select
+ printstar4
+ print1L
+
+
+ FMGC/print/mcdu/page2/L1auto
+
+
+
+
+
+ select
+ printstar5
+ print2L
+
+
+ FMGC/print/mcdu/page2/L2auto
+
+
+
+
+
+ select
+ printstar6
+ print3L
+
+
+ FMGC/print/mcdu/page2/L3auto
+
+
+
+
+
+ select
+ printstar7
+ print4L
+
+
+ FMGC/print/mcdu/page2/L4auto
+
+
+
+
+
+ select
+ printstar8
+
+
+ FMGC/print/mcdu/page2/R4req
+
+
+
+
+
+ select
+ print1L2
+
+
+ FMGC/print/mcdu/page2/L1auto
+ 1
+
+
+
+
+
+ select
+ print2L2
+
+
+ FMGC/print/mcdu/page2/L2auto
+ 1
+
+
+
+
+
+ select
+ print3L2
+
+
+ FMGC/print/mcdu/page2/L3auto
+ 1
+
+
+
+
+
+ select
+ print4L2
+
+
+ FMGC/print/mcdu/page2/L4auto
+ 1
+
+
+
+
+
+
+
+ material
+ page
+ return
+ manual
+ auto
+ aoc
+ aoc2
+
+ 1
+ 1
+ 1
+
+
+ 0
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+
+
+ 1
+ 1
+ 1
+
+
+
+
+
+ material
+ printstar1
+ printstar2
+ printstar3
+ printstar8
+ print1R
+ print2R
+ print3R
+ print4R
+
+ 1
+ 0.3
+ 0
+
+
+ 0
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+
+
+ 1
+ 0.3
+ 0
+
+
+
+
+
+ material
+ printstar4
+ printstar5
+ printstar6
+ printstar7
+ print1L
+ print2L
+ print3L
+ print4L
+ print1L2
+ print2L2
+ print3L2
+ print4L2
+
+ 0
+ 0.5
+ 0.7
+
+
+ 0
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+
+
+ 0
+ 0.5
+ 0.7
+
+
+
+
+
+ material
+ center1
+ center2
+ center3
+ center4
+
+ 0.2
+ 0.4
+ 0.2
+
+
+ 0
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+
+
+ 0.2
+ 0.4
+ 0.2
+
+
+
+
diff --git a/Models/Instruments/MCDU1/MCDU1.xml b/Models/Instruments/MCDU1/MCDU1.xml
index ce741a7f..327eaf95 100644
--- a/Models/Instruments/MCDU1/MCDU1.xml
+++ b/Models/Instruments/MCDU1/MCDU1.xml
@@ -202,6 +202,50 @@
+
+ PRINTFUNC
+ DATA/PRINTFUNC.xml
+
+ 180
+ 180
+ 90
+
+
+
+
+ systems/electrical/bus/ac1
+ 110
+
+
+ MCDU[0]/page
+ PRINTFUNC
+
+
+
+
+
+
+ PRINTFUNC2
+ DATA/PRINTFUNC2.xml
+
+ 180
+ 180
+ 90
+
+
+
+
+ systems/electrical/bus/ac1
+ 110
+
+
+ MCDU[0]/page
+ PRINTFUNC2
+
+
+
+
+
TO
PERF/TO/TO.xml
diff --git a/Models/Instruments/MCDU2/DATA/PRINTFUNC.xml b/Models/Instruments/MCDU2/DATA/PRINTFUNC.xml
new file mode 100644
index 00000000..33202f2e
--- /dev/null
+++ b/Models/Instruments/MCDU2/DATA/PRINTFUNC.xml
@@ -0,0 +1,831 @@
+
+
+
+
+
+
+ EMPTY.ac
+
+
+ page
+
+ -0.001
+ 0.0
+ 0.083
+
+ center-center
+ yz-plane
+ text-value
+ PRINT FUNCTION 1/2
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ page
+
+ -0.001
+ 0.04
+ 0.083
+
+ center-center
+ yz-plane
+ text-value
+ <->
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ manual
+
+ -0.001
+ 0.043
+ 0.0765
+
+ right-center
+ yz-plane
+ text-value
+ MANUAL
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0040
+
+ 64
+ 64
+
+
+
+
+ center1
+
+ -0.001
+ 0
+ 0.0715
+
+ center-center
+ yz-plane
+ text-value
+ F-PLN INIT
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ print1R
+
+ -0.001
+ 0.0435
+ 0.0715
+
+ right-center
+ yz-plane
+ text-value
+ PRINT
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ printstar1
+
+ -0.001
+ 0.045
+ 0.0715
+
+ right-center
+ yz-plane
+ text-value
+ *
+ false
+ helvetica_medium.txf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ center2
+
+ -0.001
+ 0
+ 0.061
+
+ center-center
+ yz-plane
+ text-value
+ TO DATA
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ print2R
+
+ -0.001
+ 0.0435
+ 0.061
+
+ right-center
+ yz-plane
+ text-value
+ PRINT
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ printstar2
+
+ -0.001
+ 0.045
+ 0.061
+
+ right-center
+ yz-plane
+ text-value
+ *
+ false
+ helvetica_medium.txf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ center3
+
+ -0.001
+ 0
+ 0.0505
+
+ center-center
+ yz-plane
+ text-value
+ WIND DATA
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ print3R
+
+ -0.001
+ 0.0435
+ 0.0505
+
+ right-center
+ yz-plane
+ text-value
+ PRINT
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ printstar3
+
+ -0.001
+ 0.045
+ 0.0505
+
+ right-center
+ yz-plane
+ text-value
+ *
+ false
+ helvetica_medium.txf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ print1L
+
+ -0.001
+ -0.0428
+ 0.0715
+
+ left-center
+ yz-plane
+ text-value
+ NO
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ print1L2
+
+ -0.001
+ -0.0428
+ 0.0715
+
+ left-center
+ yz-plane
+ text-value
+ YES
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ printstar4
+
+ -0.001
+ -0.045
+ 0.0715
+
+ left-center
+ yz-plane
+ text-value
+ *
+ false
+ helvetica_medium.txf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ print2L
+
+ -0.001
+ -0.0428
+ 0.061
+
+ left-center
+ yz-plane
+ text-value
+ NO
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ print2L2
+
+ -0.001
+ -0.0428
+ 0.061
+
+ left-center
+ yz-plane
+ text-value
+ YES
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ printstar5
+
+ -0.001
+ -0.045
+ 0.061
+
+ left-center
+ yz-plane
+ text-value
+ *
+ false
+ helvetica_medium.txf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ print3L
+
+ -0.001
+ -0.0428
+ 0.0505
+
+ left-center
+ yz-plane
+ text-value
+ NO
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ print3L2
+
+ -0.001
+ -0.0428
+ 0.0505
+
+ left-center
+ yz-plane
+ text-value
+ YES
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ printstar6
+
+ -0.001
+ -0.045
+ 0.0505
+
+ left-center
+ yz-plane
+ text-value
+ *
+ false
+ helvetica_medium.txf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ auto
+
+ -0.001
+ -0.043
+ 0.0765
+
+ left-center
+ yz-plane
+ text-value
+ AUTO
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0040
+
+ 64
+ 64
+
+
+
+
+ return
+
+ -0.001
+ -0.045
+ 0.0190
+
+ left-center
+ yz-plane
+ text-value
+ <RETURN
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+ aoc
+
+ -0.001
+ 0.041
+ 0.0230
+
+ right-center
+ yz-plane
+ text-value
+ AOC
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0040
+
+ 64
+ 64
+
+
+
+ aoc2
+
+ -0.001
+ 0.043
+ 0.0190
+
+ right-center
+ yz-plane
+ text-value
+ FUNCTION>
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ select
+ printstar4
+ print1L
+
+
+ FMGC/print/mcdu/page1/L1auto
+
+
+
+
+
+ select
+ printstar5
+ print2L
+
+
+ FMGC/print/mcdu/page1/L2auto
+
+
+
+
+
+ select
+ printstar6
+ print3L
+
+
+ FMGC/print/mcdu/page1/L3auto
+
+
+
+
+
+ select
+ print1L2
+
+
+ FMGC/print/mcdu/page1/L1auto
+ 1
+
+
+
+
+
+ select
+ print2L2
+
+
+ FMGC/print/mcdu/page1/L2auto
+ 1
+
+
+
+
+
+ select
+ print3L2
+
+
+ FMGC/print/mcdu/page1/L3auto
+ 1
+
+
+
+
+
+ select
+ printstar1
+
+
+ FMGC/print/mcdu/page1/R1req
+
+
+
+
+
+ select
+ printstar2
+
+
+ FMGC/print/mcdu/page1/R2req
+
+
+
+
+
+ select
+ printstar3
+
+
+ FMGC/print/mcdu/page1/R3req
+
+
+
+
+
+
+ material
+ page
+ return
+ manual
+ auto
+ aoc
+ aoc2
+
+ 1
+ 1
+ 1
+
+
+ 0
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+
+
+ 1
+ 1
+ 1
+
+
+
+
+
+ material
+ printstar1
+ printstar2
+ printstar3
+ print1R
+ print2R
+ print3R
+
+ 1
+ 0.3
+ 0
+
+
+ 0
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+
+
+ 1
+ 0.3
+ 0
+
+
+
+
+
+ material
+ printstar4
+ printstar5
+ printstar6
+ print1L
+ print2L
+ print3L
+ print1L2
+ print2L2
+ print3L2
+
+ 0
+ 0.5
+ 0.7
+
+
+ 0
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+
+
+ 0
+ 0.5
+ 0.7
+
+
+
+
+
+ material
+ center1
+ center2
+ center3
+
+ 0.2
+ 0.4
+ 0.2
+
+
+ 0
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+
+
+ 0.2
+ 0.4
+ 0.2
+
+
+
+
diff --git a/Models/Instruments/MCDU2/DATA/PRINTFUNC2.xml b/Models/Instruments/MCDU2/DATA/PRINTFUNC2.xml
new file mode 100644
index 00000000..7cb9b1b9
--- /dev/null
+++ b/Models/Instruments/MCDU2/DATA/PRINTFUNC2.xml
@@ -0,0 +1,1014 @@
+
+
+
+
+
+
+ EMPTY.ac
+
+
+ page
+
+ -0.001
+ 0.0
+ 0.083
+
+ center-center
+ yz-plane
+ text-value
+ PRINT FUNCTION 2/2
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ page
+
+ -0.001
+ 0.04
+ 0.083
+
+ center-center
+ yz-plane
+ text-value
+ <->
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ manual
+
+ -0.001
+ 0.043
+ 0.0765
+
+ right-center
+ yz-plane
+ text-value
+ MANUAL
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0040
+
+ 64
+ 64
+
+
+
+
+ center1
+
+ -0.001
+ 0
+ 0.0715
+
+ center-center
+ yz-plane
+ text-value
+ PREFLIGHT
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ print1R
+
+ -0.001
+ 0.0435
+ 0.0715
+
+ right-center
+ yz-plane
+ text-value
+ PRINT
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ printstar1
+
+ -0.001
+ 0.045
+ 0.0715
+
+ right-center
+ yz-plane
+ text-value
+ *
+ false
+ helvetica_medium.txf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ center2
+
+ -0.001
+ 0
+ 0.061
+
+ center-center
+ yz-plane
+ text-value
+ INFLIGHT
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ print2R
+
+ -0.001
+ 0.0435
+ 0.061
+
+ right-center
+ yz-plane
+ text-value
+ PRINT
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ printstar2
+
+ -0.001
+ 0.045
+ 0.061
+
+ right-center
+ yz-plane
+ text-value
+ *
+ false
+ helvetica_medium.txf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ center3
+
+ -0.001
+ 0
+ 0.0505
+
+ center-center
+ yz-plane
+ text-value
+ POSTFLIGHT
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ print3R
+
+ -0.001
+ 0.0435
+ 0.0505
+
+ right-center
+ yz-plane
+ text-value
+ PRINT
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ printstar3
+
+ -0.001
+ 0.045
+ 0.0505
+
+ right-center
+ yz-plane
+ text-value
+ *
+ false
+ helvetica_medium.txf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ print1L
+
+ -0.001
+ -0.0428
+ 0.0715
+
+ left-center
+ yz-plane
+ text-value
+ NO
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ print1L2
+
+ -0.001
+ -0.0428
+ 0.0715
+
+ left-center
+ yz-plane
+ text-value
+ YES
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ printstar4
+
+ -0.001
+ -0.045
+ 0.0715
+
+ left-center
+ yz-plane
+ text-value
+ *
+ false
+ helvetica_medium.txf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ print2L
+
+ -0.001
+ -0.0428
+ 0.061
+
+ left-center
+ yz-plane
+ text-value
+ NO
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ print2L2
+
+ -0.001
+ -0.0428
+ 0.061
+
+ left-center
+ yz-plane
+ text-value
+ YES
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ printstar5
+
+ -0.001
+ -0.045
+ 0.061
+
+ left-center
+ yz-plane
+ text-value
+ *
+ false
+ helvetica_medium.txf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ print3L
+
+ -0.001
+ -0.0428
+ 0.0505
+
+ left-center
+ yz-plane
+ text-value
+ NO
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ print3L2
+
+ -0.001
+ -0.0428
+ 0.0505
+
+ left-center
+ yz-plane
+ text-value
+ YES
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ printstar6
+
+ -0.001
+ -0.045
+ 0.0505
+
+ left-center
+ yz-plane
+ text-value
+ *
+ false
+ helvetica_medium.txf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ print4L
+
+ -0.001
+ -0.0428
+ 0.0395
+
+ left-center
+ yz-plane
+ text-value
+ NO
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ print4L2
+
+ -0.001
+ -0.0428
+ 0.0395
+
+ left-center
+ yz-plane
+ text-value
+ YES
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ printstar7
+
+ -0.001
+ -0.045
+ 0.0395
+
+ left-center
+ yz-plane
+ text-value
+ *
+ false
+ helvetica_medium.txf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ print4R
+
+ -0.001
+ 0.0435
+ 0.0395
+
+ right-center
+ yz-plane
+ text-value
+ PRINT
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ printstar8
+
+ -0.001
+ 0.045
+ 0.0395
+
+ right-center
+ yz-plane
+ text-value
+ *
+ false
+ helvetica_medium.txf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ center4
+
+ -0.001
+ 0
+ 0.0395
+
+ center-center
+ yz-plane
+ text-value
+ SEC F-PLN
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ auto
+
+ -0.001
+ -0.043
+ 0.0765
+
+ left-center
+ yz-plane
+ text-value
+ AUTO
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0040
+
+ 64
+ 64
+
+
+
+
+ return
+
+ -0.001
+ -0.045
+ 0.0190
+
+ left-center
+ yz-plane
+ text-value
+ <RETURN
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+ aoc
+
+ -0.001
+ 0.041
+ 0.0230
+
+ right-center
+ yz-plane
+ text-value
+ AOC
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0040
+
+ 64
+ 64
+
+
+
+ aoc2
+
+ -0.001
+ 0.043
+ 0.0190
+
+ right-center
+ yz-plane
+ text-value
+ FUNCTION>
+ false
+ BoeingCDU-Large.ttf
+ autopilot/serviceable
+ true
+ false
+ false
+ 0.0050
+
+ 64
+ 64
+
+
+
+
+ select
+ printstar1
+
+
+ FMGC/print/mcdu/page2/R1req
+
+
+
+
+
+ select
+ printstar2
+
+
+ FMGC/print/mcdu/page2/R2req
+
+
+
+
+
+ select
+ printstar3
+
+
+ FMGC/print/mcdu/page2/R3req
+
+
+
+
+
+ select
+ printstar4
+ print1L
+
+
+ FMGC/print/mcdu/page2/L1auto
+
+
+
+
+
+ select
+ printstar5
+ print2L
+
+
+ FMGC/print/mcdu/page2/L2auto
+
+
+
+
+
+ select
+ printstar6
+ print3L
+
+
+ FMGC/print/mcdu/page2/L3auto
+
+
+
+
+
+ select
+ printstar7
+ print4L
+
+
+ FMGC/print/mcdu/page2/L4auto
+
+
+
+
+
+ select
+ printstar8
+
+
+ FMGC/print/mcdu/page2/R4auto
+
+
+
+
+
+ select
+ print1L2
+
+
+ FMGC/print/mcdu/page2/L1auto
+ 1
+
+
+
+
+
+ select
+ print2L2
+
+
+ FMGC/print/mcdu/page2/L2auto
+ 1
+
+
+
+
+
+ select
+ print3L2
+
+
+ FMGC/print/mcdu/page2/L3auto
+ 1
+
+
+
+
+
+ select
+ print4L2
+
+
+ FMGC/print/mcdu/page2/L4auto
+ 1
+
+
+
+
+
+
+
+ material
+ page
+ return
+ manual
+ auto
+ aoc
+ aoc2
+
+ 1
+ 1
+ 1
+
+
+ 0
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+
+
+ 1
+ 1
+ 1
+
+
+
+
+
+ material
+ printstar1
+ printstar2
+ printstar3
+ printstar8
+ print1R
+ print2R
+ print3R
+ print4R
+
+ 1
+ 0.3
+ 0
+
+
+ 0
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+
+
+ 1
+ 0.3
+ 0
+
+
+
+
+
+ material
+ printstar4
+ printstar5
+ printstar6
+ printstar7
+ print1L
+ print2L
+ print3L
+ print4L
+ print1L2
+ print2L2
+ print3L2
+ print4L2
+
+ 0
+ 0.5
+ 0.7
+
+
+ 0
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+
+
+ 0
+ 0.5
+ 0.7
+
+
+
+
+
+ material
+ center1
+ center2
+ center3
+ center4
+
+ 0.2
+ 0.4
+ 0.2
+
+
+ 0
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+
+
+ 0.2
+ 0.4
+ 0.2
+
+
+
+
diff --git a/Models/Instruments/MCDU2/MCDU2.xml b/Models/Instruments/MCDU2/MCDU2.xml
index e6d74798..1f7cfee3 100644
--- a/Models/Instruments/MCDU2/MCDU2.xml
+++ b/Models/Instruments/MCDU2/MCDU2.xml
@@ -202,6 +202,50 @@
+
+ PRINTFUNC
+ DATA/PRINTFUNC.xml
+
+ 180
+ 180
+ 90
+
+
+
+
+ systems/electrical/bus/ac1
+ 110
+
+
+ MCDU[1]/page
+ PRINTFUNC
+
+
+
+
+
+
+ PRINTFUNC2
+ DATA/PRINTFUNC2.xml
+
+ 180
+ 180
+ 90
+
+
+
+
+ systems/electrical/bus/ac1
+ 110
+
+
+ MCDU[1]/page
+ PRINTFUNC2
+
+
+
+
+
TO
PERF/TO/TO.xml
diff --git a/Nasal/MCDU1/DATA.nas b/Nasal/MCDU1/DATA.nas
index 089cdce6..07e3b5e2 100644
--- a/Nasal/MCDU1/DATA.nas
+++ b/Nasal/MCDU1/DATA.nas
@@ -11,4 +11,61 @@ var dataInput = func(key) {
if (key == "L2") {
setprop("/MCDU[0]/page", "IRSMON");
}
+ if (key == "R5") {
+ setprop("/MCDU[0]/page", "PRINTFUNC");
+ }
}
+
+var printInput = func(key) {
+ if (key == "L1") {
+ setprop("/FMGC/print/mcdu/page1/L1auto", 1);
+ }
+ if (key == "L2") {
+ setprop("/FMGC/print/mcdu/page1/L2auto", 1);
+ }
+ if (key == "L3") {
+ setprop("/FMGC/print/mcdu/page1/L3auto", 1);
+ }
+ if (key == "L5") {
+ setprop("/MCDU[0]/page", "DATA");
+ }
+ if (key == "R1") {
+ setprop("/FMGC/print/mcdu/page1/R1req", 1);
+ }
+ if (key == "R2") {
+ setprop("/FMGC/print/mcdu/page1/R2req", 1);
+ }
+ if (key == "R3") {
+ setprop("/FMGC/print/mcdu/page1/R3req", 1);
+ }
+}
+
+var printInput2 = func(key) {
+ if (key == "L1") {
+ setprop("/FMGC/print/mcdu/page2/L1auto", 1);
+ }
+ if (key == "L2") {
+ setprop("/FMGC/print/mcdu/page2/L2auto", 1);
+ }
+ if (key == "L3") {
+ setprop("/FMGC/print/mcdu/page2/L3auto", 1);
+ }
+ if (key == "L4") {
+ setprop("/FMGC/print/mcdu/page2/L4auto", 1);
+ }
+ if (key == "L6") {
+ setprop("/MCDU[0]/page", "DATA");
+ }
+ if (key == "R1") {
+ setprop("/FMGC/print/mcdu/page2/R1req", 1);
+ }
+ if (key == "R2") {
+ setprop("/FMGC/print/mcdu/page2/R2req", 1);
+ }
+ if (key == "R3") {
+ setprop("/FMGC/print/mcdu/page2/R3req", 1);
+ }
+ if (key == "R4") {
+ setprop("/FMGC/print/mcdu/page2/R4req", 1);
+ }
+}
\ No newline at end of file
diff --git a/Nasal/MCDU1/MCDU.nas b/Nasal/MCDU1/MCDU.nas
index f64cea11..619aab99 100644
--- a/Nasal/MCDU1/MCDU.nas
+++ b/Nasal/MCDU1/MCDU.nas
@@ -56,6 +56,20 @@ var MCDU_reset = func {
setprop("/FMGC/internal/navdatabase2", "29JAN-26FEB");
setprop("/FMGC/internal/navdatabasecode", "AB20170101");
setprop("/FMGC/internal/navdatabasecode2", "AB20170102");
+ setprop("/FMGC/print/mcdu/page1/L1auto", 0);
+ setprop("/FMGC/print/mcdu/page1/L2auto", 0);
+ setprop("/FMGC/print/mcdu/page1/L3auto", 0);
+ setprop("/FMGC/print/mcdu/page1/R1req", 0);
+ setprop("/FMGC/print/mcdu/page1/R2req", 0);
+ setprop("/FMGC/print/mcdu/page1/R3req", 0);
+ setprop("/FMGC/print/mcdu/page2/L1auto", 0);
+ setprop("/FMGC/print/mcdu/page2/L2auto", 0);
+ setprop("/FMGC/print/mcdu/page2/L3auto", 0);
+ setprop("/FMGC/print/mcdu/page2/L4auto", 0);
+ setprop("/FMGC/print/mcdu/page2/R1req", 0);
+ setprop("/FMGC/print/mcdu/page2/R2req", 0);
+ setprop("/FMGC/print/mcdu/page2/R3req", 0);
+ setprop("/FMGC/print/mcdu/page2/R4req", 0);
}
var lskbutton = func(btn) {
@@ -70,6 +84,10 @@ var lskbutton = func(btn) {
radnavInput("L1");
} else if (getprop("/MCDU[0]/page") == "DATA") {
dataInput("L1");
+ } else if (getprop("/MCDU[0]/page") == "PRINTFUNC") {
+ printInput("L1");
+ } else if (getprop("/MCDU[0]/page") == "PRINTFUNC2") {
+ printInput2("L1");
} else {
if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
@@ -92,7 +110,11 @@ var lskbutton = func(btn) {
initInputA("L5");
} else if (getprop("/MCDU[0]/page") == "DATA") {
dataInput("L2");
- } else {
+ } else if (getprop("/MCDU[0]/page") == "PRINTFUNC") {
+ printInput("L2");
+ } else if (getprop("/MCDU[0]/page") == "PRINTFUNC2") {
+ printInput2("L2");
+ } else {
if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
}
@@ -108,6 +130,10 @@ var lskbutton = func(btn) {
statusInput("L3");
} else if (getprop("/MCDU[0]/page") == "RADNAV") {
radnavInput("L3");
+ } else if (getprop("/MCDU[0]/page") == "PRINTFUNC") {
+ printInput("L3");
+ } else if (getprop("/MCDU[0]/page") == "PRINTFUNC2") {
+ printInput2("L3");
} else {
if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
@@ -122,6 +148,8 @@ var lskbutton = func(btn) {
perfTOInput("L4");
} else if (getprop("/MCDU[0]/page") == "RADNAV") {
radnavInput("L4");
+ } else if (getprop("/MCDU[0]/page") == "PRINTFUNC2") {
+ printInput2("L4");
} else {
if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
@@ -142,6 +170,10 @@ var lskbutton = func(btn) {
perfDESInput("L5");
} else if (getprop("/MCDU[0]/page") == "RADNAV") {
radnavInput("L5");
+ } else if (getprop("/MCDU[0]/page") == "PRINTFUNC") {
+ printInput("L5");
+ } else if (getprop("/MCDU[0]/page") == "PRINTFUNC2") {
+ printInput2("L5");
} else {
if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
@@ -158,6 +190,8 @@ var lskbutton = func(btn) {
perfCRZInput("L6");
} else if (getprop("/MCDU[0]/page") == "DES") {
perfDESInput("L6");
+ } else if (getprop("/MCDU[0]/page") == "PRINTFUNC2") {
+ printInput2("L6");
} else {
if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
@@ -178,6 +212,10 @@ var rskbutton = func(btn) {
initInputA("R1");
} else if (getprop("/MCDU[0]/page") == "RADNAV") {
radnavInput("R1");
+ } else if (getprop("/MCDU[0]/page") == "PRINTFUNC") {
+ printInput("R1");
+ } else if (getprop("/MCDU[0]/page") == "PRINTFUNC2") {
+ printInput2("R1");
} else {
if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
@@ -190,6 +228,10 @@ var rskbutton = func(btn) {
initInputB("R2");
} else if (getprop("/MCDU[0]/page") == "RADNAV") {
radnavInput("R2");
+ } else if (getprop("/MCDU[0]/page") == "PRINTFUNC") {
+ printInput("R2");
+ } else if (getprop("/MCDU[0]/page") == "PRINTFUNC2") {
+ printInput2("R2");
} else {
if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
@@ -202,6 +244,10 @@ var rskbutton = func(btn) {
initInputA("R3");
} else if (getprop("/MCDU[0]/page") == "TO") {
perfTOInput("R3");
+ } else if (getprop("/MCDU[0]/page") == "PRINTFUNC") {
+ printInput("R3");
+ } else if (getprop("/MCDU[0]/page") == "PRINTFUNC2") {
+ printInput2("R3");
} else {
if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
@@ -214,6 +260,8 @@ var rskbutton = func(btn) {
perfTOInput("R4");
} else if (getprop("/MCDU[0]/page") == "RADNAV") {
radnavInput("R4");
+ } else if (getprop("/MCDU[0]/page") == "PRINTFUNC2") {
+ printInput2("R4");
} else {
if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
@@ -226,6 +274,8 @@ var rskbutton = func(btn) {
perfTOInput("R5");
} else if (getprop("/MCDU[0]/page") == "RADNAV") {
radnavInput("R5");
+ } else if (getprop("/MCDU[0]/page") == "DATA") {
+ dataInput("R5");
} else {
if (getprop("/MCDU[0]/scratchpad") != "NOT ALLOWED") {
setprop("/MCDU[0]/last-scratchpad", getprop("/MCDU[0]/scratchpad"));
@@ -266,6 +316,11 @@ var arrowbutton = func(btn) {
} else if (getprop("/MCDU[0]/page") == "INITB") {
setprop("/MCDU[0]/page", "INITA");
}
+ if (getprop("/MCDU[0]/page") == "PRINTFUNC") {
+ setprop("/MCDU[0]/page", "PRINTFUNC2");
+ } else if (getprop("/MCDU[0]/page") == "PRINTFUNC2") {
+ setprop("/MCDU[0]/page", "PRINTFUNC");
+ }
} else if (btn == "right") {
if (getprop("/MCDU[0]/page") == "DATA") {
setprop("/MCDU[0]/page", "DATA2");
@@ -277,6 +332,11 @@ var arrowbutton = func(btn) {
} else if (getprop("/MCDU[0]/page") == "INITB") {
setprop("/MCDU[0]/page", "INITA");
}
+ if (getprop("/MCDU[0]/page") == "PRINTFUNC") {
+ setprop("/MCDU[0]/page", "PRINTFUNC2");
+ } else if (getprop("/MCDU[0]/page") == "PRINTFUNC2") {
+ setprop("/MCDU[0]/page", "PRINTFUNC");
+ }
} else if (btn == "up") {
# Nothing for now
} else if (btn == "down") {
diff --git a/Nasal/MCDU2/DATA.nas b/Nasal/MCDU2/DATA.nas
index 5a41a290..49b8402e 100644
--- a/Nasal/MCDU2/DATA.nas
+++ b/Nasal/MCDU2/DATA.nas
@@ -11,4 +11,61 @@ var dataInput = func(key) {
if (key == "L2") {
setprop("/MCDU[1]/page", "IRSMON");
}
+ if (key == "R5") {
+ setprop("/MCDU[1]/page", "PRINTFUNC");
+ }
}
+
+var printInput = func(key) {
+ if (key == "L1") {
+ setprop("/FMGC/print/mcdu/page1/L1auto", 1);
+ }
+ if (key == "L2") {
+ setprop("/FMGC/print/mcdu/page1/L2auto", 1);
+ }
+ if (key == "L3") {
+ setprop("/FMGC/print/mcdu/page1/L3auto", 1);
+ }
+ if (key == "L5") {
+ setprop("/MCDU[1]/page", "DATA");
+ }
+ if (key == "R1") {
+ setprop("/FMGC/print/mcdu/page1/R1req", 1);
+ }
+ if (key == "R2") {
+ setprop("/FMGC/print/mcdu/page1/R2req", 1);
+ }
+ if (key == "R3") {
+ setprop("/FMGC/print/mcdu/page1/R3req", 1);
+ }
+}
+
+var printInput2 = func(key) {
+ if (key == "L1") {
+ setprop("/FMGC/print/mcdu/page2/L1auto", 1);
+ }
+ if (key == "L2") {
+ setprop("/FMGC/print/mcdu/page2/L2auto", 1);
+ }
+ if (key == "L3") {
+ setprop("/FMGC/print/mcdu/page2/L3auto", 1);
+ }
+ if (key == "L4") {
+ setprop("/FMGC/print/mcdu/page2/L4auto", 1);
+ }
+ if (key == "L6") {
+ setprop("/MCDU[0]/page", "DATA");
+ }
+ if (key == "R1") {
+ setprop("/FMGC/print/mcdu/pag2e/R1req", 1);
+ }
+ if (key == "R2") {
+ setprop("/FMGC/print/mcdu/page2/R2req", 1);
+ }
+ if (key == "R3") {
+ setprop("/FMGC/print/mcdu/page2/R3req", 1);
+ }
+ if (key == "R4") {
+ setprop("/FMGC/print/mcdu/page2/R4req", 1);
+ }
+}
\ No newline at end of file
diff --git a/Nasal/MCDU2/MCDU.nas b/Nasal/MCDU2/MCDU.nas
index 925d4333..1cef311a 100644
--- a/Nasal/MCDU2/MCDU.nas
+++ b/Nasal/MCDU2/MCDU.nas
@@ -56,6 +56,20 @@ var MCDU_reset = func {
setprop("/FMGC/internal/navdatabase2", "29JAN-26FEB");
setprop("/FMGC/internal/navdatabasecode", "AB20170101");
setprop("/FMGC/internal/navdatabasecode2", "AB20170102");
+ setprop("/FMGC/print/mcdu/page1/L1auto", 0);
+ setprop("/FMGC/print/mcdu/page1/L2auto", 0);
+ setprop("/FMGC/print/mcdu/page1/L3auto", 0);
+ setprop("/FMGC/print/mcdu/page1/R1req", 0);
+ setprop("/FMGC/print/mcdu/page1/R2req", 0);
+ setprop("/FMGC/print/mcdu/page1/R3req", 0);
+ setprop("/FMGC/print/mcdu/page2/L1auto", 0);
+ setprop("/FMGC/print/mcdu/page2/L2auto", 0);
+ setprop("/FMGC/print/mcdu/page2/L3auto", 0);
+ setprop("/FMGC/print/mcdu/page2/L4auto", 0);
+ setprop("/FMGC/print/mcdu/page2/R1req", 0);
+ setprop("/FMGC/print/mcdu/page2/R2req", 0);
+ setprop("/FMGC/print/mcdu/page2/R3req", 0);
+ setprop("/FMGC/print/mcdu/page2/R4req", 0);
}
var lskbutton = func(btn) {
@@ -70,7 +84,11 @@ var lskbutton = func(btn) {
radnavInput("L1");
} else if (getprop("/MCDU[1]/page") == "DATA") {
dataInput("L1");
- } else {
+ } else if (getprop("/MCDU[1]/page") == "PRINTFUNC") {
+ printInput("L1");
+ } else if (getprop("/MCDU[1]/page") == "PRINTFUNC2") {
+ printInput2("L1");
+ } else {
if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
}
@@ -92,7 +110,11 @@ var lskbutton = func(btn) {
initInputA("L5");
} else if (getprop("/MCDU[1]/page") == "DATA") {
dataInput("L2");
- } else {
+ } else if (getprop("/MCDU[1]/page") == "PRINTFUNC") {
+ printInput("L2");
+ } else if (getprop("/MCDU[1]/page") == "PRINTFUNC2") {
+ printInput2("L2");
+ } else {
if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
}
@@ -108,6 +130,10 @@ var lskbutton = func(btn) {
statusInput("L3");
} else if (getprop("/MCDU[1]/page") == "RADNAV") {
radnavInput("L3");
+ } else if (getprop("/MCDU[1]/page") == "PRINTFUNC") {
+ printInput("L3");
+ } else if (getprop("/MCDU[1]/page") == "PRINTFUNC2") {
+ printInput2("L3");
} else {
if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
@@ -122,6 +148,8 @@ var lskbutton = func(btn) {
perfTOInput("L4");
} else if (getprop("/MCDU[1]/page") == "RADNAV") {
radnavInput("L4");
+ } else if (getprop("/MCDU[1]/page") == "PRINTFUNC2") {
+ printInput2("L4");
} else {
if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
@@ -142,6 +170,8 @@ var lskbutton = func(btn) {
perfDESInput("L5");
} else if (getprop("/MCDU[1]/page") == "RADNAV") {
radnavInput("L5");
+ } else if (getprop("/MCDU[1]/page") == "PRINTFUNC") {
+ printInput("L5");
} else {
if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
@@ -158,6 +188,8 @@ var lskbutton = func(btn) {
perfCRZInput("L6");
} else if (getprop("/MCDU[1]/page") == "DES") {
perfDESInput("L6");
+ } else if (getprop("/MCDU[1]/page") == "PRINTFUNC2") {
+ printInput2("L6");
} else {
if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
@@ -178,6 +210,10 @@ var rskbutton = func(btn) {
initInputA("R1");
} else if (getprop("/MCDU[1]/page") == "RADNAV") {
radnavInput("R1");
+ } else if (getprop("/MCDU[1]/page") == "PRINTFUNC") {
+ printInput("R1");
+ } else if (getprop("/MCDU[1]/page") == "PRINTFUNC2") {
+ printInput2("R1");
} else {
if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
@@ -190,6 +226,10 @@ var rskbutton = func(btn) {
initInputB("R2");
} else if (getprop("/MCDU[1]/page") == "RADNAV") {
radnavInput("R2");
+ } else if (getprop("/MCDU[1]/page") == "PRINTFUNC") {
+ printInput("R2");
+ } else if (getprop("/MCDU[1]/page") == "PRINTFUNC2") {
+ printInput2("R2");
} else {
if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
@@ -202,6 +242,10 @@ var rskbutton = func(btn) {
initInputA("R3");
} else if (getprop("/MCDU[1]/page") == "TO") {
perfTOInput("R3");
+ } else if (getprop("/MCDU[1]/page") == "PRINTFUNC") {
+ printInput("R3");
+ } else if (getprop("/MCDU[1]/page") == "PRINTFUNC2") {
+ printInput2("R3");
} else {
if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
@@ -214,6 +258,8 @@ var rskbutton = func(btn) {
perfTOInput("R4");
} else if (getprop("/MCDU[1]/page") == "RADNAV") {
radnavInput("R4");
+ } else if (getprop("/MCDU[1]/page") == "PRINTFUNC2") {
+ printInput2("R4");
} else {
if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
@@ -226,6 +272,8 @@ var rskbutton = func(btn) {
perfTOInput("R5");
} else if (getprop("/MCDU[1]/page") == "RADNAV") {
radnavInput("R5");
+ } else if (getprop("/MCDU[1]/page") == "DATA") {
+ dataInput("R5");
} else {
if (getprop("/MCDU[1]/scratchpad") != "NOT ALLOWED") {
setprop("/MCDU[1]/last-scratchpad", getprop("/MCDU[1]/scratchpad"));
@@ -266,6 +314,11 @@ var arrowbutton = func(btn) {
} else if (getprop("/MCDU[1]/page") == "INITB") {
setprop("/MCDU[1]/page", "INITA");
}
+ if (getprop("/MCDU[1]/page") == "PRINTFUNC") {
+ setprop("/MCDU[1]/page", "PRINTFUNC2");
+ } else if (getprop("/MCDU[1]/page") == "PRINTFUNC2") {
+ setprop("/MCDU[1]/page", "PRINTFUNC");
+ }
} else if (btn == "right") {
if (getprop("/MCDU[1]/page") == "DATA") {
setprop("/MCDU[1]/page", "DATA2");
@@ -277,6 +330,11 @@ var arrowbutton = func(btn) {
} else if (getprop("/MCDU[1]/page") == "INITB") {
setprop("/MCDU[1]/page", "INITA");
}
+ if (getprop("/MCDU[1]/page") == "PRINTFUNC") {
+ setprop("/MCDU[1]/page", "PRINTFUNC2");
+ } else if (getprop("/MCDU[1]/page") == "PRINTFUNC2") {
+ setprop("/MCDU[1]/page", "PRINTFUNC");
+ }
} else if (btn == "up") {
# Nothing for now
} else if (btn == "down") {