C80prox Marklin Digital Control Program for PC's

C80prox Marklin Digital Control Program for PC's

C80prox Marklin Digital Control Program for PC's


You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>C80prox</strong><br />

<strong>Marklin</strong> <strong>Digital</strong> <strong>Control</strong> <strong>Program</strong> <strong>for</strong> PC’s

<strong>C80prox</strong> – <strong>Marklin</strong> <strong>Digital</strong> <strong>Control</strong> <strong>Program</strong> <strong>for</strong> PC’s<br />

Table of Contents<br />

Chapter Page<br />

Contents 2<br />

Introduction 3<br />

Installing <strong>C80prox</strong><br />

Setting Up and Starting <strong>C80prox</strong><br />

<strong>Control</strong>ling Locomotives<br />

<strong>Control</strong>ling Signals and Turnouts<br />

<strong>Control</strong>ling Train Detectors<br />

Other Commands<br />

<strong>C80prox</strong> Sequence Editor<br />

Direct <strong>Control</strong>ler<br />

Advanced Topics<br />

Appendix A - Function Carriages 35<br />

Appendix B - Interface Connections and Cabling 36<br />

Appendix C – Sequence Command Summary 37<br />

Version <strong>Control</strong><br />

Page 2 Version 1.1 October 16, 2003<br />

3<br />

4<br />

12<br />

15<br />

17<br />

19<br />

23<br />

26<br />

30<br />


<strong>C80prox</strong> – <strong>Marklin</strong> <strong>Digital</strong> <strong>Control</strong> <strong>Program</strong> <strong>for</strong> PC’s<br />

Introduction<br />

<strong>C80prox</strong> is a model train layout control program <strong>for</strong> use with any digital model train<br />

layout based on the <strong>Marklin</strong> digital system, whether 3 rail AC or 2 rail DC. Computer<br />

interface to the digital system is made by the <strong>Marklin</strong> digital computer interface Part<br />

No. 6050/6051 or by the <strong>Marklin</strong> Central Unit Part No. 6023. <strong>C80prox</strong> also supports<br />

other <strong>Digital</strong> System using the similar interface to the <strong>Marklin</strong> Part Number.<br />

Currently <strong>C80prox</strong> has three modes of operation:<br />

• Terminal Mode: This allows individual commands to be sent to the <strong>Digital</strong><br />

Computer Interface to control locomotives, solenoids or train detector<br />

modules.<br />

• Direct Mode: Emulates Keyboards and C80/C80f modules. This mode allows<br />

single keystroke or mouse control of locomotives, solenoid devices or train<br />

detector modules.<br />

• Sequence <strong>Control</strong>: Using the <strong>C80prox</strong> ‘language’, up to 3000 commands can<br />

be used as a stored procedure. This mode of operation allows full automatic<br />

control of the <strong>Digital</strong> System. Sequences may be saved/edited and recalled to<br />

run over and over again. Chaining into other sequences is also possible,<br />

effectively giving <strong>C80prox</strong> an unlimited number of command steps.<br />

In addition, <strong>C80prox</strong> provides a simple text editor that allows you to create store<br />

sequences, without the need to exit <strong>C80prox</strong>.<br />

Installing <strong>C80prox</strong><br />

There are no special requirements <strong>for</strong> the installation of the <strong>C80prox</strong> program. The<br />

minimum computer configuration needs to be:<br />

RS-232 communication port (COM1)<br />

PC-AT or equivalent IBM clone.<br />

640k of base system memory<br />

Floppy disk drive, 300k Minimum Requirement.<br />

MS-DOS software version. Version 6. recommended.<br />

In addition to the previous list, the operation of the <strong>C80prox</strong> program can be<br />

enhanced by the addition of an additional RS232 communication port and a 100%<br />

Microsoft compatible mouse as well as a Hard Disk <strong>for</strong> storage of Sequences. The<br />

current size of <strong>C80prox</strong> is approximately 500k bytes with all options.<br />

<strong>C80prox</strong> is usually supplied in a self-extracting archive <strong>for</strong>mat called c80vXXX.exe,<br />

where XXX is the version number: i.e.: c80v749.exe is <strong>C80prox</strong> version 7.4.9. This<br />

archive contains all the necessary files to run <strong>C80prox</strong>.<br />

• Create a directory on your Hard Disk, ‘\train’ recommended.<br />

C:\>md train.<br />

Page 3 Version 1.1 October 16, 2003

<strong>C80prox</strong> – <strong>Marklin</strong> <strong>Digital</strong> <strong>Control</strong> <strong>Program</strong> <strong>for</strong> PC’s<br />

• Copy the Distribution file to this directory.<br />

C:\>copy a:c80v749.exe \train<br />

• Change directories to this directory<br />

C:\>cd train<br />

• Extract all files<br />

C:\TRAIN>c80v749.exe<br />

This example assumes that the distribution disk is loaded into Floppy Disk (A:) and<br />

that installation will be made to the Hard Disk (C:).<br />

For IBM compatible computers that don't have a hard disk drive, there is no special<br />

installation procedure, as <strong>C80prox</strong> will run directly from a floppy disk, once the<br />

archive has been extracted.<br />

Setting Up and Starting <strong>C80prox</strong><br />

Setting operational parameters is per<strong>for</strong>med using the SETPRO command.<br />

C:\TRAIN>SetPro<br />

To select the required option on the set up menu, type the highlighted letter of the<br />

option you require to modify. The following menu will be displayed. Selection is<br />

per<strong>for</strong>med by choosing the first letter of the command or by clicking the mouse, if<br />

attached, over the required line. By selecting any of these options, further menus<br />

maybe displayed.<br />

Fig 1. Initial Setup Page<br />

Page 4 Version 1.1 October 16, 2003

<strong>C80prox</strong> – <strong>Marklin</strong> <strong>Digital</strong> <strong>Control</strong> <strong>Program</strong> <strong>for</strong> PC’s<br />

Setting System Parameters<br />

This option allows the user to view and/or change certain operational parameters.<br />

Selection is made by clicking the appropriate line with the mouse or by entering the<br />

highlighted character.<br />

Fig 2. System Parameters<br />

(I)ntercommand Pause:<br />

This allows you to change the pause time between commands as they are sent to the<br />

digital system computer interface. Most interfaces will work with this value set to 2.<br />

This figure will need to be raised if commands set to the digital system interface are<br />

lost due to design flaws in some earlier 6050 interfaces.<br />

(N)umber of Solenoid Devices:<br />

This figure tells how many solenoids are present on the layout. The maximum<br />

solenoid address on the layout should be entered. When <strong>C80prox</strong> is exited, the<br />

current status of the solenoids are saved to disk. When <strong>C80prox</strong> is re-entered, the<br />

solenoids will be set to the previous condition. It is recommended that k83/84’s be<br />

addressed in a contiguous range starting from address 0. There is a maximum of 64<br />

k83/84’s units allowed on the <strong>Marklin</strong> digital system, giving a total of 256 bidirectional<br />

or 512 single direction solenoid devices.<br />

(C)lear Loop Counter (s88):<br />

This parameter sets the number of times a s88 will be read and cleared if a contact is<br />

still set. If after this number of reads, the contact is assumed to be still be engaged.<br />

The digital interface should always clear the s88 using a value of 1, but if you<br />

experience problems with a s88 unit, not engaged, but still reporting a contact set, a<br />

higher figure may be necessary. A higher figure will slow the response to any s88<br />

command.<br />

Page 5 Version 1.1 October 16, 2003

<strong>C80prox</strong> – <strong>Marklin</strong> <strong>Digital</strong> <strong>Control</strong> <strong>Program</strong> <strong>for</strong> PC’s<br />

(T)rain Detector Modules (s88):<br />

This parameter defines the number of s88 (<strong>Marklin</strong> Part 6088) units connected to the<br />

interface. Valid range is 0 to 31, giving a total of 496 train detector contacts. Only 4<br />

s88's are supported if you are using a 6023 interface.<br />

(S)equence File Path:<br />

This is the data directory that <strong>C80prox</strong> will attempt to find layout sequences (SEQ<br />

files). It must be a valid DOS path name. After installation this is automatically set to<br />

the path 'sequence\'. Refer to your DOS manual <strong>for</strong> a better understanding of DOS<br />

path names.<br />

(P)ort COM1 - COM4:<br />

This parameter defines the communication port on the PC to which the digital<br />

