CPU-STOP nach LAR2

Zuviel Werbung?
-> Hier kostenlos registrieren
Das war aber noch nicht die wirklich komlett multiinstanzfähige Lösung

MI-fähigkeit erhälst du durchs aufaddieren des gesicherten AR2

also:

Code:
*
      TAR2  #dSaveAR2
      L     #iByte
      SLD   3
      LAR2  
      L     #dSaveAR2
      +AR2

hier wird nur der L-teil vom akku1, also vom dSaveAR2 addiert, was dem versatz im pointerformat entspricht, also P#byte.bit ... den DB im H-teil vom akku brauchen wir ja nicht, weil der ja beim aufruf des bausteins schon geöffnet wurde ... daran ändert auf AUF DB nichts.
 
So sollte es gehn:
Code:
[COLOR=red]TAR2[/COLOR]
[COLOR=red]T #Rett_AR2[/COLOR]
 
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]
 
[COLOR=red]L #Rett_AR2[/COLOR]
[COLOR=red]LAR2[/COLOR]
 
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

Grüße
Gebs

Also ich würde mal so sagen, die Antwort hier hat mir sehr geholfen!
"Dankeschön!" an Gebs und an die Anderen beteiligten.

Dieses Forum ist schon eine geniale Erfindung!!!:TOOL:
 
Zuviel Werbung?
-> Hier kostenlos registrieren
MI-fähigkeit erhälst du durchs aufaddieren des gesicherten AR2

also:

Code:
*
      TAR2  #dSaveAR2
      L     #iByte
      SLD   3
      LAR2  
      L     #dSaveAR2
      +AR2

hier wird nur der L-teil vom akku1, also vom dSaveAR2 addiert, was dem versatz im pointerformat entspricht, also P#byte.bit ... den DB im H-teil vom akku brauchen wir ja nicht, weil der ja beim aufruf des bausteins schon geöffnet wurde ... daran ändert auf AUF DB nichts.

Mit Befehl +AR2 zum Erhalt der MI-fähigkeit muß man höllisch aufpassen,
denn der Befehl funzt nur korrekt wenn die Adresse im DI unter 8192.0
liegt !!

besser ist, IMHO, nach diesem Muster:


Code:
L P##Variable                         // Startadresse der Variablen laden
UD DW#16#FFFFFF                 // Bereichscodierung ausmaskieren
TAR2                                    // Start der Multiinstanz im DI laden
+D                                       // addieren
T #Startadresse_im_DI            //
 
L DIW[#Startadresse_im_DI]   ........
 
Zuletzt bearbeitet:
Zurück
Oben