Listing 5 1 : C o m p u t e r g e s t e u e r t e r Modellbahnhof
Adresse
M n e m o n i c s
001
A K O 000
002
A B S 127
003
A B S 100
004
A D D 106
005
A D D 107
006
A D D 108
007
A D D 109
008
A B S 105
A N Z
009
010
A K O 001
011
A B S 101
012
A B S 120
013
A D D 120
014
A B S 121
i 015
A D D 121
016
A B S 122
017
A D D 122
018
A B S 123
019
A D D 123
020
A B S 124
021
A K O 004
022
V G L 105
023
SPB 077 (A6)
024
A 1 : P1E000
025
V G L 116
026
SPB 024 (A1)
027
A B S 102
028
LDA 116
029
SUB 102
030
A B S 103
031
V Z G 250
032
V Z G 250
033
A K O 000
034
A2: A B S 104
035
A K O 120
036
A D D 104
037
A B S 126
038
LIA 126
V G L 103
039
040
SPB 044 (A3)
041
A K O 001
A D D 104
042
SPU 034 (A2)
043
044
A3: L D A 104
V G L 100
045
046
SPB 068 (A4)
047
A D D 117
Fortsetzung siehe nächste Seite
128
C o d e
K o m m e n t a r
04.000
lade „ 0 "
06.127
speichere als Signalzustand ( o f f e n ) . . .
u n d als Vergleichszahl
06.100
07.106
b e r e c h n e die Zugzahl d u r c h Addition aller „ 1 " in d e n
07.107
07.108
Speicherzellen für die Einzelgleise 1 0 6 - 109
07.109
06.105
speichere die Gesamtzahl in 1 0 5 . . .
02.000
und zeige sie an
04.001
lade „ 1 " . . .
06.101
und speichere als Schrittweite u n d V e r g l e i c h s z a h l . . .
a u c h f ü r das Kontaktgleis K0 (Einfahrtsgleis)
06.120
verdopple auf „ 2 " . . .
07.120
06.121
als Vergleichszahl für Kontaktgleis K1
07.121
verdopple auf „ 4 " . . .
06.122
als Vergleichszahl f ü r Kontaktgleis K2
07.122
verdopple auf „ 8 " • • •
06.123
als Vergleichszahl für Kontaktgleis K3
07.123
verdopple auf „ 1 6 " . . .
06.124
als Vergleichszahl für Kontaktgleis K4
04.004
lade „ 4 " als maximale Zugzahl in Bahnhof
ist die berechnete Zugzahl gleich der „ 4 " ?
10.105
11.077
falls ja, springe zur Blockierung
S t e u e r u n g s a n f a n g :
16.000
lies Port 1 (Kontaktgleiszustände) in d e n A k k u
10.116
ist er „ 2 5 5 " , also kein Kontakt geschlossen?
11.024
falls ja, weiter warten bei 024
06.102
sonst speichere d e n Wert kurz
05.116
lade „ 2 5 5 " . . .
08.102
u n d subtrahiere das Gespeicherte davon
06.103
speichere es als Kontaktgleis-Eingabe
03.250
warte eine halbe Sekunde
03.250
zur Entprellung der Kontakte
04.000
lade „ 0 " für das Einfahrtsgleis K0
06.104
speichere sie als Kontaktnummer
04.120
lade „ 1 2 0 " als d e n Beginn des Vergleichsdatenbereichs
der Kontakte
07.104
addiere die zu testende Gleisnummer dazu . . .
06.126
u n d speichere dies als indirekte Adresse
19.126
lade s o die Vergleichszahl für das Gleis
10.103
ist die Kontaktgleis-Eingabe gleich?
11.044
falls ja, ist der richtige Kontakt gefunden
04.001
sonst lade „ 1 " . . .
07.104
und e r h ö h e so die K o n t a k t n u m m e r in 104
09.034
springe zurück z u m Speichern u n d Testen
A u s w e r t u n g d e s K o n t a k t e s :
05.104
g e f u n d e n ! Lade die Kontaktnummer, w o der Kontakt
stattfand
10.100
ist es „ 0 " , also K0, w o der Kontakt erfolgte?
11.068
falls ja, s u c h e ein freies Gleis (bei 068)
07.117
sonst addiere „ 1 0 5 " zur Kontaktnummer