interface is connected. Most IBM <strong>PC's</strong> have at least 1 COM port, COM1. To use a<br />

Microsoft or compatible serial mouse, 2 COM ports are required. This parameter must<br />

not be set to the same COM port that the mouse is connected. COM3 and COM4 are<br />

not supported due to differing standards on earlier PC’s, but may work in your<br />

environment.<br />

(M)onitor Type:<br />

This parameter defines the type of monitor that is to be used with <strong>C80prox</strong>. This<br />

parameter is toggled every time that the 'M' key is pressed. Set the parameter<br />

accordingly to the type of monitor connected to your IBM PC. The parameter should<br />

be set to Monochrome if you are using a laptop PC with a LCD screen. Valid types of<br />

monitors are: Monochrome or Colour.<br />

(E)ntry Mode:<br />

This parameter determines the initial operation mode of <strong>C80prox</strong>. If set <strong>for</strong> 'Terminal<br />

mode' then commands must be entered into the computer by the keyboard. If set <strong>for</strong><br />

'Direct mode', then the initial mode entered emulates a physical 6035 c80 unit as<br />

well as multiple 6040 keyboards. Both modes of operation are still possible as this<br />

parameter only sets the initial mode of operation.<br />

(R)epeat Sensitivity:<br />

This parameter defines to left mouse button repeat speed. Repeat sensitivity is used<br />

when during scroll bar operations. If your mouse seems too responsive, then try<br />

increasing this figure.<br />

Function Keys<br />

This feature allows the modification of the meaning of the function keys F1 TO F9.<br />

F10 is reserved <strong>for</strong> internal use of the <strong>C80prox</strong> (emergency halt). To select the<br />

required function key, press its corresponding number i.e.: (1, 2, 3, 4, 5, 6, 7, 8,<br />

and 9). If a function key is not defined the message is displayed. A<br />

special character '

<strong>C80prox</strong> – <strong>Marklin</strong> <strong>Digital</strong> <strong>Control</strong> <strong>Program</strong> <strong>for</strong> PC’s<br />

Locomotive Data Base.<br />

Fig 3. Function Key Setup<br />

This allows up to 200 Logical Locomotives to be defined. Each logical locomotive can<br />

have up to 4 Physical <strong>Digital</strong> addresses attached to represent single/double/triple or<br />

quadruple heading of locomotives using one command. <strong>C80prox</strong> will only control<br />

locomotives that have been defined. Details that need to be entered <strong>for</strong> each<br />

locomotive are: Logical Locomotive Number (1 to 200), Up to 4 <strong>Digital</strong> Addresses (1<br />

to 80), Locomotive Description (33 characters), Default setting <strong>for</strong> auxiliary function<br />

(on or off), Maximum speed (0 to 14), Acceleration and Braking Inertia. (0 to 99).<br />

The inertia settings are used in conjunction with special commands to simulate either<br />

acceleration or braking inertia.<br />

Page 7 Version 1.1 October 16, 2003

<strong>C80prox</strong> – <strong>Marklin</strong> <strong>Digital</strong> <strong>Control</strong> <strong>Program</strong> <strong>for</strong> PC’s<br />

Fig 4. Locomotive Data Base<br />

In this screen dump, Locomotive 100 has been defined as a double header unit,<br />

comprising of the locomotives with digital addresses 22 and 39. When locomotive<br />

100 is used within <strong>C80prox</strong>, both 22 and 39 will be addressed as a single unit and<br />

will per<strong>for</strong>m all required functions. Locomotive 200 is a quadruple header unit.<br />

Advanced Settings.<br />

This menu option allows more advanced operational setting to be adjusted.<br />

Fig 5. Advanced Settings<br />

Page 8 Version 1.1 October 16, 2003

<strong>C80prox</strong> – <strong>Marklin</strong> <strong>Digital</strong> <strong>Control</strong> <strong>Program</strong> <strong>for</strong> PC’s<br />

(N)ulLoco Address:<br />

This defines an unused digital address that does not exist on the current layout. This<br />

null address is used as a internally by <strong>C80prox</strong> so as to release controlled<br />

locomotives. After the computer interface releases digital addresses, other<br />

C80/C80f’s may control the same locomotive. Possible range is: 0 to 80. If 0 is<br />

selected, then <strong>C80prox</strong> will attempt to find an appropriate NulLoco Address.<br />

(M)aximum Reverse Speed:<br />

This parameter defines the maximum speed that locomotive can be reversed at. If<br />

you reverse a locomotive at too greater speed, the internal digital components MAY<br />

be destroyed. If is usually safe to leave this figure set <strong>for</strong> 5.<br />

(C)ommunications:<br />

Determines if commands are sent to the Computer Interface or not. This parameter<br />

MUST be set to Enabled <strong>for</strong> communications to take place.<br />

(S)equence Colour Scheme:<br />

Defines the colour that a running sequence is displayed in. The requested colour will<br />

be shown.<br />

(A)ctive System:<br />

Defines the currently active system. Future implementations may include other<br />

<strong>Digital</strong> <strong>Control</strong> Systems. Current valid system types are:<br />

• <strong>Marklin</strong> 6050/51 or Compatible<br />

• Intellibox P50 mode<br />

(B)its:<br />

This parameter should always be set to a '2' unless you have an older style digital<br />

interface and defines the number of communication stop bits that are sent to the<br />

interface. The parameter is toggled everytime the 'B' key is pressed. Most digital<br />

interfaces work with this parameter set to '2 - Normal' but a few older digital<br />

interfaces will only work set to '1 - Special'.<br />

(D)elay Time (s88):<br />

Defines the time that <strong>C80prox</strong> will wait <strong>for</strong> a s88 to complete its download. This<br />

figure will need to be raised on systems that incorporate an 486 or above processor.<br />

The general rule when setting this figure is the lower the better.<br />

(I)gnore Setting Solenoids:<br />

During startup of <strong>C80prox</strong>, solenoid devices are set according the last known/stored<br />

value. By ignoring these settings, set to Yes, the defined solenoids will not be<br />

physically set to the value store. This MAY result in the graphical representation and<br />

the physical state of solenoid devices to be different. It is highly recommended that<br />

this setting is not changed from its default ‘No’ setting.<br />

Page 9 Version 1.1 October 16, 2003

<strong>C80prox</strong> – <strong>Marklin</strong> <strong>Digital</strong> <strong>Control</strong> <strong>Program</strong> <strong>for</strong> PC’s<br />

Unlock Security Codes<br />

<strong>C80prox</strong> is not a shareware program. You need to register and purchase your copy.<br />

As distributed, <strong>C80prox</strong> will only work in a demonstration mode. In this <strong>for</strong>mat,<br />

<strong>C80prox</strong> is freely distributable. When you decide to purchase/register your copy, you<br />

need to contact the author via the method shown in the <strong>C80prox</strong> demo startup<br />

screen. This option displays your systems Security Signature as well as enabling you<br />

the enter your unlock codes once your copy of <strong>C80prox</strong> has been registered.<br />

ESCape to DOS<br />

Fig 6. Security / Unlock Codes<br />

This option will exit back to the DOS prompt, saving changes that have been made.<br />

The option of saving or aborting changes to the configuration will be given at this<br />

stage.<br />

Page 10 Version 1.1 October 16, 2003

<strong>C80prox</strong> – <strong>Marklin</strong> <strong>Digital</strong> <strong>Control</strong> <strong>Program</strong> <strong>for</strong> PC’s<br />

Fig 7. Exit to DOS<br />

Page 11 Version 1.1 October 16, 2003

<strong>C80prox</strong> – <strong>Marklin</strong> <strong>Digital</strong> <strong>Control</strong> <strong>Program</strong> <strong>for</strong> PC’s<br />

<strong>Control</strong>ling Locomotives<br />

The following commands can be used in Terminal Mode to control locomotives that<br />

have a c80, c81, c90 or equivalent digital locomotive decoder installed. They may<br />

also be used when creating and running a sequence via the <strong>C80prox</strong> Editor. Up to<br />

200 locomotives combinations can be defined either as single, double, triple or<br />

quadruple heading.<br />

Locomotive <strong>Control</strong><br />

This command will start, stop or reverse a locomotive. The general <strong>for</strong>mat of this<br />

command is:<br />

l {ll} g {ss}<br />

where {ll} is the loco number (1 to 200) and {ss} is the required speed of the<br />

locomotive (0 to 15). The speed of the locomotive is defined as:<br />

speed 0 - stop see 's' command<br />

