VPS1_OVERRIDE_TIME_COINC relay Force TN coincidence SYSTEM{ALL_OVERRIDE_TIME_COINC}
VNS1_OVERRIDE_TIME_COINC relay Force TN coincidence SYSTEM{ALL_OVERRIDE_TIME_COINC}
VLS3_OVERRIDE_TIME_COINC relay Force TN coincidence SYSTEM{ALL_OVERRIDE_TIME_COINC}
VLS4_OVERRIDE_TIME_COINC relay Force TN coincidence SYSTEM{ALL_OVERRIDE_TIME_COINC}
VLS6_OVERRIDE_TIME_COINC relay Force TN coincidence SYSTEM{ALL_OVERRIDE_TIME_COINC}
VHS1_OVERRIDE_TIME_COINC relay Force TN coincidence SYSTEM{ALL_OVERRIDE_TIME_COINC}
VHS2_OVERRIDE_TIME_COINC relay Force TN coincidence SYSTEM{ALL_OVERRIDE_TIME_COINC}
VFS1_OVERRIDE_TIME_COINC relay Force TN coincidence SYSTEM{ALL_OVERRIDE_TIME_COINC}
VFS2_OVERRIDE_TIME_COINC relay Force TN coincidence SYSTEM{ALL_OVERRIDE_TIME_COINC}
VES2_OVERRIDE_TIME_COINC relay Force TN coincidence SYSTEM{ALL_OVERRIDE_TIME_COINC}
pbNOREV_UH_1 relay MGMT button to ignore change-end/rev instruction 0
pbNOREV_WF_1 relay MGMT button to ignore change-end/rev instruction 0
pbNOREV_TG_1 relay MGMT button to ignore change-end/rev instruction 0
pbNOREV_MP relay MGMT button to ignore change-end/rev instruction 0
pbNOREV_HN relay MGMT button to ignore change-end/rev instruction 0
pbNOREV_EP_1 relay MGMT button to ignore change-end/rev instruction 0
pbNOREV_BN_1 relay MGMT button to ignore change-end/rev instruction 0
pbNOREV_AE_1 relay MGMT button to ignore change-end/rev instruction 0
pbNOREV_RK_NB relay MGMT button to ignore change-end/rev instruction 0
UH_1{ignorerev} attr pbNOREV_UH_1
WF_1{ignorerev} attr pbNOREV_WF_1
TG_1{ignorerev} attr pbNOREV_TG_1
MP{ignorerev} attr pbNOREV_MP
HN{ignorerev} attr pbNOREV_HN
EP_1{ignorerev} attr pbNOREV_EP_1
BN_1{ignorerev} attr pbNOREV_BN_1
AE_1{ignorerev} attr pbNOREV_AE_1
RK_NB{ignorerev} attr pbNOREV_RK_NB
pbnOn momentary 0
pbnOff momentary 0
pbsOn momentary 0
pbsOff momentary 0
DESK1A_ON relay ( pbnOn{PUSH} | DESK1A_ON ) & !pbnOff{PUSH}
DESK1B_ON relay ( pbsOn{PUSH} | DESK1B_ON ) & !pbsOff{PUSH}
DESK1A_OFF relay !DESK1A_ON
DESK1B_OFF relay !DESK1B_ON
pbnPull momentary 0
pbsPull momentary 0
DESK1A_SHIFT relay ( pbnPull{PUSH} | DESK1A_SHIFT ) & !pbnPull{PULL}
DESK1B_SHIFT relay ( pbsPull{PUSH} | DESK1B_SHIFT ) & !pbsPull{PULL}
pbnShift relay 0
pbsShift relay 0
DESK1A_SHIFT relay 0 pbnShift
DESK1B_SHIFT relay 0 pbsShift
pbVES1 momentary 0
pbVES2 momentary 0
pbVES4 momentary 0
pbVFS1 momentary 0
pbVFS2 momentary 0
pbVHS1 momentary 0
pbVHS2 momentary 0
pbVLS1 momentary 0
pbVLS2 momentary 0
pbVLS3 momentary 0
pbVLS4 momentary 0
pbVLS6 momentary 0
pbVNS1 momentary 0
pbVNS2 momentary 0
pbVPS1 momentary 0
pbVPS2 momentary 0
pbVPS3 momentary 0
DESK{VES1} attr ( pbVES1{PUSH} | DESK{VES1} ) & DESK1B_ON
DESK{VES2} attr ( pbVES2{PUSH} | DESK{VES2} ) & DESK1B_ON
DESK{VES4} attr ( pbVES4{PUSH} | DESK{VES4} ) & DESK1B_ON
DESK{VFS1} attr ( pbVFS1{PUSH} | DESK{VFS1} ) & DESK1B_ON
DESK{VFS2} attr ( pbVFS2{PUSH} | DESK{VFS2} ) & DESK1B_ON
DESK{VHS1} attr ( pbVHS1{PUSH} | DESK{VHS1} ) & DESK1B_ON
DESK{VHS2} attr ( pbVHS2{PUSH} | DESK{VHS2} ) & DESK1B_ON
DESK{VLS1} attr ( pbVLS1{PUSH} | DESK{VLS1} ) & DESK1A_ON
DESK{VLS2} attr ( pbVLS2{PUSH} | DESK{VLS2} ) & DESK1A_ON
DESK{VLS3} attr ( pbVLS3{PUSH} | DESK{VLS3} ) & DESK1A_ON
DESK{VLS4} attr ( pbVLS4{PUSH} | DESK{VLS4} ) & DESK1A_ON
DESK{VLS6} attr ( pbVLS6{PUSH} | DESK{VLS6} ) & DESK1A_ON
DESK{VNS1} attr ( pbVNS1{PUSH} | DESK{VNS1} ) & DESK1A_ON
DESK{VNS2} attr ( pbVNS2{PUSH} | DESK{VNS2} ) & DESK1A_ON
DESK{VPS1} attr ( pbVPS1{PUSH} | DESK{VPS1} ) & DESK1A_ON
DESK{VPS2} attr ( pbVPS2{PUSH} | DESK{VPS2} ) & DESK1A_ON
DESK{VPS3} attr ( pbVPS3{PUSH} | DESK{VPS3} ) & DESK1A_ON
pbVEstarter momentary ` 0
pbVEp1 momentary 0
pbVEp2 momentary 0
pbVLp3 momentary 0
pbVLp4 momentary 0
pbVPstarter momentary 0
pbVPp1 momentary 0
pbVPp2 momentary 0
VES2_REG_STARTER relay S2/527 pbVEstarter{PUSH} & DESK1B_ON
VES4_REG_PLAT1_SETUP relay pbVEp1{PUSH} & DESK{VES4}
VES4_REG_PLAT2_SETUP relay pbVEp2{PUSH} & DESK{VES4}
VES4_REG_PLAT_CANCEL relay ( pbVEp1{PULL} | pbVEp2{PULL} ) & DESK{VES4}
VLS6_REG_PLAT3_SETUP relay pbVLp3{PUSH} & DESK{VLS6}
VLS6_REG_PLAT4_SETUP relay pbVLp4{PUSH} & DESK{VLS6}
VLS6_REG_PLAT_CANCEL relay ( pbVLp3{PULL} | pbVLp4{PULL} ) & DESK{VLS6}
VPS1_REG_STARTER relay S1/527 pbVPstarter{PUSH} & DESK1A_ON
VPS3_REG_PLAT3_SETUP relay pbVPp1{PUSH} & DESK{VPS3}
VPS3_REG_PLAT4_SETUP relay pbVPp2{PUSH} & DESK{VPS3}
VPS3_REG_PLAT_CANCEL relay ( pbVPp1{PULL} | pbVPp2{PULL} ) & DESK{VPS3}
ANY_WARNING relay VP_WARNING | VN_WARNING | VL_WARNING | VH_WARNING | VF_WARNING | VE_WARNING
BELL momentary ANY_WARNING
Actual buttons on desk
pbVPeng momentary 0
pbVKmanPicc momentary 0
pbVKmanVic momentary 0
pbnB momentary 0
pbnF momentary 0
pbnP momentary 0
pbnPMonly momentary 0
pbnPMack momentary 0
pbnNOOT momentary 0
pbnExtraTrain momentary 0
pbnTrainCancel momentary 0
pbnErase momentary 0
pbnComp momentary 0
pbnHold momentary 0
pbnAll momentary 0
pbnRR momentary 0
pbnCompReset momentary 0
pbnAsk momentary 0
pbnDivert momentary 0
pbn8 momentary 0
pbn9 momentary 0
pbnRev momentary 0
pbnList momentary 0
pbsB momentary 0
pbsF momentary 0
pbsP momentary 0
pbsPMonly momentary 0
pbsPMack momentary 0
pbsNOOT momentary 0
pbsExtraTrain momentary 0
pbsTrainCancel momentary 0
pbsErase momentary 0
pbsComp momentary 0
pbsHold momentary 0
pbsAll momentary 0
pbsRR momentary 0
pbsCompReset momentary 0
pbsAsk momentary 0
pbsDivert momentary 0
pbs8 momentary 0
pbs9 momentary 0
pbsRev momentary 0
pbsList momentary 0
The next blocks are only used for desk lamps
DESK1A_REG_B relay pbnB{PUSH} & DESK1A_ON
DESK1A_REG_F relay pbnF{PUSH} & DESK1A_ON
DESK1A_REG_P relay pbnP{PUSH} & DESK1A_ON
DESK1A_REG_PMONLY relay pbnPMonly{PUSH} & DESK1A_ON
DESK1A_REG_PMACK relay pbnPMack{PUSH} & DESK1A_ON
DESK1A_REG_NOOT relay ( pbnNOOT{PUSH} & DESK1A_ON ) | REG_ALL_NOOT
DESK1A_REG_EXTTRAIN relay pbnExtraTrain{PUSH} & DESK1A_ON
DESK1A_REG_TRAINCAN relay pbnTrainCancel{PUSH} & DESK1A_ON
DESK1A_REG_ERASE relay pbnErase{PUSH} & DESK1A_ON
DESK1B_REG_B relay pbsB{PUSH} & DESK1B_ON
DESK1B_REG_F relay pbsF{PUSH} & DESK1B_ON
DESK1B_REG_P relay pbsP{PUSH} & DESK1B_ON
DESK1B_REG_PMONLY relay pbsPMonly{PUSH} & DESK1B_ON
DESK1B_REG_PMACK relay pbsPMack{PUSH} & DESK1B_ON
DESK1B_REG_NOOT relay ( pbsNOOT{PUSH} & DESK1B_ON ) | REG_ALL_NOOT
DESK1B_REG_EXTTRAIN relay pbsExtraTrain{PUSH} & DESK1B_ON
DESK1B_REG_TRAINCAN relay pbsTrainCancel{PUSH} & DESK1B_ON
DESK1B_REG_ERASE relay pbsErase{PUSH} & DESK1B_ON
COMPUTER{COMP1A} attr pbnComp{PUSH} & DESK1A_ON
COMPUTER{COMP1B} attr pbsComp{PUSH} & DESK1B_ON
COMPUTER{HOLD1A} attr pbnHold{PUSH} & DESK1A_ON
COMPUTER{HOLD1B} attr pbsHold{PUSH} & DESK1B_ON
COMPUTER{ALL1A} attr pbnAll{PUSH} & DESK1A_ON
COMPUTER{ALL1B} attr pbsAll{PUSH} & DESK1B_ON
COMPUTER{RR1A} attr pbnRR{PUSH} & DESK1A_ON
COMPUTER{RR1B} attr pbsRR{PUSH} & DESK1B_ON
COMPUTER{COMPRESET1A} attr pbnCompReset{PUSH} & DESK1A_ON
COMPUTER{COMPRESET1B} attr pbsCompReset{PUSH} & DESK1B_ON
COMPUTER{ASK1A} attr pbnAsk{PUSH} & DESK1A_ON
COMPUTER{ASK1B} attr pbsAsk{PUSH} & DESK1B_ON
COMPUTER{DIVERT1A} attr pbnDivert{PUSH} & DESK1A_ON
COMPUTER{DIVERT1B} attr pbsDivert{PUSH} & DESK1B_ON
COMPUTER{xx81A} attr pbn8{PUSH} & DESK1A_ON
COMPUTER{xx81B} attr pbs8{PUSH} & DESK1B_ON
COMPUTER{xx91A} attr pbn9{PUSH} & DESK1A_ON
COMPUTER{xx91B} attr pbs9{PUSH} & DESK1B_ON
COMPUTER{REV1A} attr pbnRev{PUSH} & DESK1A_ON
COMPUTER{REV1B} attr pbsRev{PUSH} & DESK1B_ON
COMPUTER{LIST1A} attr pbnList{PUSH} & DESK1A_ON
COMPUTER{LIST1B} attr pbsList{PUSH} & DESK1B_ON
disp_opi01 relay Default Screen VLOGO
disp_opi02 relay Default Screen VLOGO
disp_opi03 relay Default Screen VLOGO
disp_opi04 relay Default Screen VLOGO
disp_opi05 relay Default Screen VLOGO
disp_opi06 relay Default Screen VLOGO
disp_opi07 relay Default Screen VLOGO
disp_opi08 relay Default Screen VLOGO
disp_opi09 relay Default Screen DESK1A
disp_opi10 relay Default Screen DESK1B
pbSCREEN01 momentary 0
pbSCREEN02 momentary 0
pbSCREEN03 momentary 0
pbSCREEN04 momentary 0
pbSCREEN05 momentary 0
pbSCREEN06 momentary 0
pbSCREEN07 momentary 0
pbSCREEN08 momentary 0
pbSCREEN09 momentary 0
pbSCREEN10 momentary 0
pbSCREEN11 momentary 0
pbSCREEN12 momentary 0
pbSCREEN101 momentary 0
pbSCREEN102 momentary 0
pbSCREEN103 momentary 0
pbSCREEN104 momentary 0
screenCtrlPress relay ( pbSCREEN01{PUSH} | pbSCREEN02{PUSH} | pbSCREEN03{PUSH} | pbSCREEN04{PUSH} | pbSCREEN05{PUSH} | pbSCREEN06{PUSH} | pbSCREEN07{PUSH} | pbSCREEN08{PUSH} | pbSCREEN09{PUSH} | pbSCREEN10{PUSH} | pbSCREEN11{PUSH} | pbSCREEN12{PUSH} | pbSCREEN101{PUSH} | pbSCREEN102{PUSH} | pbSCREEN103{PUSH} | pbSCREEN104{PUSH} )
screenCtrlPress_R relay Relay screenCtrlPress
screenCtrlLatch relay Gives 0 to release !( ( pbSCREEN01{PUSH} | pbSCREEN02{PUSH} | pbSCREEN03{PUSH} | pbSCREEN04{PUSH} | pbSCREEN05{PUSH} | pbSCREEN06{PUSH} | pbSCREEN07{PUSH} | pbSCREEN08{PUSH} | pbSCREEN09{PUSH} | pbSCREEN10{PUSH} | pbSCREEN11{PUSH} | pbSCREEN12{PUSH} | pbSCREEN101{PUSH} | pbSCREEN102{PUSH} | pbSCREEN103{PUSH} | pbSCREEN104{PUSH} ) & !screenCtrlPress_R )
screenSel01 relay screenCtrlLatch & ( screenSel01 | pbSCREEN01{PUSH} )
screenSel02 relay screenCtrlLatch & ( screenSel02 | pbSCREEN02{PUSH} )
screenSel03 relay screenCtrlLatch & ( screenSel03 | pbSCREEN03{PUSH} )
screenSel04 relay screenCtrlLatch & ( screenSel04 | pbSCREEN04{PUSH} )
screenSel05 relay screenCtrlLatch & ( screenSel05 | pbSCREEN05{PUSH} )
screenSel06 relay screenCtrlLatch & ( screenSel06 | pbSCREEN06{PUSH} )
screenSel07 relay screenCtrlLatch & ( screenSel07 | pbSCREEN07{PUSH} )
screenSel08 relay screenCtrlLatch & ( screenSel08 | pbSCREEN08{PUSH} )
screenSel09 relay screenCtrlLatch & ( screenSel09 | pbSCREEN09{PUSH} )
screenSel10 relay screenCtrlLatch & ( screenSel10 | pbSCREEN10{PUSH} )
screenSel11 relay screenCtrlLatch & ( screenSel11 | pbSCREEN11{PUSH} )
screenSel12 relay screenCtrlLatch & ( screenSel12 | pbSCREEN12{PUSH} )
screenSel101 relay screenCtrlLatch & ( screenSel101 | pbSCREEN101{PUSH} )
screenSel102 relay screenCtrlLatch & ( screenSel102 | pbSCREEN102{PUSH} )
screenSel103 relay screenCtrlLatch & ( screenSel103 | pbSCREEN103{PUSH} )
screenSel104 relay screenCtrlLatch & ( screenSel104 | pbSCREEN104{PUSH} )
screenSelID relay Select screen return ( screenSel01 ? "01" : "" ) .":". ( screenSel02 ? "02" : "" ) .":". ( screenSel03 ? "03" : "" ) .":". ( screenSel04 ? "04" : "" ) .":". ( screenSel05 ? "05" : "" ) .":". ( screenSel06 ? "06" : "" ) .":". ( screenSel07 ? "07" : "" ) .":". ( screenSel08 ? "08" : "" ) .":". ( screenSel09 ? "09" : "" ) .":". ( screenSel10 ? "10" : "" ) .":". ( screenSel11 ? "11" : "" ) .":". ( screenSel12 ? "12" : "" ) .":". ( screenSel101 ? "101" : "" ) .":". ( screenSel102 ? "102" : "" ) .":". ( screenSel103 ? "103" : "" ) .":". ( screenSel104 ? "104" : "" );
pbSCRN_VP momentary 0
pbSCRN_VN momentary 0
pbSCRN_VL momentary 0
pbSCRN_VK momentary 0
pbSCRN_VJ momentary 0
pbSCRN_VH momentary 0
pbSCRN_VG momentary 0
pbSCRN_VF momentary 0
pbSCRN_VE momentary 0
COMPUTER{SCRN_VP} attr pbSCRN_VP{PUSH} | pbSCRN_VPPM{PUSH}
COMPUTER{SCRN_VN} attr pbSCRN_VN{PUSH} | pbSCRN_VNPM{PUSH}
COMPUTER{SCRN_VL} attr pbSCRN_VL{PUSH}
COMPUTER{SCRN_VK} attr pbSCRN_VK{PUSH}
COMPUTER{SCRN_VJ} attr pbSCRN_VJ{PUSH}
COMPUTER{SCRN_VH} attr pbSCRN_VH{PUSH}
COMPUTER{SCRN_VG} attr pbSCRN_VG{PUSH}
COMPUTER{SCRN_VF} attr pbSCRN_VF{PUSH}
COMPUTER{SCRN_VE} attr pbSCRN_VE{PUSH}
pbSCRN_VPFRAME momentary 0
pbSCRN_VNFRAME momentary 0
pbSCRN_VLFRAME momentary 0
pbSCRN_VKFRAME momentary 0
pbSCRN_VJFRAME momentary 0
pbSCRN_VHFRAME momentary 0
pbSCRN_VGFRAME momentary 0
pbSCRN_VFFRAME momentary 0
pbSCRN_VEFRAME momentary 0
COMPUTER{SCRN_VPFRAME} attr pbSCRN_VPFRAME{PUSH}
COMPUTER{SCRN_VNFRAME} attr pbSCRN_VNFRAME{PUSH}
COMPUTER{SCRN_VLFRAME} attr pbSCRN_VLFRAME{PUSH}
COMPUTER{SCRN_VKFRAME} attr pbSCRN_VKFRAME{PUSH}
COMPUTER{SCRN_VJFRAME} attr pbSCRN_VJFRAME{PUSH}
COMPUTER{SCRN_VHFRAME} attr pbSCRN_VHFRAME{PUSH}
COMPUTER{SCRN_VGFRAME} attr pbSCRN_VGFRAME{PUSH}
COMPUTER{SCRN_VFFRAME} attr pbSCRN_VFFRAME{PUSH}
COMPUTER{SCRN_VEFRAME} attr pbSCRN_VEFRAME{PUSH}
pbSCRN_VPPM momentary 0
pbSCRN_VNPM momentary 0
pbSCRN_VLPM momentary 0
pbSCRN_VHPM momentary 0
pbSCRN_VFPM momentary 0
pbSCRN_VEPM momentary 0
COMPUTER{SCRN_VPPM} attr Joint ATO + PM see above pbSCRN_VPPM{PUSH}
COMPUTER{SCRN_VNPM} attr Joint ATO + PM see above pbSCRN_VNPM{PUSH}
COMPUTER{SCRN_VLPM} attr pbSCRN_VLPM{PUSH}
COMPUTER{SCRN_VHPM} attr pbSCRN_VHPM{PUSH}
COMPUTER{SCRN_VFPM} attr pbSCRN_VFPM{PUSH}
COMPUTER{SCRN_VEPM} attr pbSCRN_VEPM{PUSH}
pbSCRN_VPFUNC momentary 0
pbSCRN_VNFUNC momentary 0
pbSCRN_VLFUNC momentary 0
pbSCRN_VKFUNC momentary 0
pbSCRN_VJFUNC momentary 0
pbSCRN_VHFUNC momentary 0
pbSCRN_VGFUNC momentary 0
pbSCRN_VFFUNC momentary 0
pbSCRN_VEFUNC momentary 0
COMPUTER{SCRN_VPFUNC} attr pbSCRN_VPFUNC{PUSH}
COMPUTER{SCRN_VNFUNC} attr pbSCRN_VNFUNC{PUSH}
COMPUTER{SCRN_VLFUNC} attr pbSCRN_VLFUNC{PUSH}
COMPUTER{SCRN_VKFUNC} attr pbSCRN_VKFUNC{PUSH}
COMPUTER{SCRN_VJFUNC} attr pbSCRN_VJFUNC{PUSH}
COMPUTER{SCRN_VHFUNC} attr pbSCRN_VHFUNC{PUSH}
COMPUTER{SCRN_VGFUNC} attr pbSCRN_VGFUNC{PUSH}
COMPUTER{SCRN_VFFUNC} attr pbSCRN_VFFUNC{PUSH}
COMPUTER{SCRN_VEFUNC} attr pbSCRN_VEFUNC{PUSH}
pbSCRN_VPS1PM momentary 0
pbSCRN_VNS1PM momentary 0
pbSCRN_VLS1PM momentary 0
pbSCRN_VHS1PM momentary 0
pbSCRN_VFS1PM momentary 0
pbSCRN_VES1PM momentary 0
pbSCRN_VPS2PM momentary 0
pbSCRN_VNS2PM momentary 0
pbSCRN_VLS2PM momentary 0
pbSCRN_VHS2PM momentary 0
pbSCRN_VFS2PM momentary 0
pbSCRN_VES2PM momentary 0
pbSCRN_VPS3PM momentary 0
pbSCRN_VLS3PM momentary 0
pbSCRN_VLS4PM momentary 0
pbSCRN_VES4PM momentary 0
pbSCRN_VLS6PM momentary 0
COMPUTER{SCRN_VPS1PM} attr pbSCRN_VPS1PM{PUSH}
COMPUTER{SCRN_VNS1PM} attr pbSCRN_VNS1PM{PUSH}
COMPUTER{SCRN_VLS1PM} attr pbSCRN_VLS1PM{PUSH}
COMPUTER{SCRN_VHS1PM} attr pbSCRN_VHS1PM{PUSH}
COMPUTER{SCRN_VFS1PM} attr pbSCRN_VFS1PM{PUSH}
COMPUTER{SCRN_VES1PM} attr pbSCRN_VES1PM{PUSH}
COMPUTER{SCRN_VPS2PM} attr pbSCRN_VPS2PM{PUSH}
COMPUTER{SCRN_VNS2PM} attr pbSCRN_VNS2PM{PUSH}
COMPUTER{SCRN_VLS2PM} attr pbSCRN_VLS2PM{PUSH}
COMPUTER{SCRN_VHS2PM} attr pbSCRN_VHS2PM{PUSH}
COMPUTER{SCRN_VFS2PM} attr pbSCRN_VFS2PM{PUSH}
COMPUTER{SCRN_VES2PM} attr pbSCRN_VES2PM{PUSH}
COMPUTER{SCRN_VPS3PM} attr pbSCRN_VPS3PM{PUSH}
COMPUTER{SCRN_VLS3PM} attr pbSCRN_VLS3PM{PUSH}
COMPUTER{SCRN_VLS4PM} attr pbSCRN_VLS4PM{PUSH}
COMPUTER{SCRN_VES4PM} attr pbSCRN_VES4PM{PUSH}
COMPUTER{SCRN_VLS6PM} attr pbSCRN_VLS6PM{PUSH}
pbSCRN_VP_LOB1 momentary 0
pbSCRN_VN_LOB1 momentary 0
pbSCRN_VL_LOB1 momentary 0
pbSCRN_VK_LOB1 momentary 0
pbSCRN_VG_LOB1 momentary 0
pbSCRN_VH_LOB1 momentary 0
pbSCRN_VJ_LOB1 momentary 0
pbSCRN_VF_LOB1 momentary 0
pbSCRN_VE_LOB1 momentary 0
pbSCRN_VP_LOB2 momentary 0
pbSCRN_VL_LOB2 momentary 0
pbSCRN_VK_LOB2 momentary 0
pbSCRN_VG_LOB2 momentary 0
pbSCRN_VJ_LOB2 momentary 0
pbSCRN_VF_LOB2 momentary 0
pbSCRN_VE_LOB2 momentary 0
pbSCRN_VL_LOB3 momentary 0
pbSCRN_VF_LOB3 momentary 0
COMPUTER{SCRN_VP_LOB1} attr pbSCRN_VP_LOB1{PUSH}
COMPUTER{SCRN_VN_LOB1} attr pbSCRN_VN_LOB1{PUSH}
COMPUTER{SCRN_VL_LOB1} attr pbSCRN_VL_LOB1{PUSH}
COMPUTER{SCRN_VK_LOB1} attr pbSCRN_VK_LOB1{PUSH}
COMPUTER{SCRN_VJ_LOB1} attr pbSCRN_VJ_LOB1{PUSH}
COMPUTER{SCRN_VH_LOB1} attr pbSCRN_VH_LOB1{PUSH}
COMPUTER{SCRN_VG_LOB1} attr pbSCRN_VG_LOB1{PUSH}
COMPUTER{SCRN_VF_LOB1} attr pbSCRN_VF_LOB1{PUSH}
COMPUTER{SCRN_VE_LOB1} attr pbSCRN_VE_LOB1{PUSH}
COMPUTER{SCRN_VP_LOB2} attr pbSCRN_VP_LOB2{PUSH}
COMPUTER{SCRN_VL_LOB2} attr pbSCRN_VL_LOB2{PUSH}
COMPUTER{SCRN_VK_LOB2} attr pbSCRN_VK_LOB2{PUSH}
COMPUTER{SCRN_VJ_LOB2} attr pbSCRN_VJ_LOB2{PUSH}
COMPUTER{SCRN_VG_LOB2} attr pbSCRN_VG_LOB2{PUSH}
COMPUTER{SCRN_VF_LOB2} attr pbSCRN_VF_LOB2{PUSH}
COMPUTER{SCRN_VE_LOB2} attr pbSCRN_VE_LOB2{PUSH}
COMPUTER{SCRN_VL_LOB3} attr pbSCRN_VL_LOB3{PUSH}
COMPUTER{SCRN_VF_LOB3} attr pbSCRN_VF_LOB3{PUSH}
pbSCRN_VPDIAG momentary 0
pbSCRN_VNDIAG momentary 0
pbSCRN_VLDIAG momentary 0
pbSCRN_VKDIAG momentary 0
pbSCRN_VJDIAG momentary 0
pbSCRN_VHDIAG momentary 0
pbSCRN_VGDIAG momentary 0
pbSCRN_VFDIAG momentary 0
pbSCRN_VEDIAG momentary 0
COMPUTER{SCRN_VPDIAG} attr pbSCRN_VPDIAG{PUSH}
COMPUTER{SCRN_VNDIAG} attr pbSCRN_VNDIAG{PUSH}
COMPUTER{SCRN_VLDIAG} attr pbSCRN_VLDIAG{PUSH}
COMPUTER{SCRN_VKDIAG} attr pbSCRN_VKDIAG{PUSH}
COMPUTER{SCRN_VJDIAG} attr pbSCRN_VJDIAG{PUSH}
COMPUTER{SCRN_VHDIAG} attr pbSCRN_VHDIAG{PUSH}
COMPUTER{SCRN_VGDIAG} attr pbSCRN_VGDIAG{PUSH}
COMPUTER{SCRN_VFDIAG} attr pbSCRN_VFDIAG{PUSH}
COMPUTER{SCRN_VEDIAG} attr pbSCRN_VEDIAG{PUSH}
pbSCRN_CVR momentary 0
COMPUTER{SCRN_CVR1} attr pbSCRN_CVR{PUSH}
pbSCRN_LOGO momentary 0
COMPUTER{SCRN_VLOGO} attr pbSCRN_LOGO{PUSH}
pbSCRN_CLRCLK momentary 0
COMPUTER{SCRN_VV} attr pbSCRN_CLRCLK{PUSH}
pbSCRN_BLANK momentary 0
COMPUTER{SCRN_Vx} attr pbSCRN_BLANK{PUSH}
pbSCRN_CLKDIG momentary 0
COMPUTER{SCRN_CLKDIG} attr pbSCRN_CLKDIG{PUSH}
pbSCRN_CLKANA momentary 0
COMPUTER{SCRN_CLKANA} attr pbSCRN_CLKANA{PUSH}
pbSCRN_trains momentary 0
COMPUTER{SCRN_trains} attr pbSCRN_trains{PUSH}
pbSCRN_bars momentary 0
COMPUTER{SCRN_bars} attr pbSCRN_bars{PUSH}
pbSCRN_DESK1A momentary 0
COMPUTER{SCRN_DESK1A} attr pbSCRN_DESK1A{PUSH}
pbSCRN_DESK1B momentary 0
COMPUTER{SCRN_DESK1B} attr pbSCRN_DESK1B{PUSH}
pbSCRN_MGMT momentary 0
COMPUTER{SCRN_MGMT} attr pbSCRN_MGMT{PUSH}
pbPRESET_VP momentary 0
pbPRESET_VN momentary 0
pbPRESET_VL momentary 0
pbPRESET_VK momentary 0
pbPRESET_VJ momentary 0
pbPRESET_VH momentary 0
pbPRESET_VG momentary 0
pbPRESET_VF momentary 0
pbPRESET_VE momentary 0
COMPUTER{PRESET_VP} attr pbPRESET_VP{PUSH}
COMPUTER{PRESET_VN} attr pbPRESET_VN{PUSH}
COMPUTER{PRESET_VL} attr pbPRESET_VL{PUSH}
COMPUTER{PRESET_VK} attr pbPRESET_VK{PUSH}
COMPUTER{PRESET_VJ} attr pbPRESET_VJ{PUSH}
COMPUTER{PRESET_VH} attr pbPRESET_VH{PUSH}
COMPUTER{PRESET_VG} attr pbPRESET_VG{PUSH}
COMPUTER{PRESET_VF} attr pbPRESET_VF{PUSH}
COMPUTER{PRESET_VE} attr pbPRESET_VE{PUSH}
pbPRESET_ATO momentary 0
pbPRESET_FRAME momentary 0
pbPRESET_FUNC momentary 0
pbPRESET_PM momentary 0
pbPRESET_LOGO momentary 0
pbPRESET_CLRCLK momentary 0
pbPRESET_BLANK momentary 0
pbPRESET_CLKDIG momentary 0
pbPRESET_CLKANA momentary 0
COMPUTER{PRESET_VV} attr pbPRESET_LOGO{PUSH}
COMPUTER{PRESET_Vv} attr pbPRESET_CLRCLK{PUSH}
COMPUTER{PRESET_Vx} attr pbPRESET_BLANK{PUSH}
COMPUTER{PRESET_CLKDIG} attr pbPRESET_CLKDIG{PUSH}
COMPUTER{PRESET_CLKANA} attr pbPRESET_CLKANA{PUSH}
COMPUTER{PRESET_ATO} attr pbPRESET_ATO{PUSH}
COMPUTER{PRESET_FRAME} attr pbPRESET_FRAME{PUSH}
COMPUTER{PRESET_FUNC} attr pbPRESET_FUNC{PUSH}
COMPUTER{PRESET_PM} attr pbPRESET_PM{PUSH}
ALL_PM_ENG relay 0
VPS1_REG_PB relay S1/500 ( ( pbnB{PUSH} & DESK{VPS1} ) | VPS1_REG_PB ) & !( DESK{VPS1} & ( pbnF{PUSH} | pbnP{PUSH} | pbnPMonly{PUSH} ) )
VPS1_REG_FCFS relay ~S1/562 ( ( pbnF{PUSH} & DESK{VPS1} ) | VPS1_REG_FCFS ) & !( DESK{VPS1} & ( pbnB{PUSH} | pbnP{PUSH} | pbnPMonly{PUSH} ) )
VPS1_REG_PM relay S1/532? ( ( pbnP{PUSH} & DESK{VPS1} ) | VPS1_REG_PM ) & !( DESK{VPS1} & ( pbnB{PUSH} | pbnF{PUSH} | pbnPMonly{PUSH} ) )
VPS1_REG_PM_ONLY relay S1/558 ( ( pbnPMonly{PUSH} & DESK{VPS1} ) | VPS1_REG_PM_ONLY ) & !( DESK{VPS1} & ( pbnB{PUSH} | pbnF{PUSH} | pbnP{PUSH} ) )
VPSB_REG_ENG_TRAIN relay S1/475? Incorrect ALL_PM_ENG
VPS1_REG_NOOT relay S1/526 pbnNOOT{PUSH} & DESK{VPS1}
VPS1_REG_EXT_TRAIN relay Sn/534 ( ( pbnExtraTrain{PUSH} & DESK{VPS1} ) | ( VPS1_REG_EXT_TRAIN & !VPS1{561} ) ) & !( pbnErase{PUSH} & DESK{VPS1} )
VPS1_REG_IMMED_EXT_TRAIN relay Sn/529 ? VPS1_REG_EXT_TRAIN & VPS1{extcantrn} == 0
VPS1_REG_TRAIN_CANCEL relay Sn/536 ( ( pbnTrainCancel{PUSH} & DESK{VPS1} ) | ( VPS1_REG_TRAIN_CANCEL & !VPS1{546} ) ) & !( pbnErase{PUSH} & DESK{VPS1} )
VPS1_REG_PM_ACK relay ~S1/563 pbnPMack{PUSH} & DESK{VPS1}
VPS1_EXT_TRN_KE relay HS47000/9/72D VPS1{534} | VPS1{561}
VPS2_REG_PB relay ( ( pbnB{PUSH} & DESK{VPS2} ) | VPS2_REG_PB ) & !( DESK{VPS2} & ( pbnF{PUSH} | pbnP{PUSH} | pbnPMonly{PUSH} ) )
VPS2_REG_FCFS relay ( ( pbnF{PUSH} & DESK{VPS2} ) | VPS2_REG_FCFS ) & !( DESK{VPS2} & ( pbnB{PUSH} | pbnP{PUSH} | pbnPMonly{PUSH} ) )
VPS2_REG_PM relay ( ( pbnP{PUSH} & DESK{VPS2} ) | VPS2_REG_PM ) & !( DESK{VPS2} & ( pbnB{PUSH} | pbnF{PUSH} | pbnPMonly{PUSH} ) )
VPS2_REG_PM_ONLY relay ( ( pbnPMonly{PUSH} & DESK{VPS2} ) | VPS2_REG_PM_ONLY ) & !( DESK{VPS2} & ( pbnB{PUSH} | pbnF{PUSH} | pbnP{PUSH} ) )
VPNB_REG_ENG_TRAIN relay Sn/475? Incorrect ALL_PM_ENG
VPS2_REG_NOOT relay Sn/526 pbnNOOT{PUSH} & DESK{VPS2}
VPS2_REG_EXT_TRAIN relay Sn/534 ( ( pbnExtraTrain{PUSH} & DESK{VPS2} ) | ( VPS2_REG_EXT_TRAIN & !VPS2{561} ) ) & !( pbnErase{PUSH} & DESK{VPS2} )
VPS2_REG_IMMED_EXT_TRAIN relay Sn/529 ? VPS2_REG_EXT_TRAIN & VPS2{extcantrn} == 0
VPS2_REG_TRAIN_CANCEL relay Sn/536 ( ( pbnTrainCancel{PUSH} & DESK{VPS2} ) | ( VPS2_REG_TRAIN_CANCEL & !VPS2{546} ) ) & !( pbnErase{PUSH} & DESK{VPS3} )
VPS2_REG_PM_ACK relay ~Sn/563 pbnPMack{PUSH} & DESK{VPS2}
VPS2_EXT_TRN_KE relay HS47000/9/72D VPS2{534} | VPS2{561}
VPS3_REG_PB relay ( ( pbnB{PUSH} & DESK{VPS3} ) | VPS3_REG_PB ) & !( DESK{VPS3} & ( pbnF{PUSH} | pbnP{PUSH} | pbnPMonly{PUSH} ) )
VPS3_REG_FCFS relay ( ( pbnF{PUSH} & DESK{VPS3} ) | VPS3_REG_FCFS ) & !( DESK{VPS3} & ( pbnB{PUSH} | pbnP{PUSH} | pbnPMonly{PUSH} ) )
VPS3_REG_PM relay ( ( pbnP{PUSH} & DESK{VPS3} ) | VPS3_REG_PM ) & !( DESK{VPS3} & ( pbnB{PUSH} | pbnF{PUSH} | pbnPMonly{PUSH} ) )
VPS3_REG_PM_ONLY relay ( ( pbnPMonly{PUSH} & DESK{VPS3} ) | VPS3_REG_PM_ONLY ) & !( DESK{VPS3} & ( pbnB{PUSH} | pbnF{PUSH} | pbnP{PUSH} ) )
VPS3_REG_NOOT relay Sn/526 pbnNOOT{PUSH} & DESK{VPS3}
VPS3_REG_EXT_TRAIN relay Sn/534 ( ( pbnExtraTrain{PUSH} & DESK{VPS3} ) | ( VPS3_REG_EXT_TRAIN & !VPS3{561} ) ) & !( pbnErase{PUSH} & DESK{VPS3} )
VPS3_REG_IMMED_EXT_TRAIN relay Sn/529 ? VPS3_REG_EXT_TRAIN & VPS3{extcantrn} == 0
VPS3_REG_TRAIN_CANCEL relay Sn/536 ( ( pbnTrainCancel{PUSH} & DESK{VPS3} ) | ( VPS3_REG_TRAIN_CANCEL & !VPS3{546} ) ) & !( pbnErase{PUSH} & DESK{VPS3} )
VPS3_REG_PM_ACK relay ~Sn/563 pbnPMack{PUSH} & DESK{VPS3}
VPS3_EXT_TRN_KE relay HS47000/9/72D VPS3{534} | VPS3{561}
VNS1_REG_PB relay ( ( pbnB{PUSH} & DESK{VNS1} ) | VNS1_REG_PB ) & !( DESK{VNS1} & ( pbnF{PUSH} | pbnP{PUSH} | pbnPMonly{PUSH} ) )
VNS1_REG_FCFS relay ( ( pbnF{PUSH} & DESK{VNS1} ) | VNS1_REG_FCFS ) & !( DESK{VNS1} & ( pbnB{PUSH} | pbnP{PUSH} | pbnPMonly{PUSH} ) )
VNS1_REG_PM relay ( ( pbnP{PUSH} & DESK{VNS1} ) | VNS1_REG_PM ) & !( DESK{VNS1} & ( pbnB{PUSH} | pbnF{PUSH} | pbnPMonly{PUSH} ) )
VNS1_REG_PM_ONLY relay ( ( pbnPMonly{PUSH} & DESK{VNS1} ) | VNS1_REG_PM_ONLY ) & !( DESK{VNS1} & ( pbnB{PUSH} | pbnF{PUSH} | pbnP{PUSH} ) )
VNSB_REG_ENG_TRAIN relay S1/475? Incorrect ALL_PM_ENG
VNS1_REG_NOOT relay Sn/526 ( pbnNOOT{PUSH} & DESK{VNS1} ) | REG_ALL_NOOT
VNS1_REG_EXT_TRAIN relay Sn/534 ( ( pbnExtraTrain{PUSH} & DESK{VNS1} ) | ( VNS1_REG_EXT_TRAIN & !VNS1{561} ) ) & ( !pbnErase{PUSH} & DESK{VNS1} )
VNS1_REG_IMMED_EXT_TRAIN relay Sn/529 ? VNS1_REG_EXT_TRAIN & VNS1{extcantrn} == 0
VNS1_REG_TRAIN_CANCEL relay Sn/536 ( ( pbnTrainCancel{PUSH} & DESK{VNS1} ) | ( VNS1_REG_TRAIN_CANCEL & !VNS1{546} ) ) & !( pbnErase{PUSH} & DESK{VNS1} )
VNS1_REG_PM_ACK relay ~Sn/563 pbnPMack{PUSH} & DESK{VNS1}
VNS1_EXT_TRN_KE relay HS47000/9/72D VNS1{534} | VNS1{561}
pbR52_ToServiceOverride momentary NorthumberlandPk Shunter Override to service road 52 HS44444/227N 0
pbR53_ToServiceOverride momentary NorthumberlandPk Shunter Override to service road 53 HS44444/227N 0
pbR52_ToDepotOverride momentary NorthumberlandPk Shunter Override to depot road 52 HS44444/229N 0
pbR53_ToDepotOverride momentary NorthumberlandPk Shunter Override to depot road 53 HS44444/229N 0
VNS2_REG_PB relay ( ( pbnB{PUSH} & DESK{VNS2} ) | VNS2_REG_PB ) & !( DESK{VNS2} & ( pbnF{PUSH} | pbnP{PUSH} | pbnPMonly{PUSH} ) )
VNS2_REG_FCFS relay ( ( pbnF{PUSH} & DESK{VNS2} ) | VNS2_REG_FCFS ) & !( DESK{VNS2} & ( pbnB{PUSH} | pbnP{PUSH} | pbnPMonly{PUSH} ) )
VNS2_REG_PM relay ( ( pbnP{PUSH} & DESK{VNS2} ) | VNS2_REG_PM ) & !( DESK{VNS2} & ( pbnB{PUSH} | pbnF{PUSH} | pbnPMonly{PUSH} ) )
VNS2_REG_PM_ONLY relay ( ( pbnPMonly{PUSH} & DESK{VNS2} ) | VNS2_REG_PM_ONLY ) & !( DESK{VNS2} & ( pbnB{PUSH} | pbnF{PUSH} | pbnP{PUSH} ) )
VNNB_REG_ENG_TRAIN relay S1/475? Incorrect ALL_PM_ENG
VNS2_REG_NOOT relay Sn/526 ( pbnNOOT{PUSH} & DESK{VNS2} ) | REG_ALL_NOOT
VNS2_REG_EXT_TRAIN relay Sn/534 ( ( pbnExtraTrain{PUSH} & DESK{VNS2} ) | ( VNS2_REG_EXT_TRAIN & !VNS2{561} ) ) & ( !pbnErase{PUSH} & DESK{VNS1} )
VNS2_REG_IMMED_EXT_TRAIN relay Sn/529 ? VNS2_REG_EXT_TRAIN & VNS2{extcantrn} == 0
VNS2_REG_TRAIN_CANCEL relay Sn/536 ( ( pbnTrainCancel{PUSH} & DESK{VNS2} ) | ( VNS2_REG_TRAIN_CANCEL & !VNS2{546} ) ) & !( pbnErase{PUSH} & DESK{VNS2} )
VNS2_REG_PM_ACK relay ~Sn/563 pbnPMack{PUSH} & DESK{VNS2}
VNS2_EXT_TRN_KE relay HS47000/9/72D VNS2{534} | VNS2{561}
VLSB_REG_ENG_TRAIN relay Sn/475? Incorrect ALL_PM_ENG
VLS1_REG_PB relay ( ( pbnB{PUSH} & DESK{VLS1} ) | VLS1_REG_PB ) & !( DESK{VLS1} & ( pbnF{PUSH} | pbnP{PUSH} | pbnPMonly{PUSH} ) )
VLS1_REG_FCFS relay ( ( pbnF{PUSH} & DESK{VLS1} ) | VLS1_REG_FCFS ) & !( DESK{VLS1} & ( pbnB{PUSH} | pbnP{PUSH} | pbnPMonly{PUSH} ) )
VLS1_REG_PM relay ( ( pbnP{PUSH} & DESK{VLS1} ) | VLS1_REG_PM ) & !( DESK{VLS1} & ( pbnB{PUSH} | pbnF{PUSH} | pbnPMonly{PUSH} ) )
VLS1_REG_PM_ONLY relay ( ( pbnPMonly{PUSH} & DESK{VLS1} ) | VLS1_REG_PM_ONLY ) & !( DESK{VLS1} & ( pbnB{PUSH} | pbnF{PUSH} | pbnP{PUSH} ) )
VLS1_REG_NOOT relay Sn/526 ( pbnNOOT{PUSH} & DESK{VLS1} ) | REG_ALL_NOOT
VLS1_REG_EXT_TRAIN relay Sn/534 ( ( pbnExtraTrain{PUSH} & DESK{VLS1} ) | VL22_1U_SPECIAL_CALL | ( VLS1_REG_EXT_TRAIN & !VLS1{561} ) ) & !( pbnErase{PUSH} & DESK{VLS1} )
VLS1_REG_IMMED_EXT_TRAIN relay Sn/529 ? VLS1_REG_EXT_TRAIN & VLS1{extcantrn} == 0
VLS1_REG_TRAIN_CANCEL relay Sn/536 ( ( pbnTrainCancel{PUSH} & DESK{VLS1} ) | ( VLS1_REG_TRAIN_CANCEL & !VLS1{546} ) ) & !( pbnErase{PUSH} & DESK{VLS1} )
VLS1_REG_PM_ACK relay ~Sn/563 pbnPMack{PUSH} & DESK{VLS1}
VLS1_EXT_TRN_KE relay HS47000/9/72D VLS1{534} | VLS1{561}
VLS2_REG_PB relay ( ( pbnB{PUSH} & DESK{VLS2} ) | VLS2_REG_PB ) & !( DESK{VLS2} & ( pbnF{PUSH} | pbnP{PUSH} | pbnPMonly{PUSH} ) )
VLS2_REG_FCFS relay ( ( pbnF{PUSH} & DESK{VLS2} ) | VLS2_REG_FCFS ) & !( DESK{VLS2} & ( pbnB{PUSH} | pbnP{PUSH} | pbnPMonly{PUSH} ) )
VLS2_REG_PM relay ( ( pbnP{PUSH} & DESK{VLS2} ) | VLS2_REG_PM ) & !( DESK{VLS2} & ( pbnB{PUSH} | pbnF{PUSH} | pbnPMonly{PUSH} ) )
VLS2_REG_PM_ONLY relay ( ( pbnPMonly{PUSH} & DESK{VLS2} ) | VLS2_REG_PM_ONLY ) & !( DESK{VLS2} & ( pbnB{PUSH} | pbnF{PUSH} | pbnP{PUSH} ) )
VLS2_REG_NOOT relay Sn/526 ( pbnNOOT{PUSH} & DESK{VLS2} ) | REG_ALL_NOOT
VLS2_REG_EXT_TRAIN relay Sn/534 ( ( pbnExtraTrain{PUSH} & DESK{VLS2} ) | ( VLS2_REG_EXT_TRAIN & !VLS2{561} ) ) & !( pbnErase{PUSH} & DESK{VLS2} )
VLS2_REG_IMMED_EXT_TRAIN relay Sn/529 ? VLS2_REG_EXT_TRAIN & VLS2{extcantrn} == 0
VLS2_REG_TRAIN_CANCEL relay Sn/536 ( ( pbnTrainCancel{PUSH} & DESK{VLS2} ) | ( VLS2_REG_TRAIN_CANCEL & !VLS2{546} ) ) & !( pbnErase{PUSH} & DESK{VLS2} )
VLS2_REG_PM_ACK relay ~Sn/563 pbnPMack{PUSH} & DESK{VLS2}
VLS2_EXT_TRN_KE relay HS47000/9/72D VLS2{534} | VLS2{561}
VLS3_REG_PB relay ( ( pbnB{PUSH} & DESK{VLS3} ) | VLS3_REG_PB ) & !( DESK{VLS3} & ( pbnF{PUSH} | pbnP{PUSH} | pbnPMonly{PUSH} ) )
VLS3_REG_FCFS relay ( ( pbnF{PUSH} & DESK{VLS3} ) | VLS3_REG_FCFS ) & !( DESK{VLS3} & ( pbnB{PUSH} | pbnP{PUSH} | pbnPMonly{PUSH} ) )
VLS3_REG_PM relay ( ( pbnP{PUSH} & DESK{VLS3} ) | VLS3_REG_PM ) & !( DESK{VLS3} & ( pbnB{PUSH} | pbnF{PUSH} | pbnPMonly{PUSH} ) )
VLS3_REG_PM_ONLY relay ( ( pbnPMonly{PUSH} & DESK{VLS3} ) | VLS3_REG_PM_ONLY ) & !( DESK{VLS3} & ( pbnB{PUSH} | pbnF{PUSH} | pbnP{PUSH} ) )
VLS3_REG_NOOT relay Sn/526 ( pbnNOOT{PUSH} & DESK{VLS3} ) | REG_ALL_NOOT
VLS3_REG_EXT_TRAIN relay Sn/534 ( ( pbnExtraTrain{PUSH} & DESK{VLS3} ) | VL8U_SPECIAL_CALL | ( VLS3_REG_EXT_TRAIN & !VLS3{561} ) ) & !( pbnErase{PUSH} & DESK{VLS3} )
VLS3_REG_IMMED_EXT_TRAIN relay Sn/529 ? VLS3_REG_EXT_TRAIN & VLS3{extcantrn} == 0
VLS3_REG_TRAIN_CANCEL relay Sn/536 ( ( pbnTrainCancel{PUSH} & DESK{VLS3} ) | ( VLS3_REG_TRAIN_CANCEL & !VLS3{546} ) ) & !( pbnErase{PUSH} & DESK{VLS3} )
VLS3_REG_PM_ACK relay ~Sn/563 pbnPMack{PUSH} & DESK{VLS3}
VLS3_EXT_TRN_KE relay HS47000/9/72D VLS3{534} | VLS3{561}
VLS4_REG_PB relay ( ( pbnB{PUSH} & DESK{VLS4} ) | VLS4_REG_PB ) & !( DESK{VLS4} & ( pbnF{PUSH} | pbnP{PUSH} | pbnPMonly{PUSH} ) )
VLS4_REG_FCFS relay ( ( pbnF{PUSH} & DESK{VLS4} ) | VLS4_REG_FCFS ) & !( DESK{VLS4} & ( pbnB{PUSH} | pbnP{PUSH} | pbnPMonly{PUSH} ) )
VLS4_REG_PM relay ( ( pbnP{PUSH} & DESK{VLS4} ) | VLS4_REG_PM ) & !( DESK{VLS4} & ( pbnB{PUSH} | pbnF{PUSH} | pbnPMonly{PUSH} ) )
VLS4_REG_PM_ONLY relay ( ( pbnPMonly{PUSH} & DESK{VLS4} ) | VLS4_REG_PM_ONLY ) & !( DESK{VLS4} & ( pbnB{PUSH} | pbnF{PUSH} | pbnP{PUSH} ) )
VLS4_REG_NOOT relay Sn/526 ( pbnNOOT{PUSH} & DESK{VLS4} ) | REG_ALL_NOOT
VLS4_REG_EXT_TRAIN relay Sn/534 ( ( pbnExtraTrain{PUSH} & DESK{VLS4} ) | ( VLS4_REG_EXT_TRAIN & !VLS4{561} ) ) & !( pbnErase{PUSH} & DESK{VLS4} )
VLS4_REG_IMMED_EXT_TRAIN relay Sn/529 ? VLS4_REG_EXT_TRAIN & VLS4{extcantrn} == 0
VLS4_REG_TRAIN_CANCEL relay Sn/536 ( ( pbnTrainCancel{PUSH} & DESK{VLS4} ) | ( VLS4_REG_TRAIN_CANCEL & !VLS4{546} ) ) & !( pbnErase{PUSH} & DESK{VLS4} )
VLS4_REG_PM_ACK relay ~Sn/563 pbnPMack{PUSH} & DESK{VLS4}
VLS4_EXT_TRN_KE relay HS47000/9/72D VLS4{534} | VLS4{561}
VLSN_REG_ENG_TRAIN relay Sn/475? Incorrect ALL_PM_ENG
VLS6_REG_PB relay ( ( pbnB{PUSH} & DESK{VLS6} ) | VLS6_REG_PB ) & !( DESK{VLS6} & ( pbnF{PUSH} | pbnP{PUSH} | pbnPMonly{PUSH} ) )
VLS6_REG_FCFS relay ( ( pbnF{PUSH} & DESK{VLS6} ) | VLS6_REG_FCFS ) & !( DESK{VLS6} & ( pbnB{PUSH} | pbnP{PUSH} | pbnPMonly{PUSH} ) )
VLS6_REG_PM relay ( ( pbnP{PUSH} & DESK{VLS6} ) | VLS6_REG_PM ) & !( DESK{VLS6} & ( pbnB{PUSH} | pbnF{PUSH} | pbnPMonly{PUSH} ) )
VLS6_REG_PM_ONLY relay ( ( pbnPMonly{PUSH} & DESK{VLS6} ) | VLS6_REG_PM_ONLY ) & !( DESK{VLS6} & ( pbnB{PUSH} | pbnF{PUSH} | pbnP{PUSH} ) )
VLS6_REG_NOOT relay Sn/526 ( pbnNOOT{PUSH} & DESK{VLS6} ) | REG_ALL_NOOT
VLS6_REG_EXT_TRAIN relay Sn/534 ( ( pbnExtraTrain{PUSH} & DESK{VLS6} ) | ( VLS6_REG_EXT_TRAIN & !VLS6{561} ) ) & !( pbnErase{PUSH} & DESK{VLS6} )
VLS6_REG_IMMED_EXT_TRAIN relay Sn/529 ? VLS6_REG_EXT_TRAIN & VLS6{extcantrn} == 0
VLS6_REG_TRAIN_CANCEL relay Sn/536 ( ( pbnTrainCancel{PUSH} & DESK{VLS6} ) | ( VLS6_REG_TRAIN_CANCEL & !VLS6{546} ) ) & !( pbnErase{PUSH} & DESK{VLS6} )
VLS6_REG_PM_ACK relay ~Sn/563 pbnPMack{PUSH} & DESK{VLS6}
VLS6_EXT_TRN_KE relay HS47000/9/72D VLS6{534} | VLS6{561}
VHS1_REG_PB relay ( ( pbsB{PUSH} & DESK{VHS1} ) | VHS1_REG_PB ) & !( DESK{VHS1} & ( pbsF{PUSH} | pbsP{PUSH} | pbsPMonly{PUSH} ) )
VHS1_REG_FCFS relay ( ( pbsF{PUSH} & DESK{VHS1} ) | VHS1_REG_FCFS ) & !( DESK{VHS1} & ( pbsB{PUSH} | pbsP{PUSH} | pbsPMonly{PUSH} ) )
VHS1_REG_PM relay ( ( pbsP{PUSH} & DESK{VHS1} ) | VHS1_REG_PM ) & !( DESK{VHS1} & ( pbsB{PUSH} | pbsF{PUSH} | pbsPMonly{PUSH} ) )
VHS1_REG_PM_ONLY relay ( ( pbsPMonly{PUSH} & DESK{VHS1} ) | VHS1_REG_PM_ONLY ) & !( DESK{VHS1} & ( pbsB{PUSH} | pbsF{PUSH} | pbsP{PUSH} ) )
VHS1_REG_NOOT relay Sn/526 pbsNOOT{PUSH} & DESK{VHS1}
VHS1_REG_EXT_TRAIN relay Sn/534 ( ( pbsExtraTrain{PUSH} & DESK{VHS1} ) | ( VHS1_REG_EXT_TRAIN & !VHS1{561} ) ) & !( pbsErase{PUSH} & DESK{VHS1} )
VHS1_REG_IMMED_EXT_TRAIN relay Sn/529 ? VHS1_REG_EXT_TRAIN & VHS1{extcantrn} == 0
VHS1_REG_TRAIN_CANCEL relay Sn/536 ( ( pbsTrainCancel{PUSH} & DESK{VHS1} ) | ( VHS1_REG_TRAIN_CANCEL & !VHS1{546} ) ) & !( pbsErase{PUSH} & DESK{VHS1} )
VHS1_REG_PM_ACK relay ~Sn/563 pbsPMack{PUSH} & DESK{VHS1}
VHS1_EXT_TRN_KE relay HS47000/9/72D VHS1{534} | VHS1{561}
VHS2_REG_PB relay ( ( pbsB{PUSH} & DESK{VHS2} ) | VHS2_REG_PB ) & !( DESK{VHS2} & ( pbsF{PUSH} | pbsP{PUSH} | pbsPMonly{PUSH} ) )
VHS2_REG_FCFS relay ( ( pbsF{PUSH} & DESK{VHS2} ) | VHS2_REG_FCFS ) & !( DESK{VHS2} & ( pbsB{PUSH} | pbsP{PUSH} | pbsPMonly{PUSH} ) )
VHS2_REG_PM relay ( ( pbsP{PUSH} & DESK{VHS2} ) | VHS2_REG_PM ) & !( DESK{VHS2} & ( pbsB{PUSH} | pbsF{PUSH} | pbsPMonly{PUSH} ) )
VHS2_REG_PM_ONLY relay ( ( pbsPMonly{PUSH} & DESK{VHS2} ) | VHS2_REG_PM_ONLY ) & !( DESK{VHS2} & ( pbsB{PUSH} | pbsF{PUSH} | pbsP{PUSH} ) )
VHS2_REG_NOOT relay Sn/526 pbsNOOT{PUSH} & DESK{VHS2}
VHS2_REG_EXT_TRAIN relay Sn/534 ( ( pbsExtraTrain{PUSH} & DESK{VHS2} ) | ( VHS2_REG_EXT_TRAIN & !VHS2{561} ) ) & !( pbsErase{PUSH} & DESK{VHS2} )
VHS2_REG_IMMED_EXT_TRAIN relay Sn/529 ? VHS2_REG_EXT_TRAIN & VHS2{extcantrn} == 0
VHS2_REG_TRAIN_CANCEL relay Sn/536 ( ( pbsTrainCancel{PUSH} & DESK{VHS2} ) | ( VHS2_REG_TRAIN_CANCEL & !VHS2{546} ) ) & !( pbsErase{PUSH} & DESK{VHS2} )
VHS2_REG_PM_ACK relay ~Sn/563 pbsPMack{PUSH} & DESK{VHS2}
VHS2_EXT_TRN_KE relay HS47000/9/72D VHS2{534} | VHS2{561}
VFS1_REG_PB relay ( ( pbsB{PUSH} & DESK{VFS1} ) | VFS1_REG_PB ) & !( DESK{VFS1} & ( pbsF{PUSH} | pbsP{PUSH} | pbsPMonly{PUSH} ) )
VFS1_REG_FCFS relay ( ( pbsF{PUSH} & DESK{VFS1} ) | VFS1_REG_FCFS ) & !( DESK{VFS1} & ( pbsB{PUSH} | pbsP{PUSH} | pbsPMonly{PUSH} ) )
VFS1_REG_PM relay ( ( pbsP{PUSH} & DESK{VFS1} ) | VFS1_REG_PM ) & !( DESK{VFS1} & ( pbsB{PUSH} | pbsF{PUSH} | pbsPMonly{PUSH} ) )
VFS1_REG_PM_ONLY relay ( ( pbsPMonly{PUSH} & DESK{VFS1} ) | VFS1_REG_PM_ONLY ) & !( DESK{VFS1} & ( pbsB{PUSH} | pbsF{PUSH} | pbsP{PUSH} ) )
VFS1_REG_NOOT relay Sn/526 pbsNOOT{PUSH} & DESK{VFS1}
VFS1_REG_EXT_TRAIN relay Sn/534 ( ( pbsExtraTrain{PUSH} & DESK{VFS1} ) | ( VFS1_REG_EXT_TRAIN & !VFS1{561} ) ) & !( pbsErase{PUSH} & DESK{VFS1} )
VFS1_REG_IMMED_EXT_TRAIN relay Sn/529 ? VFS1_REG_EXT_TRAIN & VFS1{extcantrn} == 0
VFS1_REG_TRAIN_CANCEL relay Sn/536 ( ( pbsTrainCancel{PUSH} & DESK{VFS1} ) | ( VFS1_REG_TRAIN_CANCEL & !VFS1{546} ) ) & !( pbsErase{PUSH} & DESK{VFS1} )
VFS1_REG_PM_ACK relay ~Sn/563 pbsPMack{PUSH} & DESK{VFS1}
VFS1_EXT_TRN_KE relay HS47000/9/72D VFS1{534} | VFS1{561}
VFS2_REG_PB relay ( ( pbsB{PUSH} & DESK{VFS2} ) | VFS2_REG_PB ) & !( DESK{VFS2} & ( pbsF{PUSH} | pbsP{PUSH} | pbsPMonly{PUSH} ) )
VFS2_REG_FCFS relay ( ( pbsF{PUSH} & DESK{VFS2} ) | VFS2_REG_FCFS ) & !( DESK{VFS2} & ( pbsB{PUSH} | pbsP{PUSH} | pbsPMonly{PUSH} ) )
VFS2_REG_PM relay ( ( pbsP{PUSH} & DESK{VFS2} ) | VFS2_REG_PM ) & !( DESK{VFS2} & ( pbsB{PUSH} | pbsF{PUSH} | pbsPMonly{PUSH} ) )
VFS2_REG_PM_ONLY relay ( ( pbsPMonly{PUSH} & DESK{VFS2} ) | VFS2_REG_PM_ONLY ) & !( DESK{VFS2} & ( pbsB{PUSH} | pbsF{PUSH} | pbsP{PUSH} ) )
VFS2_REG_NOOT relay Sn/526 pbsNOOT{PUSH} & DESK{VFS2}
VFS2_REG_EXT_TRAIN relay Sn/534 ( ( pbsExtraTrain{PUSH} & DESK{VFS2} ) | ( VFS2_REG_EXT_TRAIN & !VFS2{561} ) ) & !( pbsErase{PUSH} & DESK{VFS2} )
VFS2_REG_IMMED_EXT_TRAIN relay Sn/529 ? VFS2_REG_EXT_TRAIN & VFS2{extcantrn} == 0
VFS2_REG_TRAIN_CANCEL relay Sn/536 ( ( pbsTrainCancel{PUSH} & DESK{VFS2} ) | ( VFS2_REG_TRAIN_CANCEL & !VFS2{546} ) ) & ( !pbsErase{PUSH} & DESK{VFS2} )
VFS2_REG_PM_ACK relay ~Sn/563 pbsPMack{PUSH} & DESK{VFS2}
VFS2_EXT_TRN_KE relay HS47000/9/72D VFS2{534} | VFS2{561}
VES1_REG_PB relay ( ( pbsB{PUSH} & DESK{VES1} ) | VES1_REG_PB ) & !( DESK{VES1} & ( pbsF{PUSH} | pbsP{PUSH} | pbsPMonly{PUSH} ) )
VES1_REG_FCFS relay ( ( pbsF{PUSH} & DESK{VES1} ) | VES1_REG_FCFS ) & !( DESK{VES1} & ( pbsB{PUSH} | pbsP{PUSH} | pbsPMonly{PUSH} ) )
VES1_REG_PM relay ( ( pbsP{PUSH} & DESK{VES1} ) | VES1_REG_PM ) & !( DESK{VES1} & ( pbsB{PUSH} | pbsF{PUSH} | pbsPMonly{PUSH} ) )
VES1_REG_PM_ONLY relay ( ( pbsPMonly{PUSH} & DESK{VES1} ) | VES1_REG_PM_ONLY ) & !( DESK{VES1} & ( pbsB{PUSH} | pbsF{PUSH} | pbsP{PUSH} ) )
VES1_REG_NOOT relay Sn/526 pbsNOOT{PUSH} & DESK{VES1}
VES1_REG_EXT_TRAIN relay Sn/534 ( ( pbsExtraTrain{PUSH} & DESK{VES1} ) | ( VES1_REG_EXT_TRAIN & !VES1{561} ) ) & !( pbsErase{PUSH} & DESK{VES1} )
VES1_REG_IMMED_EXT_TRAIN relay Sn/529 ? VES1_REG_EXT_TRAIN & VES1{extcantrn} == 0
VES1_REG_TRAIN_CANCEL relay Sn/536 ( ( pbsTrainCancel{PUSH} & DESK{VES1} ) | ( VES1_REG_TRAIN_CANCEL & !VES1{546} ) ) & !( pbsErase{PUSH} & DESK{VES1} )
VES1_REG_PM_ACK relay ~Sn/563 pbsPMack{PUSH} & DESK{VES1}
VES1_EXT_TRN_KE relay HS47000/9/72D VES1{534} | VES1{561}
VES2_REG_PB relay ( ( pbsB{PUSH} & DESK{VES2} ) | VES2_REG_PB ) & !( DESK{VES2} & ( pbsF{PUSH} | pbsP{PUSH} | pbsPMonly{PUSH} ) )
VES2_REG_FCFS relay ( ( pbsF{PUSH} & DESK{VES2} ) | VES2_REG_FCFS ) & !( DESK{VES2} & ( pbsB{PUSH} | pbsP{PUSH} | pbsPMonly{PUSH} ) )
VES2_REG_PM relay ( ( pbsP{PUSH} & DESK{VES2} ) | VES2_REG_PM ) & !( DESK{VES2} & ( pbsB{PUSH} | pbsF{PUSH} | pbsPMonly{PUSH} ) )
VES2_REG_PM_ONLY relay ( ( pbsPMonly{PUSH} & DESK{VES2} ) | VES2_REG_PM_ONLY ) & !( DESK{VES2} & ( pbsB{PUSH} | pbsF{PUSH} | pbsP{PUSH} ) )
VES2_REG_NOOT relay Sn/526 pbsNOOT{PUSH} & DESK{VES2}
VES2_REG_EXT_TRAIN relay Sn/534 ( ( pbsExtraTrain{PUSH} & DESK{VES2} ) | ( VES2_REG_EXT_TRAIN & !VES2{561} ) ) & !( pbsErase{PUSH} & DESK{VES2} )
VES2_REG_IMMED_EXT_TRAIN relay Sn/529 ? VES2_REG_EXT_TRAIN & VES2{extcantrn} == 0
VES2_REG_TRAIN_CANCEL relay Sn/536 ( ( pbsTrainCancel{PUSH} & DESK{VES2} ) | ( VES2_REG_TRAIN_CANCEL & !VES2{546} ) ) & !( pbsErase{PUSH} & DESK{VES2} )
VES2_REG_PM_ACK relay ~Sn/563 pbsPMack{PUSH} & DESK{VES2}
VES2_EXT_TRN_KE relay HS47000/9/72D VES2{534} | VES2{561}
VES4_REG_PB relay ( ( pbsB{PUSH} & DESK{VES4} ) | VES4_REG_PB ) & !( DESK{VES4} & ( pbsF{PUSH} | pbsP{PUSH} | pbsPMonly{PUSH} ) )
VES4_REG_FCFS relay ( ( pbsF{PUSH} & DESK{VES4} ) | VES4_REG_FCFS ) & !( DESK{VES4} & ( pbsB{PUSH} | pbsP{PUSH} | pbsPMonly{PUSH} ) )
VES4_REG_PM relay ( ( pbsP{PUSH} & DESK{VES4} ) | VES4_REG_PM ) & !( DESK{VES4} & ( pbsB{PUSH} | pbsF{PUSH} | pbsPMonly{PUSH} ) )
VES4_REG_PM_ONLY relay ( ( pbsPMonly{PUSH} & DESK{VES4} ) | VES4_REG_PM_ONLY ) & !( DESK{VES4} & ( pbsB{PUSH} | pbsF{PUSH} | pbsP{PUSH} ) )
VES4_REG_NOOT relay Sn/526 pbsNOOT{PUSH} & DESK{VES4}
VES4_REG_EXT_TRAIN relay Sn/534 ( ( pbsExtraTrain{PUSH} & DESK{VES4} ) | ( VES4_REG_EXT_TRAIN & !VES4{561} ) ) & ( !pbsErase{PUSH} & DESK{VES4} )
VES4_REG_IMMED_EXT_TRAIN relay Sn/529 ? VES4_REG_EXT_TRAIN & VES4{extcantrn} == 0
VES4_REG_TRAIN_CANCEL relay Sn/536 ( ( pbsTrainCancel{PUSH} & DESK{VES4} ) | ( VES4_REG_TRAIN_CANCEL & !VES4{546} ) ) & !( pbsErase{PUSH} & DESK{VES4} )
VES4_REG_PM_ACK relay ~Sn/563 pbsPMack{PUSH} & DESK{VES4}
VES4_EXT_TRN_KE relay HS47000/9/72D VES4{534} | VES4{561}
pbVJ_Erase momentary Highbury 0
pbVJ_PB momentary 0
pbVJ_RevNtoS momentary 0
pbVJ_RevStoN momentary 0
pbVJ_Auto momentary 0
pbVJ_1Rev momentary 0
pbVJ_2Rev momentary 0
pbVJ_3Rev momentary 0
pbVJ_4Rev momentary 0
pbVJ_5Rev momentary 0
pbVJ_AllRev momentary 0
pbVG_Erase momentary Warren St 0
pbVG_PB momentary 0
pbVG_RevNtoS momentary 0
pbVG_RevStoN momentary 0
pbVG_Auto momentary 0
pbVG_1Rev momentary 0
pbVG_2Rev momentary 0
pbVG_3Rev momentary 0
pbVG_4Rev momentary 0
pbVG_5Rev momentary 0
pbVG_AllRev momentary 0
VJ_REG_ERASE relay HS46658/410G pbVJ_Erase{PUSH} & DESK1A_ON
VJ_REG_PB relay HS46658/410G pbVJ_PB{PUSH} & DESK1A_ON
VJ_REG_REV_NtoS relay HS46658/410G pbVJ_RevNtoS{PUSH} & DESK1A_ON
VJ_REG_REV_StoN relay HS46658/410G pbVJ_RevStoN{PUSH} & DESK1A_ON
VJ_REG_1ST_REV relay HS46658/410G pbVJ_1Rev{PUSH} & DESK1A_ON
VJ_REG_2ND_REV relay HS46658/410G pbVJ_2Rev{PUSH} & DESK1A_ON
VJ_REG_3RD_REV relay HS46658/410G pbVJ_3Rev{PUSH} & DESK1A_ON
VJ_REG_4TH_REV relay HS46658/410G pbVJ_4Rev{PUSH} & DESK1A_ON
VJ_REG_5TH_REV relay HS46658/410G pbVJ_5Rev{PUSH} & DESK1A_ON
VJ_REG_ALL_REV relay HS46658/410G pbVJ_AllRev{PUSH} & DESK1A_ON
VJ_REG_AUTO relay HS46658/410G pbVJ_Auto{PUSH} & DESK1A_ON
VJ_ERASE relay HS46658/410G VJ_REG_ERASE & ( VJ_REV_NtoS | VJ_REV_StoN )
VJ_PB relay HS46658/410G ( VJ_REG_PB | VJ_PB ) & !( DESK1A_ON & ( VJ_REG_REV_NtoS |VJ_REG_REV_StoN | VJ_REG_AUTO ) )
VJ_REV_NtoS relay HS46658/410G ( VJ_REG_REV_NtoS | VJ_REV_NtoS ) & !( DESK1A_ON & ( VJ_REG_REV_StoN | VJ_REG_AUTO | VJ_REG_PB ) )
VJ_REV_StoN relay HS46658/410G ( VJ_REG_REV_StoN | VJ_REV_StoN ) & !( DESK1A_ON & ( VJ_REG_REV_NtoS | VJ_REG_AUTO | VJ_REG_PB ) )
VJ_1ST_REV relay HS46658/410G VJ_REG_1ST_REV & ( VJ_REV_NtoS | VJ_REV_StoN )
VJ_2ND_REV relay HS46658/410G VJ_REG_2ND_REV & ( VJ_REV_NtoS | VJ_REV_StoN )
VJ_3RD_REV relay HS46658/410G VJ_REG_3RD_REV & ( VJ_REV_NtoS | VJ_REV_StoN )
VJ_4TH_REV relay HS46658/410G VJ_REG_4TH_REV & ( VJ_REV_NtoS | VJ_REV_StoN )
VJ_5TH_REV relay HS46658/410G VJ_REG_5TH_REV & ( VJ_REV_NtoS | VJ_REV_StoN )
VJ_ALL_REV relay HS46658/410G ( VJ_REG_ALL_REV | VJ_ALL_REV ) & ( VJ_REV_NtoS | VJ_REV_StoN ) & !( DESK1A_ON & VJ_REG_ERASE )
VJ_AUTO relay HS46658/410G !VJ_REV_NtoS & !VJ_REV_StoN & !VJ_PB
VJ_COBOURG_INDICATOR relay return ( VJS0{268} ? "5" : " " ) . ( VJS0{265} ? "4" : " " ) . ( VJS0{257} ? "3" : " " ) . ( VJS0{255} ? "2" : " " ) . ( VJS0{253} ? "1" : " " ) . ( VJ_ALL_REV ? "A" : ( !VJS0{118} ? "N" : " " ) ) ;
VG_REG_ERASE relay HS46658/410G pbVG_Erase{PUSH} & DESK1B_ON
VG_REG_PB relay HS46658/410G pbVG_PB{PUSH} & DESK1B_ON
VG_REG_REV_NtoS relay HS46658/410G pbVG_RevNtoS{PUSH} & DESK1B_ON
VG_REG_REV_StoN relay HS46658/410G pbVG_RevStoN{PUSH} & DESK1B_ON
VG_REG_1ST_REV relay HS46658/410G pbVG_1Rev{PUSH} & DESK1B_ON
VG_REG_2ND_REV relay HS46658/410G pbVG_2Rev{PUSH} & DESK1B_ON
VG_REG_3RD_REV relay HS46658/410G pbVG_3Rev{PUSH} & DESK1B_ON
VG_REG_4TH_REV relay HS46658/410G pbVG_4Rev{PUSH} & DESK1B_ON
VG_REG_5TH_REV relay HS46658/410G pbVG_5Rev{PUSH} & DESK1B_ON
VG_REG_ALL_REV relay HS46658/410G pbVG_AllRev{PUSH} & DESK1B_ON
VG_REG_AUTO relay HS46658/410G pbVG_Auto{PUSH} & DESK1B_ON
VG_ERASE relay HS46658/410G VG_REG_ERASE & ( VG_REV_NtoS | VG_REV_StoN ) VG_REG_ERASE & ( VG_REV_NtoS | VG_REV_StoN )
VG_PB relay HS46658/410G ( VG_REG_PB | VG_PB ) & !( DESK1B_ON & ( VG_REG_REV_NtoS |VG_REG_REV_StoN | VG_REG_AUTO ) ) ( VG_REG_PB | VG_PB ) & !( DESK1B_ON & ( pbVG_RevNtoS{PUSH} | pbVG_RevStoN{PUSH} | pbVGauto{PUSH} ) )
VG_REV_NtoS relay HS46658/410G ( VG_REG_REV_NtoS | VG_REV_NtoS ) & !( DESK1B_ON & ( VG_REG_REV_StoN | VG_REG_AUTO | VG_REG_PB ) ) ( VG_REG_REV_NtoS | VG_REV_NtoS ) & !( DESK1B_ON & ( pbVG_RevStoN{PUSH} | pbVGauto{PUSH} | pbVG_PB{PUSH} ) )
VG_REV_StoN relay HS46658/410G ( VG_REG_REV_StoN | VG_REV_StoN ) & !( DESK1B_ON & ( VG_REG_REV_NtoS | VG_REG_AUTO | VG_REG_PB ) ) ( VG_REG_REV_StoN | VG_REV_StoN ) & !( DESK1B_ON & ( pbVG_RevNtoS{PUSH} | pbVGauto{PUSH} | pbVG_PB{PUSH} ) )
VG_1ST_REV relay HS46658/410G VG_REG_1ST_REV & ( VG_REV_NtoS | VG_REV_StoN ) VG_REG_1ST_REV & ( VG_REV_NtoS | VG_REV_StoN )
VG_2ND_REV relay HS46658/410G VG_REG_2ND_REV & ( VG_REV_NtoS | VG_REV_StoN ) VG_REG_2ND_REV & ( VG_REV_NtoS | VG_REV_StoN )
VG_3RD_REV relay HS46658/410G VG_REG_3RD_REV & ( VG_REV_NtoS | VG_REV_StoN ) VG_REG_3RD_REV & ( VG_REV_NtoS | VG_REV_StoN )
VG_4TH_REV relay HS46658/410G VG_REG_4TH_REV & ( VG_REV_NtoS | VG_REV_StoN ) VG_REG_4TH_REV & ( VG_REV_NtoS | VG_REV_StoN )
VG_5TH_REV relay HS46658/410G VG_REG_5TH_REV & ( VG_REV_NtoS | VG_REV_StoN ) VG_REG_5TH_REV & ( VG_REV_NtoS | VG_REV_StoN )
VG_ALL_REV relay HS46658/410G ( VG_REG_ALL_REV | VG_ALL_REV ) & ( VG_REV_NtoS | VG_REV_StoN ) & !( DESK1B_ON & VG_REG_ERASE ) ( VG_REG_ALL_REV | VG_ALL_REV ) & ( VG_REV_NtoS | VG_REV_StoN ) & !( DESK1B_ON & pbVGerase{PUSH} )
VG_AUTO relay HS46658/410G !VG_REV_NtoS & !VG_REV_StoN & !VG_PB !VG_REV_NtoS & !VG_REV_StoN & !VG_PB
VG_COBOURG_INDICATOR relay return ( VGS0{268} ? "5" : " " ) . ( VGS0{265} ? "4" : " " ) . ( VGS0{257} ? "3" : " " ) . ( VGS0{255} ? "2" : " " ) . ( VGS0{253} ? "1" : " " ) . ( VG_ALL_REV ? "A" : ( !VGS0{118} ? "N" : " " ) ) ;
pbnEnq momentary 0
pbsEnq momentary 0
DESK1A_ENQ relay return VPS1{extcantrn} if ( pbnEnq{PUSH} & DESK1A_ON & DESK{VPS1} ); return VPS2{extcantrn} if ( pbnEnq{PUSH} & DESK1A_ON & DESK{VPS2} ); return VPS3{extcantrn} if ( pbnEnq{PUSH} & DESK1A_ON & DESK{VPS3} ); return VNS1{extcantrn} if ( pbnEnq{PUSH} & DESK1A_ON & DESK{VNS1} ); return VNS2{extcantrn} if ( pbnEnq{PUSH} & DESK1A_ON & DESK{VNS2} ); return VLS1{extcantrn} if ( pbnEnq{PUSH} & DESK1A_ON & DESK{VLS1} ); return VLS2{extcantrn} if ( pbnEnq{PUSH} & DESK1A_ON & DESK{VLS2} ); return VLS3{extcantrn} if ( pbnEnq{PUSH} & DESK1A_ON & DESK{VLS3} ); return VLS4{extcantrn} if ( pbnEnq{PUSH} & DESK1A_ON & DESK{VLS4} ); return VLS6{extcantrn} if ( pbnEnq{PUSH} & DESK1A_ON & DESK{VLS6} ); return "";
DESK1B_ENQ relay return VHS1{extcantrn} if ( pbsEnq{PUSH} & DESK1B_ON & DESK{VHS1} ); return VHS2{extcantrn} if ( pbsEnq{PUSH} & DESK1B_ON & DESK{VHS2} ); return VFS1{extcantrn} if ( pbsEnq{PUSH} & DESK1B_ON & DESK{VFS1} ); return VFS2{extcantrn} if ( pbsEnq{PUSH} & DESK1B_ON & DESK{VFS2} ); return VES1{extcantrn} if ( pbsEnq{PUSH} & DESK1B_ON & DESK{VES1} ); return VES2{extcantrn} if ( pbsEnq{PUSH} & DESK1B_ON & DESK{VES2} ); return VES4{extcantrn} if ( pbsEnq{PUSH} & DESK1B_ON & DESK{VES4} ); return "";
pbnReset momentary 0
pbn0xx momentary 0
pbn1xx momentary 0
pbn2xx momentary 0
pbn3xx momentary 0
pbnx0x momentary 0
pbnx1x momentary 0
pbnx2x momentary 0
pbnx3x momentary 0
pbnx4x momentary 0
pbnx5x momentary 0
pbnx6x momentary 0
pbnx7x momentary 0
pbnxx0 momentary 0
pbnxx1 momentary 0
pbnxx2 momentary 0
pbnxx3 momentary 0
pbnxx4 momentary 0
pbnxx5 momentary 0
pbnxx6 momentary 0
pbnxx7 momentary 0
pbsReset momentary 0
pbs0xx momentary 0
pbs1xx momentary 0
pbs2xx momentary 0
pbs3xx momentary 0
pbsx0x momentary 0
pbsx1x momentary 0
pbsx2x momentary 0
pbsx3x momentary 0
pbsx4x momentary 0
pbsx5x momentary 0
pbsx6x momentary 0
pbsx7x momentary 0
pbsxx0 momentary 0
pbsxx1 momentary 0
pbsxx2 momentary 0
pbsxx3 momentary 0
pbsxx4 momentary 0
pbsxx5 momentary 0
pbsxx6 momentary 0
pbsxx7 momentary 0
DESK1A_TRN{100s} attr return 0 if ( DESK1A_OFF | pbnReset{PUSH} ); return DESK1A_TRN{100s} if DESK1A_TRN{100s} ne "0"; return "0.0" if ( DESK1A_ON & pbn0xx{PUSH} ); return "1.0" if ( DESK1A_ON & pbn1xx{PUSH} ); return "2.0" if ( DESK1A_ON & pbn2xx{PUSH} ); return "3.0" if ( DESK1A_ON & pbn3xx{PUSH} );
DESK1A_TRN{tens} attr return 0 if ( DESK1A_OFF | pbnReset{PUSH} ); return DESK1A_TRN{tens} if DESK1A_TRN{tens} ne "0"; return "0.0" if ( DESK1A_ON & pbnx0x{PUSH} ); return "1.0" if ( DESK1A_ON & pbnx1x{PUSH} ); return "2.0" if ( DESK1A_ON & pbnx2x{PUSH} ); return "3.0" if ( DESK1A_ON & pbnx3x{PUSH} ); return "4.0" if ( DESK1A_ON & pbnx4x{PUSH} ); return "5.0" if ( DESK1A_ON & pbnx5x{PUSH} ); return "6.0" if ( DESK1A_ON & pbnx6x{PUSH} ); return "7.0" if ( DESK1A_ON & pbnx7x{PUSH} );
DESK1A_TRN{ones} attr return 0 if ( DESK1A_OFF | pbnReset{PUSH} ); return DESK1A_TRN{ones} if DESK1A_TRN{ones} ne "0"; return "0.0" if ( DESK1A_ON & pbnxx0{PUSH} ); return "1.0" if ( DESK1A_ON & pbnxx1{PUSH} ); return "2.0" if ( DESK1A_ON & pbnxx2{PUSH} ); return "3.0" if ( DESK1A_ON & pbnxx3{PUSH} ); return "4.0" if ( DESK1A_ON & pbnxx4{PUSH} ); return "5.0" if ( DESK1A_ON & pbnxx5{PUSH} ); return "6.0" if ( DESK1A_ON & pbnxx6{PUSH} ); return "7.0" if ( DESK1A_ON & pbnxx7{PUSH} );
DESK1A_TRN{num} attr return ( DESK1A_TRN{100s} * 100 ) + ( DESK1A_TRN{tens} * 10 ) + DESK1A_TRN{ones}
DESK1B_TRN{100s} attr return 0 if ( DESK1B_OFF | pbsReset{PUSH} ); return DESK1B_TRN{100s} if DESK1B_TRN{100s} ne "0"; return "0.0" if ( DESK1B_ON & pbs0xx{PUSH} ); return "1.0" if ( DESK1B_ON & pbs1xx{PUSH} ); return "2.0" if ( DESK1B_ON & pbs2xx{PUSH} ); return "3.0" if ( DESK1B_ON & pbs3xx{PUSH} );
DESK1B_TRN{tens} attr return 0 if ( DESK1B_OFF | pbsReset{PUSH} ); return DESK1B_TRN{tens} if DESK1B_TRN{tens} ne "0"; return "0.0" if ( DESK1B_ON & pbsx0x{PUSH} ); return "1.0" if ( DESK1B_ON & pbsx1x{PUSH} ); return "2.0" if ( DESK1B_ON & pbsx2x{PUSH} ); return "3.0" if ( DESK1B_ON & pbsx3x{PUSH} ); return "4.0" if ( DESK1B_ON & pbsx4x{PUSH} ); return "5.0" if ( DESK1B_ON & pbsx5x{PUSH} ); return "6.0" if ( DESK1B_ON & pbsx6x{PUSH} ); return "7.0" if ( DESK1B_ON & pbsx7x{PUSH} );
DESK1B_TRN{ones} attr return 0 if ( DESK1B_OFF | pbsReset{PUSH} ); return DESK1B_TRN{ones} if DESK1B_TRN{ones} ne "0"; return "0.0" if ( DESK1B_ON & pbsxx0{PUSH} ); return "1.0" if ( DESK1B_ON & pbsxx1{PUSH} ); return "2.0" if ( DESK1B_ON & pbsxx2{PUSH} ); return "3.0" if ( DESK1B_ON & pbsxx3{PUSH} ); return "4.0" if ( DESK1B_ON & pbsxx4{PUSH} ); return "5.0" if ( DESK1B_ON & pbsxx5{PUSH} ); return "6.0" if ( DESK1B_ON & pbsxx6{PUSH} ); return "7.0" if ( DESK1B_ON & pbsxx7{PUSH} );
DESK1B_TRN{num} attr return ( DESK1B_TRN{100s} * 100 ) + ( DESK1B_TRN{tens} * 10 ) + DESK1B_TRN{ones}
VPS1{extcantrn} attr return DESK1A_TRN{num} if ( ( pbnExtraTrain{PUSH} | pbnTrainCancel{PUSH} ) & DESK1A_ON & DESK{VPS1} ); return 0 if ( !VPS1_REG_TRAIN_CANCEL & !VPS1_REG_EXT_TRAIN ); return VPS1{extcantrn};
VPS2{extcantrn} attr return DESK1A_TRN{num} if ( ( pbnExtraTrain{PUSH} | pbnTrainCancel{PUSH} ) & DESK1A_ON & DESK{VPS2} ); return 0 if ( !VPS2_REG_TRAIN_CANCEL & !VPS2_REG_EXT_TRAIN ); return VPS2{extcantrn};
VPS3{extcantrn} attr return DESK1A_TRN{num} if ( ( pbnExtraTrain{PUSH} | pbnTrainCancel{PUSH} ) & DESK1A_ON & DESK{VPS3} ); return 0 if ( !VPS3_REG_TRAIN_CANCEL & !VPS3_REG_EXT_TRAIN ); return VPS3{extcantrn};
VNS1{extcantrn} attr return DESK1A_TRN{num} if ( ( pbnExtraTrain{PUSH} | pbnTrainCancel{PUSH} ) & DESK1A_ON & DESK{VNS1} ); return 0 if ( !VNS1_REG_TRAIN_CANCEL & !VNS1_REG_EXT_TRAIN ); return VNS1{extcantrn};
VNS2{extcantrn} attr return DESK1A_TRN{num} if ( ( pbnExtraTrain{PUSH} | pbnTrainCancel{PUSH} ) & DESK1A_ON & DESK{VNS2} ); return 0 if ( !VNS2_REG_TRAIN_CANCEL & !VNS2_REG_EXT_TRAIN ); return VNS2{extcantrn};
VLS1{extcantrn} attr return DESK1A_TRN{num} if ( ( pbnExtraTrain{PUSH} | pbnTrainCancel{PUSH} ) & DESK1A_ON & DESK{VLS1} ); return 0 if ( !VLS1_REG_TRAIN_CANCEL & !VLS1_REG_EXT_TRAIN ); return VLS1{extcantrn};
VLS2{extcantrn} attr return DESK1A_TRN{num} if ( ( pbnExtraTrain{PUSH} | pbnTrainCancel{PUSH} ) & DESK1A_ON & DESK{VLS2} ); return 0 if ( !VLS2_REG_TRAIN_CANCEL & !VLS2_REG_EXT_TRAIN ); return VLS2{extcantrn};
VLS3{extcantrn} attr return DESK1A_TRN{num} if ( ( pbnExtraTrain{PUSH} | pbnTrainCancel{PUSH} ) & DESK1A_ON & DESK{VLS3} ); return 0 if ( !VLS3_REG_TRAIN_CANCEL & !VLS3_REG_EXT_TRAIN ); return VLS3{extcantrn};
VLS4{extcantrn} attr return DESK1A_TRN{num} if ( ( pbnExtraTrain{PUSH} | pbnTrainCancel{PUSH} ) & DESK1A_ON & DESK{VLS4} ); return 0 if ( !VLS4_REG_TRAIN_CANCEL & !VLS4_REG_EXT_TRAIN ); return VLS4{extcantrn};
VLS6{extcantrn} attr return DESK1A_TRN{num} if ( ( pbnExtraTrain{PUSH} | pbnTrainCancel{PUSH} ) & DESK1A_ON & DESK{VLS6} ); return 0 if ( !VLS6_REG_TRAIN_CANCEL & !VLS6_REG_EXT_TRAIN ); return VLS6{extcantrn};
VHS1{extcantrn} attr return DESK1B_TRN{num} if ( ( pbsExtraTrain{PUSH} | pbsTrainCancel{PUSH} ) & DESK1B_ON & DESK{VHS1} ); return 0 if ( !VHS1_REG_TRAIN_CANCEL & !VHS1_REG_EXT_TRAIN ); return VHS1{extcantrn};
VHS2{extcantrn} attr return DESK1B_TRN{num} if ( ( pbsExtraTrain{PUSH} | pbsTrainCancel{PUSH} ) & DESK1B_ON & DESK{VHS2} ); return 0 if ( !VHS2_REG_TRAIN_CANCEL & !VHS2_REG_EXT_TRAIN ); return VHS2{extcantrn};
VFS1{extcantrn} attr return DESK1B_TRN{num} if ( ( pbsExtraTrain{PUSH} | pbsTrainCancel{PUSH} ) & DESK1B_ON & DESK{VFS1} ); return 0 if ( !VFS1_REG_TRAIN_CANCEL & !VFS1_REG_EXT_TRAIN ); return VFS1{extcantrn};
VFS2{extcantrn} attr return DESK1B_TRN{num} if ( ( pbsExtraTrain{PUSH} | pbsTrainCancel{PUSH} ) & DESK1B_ON & DESK{VFS2} ); return 0 if ( !VFS2_REG_TRAIN_CANCEL & !VFS2_REG_EXT_TRAIN ); return VFS2{extcantrn};
VES1{extcantrn} attr return DESK1B_TRN{num} if ( ( pbsExtraTrain{PUSH} | pbsTrainCancel{PUSH} ) & DESK1B_ON & DESK{VES1} ); return 0 if ( !VES1_REG_TRAIN_CANCEL & !VES1_REG_EXT_TRAIN ); return VES1{extcantrn};
VES2{extcantrn} attr return DESK1B_TRN{num} if ( ( pbsExtraTrain{PUSH} | pbsTrainCancel{PUSH} ) & DESK1B_ON & DESK{VES2} ); return 0 if ( !VES2_REG_TRAIN_CANCEL & !VES2_REG_EXT_TRAIN ); return VES2{extcantrn};
VES4{extcantrn} attr return DESK1B_TRN{num} if ( ( pbsExtraTrain{PUSH} | pbsTrainCancel{PUSH} ) & DESK1B_ON & DESK{VES4} ); return 0 if ( !VES4_REG_TRAIN_CANCEL & !VES4_REG_EXT_TRAIN ); return VES4{extcantrn};
DESK1A_KGM{0xx} attr DESK1A_TRN{100s} eq "0.0";
DESK1A_KGM{1xx} attr DESK1A_TRN{100s} eq "1.0";
DESK1A_KGM{2xx} attr DESK1A_TRN{100s} eq "2.0";
DESK1A_KGM{3xx} attr DESK1A_TRN{100s} eq "3.0";
DESK1A_KGM{x0x} attr DESK1A_TRN{tens} eq "0.0";
DESK1A_KGM{x1x} attr DESK1A_TRN{tens} eq "1.0";
DESK1A_KGM{x2x} attr DESK1A_TRN{tens} eq "2.0";
DESK1A_KGM{x3x} attr DESK1A_TRN{tens} eq "3.0";
DESK1A_KGM{x4x} attr DESK1A_TRN{tens} eq "4.0";
DESK1A_KGM{x5x} attr DESK1A_TRN{tens} eq "5.0";
DESK1A_KGM{x6x} attr DESK1A_TRN{tens} eq "6.0";
DESK1A_KGM{x7x} attr DESK1A_TRN{tens} eq "7.0";
DESK1A_KGM{xx0} attr DESK1A_TRN{ones} eq "0.0";
DESK1A_KGM{xx1} attr DESK1A_TRN{ones} eq "1.0";
DESK1A_KGM{xx2} attr DESK1A_TRN{ones} eq "2.0";
DESK1A_KGM{xx3} attr DESK1A_TRN{ones} eq "3.0";
DESK1A_KGM{xx4} attr DESK1A_TRN{ones} eq "4.0";
DESK1A_KGM{xx5} attr DESK1A_TRN{ones} eq "5.0";
DESK1A_KGM{xx6} attr DESK1A_TRN{ones} eq "6.0";
DESK1A_KGM{xx7} attr DESK1A_TRN{ones} eq "7.0";
DESK1B_KGM{0xx} attr DESK1B_TRN{100s} eq "0.0";
DESK1B_KGM{1xx} attr DESK1B_TRN{100s} eq "1.0";
DESK1B_KGM{2xx} attr DESK1B_TRN{100s} eq "2.0";
DESK1B_KGM{3xx} attr DESK1B_TRN{100s} eq "3.0";
DESK1B_KGM{x0x} attr DESK1B_TRN{tens} eq "0.0";
DESK1B_KGM{x1x} attr DESK1B_TRN{tens} eq "1.0";
DESK1B_KGM{x2x} attr DESK1B_TRN{tens} eq "2.0";
DESK1B_KGM{x3x} attr DESK1B_TRN{tens} eq "3.0";
DESK1B_KGM{x4x} attr DESK1B_TRN{tens} eq "4.0";
DESK1B_KGM{x5x} attr DESK1B_TRN{tens} eq "5.0";
DESK1B_KGM{x6x} attr DESK1B_TRN{tens} eq "6.0";
DESK1B_KGM{x7x} attr DESK1B_TRN{tens} eq "7.0";
DESK1B_KGM{xx0} attr DESK1B_TRN{ones} eq "0.0";
DESK1B_KGM{xx1} attr DESK1B_TRN{ones} eq "1.0";
DESK1B_KGM{xx2} attr DESK1B_TRN{ones} eq "2.0";
DESK1B_KGM{xx3} attr DESK1B_TRN{ones} eq "3.0";
DESK1B_KGM{xx4} attr DESK1B_TRN{ones} eq "4.0";
DESK1B_KGM{xx5} attr DESK1B_TRN{ones} eq "5.0";
DESK1B_KGM{xx6} attr DESK1B_TRN{ones} eq "6.0";
DESK1B_KGM{xx7} attr DESK1B_TRN{ones} eq "7.0";
SYSTEM controls - Note: INVERT==on by default (inverts button output) DEFAULT
pbREG_AUTO_233 relay 1 Train 233 around 00:00 needs to be manual signalled.  Automate this
REG_AUTO_233 relay pbREG_AUTO_233
pbREG_ALL_NOOT relay 0 NOOT
REG_ALL_NOOT relay pbREG_ALL_NOOT
pbPAUSE relay 0 UNPAUSED
SYSTEM{paused} attr Paused pbPAUSE
pbTRAINAUTOCREATE relay 1 AUTO CREAT
SYSTEM{trainautocreate} attr Auto create trains at PM locations if missing pbTRAINAUTOCREATE
pbOVERRIDE_TIME_COINC relay DEFAULT OVERRIDE 0 NO T/C override
SYSTEM{ALL_OVERRIDE_TIME_COINC} attr Force TN coincidence all time machines pbOVERRIDE_TIME_COINC
pbVLS3_625_OVERRIDE relay 1 FORCED PERMISSION AT VLS3
VLS3_625_OVERRIDE relay pbVLS3_625_OVERRIDE
SYSTEM{interval} attr Internval variable for hold interval variance 0
SYSTEM{starttime} attr return "05:00:00";
SYSTEM{systime} attr 0
SYSTEM{realtime} attr 0
SYSTEM{loadavg} attr system loadavg string 0
SYSTEM{nfs_clients} attr NFS client count 0
SYSTEM{ws_clients} attr WebSocket client count 0
SYSTEM{train_cnt} attr train count 0
SYSTEM{train_N} attr Northbound train count 0
SYSTEM{train_S} attr Southbound train count 0
SYSTEM{train_codestop} attr Trains on 0 or 120 code 0
SYSTEM{train_zeromph} attr Trains at 0mph, stopped on S20 0
SYSTEM{lastsave} attr time of last save return "";
pbSAVE momentary 0
COMPUTER{SAVE} attr pbSAVE{PUSH}
SYSTEM{N_TRAINS} attr JSON array of Northbound Trains 0
SYSTEM{S_TRAINS} attr JSON array of Southbound Trains 0
WNZX1mc relay 14000
WNZX2mc relay 7700
WNCP0mc relay 600
BHZX1mc relay 7000
BHZX2mc relay 7000
BHCP0mc relay 500
BMZX0mc relay 700
WNZX1rtr relay 1
WNZX2rtr relay 1
WNCP0rtr relay 1
BHZX1rtr relay 1
BHZX2rtr relay return "3" if VTST{main} eq "1"; return "1";
BHCP0rtr relay 1
BMZX0rtr relay 1
WNZX1_WNZX2{status} attr 1
WNZX1_WNCP0{status} attr 1
WNZX2_WNCP0{status} attr 1
WNZX1_BMZX0{status} attr 1
WNZX2_BMZX0{status} attr 1
WNZX1_BHZX1{status} attr 1
WNZX2_BHZX2{status} attr return "2" if VTST{main} eq "1"; return "1";
BHZX1_BHZX2{status} attr return "2" if VTST{main} eq "1"; return "1";
BHZX1_BHCP0{status} attr 1
BHZX2_BHCP0{status} attr return "2" if VTST{main} eq "1"; return "1";
VTST relay 0
pbVP_YU_MASTER relay 1
pbVP_583 relay 0
pbVP_584 relay 0
pbVP_582 relay 0
pbVPSBER relay 0
pbVPNBER relay 0
pbVPS1_MAN_STEP momentary 0
pbVPS2_MAN_STEP momentary 0
pbVPS3_MAN_STEP momentary 0
pbVN_582 relay 0
pbVNS1_MAN_STEP momentary 0
pbVNS2_MAN_STEP momentary 0
pbVL_YU_MASTER relay 1
pbVL_583 relay 0
pbVL_584 relay 0
pbVL_582 relay 0
pbVLBAYER relay 0
pbVLSBER relay 0
pbVLNBER relay 0
pbVLKSPR2 relay 1
pbVLS1_MAN_STEP momentary 0
pbVLS2_MAN_STEP momentary 0
pbVLS3_MAN_STEP momentary 0
pbVLS4_MAN_STEP momentary 0
pbVLS6_MAN_STEP momentary 0
pbVKSBER relay 0
pbVKNBER relay 0
pbVJ_YU_MASTER relay 0
pbVJSBER relay 0
pbVJNBER relay 0
pbVHSBER relay 0
pbVHNBER relay 0
pbVHS1_MAN_STEP momentary 0
pbVHS2_MAN_STEP momentary 0
pbVH_YU_MASTER relay 1
pbVH_583 relay 0
pbVH_584 relay 0
pbVH_582 relay 0
pbVGSBER relay 0
pbVGNBER relay 0
pbVFS1_MAN_STEP momentary 0
pbVFS2_MAN_STEP momentary 0
pbVF_YU_MASTER relay 1
pbVF_583 relay 0
pbVF_584 relay 0
pbVF_582 relay 0
pbVES1_MAN_STEP momentary 0
pbVES2_MAN_STEP momentary 0
pbVES4_MAN_STEP momentary 0
pbVE_YU_MASTER relay 1
pbVE_583 relay 0
pbVE_584 relay 0
pbVE_582 relay 0
Train position assertions - testing to ensure trains arrive in the right order when line set NOOT
We test for track occupation at the signal, and for the routes that are valid for this signal and Programme Machine
WH_1{checkTN:VPS1{regTN}} attr Walthamstow !WH_1 & VP11U_PMCALL
UD_1{checkTN:VPS1{regTN}} attr !UD_1 & VP9U_PMCALL
475D{checkTN:VPS2{regTN}} attr !475D & ( VP1_1U_PMCALL | VP1_2U_PMCALL )
RT_2{checkTN:VNS1{regTN}} attr Northumberland Park !RT_2 & VN8U_CALL
SH_1{checkTN:VNS1{regTN}} attr !SH_1 & VN7U_CALL
459A{checkTN:VNS2{regTN}} attr !459A & ( VN1_1U_CALL | VN1_2U_CALL )
ST_1{checkTN:VLS1{regTN}} attr Seven Sisters !ST_1 & ( VL22_1U_PMCALL | VL22_2U_PMCALL )
RD_1{checkTN:VLS1{regTN}} attr !RD_1 & VL6_3U_PMCALL
453A{checkTN:VLS2{regTN}} attr !453A & ( VL1_1U_PMCALL | VL1_2U_PMCALL )
TE_2{checkTN:VLS3{regTN}} attr !TE_2 & VL8U_PMCALL
468D{checkTN:VLS3{regTN}} attr !468D & VL24U_PMCALL
SV_1{checkTN:VLS3{regTN}} attr !SV_1 & VL19U_PMCALL
ST_1{checkTN:VLS4{regTN}} attr !ST_1 & ( VL22_2U_PMCALL )
RD_1{checkTN:VLS4{regTN}} attr !RD_1 & ( VL6_1U_PMCALL | VL6_2U_PMCALL | VL6_3U_PMCALL )
RD_1{checkTN:VLS6{regTN}} attr !RD_1 & VL6_1U_PMCALL
438A{checkTN:VHS1{regTN}} attr Kings Cross !438A & VH12U_PMCALL
GP_2{checkTN:VHS1{regTN}} attr !GP_2 & VH11U_PMCALL
JL{checkTN:VHS2{regTN}} attr !JL & ( VH5U_PMCALL | VH3U_PMCALL )
EP_1{checkTN:VFS1{regTN}} attr Victoria !EP_1 & ( VF21{699} | VF20_1{699} | VF20_2{699} )
GL_2{checkTN:VFS2{regTN}} attr !GL_2 & VF5{699}
GG_1{checkTN:VFS2{regTN}} attr !GG_1 & VF6{699}
397B{checkTN:VFS2{regTN}} attr !397B & VF1A{699}
374B{checkTN:VES1{regTN}} attr Brixton !374B & ( VE12_1{699} | VE12_2{699} )
BK_1{checkTN:VES2{regTN}} attr !BK_1 & VE4{321}
AG_1{checkTN:VES2{regTN}} attr !AG_1 & VE2{321}
VPP2{KGM} attr VP Next Train P2 S return "SX_ "if VPP2{ID} eq "1"; return "__X" if VPP2{ID} eq "2"; return "SS_" if VPP2{ID} eq "3"; return "BS_ "if VPP2{ID} eq "4"; return "B__" if VPP2{ID} eq "5"; return "VS_ "if VPP2{ID} eq "6"; return "WS_ "if VPP2{ID} eq "7"; return "S__" if VPP2{ID} eq "8"; return "";
VPP1{KGM} attr VP Next Train P1 S return "SX_ "if VPP1{ID} eq "1"; return "__X" if VPP1{ID} eq "2"; return "SS_" if VPP1{ID} eq "3"; return "BS_ "if VPP1{ID} eq "4"; return "B__" if VPP1{ID} eq "5"; return "VS_ "if VPP1{ID} eq "6"; return "WS_ "if VPP1{ID} eq "7"; return "S__" if VPP1{ID} eq "8"; return "";
VPNB{KGM} attr VP Next Train ex B/horse Rd N return "W__" if VPNB{ID} eq "3"; return "W__" if VPNB{ID} eq "4"; return "W__" if VPNB{ID} eq "5"; return "W__" if VPNB{ID} eq "6"; return "WS__" if VPNB{ID} eq "7"; return "S__" if VPNB{ID} eq "8"; return "";
VLS1{KGM} attr VL Next train ex-depot S return "SSW" if VLS1{ID} eq "1"; return "SX_ "if VLS1{ID} eq "2"; return "SSS" if VLS1{ID} eq "3"; return "__X" if VLS1{ID} eq "4"; return "VS_ "if VLS1{ID} eq "5"; return "B__" if VLS1{ID} eq "6"; return "BS_ "if VLS1{ID} eq "7"; return "S" if VLS1{ID} eq "8"; return "";
VLSB{KGM} attr VL Next train ex Walthamstow S return "__X" if VLSB{ID} eq "1"; return "SX" if VLSB{ID} eq "2"; return "SS" if VLSB{ID} eq "3"; return "__X" if VLSB{ID} eq "4"; return "VS_ "if VLSB{ID} eq "5"; return "B__" if VLSB{ID} eq "6"; return "BS_ "if VLSB{ID} eq "7"; return "S__" if VLSB{ID} eq "8"; return "";
VLS3{KGM} attr VL Next Train P5 S return "__X" if VLS3{ID} eq "1"; return "SX" if VLS3{ID} eq "2"; return "SS" if VLS3{ID} eq "3"; return "__X" if VLS3{ID} eq "4"; return "VS_ "if VLS3{ID} eq "5"; return "B__" if VLS3{ID} eq "6"; return "BS_ "if VLS3{ID} eq "7"; return "S__" if VLS3{ID} eq "8"; return "";
VLS4{KGM} attr VL Next Train P4 N return "SX_ "if VLS4{ID} eq "1"; return "SSS" if VLS4{ID} eq "2"; return "SS_ "if VLS4{ID} eq "3"; return "NPS" if VLS4{ID} eq "4"; return "NPE" if VLS4{ID} eq "5"; return "W__" if VLS4{ID} eq "6"; return "WS_ "if VLS4{ID} eq "7"; return "S__" if VLS4{ID} eq "8"; return "";
VLS2{KGM} attr VL Next Train ex-Finsbury Pk N return "__X" if VLS2{ID} eq "1"; return "__X" if VLS2{ID} eq "2"; return "SS_ "if VLS2{ID} eq "3"; return "NPS" if VLS2{ID} eq "4"; return "NPE" if VLS2{ID} eq "5"; return "W__" if VLS2{ID} eq "6"; return "WS_ "if VLS2{ID} eq "7"; return "S__" if VLS2{ID} eq "8"; return "";
VK Next Train ex-Wood Grn S Picc
VKSB{KGM} attr VK Next Train P4 S return "__X" if VKSB{ID} eq "1"; return "__X" if VKSB{ID} eq "2"; return "__X" if VKSB{ID} eq "3"; return "__X" if VKSB{ID} eq "4"; return "VS_ "if VKSB{ID} eq "5"; return "B__" if VKSB{ID} eq "6"; return "BS_ "if VKSB{ID} eq "7"; return "S__" if VKSB{ID} eq "8"; return "";
VKNB{KGM} attr VJ Next Train ex-Highbury N CS46965/47K return "__X" if VKNB{ID} eq "1"; return "__X" if VKNB{ID} eq "2"; return "SS_ "if VKNB{ID} eq "3"; return "NPS" if VKNB{ID} eq "4"; return "NPE" if VKNB{ID} eq "5"; return "W__" if VKNB{ID} eq "6"; return "WS_ "if VKNB{ID} eq "7"; return "S__" if VKNB{ID} eq "8"; return "";
VK Next Train ex-KX N Picc
VH Next Train P4 S Removed
VHS2{KGM} attr VH Next Train P3 N return "__X" if VHS2{ID} eq "1"; return "KX_ "if VHS2{ID} eq "2"; return "SS_ "if VHS2{ID} eq "3"; return "NPS" if VHS2{ID} eq "4"; return "NPE" if VHS2{ID} eq "5"; return "W__" if VHS2{ID} eq "6"; return "WS_ "if VHS2{ID} eq "7"; return "S__" if VHS2{ID} eq "8"; return "";
VFS1{KGM} attr VF Next Train P4 S CD46965/88H return "__X" if VFS1{ID} eq "1"; return "SX_ "if VFS1{ID} eq "2"; return "__X" if VFS1{ID} eq "3"; return "__X" if VFS1{ID} eq "4"; return "VS_ "if VFS1{ID} eq "5"; return "B__" if VFS1{ID} eq "6"; return "BS_ "if VFS1{ID} eq "7"; return "S__" if VFS1{ID} eq "8"; return "";
VFP3{KGM} attr VF Next Train P3 N return "__X" if VFP3{ID} eq "1"; return "KX_ "if VFP3{ID} eq "2"; return "SS_ "if VFP3{ID} eq "3"; return "NPS" if VFP3{ID} eq "4"; return "NPE" if VFP3{ID} eq "5"; return "W__" if VFP3{ID} eq "6"; return "WS_ "if VFP3{ID} eq "7"; return "S__" if VFP3{ID} eq "8"; return "";
VESB{KGM} attr VE Next ex-Stockwell S BS S X return "B__" if VESB{ID} eq "1"; return "B__" if VESB{ID} eq "2"; return "B__" if VESB{ID} eq "3"; return "B__" if VESB{ID} eq "4"; return "BS_ "if VFSB{ID} eq "7"; return "S__" if VESB{ID} eq "8"; return "";
VEP2{KGM} attr VE Next Train P2 N WSNBK XSP ESX return "KX_ "if VEP2{ID} eq "1"; return "W__" if VEP2{ID} eq "2"; return "SS_ "if VEP2{ID} eq "3"; return "NP_ "if VEP2{ID} eq "4"; return "__X" if VEP2{ID} eq "5"; return "__X" if VEP2{ID} eq "6"; return "BS_ "if VEP2{ID} eq "7"; return "S__" if VEP2{ID} eq "8"; return "";
VEP1{KGM} attr VE Next Train P1 N WSNBK XSP ESX return "KX_ "if VEP1{ID} eq "1"; return "W__" if VEP1{ID} eq "2"; return "SS_ "if VEP1{ID} eq "3"; return "NP_ "if VEP1{ID} eq "4"; return "__X" if VEP1{ID} eq "5"; return "__X" if VEP1{ID} eq "6"; return "BS_ "if VEP1{ID} eq "7"; return "S__" if VEP1{ID} eq "8"; return "";