The paper presents algorithms for energy-optimal train control which can be applied in Driver Advisory Systems. As the train driver shall be diverted as few as possible by this system, a constructive two-level algorithm based on the theory of optimal control and a gradient method is presented which delivers the energy-optimal regime sequence with the minimal number of regime changes. The integration of operational requirements in this algorithm is discussed in detail, in particular the consideration of the properties of the Dutch train protection system ATB EG and the integration of capacity bottlenecks as minimal speed constraints. The algorithm is applied to some representative line sections of the Dutch railway network in a case study.