L P#6.0 // Load ACCU 1 with pointer value.
T MD 2 // Transfer pointer into MD2.
OPN DB 1 // Open datablock 1
L 10
T DBW [MD 2] // Transfer value 10 to db1.dbw6
L P#2.0 // Increase pointervalue in md2 with 2 bytes
L MD 2
+D
T MD 2
L 25
T DBW [MD 2] // Transfer value 25 to db1.dbw8
Can't you simply use BLKMOV, FC20? Otherwise I would write a FC that has a source and destination pointer and a count.Hi again.
I try to make the same function as TI505 - MWI Move With Index
FUNCTION FC 1 : VOID
TITLE =
VERSION : 0.1
VAR_INPUT
i_DB_Read_from : INT ;
i_Offset_read : INT ;
i_DB_Write_to : INT ;
i_Offset_write : INT ;
iNoofWords : INT ;
END_VAR
VAR_TEMP
iLoopCount : INT ;
iDB : INT ;
END_VAR
BEGIN
NETWORK
TITLE =
L #i_DB_Read_from;
T #iDB;
OPN DB [#iDB];
L #i_DB_Write_to;
T #iDB;
OPN DI [#iDB];
LAR1 P#DBX 0.0;
L #i_Offset_read;
SLD 4;
+AR1 ;
LAR2 P#DIX 0.0;
L #i_Offset_write;
SLD 4;
+AR2 ;
L #iNoofWords;
LA: T #iLoopCount;
L W [AR1,P#0.0];
T W [AR2,P#0.0];
+AR1 P#2.0;
+AR2 P#2.0;
L #iLoopCount;
LOOP LA;
SET ;
SAVE ;
END_FUNCTION