// ***************************************************************************** // * Config_SIOC ver 3.5 - By Manolo Vélez - www.opencockpitscom // ***************************************************************************** // * FileName : MCP PMAGENTA.txt // * Date : Var 0000, Value 0 { V0080 = 180 // COURSE V0090 = 180 // COURSE V0084 = 180 // HDG V0086 = 10 // ALT V0088 = 0 // 00 DEL ALT el 00 es fijo V0012 = SETBIT 23 // Pone MODO IAS V0026 = V0008 // IAS leidas en IAS temporal V0028 = V0010 // MATCH leidas en MATCH temporal V0082 = V0008 // Pone por IAS en display } Var 0002, Link FSUIPC_IN, Offset $04E6, Length 2, Type 1 // VS de entrada { V0124 = V0002 CALL V0126 // Pone valor en el display } Var 0004, Link FSUIPC_IN, Offset $051C, Length 2 // Indicadores MCP { C0 = TESTBIT V0004 ,0 // Está apagado el Display del VS ? IF C0 // SI entonces { V0092 = -999999 // Quita el 00 final del display V0078 = -999999 // Apaga resto de digitos V0094 = -999999 // Apago el signo - } ELSE // NO entonces { V0092 = 0 // Enciende los 00 del display CALL V0126 // Pone el V/S en el display } } Var 0006, Link FSUIPC_IN, Offset $04F0, Length 2 // LUCES del MCP { V0098 = TESTBIT V0006 ,2 // V/S V0096 = TESTBIT V0006 ,11 // A/T V0100 = TESTBIT V0006 ,9 // SPEED V0102 = TESTBIT V0006 ,10 // N1 V0104 = TESTBIT V0006 ,3 // ALT HOLD V0106 = TESTBIT V0006 ,4 // APP V0108 = TESTBIT V0006 ,5 // VORLOC V0110 = TESTBIT V0006 ,6 // LNAV V0112 = TESTBIT V0006 ,7 // HDG V0114 = TESTBIT V0006 ,8 // LVL CHG V0116 = TESTBIT V0006 ,14 // VNAV V0118 = TESTBIT V0006 ,0 // AP1 V0120 = TESTBIT V0006 ,1 // AP2 &O_FD1 = TESTBIT V0006, 12 // F/D 1 C0 = TESTBIT V0006 ,15 // Modo MATH o IAS ? IF C0 // MATCH MODE { V0028 = V0010 // Cargo valor en temporal V0122 = 1 // Enciendo el punto decimal CALL V0128 // Display del valor } ELSE // IAS MODE { V0026 = V0008 // Cargo valor en temporal V0122 = 0 // Apago el punto decimal CALL V0128 // Display del valor } } Var 0008, Link FSUIPC_IN, Offset $04E0, Length 2 // IAS { CALL V0128 // Display del valor } Var 0010, Link FSUIPC_IN, Offset $04E8, Length 2 // MATH { CALL V0128 // Display del valor } Var 0012, Link FSUIPC_OUT, Offset $5410, Length 4 // Pulsadores-I PM Var 0013, Link FSUIPC_OUT, Offset $04F2, Length 2 // Pulsadores bis Var 0014, Link FSUIPC_OUT, Offset $5414, Length 4 // Pulsadores-II PM Var 0016, Link FSUIPC_OUT, Offset $540C, Length 2, Type 1 // V/S de salida Var 0018, Link FSUIPC_OUT, Offset $5414, Length 4 // Botones MCP Var 0020, Link FSUIPC_OUT, Offset $0C4E, Length 2 // COURSE Var 0022, Link FSUIPC_OUT, Offset $5408, Length 2 // HDG Var 0024, Link FSUIPC_OUT, Offset $540A, Length 2 // ALT Var 0026, Link FSUIPC_OUT, Offset $5406, Length 2 // IAS Var 0028, Link FSUIPC_OUT, Offset $540E, Length 2 // MATH Var 0030, Link FSUIPC_OUT, Offset $0C5E, Length 2 // COURSE 2 Var 0032, Link IOCARD_SW, Input 33, Device 0 // Interruptor A/T { IF V0032 = 1 // Si está encendido { V0013 = 19 } ELSE { V0013 = 20 } } Var 0034, Link IOCARD_SW, Input 16, Device 0 // Interruptor F/D Captain { IF V0034 = 1 { V0013 = 37 } ELSE { V0013 = 38 } } Var 0036, Link IOCARD_SW, Input 22, Type P, Device 0 // Boton V/S { V0018 = CHANGEBIT 11 ,V0036 } Var 0038, Link IOCARD_SW, Input 31, Type P, Device 0 // Boton SPEED { V0012 = CHANGEBIT 22 ,V0038 } Var 0040, Link IOCARD_SW, Input 32, Type P, Device 0 // Boton N1 { V0012 = CHANGEBIT 21 ,V0040 } Var 0042, Link IOCARD_SW, Input 29, Type P, Device 0 // Boton LVL CHG { V0012 = CHANGEBIT 24 ,V0042 } Var 0044, Link IOCARD_SW, Input 28, Type P, Device 0 // Boton HDG { V0012 = CHANGEBIT 25 ,V0044 } Var 0046, Link IOCARD_SW, Input 23, Type P, Device 0 // Boton ALT HOLD { V0012 = CHANGEBIT 30 ,V0046 } Var 0048, Link IOCARD_SW, Input 24, Type P, Device 0 // Boton APP { V0012 = CHANGEBIT 29 ,V0048 } Var 0050, Link IOCARD_SW, Input 25, Type P, Device 0 // Boton VORLOC { V0012 = CHANGEBIT 28 ,V0050 } Var 0052, Link IOCARD_SW, Input 27, Type P, Device 0 // Boton LNAV { V0012 = CHANGEBIT 27 ,V0052 } Var 0054, Link IOCARD_SW, Input 30, Type P, Device 0 // Boton VNAV { V0012 = CHANGEBIT 26 ,V0054 } Var 0056, Link IOCARD_SW, Input 15, Type P, Device 0 // Boton DISENGAGE { IF V0056 = 0 { V0018 = TOGGLE 8 // Si apago pongo el bit a 0 } ELSE { V0018 = TOGGLE 9 // Si está encendido pongo el BIT a 1 } } Var 0058, Link IOCARD_SW, Input 21, Type P, Device 0 // Boton AP1 { V0018 = CHANGEBIT 0 ,V0058 } Var 0060, Link IOCARD_SW, Input 19, Type P, Device 0 // Boton AP2 { V0018 = CHANGEBIT 1 ,V0060 } Var 0062, Link IOCARD_SW, Input 13, Type P, Device 0 // Boton C/O MATCH { V0012 = CHANGEBIT 23, V0062 } Var 0064, Link IOCARD_SW, Input 14, Device 0 // Interruptor F/D First Officer { IF V0064 = 1 { V0013 = 17 } ELSE { V0013 = 18 } } Var 0066, Link IOCARD_ENCODER, Input 11, Aceleration 4, Type 2, Device 0 // Encoder VS { L0 = V0066 * -100 // Incrementa de 100 en 100 V0124 = ROTATE -9000 ,9000 ,L0 // Suma o resta del valor temporal de V/S V0016 = V0124 } Var 0068, Link IOCARD_ENCODER, Input 4, Aceleration 4, Type 2, Device 0 // Encoder COURSE { L0 = V0068 * -1 V0080 = ROTATE 0 ,359 ,L0 // Roto el valor del COURSE } Var 0070, Link IOCARD_ENCODER, Input 0, Aceleration 4, Type 2, Device 0 // Encoder IAS Y MATH { L0 = V0070 * -1 C0 = TESTBIT V0006 ,15 // Indicador MATH o IAS ? IF C0 // MATH MODE { V0028 = LIMIT 25 ,95 ,L0 // Inc o decremento el valor del MATH } ELSE { V0026 = LIMIT 0 ,340 ,L0 // Inc o decremento el valor del IAS } } Var 0072, Link IOCARD_ENCODER, Input 6, Aceleration 4, Type 2, Device 0 // Encoder HDG { L0 = V0072 * -1 V0084 = ROTATE 0 ,359 ,L0 } Var 0074, Link IOCARD_ENCODER, Input 2, Aceleration 4, Type 2, Device 0 // Encoder ALT { L0 = V0074 * -1 V0086 = LIMIT 0 ,500 ,L0 } Var 0076, Link IOCARD_ENCODER, Input 9, Aceleration 4, Type 2, Device 0 // Encoder COURSE 2 { L0 = V0076 * -1 V0090 = ROTATE 0 ,359 ,L0 // Roto el valor del COURSE } Var 0078, Link IOCARD_DISPLAY, Digit 16, Numbers 2, Device 0 // VS Var 0080, Link IOCARD_DISPLAY, Digit 0, Numbers 3, Device 0 // COURSE { V0020 = V0080 // Pasa el valor al PM } Var 0082, Link IOCARD_DISPLAY, Digit 3, Numbers 3, Device 0 // IAS Y MATH Var 0084, Link IOCARD_DISPLAY, Digit 6, Numbers 3, Device 0 // HEADING { V0022 = V0084 // Pasa el valor al PM } Var 0086, Link IOCARD_DISPLAY, Digit 11, Numbers 3, Device 0 // ALT { V0024 = V0086 // Pasa el valor al PM } Var 0088, Link IOCARD_DISPLAY, Digit 9, Numbers 2, Device 0 // ALT 00 Var 0090, Link IOCARD_DISPLAY, Digit 19, Numbers 3, Device 0 // COURSE 2 { V0030 = V0090 // Pasa el valor al PM } Var 0092, Link IOCARD_DISPLAY, Digit 14, Numbers 2, Device 0 // VS 00 Var 0094, Link IOCARD_DISPLAY, Digit 18, Numbers 1, Device 0 // Signo VS Var 0096, Link IOCARD_OUT, Output 22, Device 0 // Led A/T Var 0098, Link IOCARD_OUT, Output 31, Device 0 // Led del boton V/S Var 0100, Link IOCARD_OUT, Output 23, Device 0 // Led SPEED Var 0102, Link IOCARD_OUT, Output 21, Device 0 // Led N1 Var 0104, Link IOCARD_OUT, Output 30, Device 0 // Led ALT HOLD Var 0106, Link IOCARD_OUT, Output 27, Device 0 // Led APP Var 0108, Link IOCARD_OUT, Output 28, Device 0 // Led VORLOC Var 0110, Link IOCARD_OUT, Output 29, Device 0 // Led LNAV Var 0112, Link IOCARD_OUT, Output 26, Device 0 // Led HDG Var 0114, Link IOCARD_OUT, Output 24, Device 0 // Led LVL CHG Var 0116, Link IOCARD_OUT, Output 25, Device 0 // Led VNAV Var 0118, Link IOCARD_OUT, Output 33, Device 0 // Led AP1 Var 0120, Link IOCARD_OUT, Output 35, Device 0 // Led AP2 Var 0122, Link IOCARD_OUT, Output 20, Device 0 // Led . DECIMAL Var 0124 // Valor temporal del V/S Var 0126, Link SUBRUTINE // Pinta V/S { C0 = TESTBIT V0004 ,0 // Comprueba si deben de estar apagados C0 = NOT C0 IF C0 // Sólo en el caso de estar encendidos { IF V0124 < 0 // Si V/S es negativo pasa a positivo { L0 = ABS V0124 V0094 = -999998 // Enciendo el signo - } ELSE { V0094 = -999999 // Apago el signo - L0 = V0124 } V0078 = L0 / 100 // Manda el valor ajustado de V/S a display } } Var 0128, Link SUBRUTINE // Pinta IAS / MATH { C0 = TESTBIT V0006 ,15 // Modo MATH o IAS ? IF C0 // MATH MODE { V0122 = 1 // Enciendo el punto decimal V0082 = V0010 // Pone valor MATH en el display } ELSE { V0122 = 0 // Enciendo el punto decimal V0082 = V0008 // Pone valor IAS en el display } } Var 0130, name O_FD1, Link IOCARD_OUT, Device 0, Output 37 // Led F/D 1 Var 0132, name O_FD2, Link IOCARD_OUT, Device 0, Output 36 // Led F/D 2 Var 0134, Link FSUIPC_IN, Offset $5528, Length 2 // Indicadores MCP { &O_FD2 = TESTBIT V0134, 10 } Var 0136, name SPD_INT, Link IOCARD_SW, Input 37, Type P, Device 0 { V0013 = 10 } Var 0138, name ALT_INT, Link IOCARD_SW, Input 36, Type P, Device 0 { V0013 = 12 }