// ***************************************************************************** // * Config_SIOC ver 1.98 - By Manolo Vélez - www.opencockpits.com // ***************************************************************************** // // // IOCARD MCP Default Flight Simulator 2004 ver 1.0 // // * This is the standard cfg file that comes with SIOC // // ******************************* // INITIALIZATION // ******************************* Var 2000, Value 0 // Initialization { &CONTADOR = 0 &CHECK = TIMER 999,0,25 &CMD = 1 &D_COURSE1 = 360 &D_COURSE2 = 360 &D_HDG = 360 &D_ALT = 4000 &D_VS = 0 &T_IAS = 140 &AP_IAS = 1 &AP_IAS = DELAY 0,10 } Var 2001, name AP_MASTER_SW Link FSUIPC_INOUT, Offset $07BC, Length 4 { IF &CMD = 1 { IF &AP_MASTER_SW = 1 { &O_CMDA = 1 &O_CMDB = 0 } ELSE { &O_CMDA = 0 &O_CMDB = 0 } } ELSE { IF &AP_MASTER_SW = 1 { &O_CMDA = 0 &O_CMDB = 1 } ELSE { &O_CMDA = 0 &O_CMDB = 0 } } } Var 2002, Link FSUIPC_INOUT, Offset $07C0, Length 4 // AP_LVL { // &O_LVLCHG = TESTBIT V0002 ,0 // LED_LVL } Var 2003, Link FSUIPC_INOUT, Offset $07C4, Length 4 // AP_NAV1 { IF V2003 = 1 { &O_LNAV = 1 } ELSE { &O_LNAV = 0 } } Var 2004, Link FSUIPC_INOUT, Offset $07C8, Length 4 // AP_HDG_SEL { IF V2004 = 1 { &O_HDGSEL = 1 } ELSE { &O_HDGSEL = 0 } } Var 2005, name APD_HDG, Link FSUIPC_INOUT, Offset $07CC, Length 2 // APD_HDG Var 2006, name AP_ALT, Link FSUIPC_INOUT, Offset $07D0, Length 4 // AP_ALT { IF &AP_ALT = 1 { &O_VS = 1 } ELSE { &O_VS = 0 } } Var 2007, name AP_IAS, Link FSUIPC_INOUT, Offset $07DC, Length 4 // AP_IAS { IF &AP_IAS = 1 { &SPEED = 1 &O_SPEED = 1 &F_IAS = &T_IAS } ELSE { IF &AP_MACH = 0 { &O_SPEED = 0 } } } Var 2008, name APD_IAS, Link FSUIPC_INOUT, Offset $07E2, Length 2 // D_IAS Var 2009, name APD_ALT, Link FSUIPC_INOUT, Offset $07D4, Length 4 // APD_ALT // Var 2010, Link FSUIPC_INOUT, Offset $0764, Length 4 // AP_DISPONIBLE Var 2011, name AP_MACH, Link FSUIPC_INOUT, Offset $07E4, Length 4 // AP_MACH { IF &AP_MACH = 1 { &SPEED = 2 &O_SPEED = 1 } ELSE { IF &AP_IAS = 0 { &O_SPEED = 0 } } } Var 2012, name APD_MACH, Link FSUIPC_INOUT, Offset $07E8, Length 4 // APD_MACH Var 2013, Link FSUIPC_INOUT, Offset $3210, Length 2 // LOCALV_IAS/M Var 2014, name APD_VS, Link FSUIPC_INOUT, Offset $07F2, Length 2, type 1 // D_V/S Var 2015, Link FSUIPC_INOUT, Offset $0810, Length 4 // AP_AT { IF V2015 = 1 { &O_AT = 1 } ELSE { &O_AT = 0 } } Var 2016, Link FSUIPC_INOUT, Offset $2EE0, Length 4 // AP_FD Var 2017, Link FSUIPC_INOUT, Offset $07C4, Length 4 // AP_NAV Var 2018, Link FSUIPC_INOUT, Offset $0800, Length 4 // AP_APP { IF V2018 = 1 { &O_APP = 1 } ELSE { &O_APP = 0 } } Var 2019, Link FSUIPC_INOUT, Offset $0804, Length 4 // AP_BC Var 2020, Link FSUIPC_INOUT, Offset $0808, Length 4 // AP_YD Var 2021, name APD_COURSE1, Link FSUIPC_INOUT, Offset $0C4E, Length 2 // APD_COURSE1 Var 2022, name APD_COURSE2, Link FSUIPC_INOUT, Offset $0C5E, Length 2 // APD_COURSE2 Var 2023, name FS_IAS, Link FSUIPC_IN, Offset $02BC, Length 4 // IAS FS Var 2024, name FS_MACH, Link FSUIPC_IN, Offset $11C6, Length 2 // IAS FS Var 2025, Link FSUIPC_INOUT, Offset $07FC, Length 4 // AP_APP2 // ********************** // FUNCTIONS // ********************** Var 2050, name CMD { IF &CMD = 1 { &O_CMDA = TESTBIT &AP_MASTER_SW ,0 // LED_AP_SW } ELSE { &O_CMDB = TESTBIT &AP_MASTER_SW ,0 // LED_AP_SW } } Var 2051, name SPEED { IF &SPEED <> 2 { &O_DECIMAL = 0 &F_IAS = &T_IAS } ELSE { &O_DECIMAL = 1 &F_IAS = &T_MACH } } var 2052, name T_IAS var 2053, name T_MACH var 2054, name F_IAS { IF &SPEED <> 2 { &O_DECIMAL = 0 &D_IAS = &F_IAS &APD_IAS = DELAY &F_IAS,10 } ELSE { &O_DECIMAL = 1 &D_IAS = &F_IAS L0 = &F_IAS * 655.36 &APD_MACH = DELAY L0, 10 } } Var 2056, name CHECK, Link SUBRUTINE { &CONTADOR = &CONTADOR + 1 IF &CONTADOR > 10000 { &CONTADOR = 1000 } ELSE { IF &CONTADOR > 4 { IF &APD_VS <> &D_VS { &D_VS = &APD_VS } } } } Var 2057, name CONTADOR // ************* // DISPLAYS 7-S // ************* Var 2100, name D_COURSE1, Link IOCARD_DISPLAY, DEVICE 1, Digit 0, Numbers 3 { &APD_COURSE1 = &D_COURSE1 } Var 2102, name D_IAS, Link IOCARD_DISPLAY, DEVICE 1, Digit 3, Numbers 3 Var 2104, name D_HDG, Link IOCARD_DISPLAY, DEVICE 1, Digit 6, Numbers 3 { L1 = &D_HDG * 182.04444 L0 = L1 + 1 &APD_HDG = L0 } Var 2106, name D_ALT, Link IOCARD_DISPLAY, DEVICE 1, Digit 9, Numbers 5 { L0 = &D_ALT * 19975.37 &APD_ALT = L0 } Var 2108, name D_VS, Link IOCARD_DISPLAY, DEVICE 1, Digit 14, Numbers 5 Var 2110, name D_COURSE2, Link IOCARD_DISPLAY, DEVICE 1, Digit 19, Numbers 3 { &APD_COURSE2 = &D_COURSE2 } // ******************* // OUTPUTS // ******************* Var 2200, name O_DECIMAL, Link IOCARD_OUT, DEVICE 1, Output 20 Var 2202, name O_N1, Link IOCARD_OUT, DEVICE 1, Output 21 Var 2204, name O_AT, Link IOCARD_OUT, DEVICE 1, Output 22 Var 2206, name O_SPEED, Link IOCARD_OUT, DEVICE 1, Output 23 Var 2208, name O_LVLCHG, Link IOCARD_OUT, DEVICE 1, Output 24 Var 2210, name O_VNAV, Link IOCARD_OUT, DEVICE 1, Output 25 Var 2212, name O_HDGSEL, Link IOCARD_OUT, DEVICE 1, Output 26 Var 2214, name O_APP, Link IOCARD_OUT, DEVICE 1, Output 27 Var 2216, name O_VORLOC, Link IOCARD_OUT, DEVICE 1, Output 28 Var 2218, name O_LNAV, Link IOCARD_OUT, DEVICE 1, Output 29 Var 2220, name O_ALTHLD, Link IOCARD_OUT, DEVICE 1, Output 30 Var 2222, name O_VS, Link IOCARD_OUT, DEVICE 1, Output 31 Var 2224, name O_CWSA, Link IOCARD_OUT, DEVICE 1, Output 32 Var 2226, name O_CMDA, Link IOCARD_OUT, DEVICE 1, Output 33 Var 2228, name O_CWSB, Link IOCARD_OUT, DEVICE 1, Output 34 Var 2230, name O_CMDB, Link IOCARD_OUT, DEVICE 1, Output 35 // ********************************** // ROTARY-ENCODERS // ********************************** Var 2300, name E_IAS, Link IOCARD_ENCODER, DEVICE 1, Input 0, Aceleration 4, Type 2 { IF &SPEED <> 2 { L0 = &E_IAS * -1 &T_IAS = LIMIT 0, 360, L0 &F_IAS = &T_IAS } ELSE { L0 = &E_IAS * -1 &T_MACH = LIMIT 0, 99, L0 &F_IAS = &T_MACH } } Var 2302, name E_ALT, Link IOCARD_ENCODER, DEVICE 1, Input 2, Aceleration 4, Type 2 { L0 = &E_ALT * -100 &D_ALT = LIMIT 0, 50000, L0 } Var 2304, name E_COURSE1, Link IOCARD_ENCODER, DEVICE 1, Input 4, Aceleration 4, Type 2 { L0 = &E_COURSE1 * -1 &D_COURSE1 = ROTATE 1, 360, L0 } Var 2306, name E_HDG, Link IOCARD_ENCODER, DEVICE 1, Input 6, Aceleration 4, Type 2 { L0 = &E_HDG * -1 &D_HDG = ROTATE 1, 360, L0 } Var 2308, name E_COURSE2, Link IOCARD_ENCODER, DEVICE 1, Input 9, Aceleration 4, Type 2 { L0 = &E_COURSE2 * -1 &D_COURSE2 = ROTATE 1, 360, L0 } Var 2310, name E_VS, Link IOCARD_ENCODER, DEVICE 1, Input 11, Aceleration 4, Type 2 { L0 = &E_VS * -100 &D_VS = LIMIT -9000, 9000, L0 &CONTADOR = 0 &APD_VS = &D_VS } // ********* // SWITCHES // ********* Var 2400, name I_CO, Link IOCARD_SW, DEVICE 1, Input 13, type P { IF &O_SPEED = 1 { IF &SPEED <> 0 { IF &SPEED = 1 { L0 = &FS_MACH / 204.80 &T_MACH = L0 &AP_MACH = 1 } ELSE { L0 = &FS_IAS / 128 &T_IAS = L0 &AP_IAS = 1 } } } } Var 2402, name I_FD2, Link IOCARD_SW, DEVICE 1, Input 14 Var 2404, name I_DISENGAGE, Link IOCARD_SW, DEVICE 1, Input 15 Var 2406, name I_FD1, Link IOCARD_SW, DEVICE 1, Input 16 { IF &I_FD1 = 1 { V2016 = 1 } ELSE { V2016 = 0 } } Var 2408, name I_CWSB, Link IOCARD_SW, DEVICE 1, Input 18 Var 2410, name I_CMDB, Link IOCARD_SW, DEVICE 1, Input 19 { IF &I_CMDB = 1 { &CMD = 2 IF &AP_MASTER_SW = 1 { &AP_MASTER_SW = 0 } ELSE { &AP_MASTER_SW = 1 } } } Var 2412, name I_CWSA, Link IOCARD_SW, DEVICE 1, Input 20 Var 2414, name I_CMDA, Link IOCARD_SW, DEVICE 1, Input 21 { IF &I_CMDA = 1 { &CMD = 1 IF &AP_MASTER_SW = 1 { &AP_MASTER_SW = 0 } ELSE { &AP_MASTER_SW = 1 } } } Var 2416, name I_VS, Link IOCARD_SW, DEVICE 1, Input 22 { IF &I_VS = 1 { IF &AP_ALT <> 1 { &AP_ALT = 1 } ELSE { &AP_ALT = 0 } } } Var 2418, name I_ALTHLD, Link IOCARD_SW, DEVICE 1, Input 23 Var 2420, name I_APP, Link IOCARD_SW, DEVICE 1, Input 24 { IF &I_APP = 1 { IF V2018 <> 1 { V2018 = 1 V2025 = 1 } ELSE { V2018 = 0 V2025 = 0 } } } Var 2422, name I_VORLOC, Link IOCARD_SW, DEVICE 1, Input 25 Var 2424, name I_LNAV, Link IOCARD_SW, DEVICE 1, Input 27 { IF &I_LNAV = 1 { IF V2017 <> 1 { V2017 = 1 } ELSE { V2017 = 0 } } } Var 2426, name I_HDGSEL, Link IOCARD_SW, DEVICE 1, Input 28 { IF &I_HDGSEL = 1 { IF V2004 <> 1 { V2004 = 1 } ELSE { V2004 = 0 } } } Var 2428, name I_LVLCHG, Link IOCARD_SW, DEVICE 1, Input 29 Var 2430, name I_VNAV, Link IOCARD_SW, DEVICE 1, Input 30 Var 2432, name I_SPEED, Link IOCARD_SW, DEVICE 1, Input 31 { IF &I_SPEED = 1 { IF &SPEED = 0 { &AP_IAS = 1 } ELSE { &AP_IAS = 0 &AP_MACH = 0 &SPEED = 0 } } } Var 2434, name I_N1, Link IOCARD_SW, DEVICE 1, Input 32 Var 2436, name I_AT, Link IOCARD_SW, DEVICE 1, Input 33 { IF &I_AT = 1 { V2015 = 1 } ELSE { V2015 = 0 } }