576
7 APPLICATION INSTRUCTIONS
7.4 Structure Creation Instructions
• Only a program file stored in program memory can be specified for the file name.
• Extension ".PRG" need not be specified for the file name. (Only .PRG files can be processed by these instructions.)
• When the subroutine program uses function devices (FX, FY, FD), specify the devices corresponding to the function
devices in (s1) to (s5). The following figure the contents of the devices specified by (s1) to (s5).
• The following table lists the data sizes of individual types of function devices.
*3 An error does not occur even if the device number specified by (s1) to (s5) is not a multiple of 16 in bit device digit specification mode.
*4 The upper two words of FD are 0.
Content of specified device
• The EFCALL(P) instruction can use (s1) to (s5).
• The number of function devices used in the subroutine program must be identical to the number of arguments of the
EFCALL(P) instruction. Also, the types of function devices and EFCALL(P) instruction arguments must be the same.
• Up to 16 EFCALL(P) instructions can be nested. Note that the 16-level nesting is the total of the CALL(P), FCALL(P),
ECALL(P), EFCALL(P), and XCALL instructions.
• Before execution of the subroutine program, bit data is transferred to FX and word data is transferred to FD.
• After execution of the subroutine program, the contents of FY and FD are transferred to the corresponding devices.
• Function devices FX and FY are processed in units of bits. Function device FD is processed in units of 4 words. The size of data to be processed varies
depending on the type of the device specified by an argument. The device specified as a function device should be secured for the data size. An error occurs
if it cannot be secured for the data size.
Function device Device Data size
FX, FY Bit device 1 point
When a bit-specified word device is used 1 bit
FD When the bit device digit is specified
*3
4 words
*4
Word device 4 words
(1) M0 occupied (The data is transferred to FX0.)
(2) D0 to D3 occupied (The data is transferred to FD1.)
(3) D30 to D33 occupied (The data is transferred to FD2.)
FX0P0
D* FD1 K100 FD2
RET
FEND
"ABC"EFCALLP P0 X0 D0 D100
[ABC]
X10
"ABC"ECALLP P0 X0 D0 D100
[MAIN]
X0
EFCALL "ABC" P0 M0 D0 D30
(1) (2) (3)
"ABC" P0EFCALL
"ABC" P0ECALL
FEND
RET RET RET
END
P0
P10 P20
ECALL "DEF" P10 ECALL "GHI" P20
EFCALL "DEF" P10 EFCALL "GHI" P20