1-14 - move at speed 1-14<br />

15 - reverse locomotive see 'r' command<br />

Auxiliary function is manipulated by the 'f', 'fe' and 'fd' commands.<br />

Accelerate Locomotive<br />

This command will accelerate a locomotive with inertia. The general <strong>for</strong>mat of this<br />

command is:<br />

l {ll} a {ss}<br />

where {ll} is the locomotive number (1 to 200) and {ss} is the final speed that the<br />

locomotive will obtain (0 to 14). The rate of acceleration of each locomotive is<br />

defined in set up but can be modified by the 'sa' command. If {ss} is not specified,<br />

the locomotive will be accelerated to its maximum defined speed.<br />

Brake Locomotive<br />

This command will decelerate (brake) a locomotive with inertia. The general <strong>for</strong>mat<br />

of this command is:<br />

l {ll} b {ss}<br />

where {ll} is the locomotive number (1 to 200) and {ss} is the final speed that the<br />

locomotive will obtain (0 to 14). The rate of braking inertia is defined in set up but<br />

can be modified by the 'sb' command. If {ss} is not specified, the locomotive will be<br />

decelerated to a stop.<br />

Reversing a Locomotive<br />

This command is used to reverse a locomotive. The general <strong>for</strong>mat of this command<br />

is:<br />

Page 12 Version 1.1 October 16, 2003

<strong>C80prox</strong> – <strong>Marklin</strong> <strong>Digital</strong> <strong>Control</strong> <strong>Program</strong> <strong>for</strong> PC’s<br />

r {ll}<br />

where {ll} is the locomotive number (1 to 200). The status of the auxiliary function<br />

is unchanged. The locomotive will continue at it's previous speed but in reverse. It is<br />

advised, however, not to reverse moving locomotives as the digital decoder can be<br />

damaged. If the speed of the locomotive is greater than speed '5' then this command<br />

will terminate with a bad status, and the locomotive is not reversed.<br />

Stopping a Locomotive<br />

This command is used to stop a locomotive. The general <strong>for</strong>mat of this command is:<br />

s {ll}<br />

where {ll} is the locomotive number (1 to 200). The status of the auxiliary function<br />

is unchanged. The locomotive will stop with no braking inertia.<br />

Auxiliary Functions<br />

These commands are used to change the auxiliary function of any locomotive. The<br />

general <strong>for</strong>mat is:<br />

f {ll} e<br />

f {ll} d<br />

f {ll}<br />

where {ll} is the locomotive number (1 to 200). The 'fe' command will enable the<br />

auxiliary function of the locomotive, independent of its current status. The 'fd' with<br />

disable the auxiliary function of the locomotive , independent of its current status.<br />

The 'f' command will toggle the status of the auxiliary function of the locomotive.<br />

Operating Function Carriages<br />

This command will operate digital function carriages (ie: 4999 Dome Vista Car or<br />

4998 Dance Car). The general <strong>for</strong>mat of this command is:<br />

f {aa} c {cc}<br />

where {aa} is the carriage address (1 to 200) and {cc} is a number representing a<br />

combination of possible functions as defined below.<br />

{cc} Function {cc} Function<br />

0 All Off 8 F4<br />

1 F1 9 F4, F1<br />

2 F2 10 F4, F2<br />

3 F2, F1 11 F4, F2, F1<br />

4 F3 12 F4, F3<br />

5 F3, F1 13 F4, F3, F1<br />

6 F3, F2 14 F4, F3, F2<br />

7 F3, F2, F1 15 All On<br />

Page 13 Version 1.1 October 16, 2003

<strong>C80prox</strong> – <strong>Marklin</strong> <strong>Digital</strong> <strong>Control</strong> <strong>Program</strong> <strong>for</strong> PC’s<br />

Certain combinations of functions may be invalid. See function carriage<br />

documentation <strong>for</strong> possible valid combinations. Appendix 'A' contains documentation<br />

<strong>for</strong> <strong>Marklin</strong> carriages. This command is also used to operate locomotive decoders that<br />

have the 4 additional functions built in.<br />

Setting Locomotive Maximum Speed<br />

This command is used to set the maximum speed <strong>for</strong> each defined locomotive. The<br />

general <strong>for</strong>mat is:<br />

s {ll} m {ss}<br />

where {ll} is the locomotive number (1 to 200) and {ss} is the maximum speed that<br />

the locomotive will travel at (0 to 14). If set <strong>for</strong> '0' then the locomotive can never be<br />

moved. A locomotives initial maximum speed is assigned using set up but can be<br />

modified by the 'sm' command.<br />

Setting Acceleration and Braking Inertia<br />

These commands are used to set the rate of acceleration <strong>for</strong> each locomotive. The<br />

general <strong>for</strong>mat is:<br />

s {ll} a {vv}<br />

s {ll} b {vv}<br />

where {ll} is the locomotive number and {vv} is the inertia value (1 to 99). The<br />

default inertia value <strong>for</strong> each locomotive is assigned using set up. The 'sa' is used to<br />

set the acceleration inertia, while the 'sb' command is used to set the braking<br />

inertia. The larger the inertia value, the longer it will take <strong>for</strong> the locomotive to<br />

acquire the new speed.<br />

Displaying Locomotive Status<br />

This command is used to display the current status of all defined locomotives.<br />

In<strong>for</strong>mation that is displayed includes, locomotive number, digital addresses, main<br />

auxiliary function status, description, maximum speed, acceleration and braking<br />

inertia and current speed. The general <strong>for</strong>mat is:<br />

ls<br />

Locomotives controlled by any attached <strong>Control</strong> 80 style controller may have<br />

incorrect values displayed.<br />

Page 14 Version 1.1 October 16, 2003

<strong>C80prox</strong> – <strong>Marklin</strong> <strong>Digital</strong> <strong>Control</strong> <strong>Program</strong> <strong>for</strong> PC’s<br />

<strong>Control</strong>ling Signals and Turnouts<br />

These commands are used to control hardware modules connected to the <strong>Marklin</strong><br />

digital system. They include commands to control k83, K84 and k87 solenoid<br />

modules. They can be used either in Terminal Mode or when creating and running a<br />

sequence using the <strong>C80prox</strong> Editor.<br />

Solenoid <strong>Control</strong><br />

These commands will change the direction of a set of points or change a signal from<br />

red to green. The general <strong>for</strong>mat of these commands are:<br />

m {sss} r {tt}<br />

m {sss} g {tt}<br />

m {sss}<br />

where {sss} is any valid solenoid address in the range (1 to 256). The 'mr'<br />

command is used to change points to a 'branch' condition or a signal to 'stop'. The<br />

'mg' command is used to change points to a 'main line' condition or a signal to<br />

'proceed'. If the 'm' command is used, then the status of the selected solenoid will<br />

be reversed. If {tt} is specified, the solenoid will be activated <strong>for</strong> {tt} deciseconds.<br />

The {tt} parameter need only be supplied <strong>for</strong> use with uncoupler tracks. Valid range<br />

of {tt} is 1 to 99. (9.9 seconds).<br />

Displaying Solenoid Status<br />

This command displays the current status <strong>for</strong> all defined solenoids. The general<br />

<strong>for</strong>mat of this command is:<br />

ms<br />

After the current session of <strong>C80prox</strong> is finished, solenoid status' are saved to an<br />

external DOS file. When <strong>C80prox</strong> is entered again, the solenoids are set according to<br />

these saved values. Solenoids controlled by an attached keyboard or memory unit<br />

may have an incorrect value.<br />

Solenoid Routes<br />

The following commands can be used to group solenoid commands together into one<br />

command. They are used to sequentially set multiple solenoids or turnouts to a<br />

defined condition. Routes are saved when <strong>C80prox</strong> is exited and restored when<br />

<strong>C80prox</strong> is re-entered. The only commands that will work in a route are the solenoid<br />

commands 'mg' and 'mr' and 'x' commands. Up to 200 routes may be defined in<br />

this manner.<br />

Listing Solenoid Routes<br />

This command will display all of the defined solenoid routes currently set. It's general<br />

<strong>for</strong>mat is:<br />

lm<br />

Page 15 Version 1.1 October 16, 2003

<strong>C80prox</strong> – <strong>Marklin</strong> <strong>Digital</strong> <strong>Control</strong> <strong>Program</strong> <strong>for</strong> PC’s<br />

Editing a Solenoid Route<br />

This command allows you to enter, delete or modify a route. It's general <strong>for</strong>mat is:<br />

