1段
TAR1 #T_AR1 // SAVE ADRESSREGISTER AR1
TAR2 #T_AR2 // SAVE ADRESSREGISTER AR2
2段
L P##OUT_ANY // START ADRESS OF ANY-POINTER
LAR2 // INTO AR2
L B#16#10 // ENTER SYNTAX-ID
T B [AR2,P#0.0] // INTO ANY-POINTE 0 BYTES
L #DAT_TYP
L W#16#0
<>I
JC NIL
L B#16#0
JU TYPE
NIL: L #DAT_TYP
L W#16#1
<>I
JC BOOL
L B#16#1
JU TYPE
BOOL: L #DAT_TYP
L W#16#2
<>I
JC BYTE
L B#16#2
JU TYPE
BYTE: L #DAT_TYP
L W#16#3
<>I
JC CHAR
L B#16#3
JU TYPE
CHAR: L #DAT_TYP
L W#16#4
<>I
JC WORD
L B#16#4
JU TYPE
WORD: L #DAT_TYP
L W#16#5
<>I
JC INT
L B#16#5
JU TYPE
INT: L #DAT_TYP
L W#16#6
<>I
JC DWOR
L B#16#6
JU TYPE
DWOR: L #DAT_TYP
L W#16#7
<>I
JC DINT
L B#16#7
JU TYPE
DINT: L #DAT_TYP
L W#16#8
<>I
JC REAL
L B#16#8
JU TYPE
REAL: L #DAT_TYP
L W#16#9
<>I
JC DATE
L B#16#9 // ELSE LOAD AREA TYPE "DATE"
JU TYPE // USE TYPE
DATE: L #DAT_TYP // LOAD TYPE OF DATA
L W#16#A // IF TYPE OF DATA
<>I // <> "TIME_OF_DAY" THEN
JC TOD // ASK FOR TOD (TIME_OF_DAY)
L B#16#A // ELSE LOAD AREA TYPE "TIME_OF_DAY"
JU TYPE // USE TYPE
TOD: L #DAT_TYP // LOAD TYPE OF DATA
L W#16#B // IF TYPE OF DATA
<>I // <> "TIME" THEN
JC TIME // ASK FOR TIME
L B#16#B // ELSE LOAD AREA TYPE "TIME"
JU TYPE // USE TYPE
TIME: L #DAT_TYP // LOAD TYPE OF DATA
L W#16#C // IF TYPE OF DATA
<>I // <> "S5TIME" THEN
JC S5TI // ASK FOR S5TIME
L B#16#C // ELSE LOAD AREA TYPE "S5TIME"
JU TYPE // USE TYPE
S5TI: L #DAT_TYP // LOAD TYPE OF DATA
L W#16#E // IF TYPE OF DATA
<>I // <> "DATE_AND_TIME" THEN
JC DT // ASK FOR DT (DATE_AND_TIME)
L B#16#E // ELSE LOAD AREA TYPE "DATE_AND_TIME"
JU TYPE // USE TYPE
DT: L #DAT_TYP // LOAD TYPE OF DATA
L W#16#13 // IF TYPE OF DATA
<>I // <> "STRING" THEN
JC STRI // ASK FOR STRING
L B#16#13 // ELSE LOAD AREA TYPE "STRING"
JU TYPE // USE TYPE
STRI: L #DAT_TYP // LOAD PARAMETER TYPE OF DATA
L W#16#17 // IF PARAMETER TYPE OF DATA
<>I // <> "BLOCK_FB" THEN
JC BLFB // ASK FOR BLOCK_FB
L B#16#17 // ELSE LOAD PARAMETER TYPE "BLOCK_FB"
JU TYPE // USE TYPE
BLFB: L #DAT_TYP // LOAD PARAMETER TYPE OF DATA
L W#16#18 // IF PARAMETER TYPE OF DATA
<>I // <> "BLOCK_FC" THEN
JC BLFC // ASK FOR BLOCK_FC
L B#16#18 // ELSE LOAD PARAMETER TYPE "BLOCK_FC"
JU TYPE // USE TYPE
BLFC: L #DAT_TYP // LOAD PARAMETER TYPE OF DATA
L W#16#19 // IF PARAMETER TYPE OF DATA
<>I // <> "BLOCK_DB" THEN
JC BLDB // ASK FOR BLOCK_DB
L B#16#19 // ELSE LOAD PARAMETER TYPE "BLOCK_DB"
JU TYPE // USE TYPE
BLDB: L #DAT_TYP // LOAD PARAMETER TYPE OF DATA
L W#16#1A // IF PARAMETER TYPE OF DATA
<>I // <> "BLOCK_SDB" THEN
JC BSDB // ASK FOR BLOCK_SDB
L B#16#1A // ELSE LOAD PARAMETER TYPE "BLOCK_SDB"
JU TYPE // USE TYPE
BSDB: L #DAT_TYP // LOAD PARAMETER TYPE OF DATA
L W#16#1C // IF PARAMETER TYPE OF DATA
<>I // <> "COUNTER" THEN
JC COUN // ASK FOR COUNTER
L B#16#1C // ELSE LOAD PARAMETER TYPE "COUNTER"
JU TYPE // USE TYPE
COUN: L #DAT_TYP // LOAD PARAMETER TYPE OF DATA
L W#16#1D
<>I
JC TIMR
L B#16#1D
JU TYPE
TIMR: L B#16#2
TYPE: T B [AR2,P#1.0]
L #DAT_LEN
T W [AR2,P#2.0]
L #DB_NO
T W [AR2,P#4.0]
T #BLOCK_DB_NO
L 0
==I
JC FLAD
L P#DBX 0.0
JU OFFD
FLAD: L P#M 0.0
OFFD: L #DB_BYTE
SLD 3
+D
L #DB_BIT
+D
T D [AR2,P#6.0]
3段 OPN DB [#BLOCK_DB_NO]
4段
L D [AR2,P#6.0]
LAR1
TAR1 #ADDRESS_DESTINATION
L #DAT_LEN
L 2
-I
T #DAT_LEN_SUB_2
L #DAT_LEN_SUB_2
L 2
/I
T #LOOP_LIM
T #DAT_LEN_SUB_2
SLD 3
AD DW#16#FFFFFFF
T #DB_BYTE_LEN
L #DB_BYTE_LEN
L #ADDRESS_DESTINATION
+D
T #ADDRESS_DESTINATION
L #DAT_LEN_TR
SLD 3
AD DW#16#FFFFFF
T #DB_BYTE_LOW
A #EN
JCN END
L 0
CYCL: T #LOOP
L #LOOP
L #DAT_LEN_SUB_2
>=I
JC A7d0
L #ADDRESS_DESTINATION
L #DB_BYTE_LOW
-D
T #ADDRESS_SOURCE
L DBD [#ADDRESS_SOURCE]
T DBD [#ADDRESS_DESTINATION]
L #ADDRESS_SOURCE
T #ADDRESS_DESTINATION
L #LOOP
L 1
+I
JU CYCL
A7d0: L #IN_V
T W [AR1,P#0.0]
END: NOP 0
5段
LAR1 #T_AR1 // RESTORE ADRESSREGISTER ADR1
LAR2 #T_AR2 // RESTORE ADRESSREGISTER ADR2


