-> Hier kostenlos registrieren
Hallo Leute!
Es ist Freitag und ich stehe im Moment ein wenig auf dem Schlauch.
Ich möchte in der 315 CPU Daten von einem DB in einen 2. übertragen.
Es sind 10 Speicherstellen und ich habe mir gedacht ich mache das mit inderekter Programmierung.
Also ein Zähler zählt von 9 bis 0 und bei jedem Schritt wird ein Block übertragen. Das Problem ist da die Speicherbereiche nicht im selben Abstand in den DBs liegen brauche ich 2 Adressregister.
So sieht das dann aus:
L #Zaehler_Fe
L 128 // 8 x 16 Byte für Offset
*I
LAR1
L #Zaehler_Fe
L 32 // 8 x 4 Byte für Offset
*I
LAR2
// Fehlernummer aus DB252 in DB421
AUF "DB-Anzeige"
L DBW [AR1,P#0.0]
AUF "DB Daten SWE"
T DBW [AR2,P#38.0]
// Stunden und Minuten aus DB252 in DB421
AUF "DB-Anzeige"
L DBW [AR1,P#11.0]
AUF "DB Daten SWE"
T DBW [AR2,P#40.0]
L #Zaehler_Fe
L 0
<=I
SPBN NW11
L 10
T #Zaehler_Fe
NW11: NOP 0
L #Zaehler_Fe
L 1
-I
T #Zaehler_Fe
Nur sobald ich den Befehl "LAR2" benutze geht die CPU mit Bereichslängenfehler in STOP. Wenn ich Testweise 2mal den Befehl "LAR1" ausführe läuft Sie durch, nur ich komme nicht zu meinem Ergebnis. Vielleicht hat ja jemand eine Idee.
Es ist Freitag und ich stehe im Moment ein wenig auf dem Schlauch.
Ich möchte in der 315 CPU Daten von einem DB in einen 2. übertragen.
Es sind 10 Speicherstellen und ich habe mir gedacht ich mache das mit inderekter Programmierung.
Also ein Zähler zählt von 9 bis 0 und bei jedem Schritt wird ein Block übertragen. Das Problem ist da die Speicherbereiche nicht im selben Abstand in den DBs liegen brauche ich 2 Adressregister.
So sieht das dann aus:
L #Zaehler_Fe
L 128 // 8 x 16 Byte für Offset
*I
LAR1
L #Zaehler_Fe
L 32 // 8 x 4 Byte für Offset
*I
LAR2
// Fehlernummer aus DB252 in DB421
AUF "DB-Anzeige"
L DBW [AR1,P#0.0]
AUF "DB Daten SWE"
T DBW [AR2,P#38.0]
// Stunden und Minuten aus DB252 in DB421
AUF "DB-Anzeige"
L DBW [AR1,P#11.0]
AUF "DB Daten SWE"
T DBW [AR2,P#40.0]
L #Zaehler_Fe
L 0
<=I
SPBN NW11
L 10
T #Zaehler_Fe
NW11: NOP 0
L #Zaehler_Fe
L 1
-I
T #Zaehler_Fe
Nur sobald ich den Befehl "LAR2" benutze geht die CPU mit Bereichslängenfehler in STOP. Wenn ich Testweise 2mal den Befehl "LAR1" ausführe läuft Sie durch, nur ich komme nicht zu meinem Ergebnis. Vielleicht hat ja jemand eine Idee.