e m {nn}<br />

where {nn} is the route to edit in the range (0 to 199). The <strong>C80prox</strong> editor will be<br />

entered to allow modification of the requested route. There is no need to save the<br />

route from within the editor be<strong>for</strong>e exiting the editor unless you want to save the<br />

route as a sequence (.SEQ) file.<br />

Executing a Solenoid Route<br />

This command is used to execute a defined route. Its general <strong>for</strong>mat is:<br />

x {mm}<br />

where {mm} is the route number (0 to 199). Commands contained within the route<br />

will be per<strong>for</strong>med sequentially. As already specified, the only commands that are<br />

valid with a route are the 'mr', 'mg' and 'x' commands. If the 'x' command is<br />

encountered, the currently executing route will terminate and the specified route will<br />

commence from the first line.<br />

Page 16 Version 1.1 October 16, 2003

<strong>C80prox</strong> – <strong>Marklin</strong> <strong>Digital</strong> <strong>Control</strong> <strong>Program</strong> <strong>for</strong> PC’s<br />

<strong>Control</strong>ling Train Detectors<br />

The following commands are used to read train detector modules (<strong>Marklin</strong> Part No.<br />

6088). They can be used in Terminal Mode and also used when creating and<br />

running a sequence using the <strong>C80prox</strong> Editor. They include commands to read s88<br />

contact modules (s88).<br />

Read S88 Detector Module (TDM)<br />

These commands will read a train detector module and wait until a train has been<br />

detected or is not detected. Their general <strong>for</strong>mat is:<br />

r {mm} k {kk}<br />

k {kk}<br />

r {mm} w {kk}<br />

w {kk}<br />

where {mm} is a valid module number (1 to 31) and {kk} is a contact number in<br />

the range (1 to 16) that exists on that module. To interrupt this wait, the ESC key<br />

can be pressed. This will cause a layout sequence to stop running, and return you to<br />

TERMINAL MODE. Be<strong>for</strong>e the module is read, its contents is cleared so any past<br />

detection’s will be lost. After the module is read, its current values will be erased.<br />

The 'k' command will read a relative contact number from 1 to 496. Contacts 1-16<br />

being on the first s88 module, 17-32 on the second etc. These commands will erase<br />

the contents of the defined s88 module. The 'rw' and 'w' commands per<strong>for</strong>m exactly<br />

the same functions as the 'rk' and 'k' commands, except they will wait until a train<br />

is NOT detected on the defined contact.<br />

Reading a TDM and Storing Results<br />

This command will read a s88 module and store the status of the 16 contacts in<br />

program flags. The general <strong>for</strong>mat is:<br />

r m {mm}<br />

where {mm} is the module number (1 to 31). <strong>Program</strong> flags 0 to 16 are used. The<br />

s88 module is not erased. See advanced section <strong>for</strong> program flag in<strong>for</strong>mation.<br />

<strong>Program</strong> flag '0' is set if an error was encountered reading the specified module.<br />

Clearing a TDM<br />

This command will attempt to clear a TDM. Its general <strong>for</strong>mat is:<br />

c m {mm}<br />

where {mm} is the module number (1 to 31). The contents of the s88 module<br />

specified is erased. A contact on a module cannot be cleared if the contact is<br />

engaged.<br />

Displaying a TDM Contents<br />

This command displays the current status of contacts attached to a s88 module. The<br />

Page 17 Version 1.1 October 16, 2003

<strong>C80prox</strong> – <strong>Marklin</strong> <strong>Digital</strong> <strong>Control</strong> <strong>Program</strong> <strong>for</strong> PC’s<br />

general <strong>for</strong>mat is:<br />

d m {mm}<br />

where {mm} is the module number (1 to 31). The display will continually update<br />

until an ESC key is pressed. The contents of the module will be erased after each<br />

read. If {mm} is not specified, all defined TDM's will be displayed.<br />

Page 18 Version 1.1 October 16, 2003

<strong>C80prox</strong> – <strong>Marklin</strong> <strong>Digital</strong> <strong>Control</strong> <strong>Program</strong> <strong>for</strong> PC’s<br />

Other Commands<br />

Most of these commands can be used in Terminal Mode or used when creating and<br />

running a sequence using the <strong>C80prox</strong> Editor.<br />

Sleep Function<br />

This command will sleep <strong>for</strong> the specified number of seconds. The general <strong>for</strong>mat of<br />

this command is:<br />

z {tt}<br />

p {tt}<br />

p w<br />

where {tt} is the number of seconds to sleep (1 to 99). When used in a layout<br />

sequence, the sleep command can be used to wait a few seconds be<strong>for</strong>e the next<br />

command is issued. The sleep function can be interrupted by pressing the ESC key.<br />

<strong>Control</strong> will then pass back to TERMINAL MODE. The 'p' command functions the<br />

same as the 'z' command except that {tt} defines the number of 1/10th second<br />

intervals to sleep. The 'pw' command will pause and wait <strong>for</strong> any key to be pressed<br />

be<strong>for</strong>e continuing.<br />

Goto Function<br />

This command is used to start a layout sequence from the specified label. The<br />

general <strong>for</strong>mat of this command is:<br />

g {ll}<br />

where {ll} is a valid label within the layout sequence. If {ll} is not specified in<br />

TERMINAL MODE, execution will start at the first statement in the sequence. While a<br />

sequence is running, there are two keys that can be pressed. These keys are<br />

• 'F10 - emergency stop'<br />

• 'ESC - quit to terminal mode'<br />

A statement label must be used as a argument to a 'g' command. Statement labels<br />

are defined by placing a ':' after a numeric label between 1 and 1000. An example of<br />

this style of branching is as follows:<br />

1: 10:<br />

2: ..<br />

3: ..<br />

4: ..<br />

5: g 10<br />

Branching Randomly Within a Sequence<br />

This command is used as a random multi-way goto function. The general <strong>for</strong>mat of<br />

this command is:<br />

g r {b}<br />

Page 19 Version 1.1 October 16, 2003

<strong>C80prox</strong> – <strong>Marklin</strong> <strong>Digital</strong> <strong>Control</strong> <strong>Program</strong> <strong>for</strong> PC’s<br />

where {b} is any value (1 to 99). Consider the following example:<br />

1: g r 3<br />

2: g 5<br />

3: g 15<br />

4: g 25<br />

When the above is executed, a random number will be generated between 1 and 3. A<br />

branch <strong>for</strong>ward by this random number of steps will be taken. The statements at<br />

these locations should be a 'g' command, as in the above example, but may be any<br />

other valid command.<br />

Go Forward or Backward with a Sequence<br />

Two instructions exist to allow relative jumping in a sequence. Their <strong>for</strong>mat is:<br />

g f {cc}<br />

g b {cc}<br />

where {cc} is the number of program steps to jump <strong>for</strong>ward, 'gf' command, or jump<br />

back, 'gb' command. ie:<br />

1: ! this is line 1 of a sequence<br />

2: g f 2<br />

3: ...<br />

4: l 80 g 8

<strong>C80prox</strong> – <strong>Marklin</strong> <strong>Digital</strong> <strong>Control</strong> <strong>Program</strong> <strong>for</strong> PC’s<br />

Commenting a Sequence<br />

This command is used to comment a sequence. Its general <strong>for</strong>mat is:<br />

! this is a comment and is ignored<br />

The '!' must be the first character on a line. The '*' character is a synonym <strong>for</strong> the<br />

'!' character.<br />

Quitting from a Sequence and from <strong>C80prox</strong><br />

This command is used to quit from a running sequence or to leave <strong>C80prox</strong> and<br />

return to DOS. The general <strong>for</strong>mat is:<br />

q, ex<br />

These commands are used in Terminal Mode to exit <strong>C80prox</strong>. Solenoid status' and<br />

routes are saved to external files. They are also used within a sequence to end that<br />

sequence, in which case control will pass back to TERMINAL MODE.<br />

Displaying available Sequences<br />

This command is used to display layout sequences on the current disk. The general<br />

<strong>for</strong>mat of this command is:<br />

di<br />

Loading a Sequence<br />

This command is used to load a layout sequence from disk. The general <strong>for</strong>mat of the<br />

command is:<br />

l<br />

A DOS filename is required to be entered at the 'filename' prompt. This filename<br />

must be a valid DOS filename. Layout sequences are denoted on a DOS 'dir' by<br />

having a extension of '.SEQ'. After the sequence has been loaded into memory, it<br />

may be changed via the <strong>C80prox</strong> editor or run by using the 'g' command.<br />

Entering the <strong>C80prox</strong> Editor<br />

This command is used to enter the <strong>C80prox</strong> editor. The general <strong>for</strong>mat of this<br />

command is as follows:<br />

e<br />

See <strong>C80prox</strong> editor <strong>for</strong> description of the editor commands.<br />

Help<br />

This command will return simplified help to the screen. The general <strong>for</strong>mat of this<br />

command is:<br />

Page 21 Version 1.1 October 16, 2003

<strong>C80prox</strong> – <strong>Marklin</strong> <strong>Digital</strong> <strong>Control</strong> <strong>Program</strong> <strong>for</strong> PC’s<br />

?<br />

To return to <strong>C80prox</strong> from any page of help, press the ESC key.<br />

Emergency Stop<br />

This command will toggle the operating environment from STOP to START or from<br />

START to STOP. The general <strong>for</strong>mat of this command is:<br />

F10 or \<br />

The new operating environment will be displayed. When in a STOP condition, the LED<br />

on the central unit will be extinguished. No commands can be sent to the interface<br />

until this condition is reversed. The '\' can be used in a sequence to generate an<br />

emergency stop.<br />

Direct <strong>Control</strong><br />

This command allows easy control of locomotives and solenoid devices. The general<br />

<strong>for</strong>mat of this command is:<br />

dc<br />

See DIRECT CONTROLLER section <strong>for</strong> 'dc' commands.<br />

Changing the Default Sequence Directory<br />

This command is used to change the default sequence directory that the sequence<br />

files are stored. Its general <strong>for</strong>mat is:<br />

cd<br />

The current DOS pathname <strong>for</strong> the sequence directory is displayed. A new pathname<br />

may be entered. If a [Enter] is pressed in response to the new pathname, no change<br />

is per<strong>for</strong>med.<br />

Page 22 Version 1.1 October 16, 2003

<strong>C80prox</strong> – <strong>Marklin</strong> <strong>Digital</strong> <strong>Control</strong> <strong>Program</strong> <strong>for</strong> PC’s<br />

<strong>C80prox</strong> Editor Command Set<br />

The following commands are supported in the <strong>C80prox</strong> editor. They are used to<br />

modify, add and delete lines in a layout sequence. On the left of the <strong>C80prox</strong> editor<br />

screen, the layout sequence will be displayed starting from line 1. <strong>C80prox</strong> editor<br />

commands will act upon the currently selected line which is highlighted. The <strong>C80prox</strong><br />

editor will display as many lines as possible on either side of the current line. The<br />

editor has 3 modes of operation identified by the , , <br />

prompts on the bottom status line. Commands may be entered in upper or lower<br />

case. If a mouse is connected to the computer, it can be used as a positioning tool<br />

within the editor and to access the standard pull down menus along the top of the<br />

screen.<br />

Selecting the Current Editor Line<br />

These keys are used to change the currently selected line. The general <strong>for</strong>mat of<br />

these commands are:<br />

Home Up<br />

End Dn, [Enter]<br />

g Pg Up<br />

Pg Dn<br />

When entered in mode, the current line is changed depending on the key<br />

used. The 'g' key will ask <strong>for</strong> the line number to select and position the pointer to<br />

that line. The 'Home' key will position the pointer to the top of the sequence and the<br />

'End' key will position the pointer to the end of the sequence. The 'Dn' and [Enter]<br />

keys will increment the pointer by 1, whilst the 'Up' key will decrement the line<br />

pointer by 1. The keys 'Pg Dn' and 'Pg Up' will increment and decrement the line<br />

pointer by 20 lines respectively. The right hand scroll bars can allow fast movement<br />

around the sequence by placing the mouse cursor over an appropriate part of the<br />

scroll bar and clicking the left button.<br />

Inserting New Lines<br />

The general <strong>for</strong>mat of the insert command is:<br />

Ins<br />

The <strong>C80prox</strong> editor will change into mode. New commands will be entered<br />

after the currently selected line. <strong>C80prox</strong> editor mode is exited by typing a<br />

single [Enter] on a new line.<br />

Deleting a Line<br />

The general <strong>for</strong>mat of the delete command is:<br />

Del, Y<br />

The currently selected line will be deleted. All following lines will be shuffled upwards.<br />

The Y is used to be compatible with some PC based word processors.<br />

Page 23 Version 1.1 October 16, 2003

<strong>C80prox</strong> – <strong>Marklin</strong> <strong>Digital</strong> <strong>Control</strong> <strong>Program</strong> <strong>for</strong> PC’s<br />

Replacing a Line<br />

The general <strong>for</strong>mat of the replace command is:<br />

r<br />

When selected, mode is entered. The currently selected line can be<br />

replaced with the new command. If a [Enter] is entered as the new command, no<br />

replacement takes place.<br />

Clearing Sequence Memory<br />

The general <strong>for</strong>mat of this command is:<br />

n<br />

It is used to clear the sequence memory. There will be no lines left in the sequence.<br />

A warning will be given be<strong>for</strong>e the sequence will be cleared.<br />

Leaving the <strong>C80prox</strong> Editor.<br />

The general <strong>for</strong>mat of this command is:<br />

ESC<br />

This command is used to leave EDIT mode to return to TERMINAL MODE. If the<br />

current sequence has not been saved to a disk file, you will be warned that it has not<br />

been saved.<br />

<strong>C80prox</strong> Editor Help.<br />

This command will display EDITOR specific help. Its <strong>for</strong>mat is:<br />

?<br />

Help is also available by clicking the left mouse button on the Help heading found<br />

on the pull down menu bar at the top of the screen.<br />

Saving and Loading a Layout Sequence<br />

Sequences can be saved to an external DOS file or loaded from a DOS file by using<br />

the following commands.<br />

a<br />

s<br />

l<br />

The 's' command will per<strong>for</strong>m a immediate write to the filename shown on the status<br />

line. The 'a' command will write the file to a specified filename. This filename must<br />

be a valid DOS filename. The 'l' command is used to load a previous saved layout<br />

sequence from disk.<br />

Page 24 Version 1.1 October 16, 2003

<strong>C80prox</strong> – <strong>Marklin</strong> <strong>Digital</strong> <strong>Control</strong> <strong>Program</strong> <strong>for</strong> PC’s<br />

The 'n', 'a', 's', 'l' and 'esc' can also be found on the pull down menu bar under the<br />

File heading. This is accessed either by click the left mouse button on the File menu<br />

or by using the ALT + F key sequence.<br />

Printing a Sequence to a Printer<br />

A sequence can be printer by selecting the print command from the 'File' pull down<br />

menu bar , or by using the 'p' print command. A range of sequence line numbers<br />

can be given so partial printing of the sequence is possible.<br />

Finding Text within a Sequence<br />

To find a specified string of characters within a sequence, the following commands<br />

are used.<br />

'f'<br />

'e'<br />

The 'f' command with search <strong>for</strong> a specified string, that must be entered, whilst the<br />

'e' command will repeat the last search.<br />

The 'f' and 'e' can also be found on the pull down menu bar under the 'Search'<br />

heading. This is accessed either by clicking the left mouse button on the Search<br />

menu or by using the ALT + S key sequence.<br />

Page 25 Version 1.1 October 16, 2003

<strong>C80prox</strong> – <strong>Marklin</strong> <strong>Digital</strong> <strong>Control</strong> <strong>Program</strong> <strong>for</strong> PC’s<br />

Direct <strong>Control</strong>ler<br />

Direct <strong>Control</strong>ler is entered by using the 'dc' command from TERMINAL MODE. Direct<br />

control allows single character commands to be entered to control all aspects of the<br />

<strong>Marklin</strong> digital system. A mouse can be used as an alternative to all commands,<br />

however, some commands can only be accessed by the use of the mouse. This<br />

requires the positioning of the mouse cursor over a selected part of the screen and<br />

pressing the left mouse button.<br />

Shown below is the screen that is displayed when you enter direct controller.<br />

Fig 8. <strong>C80prox</strong> Direct Mode Screen<br />

Available direct control commands can be categorised into 3 major groups:<br />

• Locomotive <strong>Control</strong> Commands (bottom portion of screen)<br />

• Solenoid <strong>Control</strong> Commands (Turnouts/Signals and Uncouplers, top portion<br />

of screen)<br />

• General Commands. (bottom command line and embedded control buttons)<br />

Locomotive Commands<br />

Commands <strong>for</strong> Locomotives are per<strong>for</strong>med on the currently displayed locomotive in<br />

the Locomotive Status Window.<br />

Reversing Locomotives.<br />

Page 26 Version 1.1 October 16, 2003

<strong>C80prox</strong> – <strong>Marklin</strong> <strong>Digital</strong> <strong>Control</strong> <strong>Program</strong> <strong>for</strong> PC’s<br />

A locomotive may be reversed by clicking the mouse on the < Reverse Locomotive ><br />

Button. The Button will change colour whilst the locomotive is being reversed.<br />

Keyboard Command is ‘r’.<br />

Stopping Locomotives.<br />

Locomotives may be stopped by clicking the mouse on the [ STOP ] button that is<br />

positioned just to the right of the locomotive speed bar or by click on the first speed<br />

bar indent. Keyboard Command is ‘s’.<br />

Auxiliary Functions.<br />

Auxiliary functions may be turned on or off by clicking the mouse on the < Auxiliary<br />

Function > button or the [ ] Main check box. The current status of the auxiliary<br />

function is reversed. If the function has been enabled, the [ ] Main check box will be<br />

checked. The four additional functions found on some decoders may be toggled by<br />

clicking the mouse on the [ ] f1, [ ] f2, [ ] f3 or [ ] f4 check boxes. These check<br />

boxes will be checked if the appropriate function is enabled. Keyboard commands are<br />

‘f’ <strong>for</strong> main function and ‘ to ‘ <strong>for</strong> the additional functions.<br />

Increasing and Decreasing Locomotive Speed.<br />

The currently displayed locomotives speed may be varied by clicking the mouse on<br />

the left or right hand arrow that is positioned next to the locomotive speed bar. The<br />

speed of the locomotive will be decreased or increased in steps of 1. The speed bar<br />

has 15 distinct settings (0 to 14) and an immediate change of speed may be made<br />

by clicking on the appropriate position on the speed bar, noting however, that there<br />

will be no automatic acceleration or deceleration of the locomotive using its stored<br />

inertia values. If the locomotive maximum speed is reached, it current speed will<br />

flash. Keyboard commands are: ‘+’ or ‘=‘ to increase the speed by 1, ‘-’ or ‘_’ to<br />

decrease the speed by 1.<br />

Selecting a Different Locomotive Number.<br />

There are many methods to select the default locomotive. By clicking on the<br />

Locomotive Description field of the Locomotive Status window a selection box of<br />

locomotives will be displayed. Using the mouse, you may transverse the displayed<br />

locomotives until the correct number is found. The mouse can be used to select or<br />

cancel from this operation. Keyboard commands are: ‘n’ to display the selection box<br />

and TAB, arrow keys to transverse the selection box.<br />

Locomotives can also be selected by using the scroll bar on the left side of the<br />

Functions Box. By using the mouse, you can move up or down in the list of<br />

locomotives. The up or down arrow will navigate to the next or previous locomotive<br />

in the list. Keyboard commands are Up Arrow or Down Arrow.<br />

Below the < Reverse Locomotive > button is displayed six buttons depicting the last<br />

six locomotives that have been accessed by direct controller. By clicking the mouse<br />

on any of these buttons, the selected locomotive will become the active locomotive.<br />

If there are less than six locomotives defined, then some of these buttons will not be<br />

activated. There is no keyboard commands that allow access to these locomotives.<br />

Page 27 Version 1.1 October 16, 2003

<strong>C80prox</strong> – <strong>Marklin</strong> <strong>Digital</strong> <strong>Control</strong> <strong>Program</strong> <strong>for</strong> PC’s<br />

Locomotives can also be selected by name. The < Search > and < aGain> buttons<br />

are used to located a string of characters within the locomotive data base. The <<br />

Search > button will display a dialogue box requesting the character string to search<br />

<strong>for</strong>, whilst the < aGain> button will per<strong>for</strong>m the locate using the last used search<br />

string. If there is no last search string, the < aGain > button will behave the same as<br />

the < Search > button. Keyboard commands are: ALT + S <strong>for</strong> searching and ALT +<br />

G <strong>for</strong> per<strong>for</strong>ming the search again.<br />

Locomotive Status<br />

A complete list of locomotive status’s can be displayed by clicking on the View<br />

Locos button on the bottom line of the display. This will display the identical<br />

in<strong>for</strong>mation as the ‘ls’ command that can be issued from terminal mode.<br />

Solenoid Commands<br />

Commands <strong>for</strong> Solenoid Devices are per<strong>for</strong>med on the group of 128 addresses that<br />

are shown in the Solenoid status screen of the Direct <strong>Control</strong>ler.<br />

Changing Solenoid Status<br />

To toggle any displayed solenoid address from red to green or from green to red,<br />

position the mouse cursor over the required solenoid address in the top half of the<br />

screen (1 to 128, 129 to 256) and click the mouse.<br />

The displayed solenoid addresses in the 'dc' window may also be changed by either<br />

pressing the keyboard keys 1 to 0 or by clicking the mouse when the mouse cursor<br />

is positioned over the required solenoid address.<br />

The Left and Right keys are used to select the next or previous 10 solenoid<br />

devices. The mouse can emulate these keys by positioning the mouse cursor over<br />

the appropriate arrows that are positioned near to this display.<br />

Selecting more than 128 solenoid devices.<br />

To select a different range of solenoid addresses, either use the keyboard and type<br />

ALT + M or position the mouse cursor over < More > button and click the mouse.<br />

This command will toggle the display between 1 - 128 and 129 - 256.<br />

Solenoid Routes<br />

Solenoid routes are used in direct mode by pressing 'x' or by positioning and<br />

clicking the mouse over 'eXecute' on the status line. This displays a list of available<br />

routes. This list is navigated by either pressing the Up and Down arrow keys and<br />

pressing [Enter] when the correct route is displayed. The ESC key is used to exit<br />

this display if no action is required. The route can also be run by positioning and<br />

clicking the mouse cursor on the required route. The mouse can also be used to ESC<br />

from the list by clicking on < Cancel >. Additional pages are displayed by clicking on<br />

< PgUp > or < PgDn >.<br />

Leaving Direct <strong>Control</strong>ler<br />

To leave Direct <strong>Control</strong>ler use the close down button located at the top left hand side<br />

Page 28 Version 1.1 October 16, 2003

<strong>C80prox</strong> – <strong>Marklin</strong> <strong>Digital</strong> <strong>Control</strong> <strong>Program</strong> <strong>for</strong> PC’s<br />

of the screen ie: [*]. The equivalent keyboard command is the ESC key.<br />

Direct <strong>Control</strong>ler Help<br />

Help may be obtained at anytime by selecting the help ? button on the bottom<br />

status line. The equivalent keyboard command is the ‘?’ key.<br />

Processing Terminal Commands<br />

Most terminal commands can be processed by selecting the Terminal button on the<br />

bottom status line. A dialogue box will be displayed so a valid terminal command can<br />

be entered and processed. Keyboard equivalent is the ‘t’ key.<br />

Redrawing the Direct <strong>Control</strong>ler Screen<br />

If the direct controller screen becomes corrupted, it may be redrawn by clicking on<br />

the very top line of the screen. The keyboard equivalent is the ‘u’ key.<br />

Displaying Flag Status<br />

Flags and registers can be displayed by clicking on the flaGs button of the bottom<br />

status line. The keyboard equivalent is the ‘g’ key. See the ‘fs’ command.<br />

Displaying Track Detector Modules.<br />

The current status of all train detector modules can be obtained by clicking on tDms<br />

on the bottom status line or by using the keyboard command ‘d’. See the ‘dm’<br />

command.<br />

Reinitialising a 6023 <strong>Control</strong>ler<br />

To attempt to reinitialise a 6023 controller, click on the < Reset > button that is<br />

found in the Commands portion of the Locomotive Status screen. The keyboard<br />

equivalent of this command is the ‘I’ key. This button will only be displayed and the<br />

‘I’ command is only valid if a 6023 controller has been defined in setpro.<br />

Emergency Stop<br />

A emergency stop is accessed 3 ways. By pressing the '\' or 'F10' function key or by<br />

clicking the mouse on the [*] button found at the top of the locomotive area.<br />

Page 29 Version 1.1 October 16, 2003

<strong>C80prox</strong> – <strong>Marklin</strong> <strong>Digital</strong> <strong>Control</strong> <strong>Program</strong> <strong>for</strong> PC’s<br />

