// *****************************************************************************// * Config_SIOC ver 1.98 - By Manolo Vélez -
OpenCockpits
// *****************************************************************************
// * FileName : Comm1.txt
// * Author Nico Kaan
// * Date : 10/11/2007
// * modified by Nico Kaan, April 18th, 2008
// * also incorporates a display test function - KB
//
//*********************************************
//***** COMM 1 ********************************
//*********************************************
Var 1000 name Com1_act
Var 1002 name FS_C1_SB_BCD Link FSUIPC_INOUT Offset $311A Length 2 // FS COM1 standby frequency in BCD format
Var 1003 name FS_C1_ACT_BCD Link FSUIPC_INOUT Offset $034E Length 2 // FS COM1 active frequency in BCD format
{
&Com1_act = FROMBCD &FS_C1_ACT_BCD
CALL &OutCom1_Act
CALL &C1_LH_ROT_VAL // Align rotary with new C1 SB integer val
CALL &C1_RH_ROT_VAL // Align rotary with new C1 SB decimal val
CALL &C1_UPDATE_LHS
CALL &C1_UPDATE_RHS
CALL &OutCom1_SB
}
Var 1004 name FS_C1_SWAP Link FSUIPC_OUT Offset $3123 Length 1 // FS COM1 active standby swap
Var 1005 name C1_SB_AS_DEC // COM1 standby frequency in decimal format
Var 1006 name C1_SB_LHS // COM1 standby frequency integers
Var 1007 name C1_SB_RHS // COM1 standby frequency decimals
Var 1008 name C1_RHS_ROT_VAL // COM1 right hand rotary encoder ref value
Var 1009 name C1_LHS_ROT_VAL // COM1 left hand rotary encoder ref value
Var 1010 name ROT_C1_LHS Link IOCARD_ENCODER Input 18 Aceleration 1 Type 2
{
L0 = &ROT_C1_LHS * -1
&C1_LHS_ROT_VAL = ROTATE 18 36 L0
CALL &C1_UPDATE_LHS
CALL &SET_FS_C1_SB
CALL &OutCom1_SB
}
Var 1011 name ROT_C1_RHS Link IOCARD_ENCODER Input 20 Aceleration 1 Type 2
{
L0 = &ROT_C1_RHS * -1
&C1_RHS_ROT_VAL = ROTATE 0 39 L0
CALL &C1_UPDATE_RHS
CALL &SET_FS_C1_SB
CALL &OutCom1_SB
}
Var 1012 name SW_C1_SWAP Link IOCARD_SW Input 26 Type 1 // Active/Standby swap button
{
&FS_C1_SWAP = TOGGLE 3
}
Var 1015 name SW_C1_TEST Link IOCARD_SW Input 33 // COMM TEST button sends 8's to Displays
{
IF &SW_C1_TEST = 1
{
&DISP_C1_ACT = 88888
&DISP_C1_SB = 88888
}
ELSE
{
CALL &OutCom1_Act
CALL &OutCom1_SB
}
}
Var 1020 name DISP_C1_SB Link IOCARD_DISPLAY Digit 1 Numbers 5 // Standby decimals
Var 1021 name DISP_C1_ACT Link IOCARD_DISPLAY Digit 7 Numbers 5 // active display
Var 1022 name C1_DP Link IOCARD_OUT Output 15 // Decimal Point
Var 1030 name C1_LH_ROT_VAL Link SUBRUTINE // Aligns LH rotary ref with COM1 SB freq
{
L0 = FROMBCD &FS_C1_SB_BCD
L1 = L0 / 100
&C1_LHS_ROT_VAL = TRUNC L1
}
Var 1031 name C1_RH_ROT_VAL Link SUBRUTINE // Aligns RH rotary ref with COM1 SB freq
{
L0 = FROMBCD &FS_C1_SB_BCD
L1 = &C1_LHS_ROT_VAL * 100
L2 = L0 - L1
&C1_RHS_ROT_VAL = L2 / 2.487179
}
Var 1032 name C1_UPDATE_LHS Link SUBRUTINE // Update COM1 stanby integers
{
&C1_SB_LHS = &C1_LHS_ROT_VAL
}
Var 1033 name C1_UPDATE_RHS Link SUBRUTINE // Update COM1 standby decimals
{
L0 = &C1_RHS_ROT_VAL * 2.5
&C1_SB_RHS = TRUNC L0
}
Var 1034 name SET_FS_C1_SB Link SUBRUTINE // Update COM1 standby frequency in FS
{
L0 = &C1_SB_LHS * 100
L1 = L0 + &C1_SB_RHS
&FS_C1_SB_BCD = TOBCD L1
}
Var 1040 name OutCom1_Act Link SUBRUTINE
{
//IF &MAST_SW = 1 // Section for use with a master switch. Not yet implemented
//{
L0 = &Com1_act
&DISP_C1_ACT = L0 + 10000
}
//ELSE
//{
//&DISP_C1_ACT = -999999 // blank
//}
//}
Var 1041 name OutCom1_SB Link SUBRUTINE
{
//IF &MAST_SW = 1
//{
&C1_DP = 1
L0 = &C1_SB_LHS * 100
L1 = L0 + &C1_SB_RHS
&DISP_C1_SB = L1 + 10000
}
//ELSE
//{
//&C1_DP = 0
//&DISP_C1_SB = -999999 // blank
//}
//}