// ***************************************************
// DEFINICION DE VARIABLES // DEFINITION OF VARIABLES
// ***************************************************
// IOCARD MCP Default Flight Simulator 2004 ver 1.0
// *******************************
// INICIALIZATION / INICIALIZACION
// *******************************
Var 0000, Value 0 // Inicializa / Inicialization
{
&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 0001, 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 0002, Link FSUIPC_INOUT, Offset $07C0, Length 4 // AP_LVL
{
// &O_LVLCHG = TESTBIT V0002 ,0 // LED_LVL
}
Var 0003, Link FSUIPC_INOUT, Offset $07C4, Length 4 // AP_NAV1
{
IF V0003 = 1
{
&O_LNAV = 1
}
ELSE
{
&O_LNAV = 0
}
}
Var 0004, Link FSUIPC_INOUT, Offset $07C8, Length 4 // AP_HDG_SEL
{
IF V0004 = 1
{
&O_HDGSEL = 1
}
ELSE
{
&O_HDGSEL = 0
}
}
Var 0005, name APD_HDG, Link FSUIPC_INOUT, Offset $07CC, Length 2 // APD_HDG
Var 0006, name AP_ALT, Link FSUIPC_INOUT, Offset $07D0, Length 4 // AP_ALT
{
IF &AP_ALT = 1
{
&O_VS = 1
}
ELSE
{
&O_VS = 0
}
}
Var 0007, 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 0008, name APD_IAS, Link FSUIPC_INOUT, Offset $07E2, Length 2 // D_IAS
Var 0009, name APD_ALT, Link FSUIPC_INOUT, Offset $07D4, Length 4 // APD_ALT
// Var 0010, Link FSUIPC_INOUT, Offset $0764, Length 4 // AP_DISPONIBLE
Var 0011, 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 0012, name APD_MACH, Link FSUIPC_INOUT, Offset $07E8, Length 4 // APD_MACH
Var 0013, Link FSUIPC_INOUT, Offset $3210, Length 2 // LOCALV_IAS/M
Var 0014, name APD_VS, Link FSUIPC_INOUT, Offset $07F2, Length 2, type 1 // D_V/S
Var 0015, Link FSUIPC_INOUT, Offset $0810, Length 4 // AP_AT
{
IF V0015 = 1
{
&O_AT = 1
}
ELSE
{
&O_AT = 0
}
}
Var 0016, Link FSUIPC_INOUT, Offset $2EE0, Length 4 // AP_FD
Var 0017, Link FSUIPC_INOUT, Offset $07C4, Length 4 // AP_NAV
Var 0018, Link FSUIPC_INOUT, Offset $0800, Length 4 // AP_APP
{
IF V0018 = 1
{
&O_APP = 1
}
ELSE
{
&O_APP = 0
}
}
Var 0019, Link FSUIPC_INOUT, Offset $0804, Length 4 // AP_BC
Var 0020, Link FSUIPC_INOUT, Offset $0808, Length 4 // AP_YD
Var 0021, name APD_COURSE1, Link FSUIPC_INOUT, Offset $0C4E, Length 2 // APD_COURSE1
Var 0022, name APD_COURSE2, Link FSUIPC_INOUT, Offset $0C5E, Length 2 // APD_COURSE2
Var 0023, name FS_IAS, Link FSUIPC_IN, Offset $02BC, Length 4 // IAS FS
Var 0024, name FS_MACH, Link FSUIPC_IN, Offset $11C6, Length 2 // IAS FS
Var 0025, Link FSUIPC_INOUT, Offset $07FC, Length 4 // AP_APP2
// **********************
// FUNCTIONS / FUNCIONES
// **********************
Var 50, 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 51, name SPEED
{
IF &SPEED <> 2
{
&O_DECIMAL = 0
&F_IAS = &T_IAS
}
ELSE
{
&O_DECIMAL = 1
&F_IAS = &T_MACH
}
}
var 52, name T_IAS
var 53, name T_MACH
var 54, 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 56, 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 57, name CONTADOR
// *************
// DISPLAYS 7-S
// *************
Var 100, name D_COURSE1, Link IOCARD_DISPLAY, Digit 0, Numbers 3, Device 10
{
&APD_COURSE1 = &D_COURSE1
}
Var 102, name D_IAS, Link IOCARD_DISPLAY, Digit 3, Numbers 3, Device 10
Var 104, name D_HDG, Link IOCARD_DISPLAY, Digit 6, Numbers 3, Device 10
{
L1 = &D_HDG * 182.04444
L0 = L1 + 1
&APD_HDG = L0
}
Var 106, name D_ALT, Link IOCARD_DISPLAY, Digit 9, Numbers 5, Device 10
{
L0 = &D_ALT * 19975.37
&APD_ALT = L0
}
Var 108, name D_VS, Link IOCARD_DISPLAY, Digit 14, Numbers 5, Device 10
Var 110, name D_COURSE2, Link IOCARD_DISPLAY, Digit 19, Numbers 3, Device 10
{
&APD_COURSE2 = &D_COURSE2
}
// *******************
// SALIDAS // OUTPUTS
// *******************
Var 200, name O_DECIMAL, Link IOCARD_OUT, Output 20, Device 10
Var 202, name O_N1, Link IOCARD_OUT, Output 21, Device 10
Var 204, name O_AT, Link IOCARD_OUT, Output 22, Device 10
Var 206, name O_SPEED, Link IOCARD_OUT, Output 23, Device 10
Var 208, name O_LVLCHG, Link IOCARD_OUT, Output 24, Device 10
Var 210, name O_VNAV, Link IOCARD_OUT, Output 25, Device 10
Var 212, name O_HDGSEL, Link IOCARD_OUT, Output 26, Device 10
Var 214, name O_APP, Link IOCARD_OUT, Output 27, Device 10
Var 216, name O_VORLOC, Link IOCARD_OUT, Output 28, Device 10
Var 218, name O_LNAV, Link IOCARD_OUT, Output 29, Device 10
Var 220, name O_ALTHLD, Link IOCARD_OUT, Output 30, Device 10
Var 222, name O_VS, Link IOCARD_OUT, Output 31, Device 10
Var 224, name O_CWSA, Link IOCARD_OUT, Output 32, Device 10
Var 226, name O_CMDA, Link IOCARD_OUT, Output 33, Device 10
Var 228, name O_CWSB, Link IOCARD_OUT, Output 34, Device 10
Var 230, name O_CMDB, Link IOCARD_OUT, Output 35, Device 10
// **********************************
// ROTARY-SWITCHES // ROTARY-ENCODERS
// **********************************
Var 300, name E_IAS, Link IOCARD_ENCODER, Input 0, Aceleration 4, Type 2, Device 10
{
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 302, name E_ALT, Link IOCARD_ENCODER, Input 2, Aceleration 4, Type 2, Device 10
{
L0 = &E_ALT * -100
&D_ALT = LIMIT 0, 50000, L0
}
Var 304, name E_COURSE1, Link IOCARD_ENCODER, Input 4, Aceleration 4, Type 2, Device 10
{
L0 = &E_COURSE1 * -1
&D_COURSE1 = ROTATE 1, 360, L0
}
Var 306, name E_HDG, Link IOCARD_ENCODER, Input 6, Aceleration 4, Type 2, Device 10
{
L0 = &E_HDG * -1
&D_HDG = ROTATE 1, 360, L0
}
Var 308, name E_COURSE2, Link IOCARD_ENCODER, Input 9, Aceleration 4, Type 2, Device 10
{
L0 = &E_COURSE2 * -1
&D_COURSE2 = ROTATE 1, 360, L0
}
Var 310, name E_VS, Link IOCARD_ENCODER, Input 11, Aceleration 4, Type 2, Device 10
{
L0 = &E_VS * -100
&D_VS = LIMIT -9000, 9000, L0
&CONTADOR = 0
&APD_VS = &D_VS
}
// *********
// SWITCHES
// *********
Var 400, name I_CO, Link IOCARD_SW, Input 13, type P, Device 10
{
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 402, name I_FD2, Link IOCARD_SW, Input 14, Device 10
Var 404, name I_DISENGAGE, Link IOCARD_SW, Input 15, Device 10
Var 406, name I_FD1, Link IOCARD_SW, Input 16, Device 10
{
IF &I_FD1 = 1
{
V0016 = 1
}
ELSE
{
V0016 = 0
}
}
Var 408, name I_CWSB, Link IOCARD_SW, Input 18, Device 10
Var 410, name I_CMDB, Link IOCARD_SW, Input 19, Device 10
{
IF &I_CMDB = 1
{
&CMD = 2
IF &AP_MASTER_SW = 1
{
&AP_MASTER_SW = 0
}
ELSE
{
&AP_MASTER_SW = 1
}
}
}
Var 412, name I_CWSA, Link IOCARD_SW, Input 20, Device 10
Var 414, name I_CMDA, Link IOCARD_SW, Input 21, Device 10
{
IF &I_CMDA = 1
{
&CMD = 1
IF &AP_MASTER_SW = 1
{
&AP_MASTER_SW = 0
}
ELSE
{
&AP_MASTER_SW = 1
}
}
}
Var 416, name I_VS, Link IOCARD_SW, Input 22, Device 10
{
IF &I_VS = 1
{
IF &AP_ALT <> 1
{
&AP_ALT = 1
}
ELSE
{
&AP_ALT = 0
}
}
}
Var 418, name I_ALTHLD, Link IOCARD_SW, Input 23, Device 10
Var 420, name I_APproblème, Link IOCARD_SW, Input 24 , Device 10
{
IF &I_APproblème = 1
{
IF V0018 <> 1
{
V0018 = 1
V0025 = 1
}
ELSE
{
V0018 = 0
V0025 = 0
}
}
}
Var 422, name I_VORLOC, Link IOCARD_SW, Input 25, Device 10
Var 424, name I_LNAV, Link IOCARD_SW, Input 27, Device 10
{
IF &I_LNAV = 1
{
IF V0017 <> 1
{
V0017 = 1
}
ELSE
{
V0017 = 0
}
}
}
Var 426, name I_HDGSEL, Link IOCARD_SW, Input 28, Device 10
{
IF &I_HDGSEL = 1
{
IF V0004 <> 1
{
V0004 = 1
}
ELSE
{
V0004 = 0
}
}
}
Var 428, name I_LVLCHG, Link IOCARD_SW, Input 29, Device 10
Var 430, name I_VNAV, Link IOCARD_SW, Input 30, Device 10
Var 432, name I_SPEED, Link IOCARD_SW, Input 31, Device 10
{
IF &I_SPEED = 1
{
IF &SPEED = 0
{
&AP_IAS = 1
}
ELSE
{
&AP_IAS = 0
&AP_MACH = 0
&SPEED = 0
}
}
}
Var 434, name I_N1, Link IOCARD_SW, Input 32, Device 10
Var 436, name I_AT, Link IOCARD_SW, Input 33, Device 10
{
IF &I_AT = 1
{
V0015 = 1
}
ELSE
{
V0015 = 0
}
}