en-passant: a pawn on 7 should be able to take en-passant an opposed pawn that had moved 3 sq.
This is handled in the preset for Gross Chess. The Pawn functions and subroutines in the fairychess include file should handle it automatically if you set fps to 3.
promotion: only for captured pieces, a pawn on 9 cannot step on 10 if no piece is available.
The preset for Eurasian Chess can handle this. In the Pre-Move sections, it sets a value for wprom or bprom that is based on the currently captured pieces. Each variable should be set to the pieces that a Pawn may promote to. These variables are static for Chess but dynamic for Eurasian Chess. When it is empty, a Pawn may not move to the last rank. Here's what it looks like for Pre-Move 1 for White:
set wprom intersection keys capturedpieces array Q R B N C V;
This is handled in the preset for Gross Chess. The Pawn functions and subroutines in the fairychess include file should handle it automatically if you set fps to 3.
The preset for Eurasian Chess can handle this. In the Pre-Move sections, it sets a value for wprom or bprom that is based on the currently captured pieces. Each variable should be set to the pieces that a Pawn may promote to. These variables are static for Chess but dynamic for Eurasian Chess. When it is empty, a Pawn may not move to the last rank. Here's what it looks like for Pre-Move 1 for White: