Hier een stukje programmacode in Clipper.
Alle commando’s enz staan in een Do While lus.
S is de start toets.
Bij E50 = 1 en iets verder Loc_E50 = 1 gaat de E50 rijden.
E50 = 1 wordt opgehoogd met 1 en heeft dan de waarde 2 totdat de E50 over Reedcontact 13 rijdt,
Dan wordt E50 = 2 opgehoogd met 1 enz.
Het programma weet dan dus ook precies waar de trein rijdt.
*Start
Do While .T.
keuze = inkey()
if keuze = 27
exit
endif
if keuze = 115 && (S) Start
Ronde = 1
E50 = 1
E94 = 11
E103 = 11
Stap_Licht = 0
@ 18,52 say " "
@ 19,54 say " "
Loop = 0
Loop1 = 0
Meting = time()
Snelh1 = Secs(time())
endif
if E50 = 1 && Spoor 9 naar 23
E50 = E50 + 1
Stap9u = 0
Spoor9u = 1 && Spoor 9
Stap_E50 = 0
Loc_E50 = 1 && Rijden
Spoor_E50 = 9
endif
if E50 = 2 .AND. Reed [13] = 1
Command_5 = "Reed 13 "
Reed [13] = 0
E50 = E50 + 1
r = saystring(1256,552,4,0,1,"w") && Rood Sein 9
endif
if E50 = 3 .AND. Reed [19] = 1
Command_5 = "Reed 19 "
Reed [19] = 0
E50 = E50 + 1
Stap1911 = 0
Spoor1911 = 1 && Reed 19 Via Reed 11
V200 = 1 && Rij
endif
Do trein
Do wissel
Do reedcontact
enz.
EndDo
Bij de routine "Do trein" gaat de trein rijden d.m.v. het commando XLok (P50X)
Trein
If Spoor_E50 = 9
Snelh_E50 = 25
Endif
Locdata [3] = 50 && E50
Locdata [5] = Snelh_E50
Richting [1] = 1 && Voorruit
F0 = Licht && Licht Aan of uit
F1 = 0 && Licht Dimmen Aan of uit
F2 = 0
F4 = Licht && Binnenverlichting Aan of uit
Data1 = Loc(Hex(Locdata [3]),Locdata[5],Locdata[6]) && Data inlezen (Loc,Speed,Data6)
Command_5 = " "
Loc(Hex(Locdata [3]),Locdata[5],Locdata[6])
Deze functie springt naar de assembly routine XLok