Advanced Topics<br />

Registers<br />

<strong>C80prox</strong> contains 60 arithmetic registers set up as 20 groups, (0 to 19). Each group<br />

of registers contain a 'a' and 'b'. Only 1 register pair can be active at a time. This<br />

register pair is pointed to by the register pointer. Both registers can be loaded with<br />

data, incremented, decremented and tested using the flags as previously described.<br />

a {r} = {v}<br />

b {r} = {v}<br />

These 2 commands will stored the required data {v} into the register {r}. Each<br />

command does not affect the other register in the group. The register pointer is<br />

changed to register pair {r}, and these registers become the currently active group.<br />

a {r} + {v}<br />

b {r} + {v}<br />

a {r} - {v}<br />

b {r} - {v}<br />

These commands will increment {+} or decrement {-} register {r} by a value {v}.<br />

Each command does not affect the other register in the group. The register pointer is<br />

changed to register group {r} and these registers become the currently select active<br />

group. The register number {r} must be specified, but if {v} is not, 1 is assumed.<br />

r = {r}<br />

This command will change the register pointer to {r}. Register pairs {r} will then<br />

become the currently active pair. Note: Flags 17 and 18, as discussed above, will<br />

always reflect the currently active register pair. The range of values that can be<br />

stored in registers is from 0 to 999.<br />

Flags<br />

<strong>C80prox</strong> has 100 semaphore flags (20 system, 80 user). These flags are either set<br />

'1' or not set '0'. <strong>C80prox</strong> contains specific instructions on setting, resetting,<br />

toggling and testing these flags. i.e.:<br />

Command Example Meaning<br />

s f 67 set flag 67 (make flag 67 a '1')<br />

r f 89 reset flag 67 (make flag 89 a '0')<br />

t f 76 toggle current status of flag 76<br />

c 32 f 34 copy flag 32 to flag 34<br />

t 99 g 12 test flag 99 and if set goto label 12 in the current sequence<br />

t 99 s 13 test flag 99 and if set gosub to label 13 in the current<br />

sequence<br />

n 99 g 12 test flag 99 and if NOT set goto label 12 in the current<br />

sequence<br />

n 99 s 13 test flag 99 and if NOT set gosub to label 13 in the current<br />

sequence<br />

fs display the current setting of all flags<br />

Page 30 Version 1.1 October 16, 2003

<strong>C80prox</strong> – <strong>Marklin</strong> <strong>Digital</strong> <strong>Control</strong> <strong>Program</strong> <strong>for</strong> PC’s<br />

System Flags<br />

Contained within these 100 flags, the first twenty, 0 to 19, should not be used <strong>for</strong><br />

setting, resetting, toggling or being copied to. They can however be copied and<br />

tested, using the 'cf' and 'tg' commands.<br />

Flag Meaning<br />

0 Set if error condition was detected on the last S88 read<br />

1 – 16 Result of Last S88 read. If Flag 0 set, then these settings maybe in<br />

error.<br />

17 Set if the currently active a & b register set are NOT equal<br />

18 Set if the currently active a register is NOT zero<br />

19 Set if the last clear S88 module command detected that at least 1<br />

contact is still active<br />

Indirect Flag<br />

A special indirect flag 100 is used to indirectly access any of the other flags (0 to<br />

99). The contents of the currently active 'a' register is used as the actual flag<br />

number. ie: if the currently active 'a' register contains the value 42, then the<br />

following commands are equivalent:<br />

s f 100<br />

s f 42<br />

Multiple Heading of Locomotives<br />

<strong>C80prox</strong> allows the definition of up to 200 locomotive consists. Each logical<br />

locomotive number (1 to 200) can be assigned up to 4 different physical digital<br />

addresses. When controlling this logical locomotive, all associated digital addresses<br />

will be addressed and classified into one unit. For example: Logical Locomotive #137<br />

has the three physical digital addresses, 17, 18 and 19 set.<br />

Locomotive Number Addr1 Addr2 Addr3 Addr4<br />

137 17 18 19<br />

Locomotive 137 has been set up as a triple header consist. <strong>Digital</strong> addresses 17, 18<br />

and 19 have been linked together. When <strong>C80prox</strong> controls locomotive #137, then<br />

the physical locomotives 17, 18 and 19, will act accordingly.<br />

Other logical locomotives can still be defined using the address 17, 18 or 19, either<br />

as single, double or quad heading consists. Individual digital addresses may be<br />

defined in any number of logical locomotives.<br />

You set up single/double/triple or quad header locomotives by using the c80prox set<br />

up program ‘SetPro’. Redefinition’s can be made from within <strong>C80prox</strong> or sequence.<br />

There are 8 commands to define or redefine multiple header locomotives.<br />

m {l} a {a} i<br />

m {l} b {a} i<br />

Page 31 Version 1.1 October 16, 2003

<strong>C80prox</strong> – <strong>Marklin</strong> <strong>Digital</strong> <strong>Control</strong> <strong>Program</strong> <strong>for</strong> PC’s<br />

m {l} c {a} i<br />

m {l} d {a} i<br />

where {l} is the logical locomotive (1 to 200) and {a} is the digital address (0 to<br />

80). If the digital address of 0 is used, the requested address is deleted. The ‘i’<br />

command is used the insert a new locomotive digital address into the list and should<br />

only be used when inserting. Examples:<br />

Using Logical Locomotive #137. It is currently defines as having addresses 18, 19<br />

and 20 attached to it.<br />

Command Loco #1 (a) Loco #2 (b Loco #3 (c Loco #4 (d<br />

Initial Setting 18 19 20<br />

M137c17 18 19 17<br />

M137b0 18 17<br />

M137b19i 18 19 17<br />

M137a20i 20 18 19 17<br />

Other special Locomotive Address<br />

<strong>C80prox</strong> will always remember which locomotive that was last used by it. If<br />

locomotive number of '0' is used, then this last used locomotive number will be<br />

controlled. The 'ls' command will highlight which of the defined locomotives is the<br />

last locomotive used.<br />

l17g8<br />

l0g14<br />

In this example. locomotive 17 will be started to speed 8, then speed 14. Note: The<br />

numeral '0' does not need to be specified. In any locomotive command, if the<br />

locomotive number is omitted, then '0' will be used.<br />

Indirect Solenoid Address<br />

<strong>C80prox</strong> allows the use of indirect solenoid device addresses. The solenoid number<br />

that will be controlled is defined by the currently active 'a' register. When the 'a'<br />

register is loaded with the solenoid number, solenoid address '257' is used to control<br />

this defined solenoid. ie:<br />

a6=13<br />

m257g<br />

In this example, solenoid 13 will be set to a green condition.<br />

Transmitting Data Direct to Interface<br />

<strong>C80prox</strong> allows the user to send specific commands to the digital interface. A<br />

complete understanding of the programming of the digital interface is required to<br />

effectively use this command. Be warned that certain sequences of this command<br />

can cause damage to certain digital components. It should be used with extreme<br />

caution. It is used in very advanced programming techniques. The command is the<br />

Page 32 Version 1.1 October 16, 2003

<strong>C80prox</strong> – <strong>Marklin</strong> <strong>Digital</strong> <strong>Control</strong> <strong>Program</strong> <strong>for</strong> PC’s<br />

'tx' command and is used as follows:<br />

tx {aaa}<br />

where {aaa} is the decimal character that is to be sent to the digital interface. ie:<br />

tx 186<br />

will transmit character 186 to the digital system interface.<br />

Further Decision Making Instruction<br />

The following command can be used to make decisions based on the contents of the<br />

currently selected register pair. The general <strong>for</strong>mat is:<br />

ds<br />

This instruction will decrement the currently selected A register, then if the A register<br />

is non zero proceed to the next instruction in the sequence. If after the register is<br />

decremented the result is zero, the next instruction is skipped, the sequence passing<br />

to the current line + 2. ie:<br />

10:<br />

a3=3<br />

ds<br />

g 10<br />

q<br />

In this example, the loop 10: --> g 10 will be per<strong>for</strong>med 3 times.<br />

Advanced Reading of TDM's<br />

An instruction exists that allows the reading of all defined s88 TDM's. Special flags<br />

have been incorporated into the <strong>C80prox</strong> program. These flags are numbered 1001<br />

to 1496. They represent the 496 possible contacts that can be connected to the<br />

