A blast from the past....

I came across some old archived files from April 1992 which included a copy of my program for controlling trains with a Märklin 6050 interface. The program was started in 1988 and demonstrated publicly in 1989 at the University of Natal Winterfest.

The executable file is just 43K in size!

Here is the description file:

In my spare time I over the last five years, I have been working on a Turbo Pascal program for the Märklin digital system.

I have used earlier versions to demonstrate the Marklin digital system at the ComputerFest held at the University of Natal in Durban, South Africa in 1989 and also at a modelling exhibition in Durban in 1990.

I have uploaded the file MDOS.ZIP containing my program in its present form as well as MDOS.DOC which is a brief description in ASCII format. MDOS.DOC is also contained in the MDOS.ZIP file.

System requirements are minimal. No graphics card is required. Colour is nice but not required. An 8088 is adequate.

Future plans include complete automatic control, full crane and turntable support, digital sound output, graphics layout diagrams that can be built up from tiles, wagon lists that enable automatic train lengths and speed limits etc. Given sufficient incentive, I may contemplate other digital systems as well.

Although I live in Germany my mother tongue is English but I invite comments in either German or English.

D M Schultz

Here is the content of the MDOS.DOC file:

Brief description of MDOS (Maerklin Digital Operating System)

The program is a test version only and is NOT FINISHED. I invite feedback and suggestions as to possible methods of distribution. Shareware ?

MDOS is a control program for the Maerklin Digital Interface. The following can be controlled independently:

     80 locomotive addresses

     256 electro-magnetic devices

     496 switches can be monitored.

It should run on any PC compatible machine and is written in Turbo Pascal 5.

The program detects the type of display adaptor and sets its colours accordingly. The colours are fixed at present.

Locomotives run at SCALE speeds. E.g. 120 km/h not 'level 9'

Any number of the locomotives an be linked together allowing multiple heading. A circular linkage is not possible.

Each locomotive accelerates properly according to its power, mass of the train and in addition the acceleration will not exceed that which would be possible given its axle loading and number of axles applying tractive force. i.e. maximum tractive effort, before wheel slippage occurs. Train mass is divided evenly between all locos pulling that train.

Forward and reverse speed limits can be set for each loco.

At present the layout diagram is very rudimentary and is made from ASCII files. The layout diagram can be scrolled. Up to 10 magnetic devices can be allocated to any key. Eg. key G can set 10 of the 256 possible devices.

Redundant command are not sent. The program hooks for automatic travel have been built into the program but are not yet implemented.

During normal use of the program, the program is never in a wait state. i.e. all accelerations are being monitored and the respective commands are being sent out.

The interval between the reading of all switches via s88 modules can be specified.

Any s88 module can be tested. A schematic view of an s88 module is presented and can be read, decoded and displayed at 28Hz on a 386/25.

The setting of every locomotive can be resent at a specific time interval or on demand by pressing f9. This is useful if a loco did not receive a command due to a bad contact or was not on the rails at the time.

At program start up, all locomotive addresses are set to stop.

The special function if the 6080 decoder can be switched on and off independently of loco speed.

Additional functions have been temporarily programmed as follows:

   function 1     key f5
   function 2     key f2
   all off        key f6
   function 1 & 2 key f7

this is for the testing of a digital crane. f7 thus allows the boom to be raised and swung simultaneously.

At present, a loco cannot be deleted from a file.

Decoder DIP switch settings are shown when you set the decoder address.


MDOS looks for a configuration file called MaeRKLIN.CFG. If this file is not in the current directory, you will be prompted for configuration information.

Once the program is running you are presented with one or more odometer scales.

f1 gives help on the key commands available. ESC pauses the system and pops up a menu that will allow you to alter the configuration, loco information, test an s88 decoder, alter points settings etc. If you have more than five locos defined, use PgUp & PgDn to move through screens of five locos at a time.


If you do not have a Maerklin Digital Interface connected, set the Serial port to Zero (0). This will allow the program to run but all commands will be sent to the NUL device. You cannot test an s88 module if the port is set to zero. You also cannot specify the number of s88 modules that you have unless you have a valid port number.

If the .LAY file cannot be found, MDOS will create one from the. .ASC file which must be an ASCII file. If you want to change the  .LAY file, edit the .ASC file and delete (or rename) the .LAY file.

Locomotives can be chained together by specifying the loco number (not the decoder address) of the next loco to be controlled, in the loco configuration screen. Eg if loco 1 is linked to loco 3, all commands issued for loco 1 will be repeated for loco 3.

For correct Double-heading, the locos should be correctly calibrated.

Automatic calibration can be carried out by selecting B from the 'Change loco info' menu option. This ensures that correct scale speeds are achieved. Calibration is carried out by sending the loco in question up and down past two track switches having a known distance from each other and measuring the time delay between the two switches. This is then converted to the correct scale speed and is saved to disk along with the rest of the information for the loco. For automatic calibration one naturally needs an s88 encoder. Calibration speeds can also be entered manually via the loco configuration screen.

The file MDOSDEMO.LOK defines 8 locos of varying type, mass and power.

Locos 6, 7, 8 & 3 are linked. When controlling linked locos, the maximum speed for the set will be the speed limit of the slowest.

You will notice that the acceleration for the different locos will be in accordance with their axle weight and mass of the entire train.

If you find the start up screen too time consuming, press any key.

This version of MDOS allows the selection of either English or German (in the configuration menu). All keystrokes are however still language independent.


D M Schultz does not accept ANY responsibility for incorrect operation of the MDOS files or any equipment damage that may arise from using the program.

D M Schultz

If you have an old PC that runs DOS, you can download the program.