<strong>Marklin</strong> digital system. The general <strong>for</strong>mat of this command is:<br />

rm0<br />

When the 'rm0' command is issued, all defined s88 modules (See set up<br />

procedures), will download their contents. The current status of any of the defined<br />

contacts can be tested using the semaphore flag instruction 'tg' as discussed at the<br />

beginning of this advanced section. The possible flag range there<strong>for</strong>e <strong>for</strong> the 'tg'<br />

command is expanded to include flags 1001 to 1496.<br />

Alternate Configuration File<br />

An alternate configuration file can be used by selecting the "/c:" switch on the<br />

command line when <strong>C80prox</strong> or Setpro is invoked:<br />

ie: C:\TRAIN>c80prox /c:myconfg<br />

C:\TRAIN>setpro /c:myconfg<br />

Page 33 Version 1.1 October 16, 2003

<strong>C80prox</strong> – <strong>Marklin</strong> <strong>Digital</strong> <strong>Control</strong> <strong>Program</strong> <strong>for</strong> PC’s<br />

will invoke c80prox or setpro using the configuration found in myconfg file. The "/c:"<br />

switch must be the last item on the command line. The setpro program also uses this<br />

switch to build and edit this alternate configuration. If the "/c:" switch is not<br />

specified, c80prox and setpro will default to the standard configuration file, "c80pro".<br />

The DOS extension of ".INI" does not need to be entered.<br />

Locomotive Speed Mapping<br />

The <strong>Marklin</strong> Motorola <strong>Digital</strong> System defines 15 physical speed settings, 0 to 14.<br />

<strong>C80prox</strong> gives you the ability to modify the speed settings <strong>for</strong> locomotives when<br />

under computer control. By editing the DOS file ‘c80speed.ini’ in the main <strong>C80prox</strong><br />

directory this can be achieved. The <strong>for</strong>mat of this file is as follows:<br />

Addr1,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14<br />

Addr2,s1,s2,s3,s4,s5,s6,s7,s8,s9,s19,s11,s12,s13,s14<br />

Each line in the ‘c80speed.ini’ file MUST contain exactly 15 entries. The first entry is<br />

the <strong>Digital</strong> Address of the locomotive and the remaining 14 entries define the speed<br />

mapping <strong>for</strong> that address. You cannot map speed 0. Example<br />

Line 1: 63,3,3,3,4,5,6,7,8,9,10,11,12,12,12<br />

Here locomotive address 63 will have the following speed map:<br />

0 = 0, 1= 3, 2 = 3, 3 = 3, 4 = 4, 5 = 5, 6 =6, 7 = 7, 8 = 8, 9 = 9, 10 = 10, 11 =<br />

11, 12 = 12, 13 = 12<br />

and 14 = 12.<br />

Page 34 Version 1.1 October 16, 2003

<strong>C80prox</strong> – <strong>Marklin</strong> <strong>Digital</strong> <strong>Control</strong> <strong>Program</strong> <strong>for</strong> PC’s<br />

Appendix A<br />

<strong>Marklin</strong> Part No. 4999 <strong>Digital</strong> Vista Dome Car with Functions<br />

The digital vista dome car is equipped with a permanent built-in function module. It<br />

can be operated from the <strong>C80prox</strong> program using the address "10", with the "fc"<br />

command. The following function can be switched by remote control.<br />

Function Meaning<br />

F1 Waiter moves <strong>for</strong>ward<br />

F2 Waiter moves in reverse<br />

F3 Turn table lamps on/off<br />

F4 Turn compartment ceiling lights on/off<br />

These functions can be activated either when the car is moving or standing still, as<br />

long as it is being operated on the <strong>Digital</strong> system.<br />

<strong>Marklin</strong> Part No. 4998 <strong>Digital</strong> Dance Car with Functions<br />

The digital dance car is equipped with a permanent built-in function module. It can<br />

be operated from the <strong>C80prox</strong> program using the address "20", with the "fc"<br />

command. The following function can be switched by remote control.<br />

Function Meaning<br />

F1 Turn ceiling lights on/off<br />

F2 Couples start/stop to whirl around the dance floor<br />

F3 Start/Stop Music<br />

Latin Rock<br />

Boogie<br />

Tango<br />

Tales from the Vienna Woods (Waltz)<br />

Rock ‘n’ Roll<br />

Aura Lee<br />

F4 Select next piece of music<br />

These functions can be activated either when the car is moving or standing still, as<br />

long as it is being operated on the <strong>Digital</strong> system.<br />

Page 35 Version 1.1 October 16, 2003

<strong>C80prox</strong> – <strong>Marklin</strong> <strong>Digital</strong> <strong>Control</strong> <strong>Program</strong> <strong>for</strong> PC’s<br />

Appendix B<br />

Cabling Requirements <strong>for</strong> use with <strong>C80prox</strong><br />

The following cable should be constructed to connect the IBM PC or compatible<br />

system with the digital computer interface.<br />

605x DIN Signal Name IBM DB 9F IBM DB 25F<br />

1 Receive Data 3 2<br />

2 Not Used<br />

3 Ground/Common 5 7<br />

4 Transmit Data 2 3<br />

5 Ready/Busy 8 5<br />

There are 4 encoding switches on the rear of the Interface. These must be set <strong>for</strong><br />

correct use with a IBM PC or compatible. Switches 1 & 2 are up and Switches 3 & 4<br />

are down.<br />

Page 36 Version 1.1 October 16, 2003

<strong>C80prox</strong> – <strong>Marklin</strong> <strong>Digital</strong> <strong>Control</strong> <strong>Program</strong> <strong>for</strong> PC’s<br />

Appendix C<br />

Sequence Command Summary<br />

Locomotive Commands<br />

Command Desciption<br />

l g <strong>Control</strong><br />

l a Accelerate<br />

l b Brake<br />

r Reverse<br />

s Stop<br />

f e Auxiliary Function Enable<br />

f d Auxiliary Fucntion Disable<br />

f c Operate Function Carriages<br />

s m Set maximum speed<br />

s a Set acceleration inertia<br />

s b Set braking inertia<br />

m a Build a Multi Header Loco<br />

m b Build a Multi Header Loco<br />

m c Build a Multi Header Loco<br />

m d Build a Multi Header Loco<br />

Solenoid <strong>Control</strong>s<br />

Command Description<br />

m Toggle Solenoid<br />

m g Force solenoid to green<br />

m r Force solenoid to red<br />

x Execute Solenoid Macro<br />

Train Detectors<br />

Command Description<br />

r k Wait <strong>for</strong> train detected<br />

k Wait <strong>for</strong> train detected<br />

r w Wait <strong>for</strong> train NOT detected<br />

w Wait <strong>for</strong> train NOT detected<br />

r m Read and store s88 module<br />

c m Clear a s88 module<br />

Page 37 Version 1.1 October 16, 2003

<strong>C80prox</strong> – <strong>Marklin</strong> <strong>Digital</strong> <strong>Control</strong> <strong>Program</strong> <strong>for</strong> PC’s<br />

Other Commands<br />

Command Description<br />

z Sleep<br />

p Sleep<br />

p w Wait <strong>for</strong> key press<br />

g Goto<br />

g r Goto Random<br />

g f Go <strong>for</strong>ward<br />

g b Go back<br />

g d Go direct to statement line<br />

g s Go subroutine<br />

r t Return from subroutine<br />

! Comment<br />

q Quit sequence<br />

a = Set A register<br />

b = Set B register<br />

a + Increment A register<br />

a - Decrement A register<br />

b + Increment B register<br />

b - Decrement B register<br />

r = Change register pair<br />

s f Set flag<br />

r f Reset flag<br />

t f Toggle flag<br />

t g Test flag and goto Label<br />

t s Test flag and go subroutine<br />

n g Test flag and if NOT set goto Label<br />

n s Test flag and if NOT set go subroutine<br />

t x Transmit directly to interface<br />

d s Decrement A register and skip if not zero<br />

Page 38 Version 1.1 October 16, 2003

<strong>C80prox</strong> – <strong>Marklin</strong> <strong>Digital</strong> <strong>Control</strong> <strong>Program</strong> <strong>for</strong> PC’s<br />

Version <strong>Control</strong><br />

Date Version Author Description<br />

8 th September 2003 1.0 Peter Worboys Initial Word Document Version<br />

16 th October 2003 1.1 Peter Worboys PDF Version and minor typographical errors corrected<br />

Page 39 Version 1.1 October 16, 2003

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!