General
Application areas: | Requesting and accessing lists and tables; see "Requesting and accessing lists and tables"Input/output; see "Input/output" |
Macro type: | Type O; see "O-type macros" |
The description applies to VTSU V13.3A
Macro description
The DCSTA macro (Data Communication STation Attributes) supports the TSTAT macro. DCSTA is used to generate receiving fields or symbolic field names (DSECT) for the information supplied by the TSTAT macro.
Macro format and description of operands
|
|
name
Becomes the symbolic name for the first DS statement in the macro expansion if the C operand is specified (the length attribute is zero).
If the D operand is specified, the “name” operand specifies the name of the dummy section (DSECT).
If the “name” operand is omitted, the system forms a name from the valid prefix (see the “prefix” operand) and the operand value for TYPE.
C
A storage area with symbolic addresses is generated. In the TSTAT call, this area may be specified as receiving field. No CSECT statement is generated.
D
A dummy section (DSECT) is generated together with a DSECT statement. The symbolic name generated can be used to address a receiving field previously defined for the TSTAT macro.
prefix
The prefix may consist of 1 to 3 characters, which are to appear at the beginning of the generated field names. The specified prefix replaces the characters “STA”, the default value for the field name prefix.
TYPE=
Specifies which receiving field or which field names are to be generated:
TCHAR
Requests data terminal characteristics.
PHDIM
Requests physical data terminal characteristics.
LIDIM
Requests logical data terminal characteristics.
VDT[YP]
Requests logical data terminal type.
EDOPT
Static edit options.
OFLOW
Requests overflow control type values.
STNAM
Requests data terminal name.
PRNAM
Requests processor name.
ALL
Requests information from TCHAR to PRNAM.
MONCS
Description of monitor and character sets.
PERPH
Requests connected peripherals.
BASIC
Basic information on the data terminal.
Functional description
If the TSTAT macro is used to request information, the receiving field may be defined either explicitly or with the DCSTA C,... macro. If the receiving field has been explicitly defined, the DCSTA D,... macro may be used to generate a dummy section (DSECT), i.e. an address structure for the receiving field, by means of a USING statement. In order to interrogate bit values, the DCSTA macro generates symbolic constants with which the field contents may be compared.
The field names which DCSTA generates by default may be seen in the macro expansion in the example. All of them start with the letters STA. Any string may be selected to replace these characters.
The start addresses of the receiving fields generated by the DCSTA C,... macro must be specified in the TSTAT macro.
The default start addresses are as follows:
STATCHAR | STASTNAM |
STAPHDIM | STAPRNAM |
STALIDIM | STAALL |
STAVDT | STAMONCS |
STAEDOPT | STAPERPH |
STAOFLOW | STABASIC |
Return information and error flags
R15:
+---------------+ | | | | | | | | | | | |a|a| +---------------+
A return code relating to the execution of the macro DCSTA is transferred in the rightmost byte of register R15.
Return code | Meaning |
X'00' | Normal termination |
X'04' | Unrecoverable error |
X'08' | Error in the operand list |
X'0C' | No participant data terminal available |
X'10' | Length of the receiving field is too short: only part of the information was given when the operand ALL was output. |
X'14' | The desired information is (partly) not available |
Description of the transferred information
TCHAR:Physical type (area length: 8 bytes)
Byte
Symb. name
Meaning
0
STAPTTYP
Partner type:
(STADCAMP) - Partner is a DCAM program
(STADCAMT) - Partner is a data terminal1
STADVTYP
Device type, e.g.:
(STAD1000) - T1000 Printer Terminal
(STAD100E) - FS100-E Printer Terminal
(STADT100) - T100 Printer Terminal
(STADPT80) - PT80 Printer Terminal
(STAD8110) - 8110 Printer Terminal
(STAD8151) - 8151 Data Display Terminal
(STAD8152) - 8152 Data Display Terminal
(STAD8160) - 8160 Data Display Terminal
(STAD8162) - 8162 Data Display Terminal
(STAD9731) - 9731 Graphics Workstation
(STAD9750) - 9750/9749 Data Display Terminal
(STAD9751) - 9751 Data Display Terminal
(STAD9752) - 9752 Data Display Terminal
(STAD9753) - 9753 Data Display Terminal
(STAD9754) - 9754 Data Display Terminal
(STAD9755) - 9755 Data Display Terminal
(STAD9763) - 9763 Data Display Terminal
(STAD8122) - 8122 Printer
(STAD8121) - 8121 Printer
(STAD9001) - 9001 Printer
(STAD9002) - 9002 Printer
(STAD9003) - 9003 Printer
(STAD9004) - 9004 Printer
(STAD9012) - 9012 Printer
(STAD9013) - 9013 Printer
(STAD0131) - 9001-31 Printer
(STAD0189) - 9001-8931 Printer
(STAD9022) - 9022 Printer
(STAD1118) - 9011-18 Printer
(STAD1119) - 9011-19 Printer
(STAD3270) - 3270 Data Display Terminal
(STADHOST) - Program in the server
(STADAP) - Workstation
(STAD9021) - 9021 Printer
(STAD3287) - 3287 Printer
(STAD9014) - 9014 Printer
(STAD9026) - 9026 Printer (HDLC, 9025 compatible)
(STADFE) - Front-End Data Display Terminal (FHS-DOORS)2
STATCHR2
Character set:
(STATC2EX) - Second character set available
(STATC2LC) - Lowercase notation available
(STATC2DT) - German (instead of international) keyboard generated
(STATC2DF) - Byte 2 is defined3
STATCHR3
Device options at the data display terminal:
(STATC3H1) - Local hardcopy printer generated or assigned with TCHNG
(STATC3H2) - Central hardcopy printer generated or assigned with TCHNG
(STATC3IC) - ID card reader generated or assigned with TCHNG
(STATC3AP) - APL option generated or assigned with TCHNG
(STATC3GF) - Graphics option generated or assigned with TCHNG
(STATC3DZ) - Decentralized formatting
(STATC3DF) - Byte 3 is defined4
STATCHR4
Data display terminal functions
(STATC4CO) - 4 colors
(STATC4ZF) - Character and field attributes
(STATC4ST) - Status of the terminal possible
(STATC4HI) - Hardware system line available
(STATC4C8) - 8 colors
(STATC4HP) - HP Laser Jet II
(STATC4DF) - Byte 4 is defined5
STATTCHRS
Information from the status message
(STATTCSDT) - German keyboard connected
(STATTCSHC) - Local hardcopy unit connected
(STATTCSIC) - ID card reader connected
(STATTCSDF) - Status of the terminal available6
STACTRLU
Type of printer controller when the data terminal is a printer,
X' 00 for 8112 Printer Controller, generated device type (see above) for data display terminals7
STACHCAD
Channel address of the central hardcopy unit
Notes
The 9749 Data Display Terminal can be generated as a separate device type in the PDN. However, for application programs, it is always displayed as the 9750 Data Display Terminal when the TSTAT macro is used.
The 9758 M4 Data Display Terminal can be generated in the PDN as the 9755 or 9763 Data Display Terminal. However, for application programs, it is always displayed as the 9755 Data Display Terminal when the TSTAT macro is used.
PHDIM:Physical attributes (area length: 8 bytes)
Byte
Symb. name
Meaning
0-1
STALLEN
Physical line length
2-3
STANOLIN
Physical line number
(unrestricted for printer terminals: X' 7FFF' )4-5
STAMAXDB
Maximum physical device buffer, i.e. maximum number of characters which can be sent to the data terminal with one output call.
X' 7FFF' (unrestricted): Restricted only by access method or line.6-7
-
Reserved
Bit 215 = 1 means in each case: value is not available.
LIDIM:Logical attributes (line mode) (area length: 8 bytes)
Byte
Symb. name
Meaning
0-1
STALLLEN
Number of characters per physical line in line mode, where ' NL' in the text is to be counted as two characters.
2-3
STALNOLN
Number of physical lines which can be output in line mode without the overflow control reacting.
4-5
STALMAXB
Number of characters which can be sent in a message in line mode without the overflow control reacting (generally lines multiplied by columns minus 1).
6-7
-
reserved
Bit 215 = 1 means in each case: value is not available.
VDT[YP]:Logical type (area length: 8 bytes)
Byte
Symb. name
Meaning
0
STAVDT
Logical device type:
(STALINCP) - Lines/page data terminal (LINE MODE)
(STAFORCP) - Format data terminal (FORM MODE)
(STACMPCP) - Data display terminal support compatible with earlier versions of operating system (COMP MODE)
(STAFYSCP) - Physical data terminal support (PHYS MODE)
(STAEXLCP) - Line/page data terminal (ext. LINE MODE)
(STAAUTLF) - Automatic line feed for printers
(STANOINP) - Data terminal is a printer
(STAEOM=0) - Data terminal is a printer terminal
(STAEOM=1) - Data terminal is a data display terminal1
STAVDTPR
Logical device protocol:
(STATD810) - 810 Protocol
(STAT3270) - 3270 Protocol2-7
-
reserved
EDOPT:Static edit options (area length: 8 bytes)
The symbolic operands of the WRTRD macro are used for representation.
Byte
Symb. name
Meaning
0
STASEWR1
Output edit byte 1
(STAWR1MM) - Mask for output edit mode
=STAWR1CO: MODE=COMP
=STAWR1LI: MODE=LINE
=STAWR1FO: MODE=FORM
=STAWR1FY: MODE=PHYS(STAWR1CD)
=1: OTRSUP=Y
=0: =N(STAWR1LE)
=1: ONLINEND
=0: =N(STAWR1RE)
=1: OMANUAL=Y
=0: =N(STAWR1HO)
=1: OHOM=Y
=0: =N(STAWR1PT)
=1: OPTAPE=Y
=0: =N(STAWR1HC)
=1: OHCOPY=Y
=0: =N1
STASEWR2
Output edit byte 2
(STAWR2HD)
=1: OHDR=Y
=0: OHDR=N(STAWR2NO)
=1: ONOLOGC=Y
=0: ONOLOGC=N(STAWR2EX)
=1: EXTEND=Y
=0: EXTEND=N(STAWR2ET)
=1: OETB=Y
=0: OETB=N(STAWR2BL)
=1: OBELL=Y
=0: OBELL=N(STAWR2TP)
=1: OTRANS=Y
=0: OTRANS=N(STAWR2IM)
=1: OINFO=Y
=0: OINFO=N(STAWR2PN)
=1: ONOPOSN=Y
=0: ONOPOSN=N2
STASERD1
Input edit byte 1
(STARD1MM) - Mask for input edit mode
=STARD1CO: MODE=COMP
=STARD1LI: MODE=LINE
=STARD1FO: MODE=FORM
=STARD1FY: MODE=PHYS(STARD1CD)
=1: ITRSUP=Y
=0: ITRSUP=N(STARD1LE)
=1: ILINEND=Y
=0: ILINEND=N(STARD1BS)
=1: IGETBS=Y
=0: IGETBS=N(STARD1PT)
=1: IMANUAL=Y
=0: IMANUAL=N(STARD1LC)
=1: ILCASE=Y
=0: ILCASE=N(STARD1HD)
=1: IHDR=Y
=0: IHDR=N3
STASERD2
Input edit byte 2
(STARD2FC)
=1: IGETFC=Y
=0: IGETFC=N(STARD2IC)
=1: IGETIC=Y
=0: IGETIC=N(STARD2CF)
=1: ICFD=Y
=0: ICFD=N(STARD2EX)
=1: EXTEND=Y
=0: EXTEND=N4-7
-
reserved
OFLOW:Control for screen overflow (area length: 8 bytes)
Byte
Symb. name
Meaning
0
STAOFLOW
Type of overflow control:
(STAOFCTM)
Bit 20=1
Waiting time with n seconds (hexadecimal input) according to STAOFTIM(STAOFCAK)
Bit 21=1(STAOFCTL)
Bit 20=0
Bit 21=0(STAOFPGM)
Bit 25=0
Bit 25=1
(seeTCHNG macro, MODIFY-TERMINAL-OPTIONS command)1
STAOFTIM
Waiting time (hexadecimal input in seconds).
2 - 7
-
reserved
STNAM:Name of the terminal, as specified in the PDN (area length: 8 bytes)
Byte
Symb. name
Meaning
0-7
STASTNAM
Name of the terminal
PRNAM:Name of the server to which the terminal is connected, as specified in the RDF generation (area length: 8 bytes)
Byte
Symb. name
Meaning
0-7
STAPRNAM
Name of the server
ALL
The symbolic addresses of the table fields are defined as above. The subarea sequence is as follows:
TCHAR, PHDIM, LIDIM, VDTYP, EDOPT, OFLOW, STNAM, PRNAM
Note
If TYPE=ALL is specified, the area size is 64 bytes. TYPE=ALL does not include MONCS, PERPH and BASIC.
MONCS: Description of monitor and character sets (area length: at least 14 bytes)
Information is supplied in the status message from the data terminal, when this is available, otherwise default values are assumed.
Byte
Symb. name
Meaning
0
STAMOCPR
Status message from the terminal
(STAMOCY) - Status message available. The following data is taken from the status message.
(STAMOCN) - No status message. VTSU default values are assumed for the following information.1
STAMOTYP
Terminal monitor type
(STAMONO) - Data terminal with a monochrome screen
(STACOLOR)- Data terminal with a color screen
(STAPRINT)- Data terminal is a printer2
STAFAT
Field attributes
(STAFATY) - Field attributes can be used
(STAFATN) - Field attributes cannot be used3
-
reserved
4
STADIM1
Screen size 24 lines x 80 characters
(STADIMY) - Format is supported (can be addressed with DIM)
(STADIMN) - Format is not supported (not addressable with DIM)5
STADIM2
Screen size 32 lines x 80 characters
(STADIMY) - Format is supported (addressable with DIM)
(STADIMN) - Format is not supported (not addressable with DIM)6
STADIM3
Screen size 43 lines x 80 characters
(STADIMY) - Format is supported (addressable with DIM)
(STADIMN) - Format is not supported (not addressable with DIM)7
STADIM4
Screen size 27 lines x 132 characters
(STADIMY) - Format is supported (addressable with DIM)
(STADIMN) - Format is not supported (not addressable with DIM)8-11
-
reserved
12-13
STACSNO
Number of addressable character sets
14
STACS0T
Character set type 0
(STACSSIN) - Loadable monochrome character set
(STACSTRI) - Loadable color character set
(STACSNO) - Nonloadable character set15
STACSOS
Character set status 0
(STACSNLO) - Character set can be loaded
(STACSDSS) - Character set has been reserved by the data display terminal
(STACSDVN) - Character set has been loaded by the data processing system
(STACSDVA) - Character set has been loaded and assigned by the data processing system16
STACS1T
Character set type 1
(STACSSIN) - Loadable monochrome character set
(STACSTRI) - Loadable color character set
(STACSNO) - Nonloadable character set17
STACS1S
Character set status 1
(STACSNLO) - Character set can be loaded(STACSDSS) - Character set has been reserved by the data display terminal
(STACSDVN) - Character set has been loaded by the processor
(STACSDVA) - Character set has been loaded and assigned by the processor18
STACS2T
Character set type 2
(STACSSIN) - Loadable monochrome character set
(STACSTRI) - Loadable color character set
STACSNO) - Nonloadable character set19
STACS2S
Character set status 2
(STACSNLO) - Character set can be loaded
(STACSDSS) - Character set has been reserved by the data display terminal
(STACSDVN) - Character set has been loaded by the processor
(STACSDVA) - Character set has been loaded and assigned by the processor20
STACS3T
Character set type 3
(STACSSIN) - Loadable monochrome character set
(STACSTRI) - Loadable color character set
(STACSNO) - Nonloadable character set21
STACS3S
Character set status 3
(STACSNLO) - Character set can be loaded
(STACSDSS) - Character set has been reserved by the data display terminal
(STACSDVN) - Character set has been loaded by the processor
(STACSDVA) - Character set has been loaded and assigned by the processor22
STACS4T
Character set type 4
(STACSSIN) - Loadable monochrome character set
(STACSTRI) - Loadable color character set
STACSNO) - Nonloadable character set23
STACS4S
Character set status 4
(STACSSIN) - Loadable monochrome character set
(STACSTRI) - Loadable color character set
(STACSNO) - Nonloadable character set24
STACS5T
Character set type 5
(STACSNLO) - Character set can be loaded
(STACSDSS) - Character set has been reserved by the data display terminal
(STACSDVN) - Character set has been loaded by the processor
(STACSDVA) - Character set has been loaded and assigned by the processor25
STACS5S
Character set status 5
(STACSNLO) - Character set can be loaded
(STACSDSS) - Character set has been reserved by the data display terminal
(STACSDSS) - Character set has been reserved by the data display terminal
(STACSDVN) - Character set has been loaded by the processor
(STACSDVA) - Character set has been loaded and assigned by the processor26
STACS6T
Character set type 6
(STACSSIN) - Loadable monochrome character set
(STACSTRI) - Loadable color character set
(STACSNO) - Nonloadable character set27
STACS6S
Character set status 6
(STACSNLO) - Character set can be loaded
(STACSDSS) - Character set has been reserved by the data display terminal
(STACSDVN) - Character set has been loaded by the processor
(STACSDVA) - Character set has been loaded and assigned by the processor28
STACS7T
Character set type 7
(STACSSIN) - Loadable monochrome character set
(STACSTRI) - Loadable color character set
(STACSNO) - Nonloadable character set29
STACS7S
Character set status 7
(STACSNLO) - Character set can be loaded
(STACSDSS) - Character set has been reserved by the data display terminal
(STACSDVN) - Character set has been loaded by the processor
(STACSDVA) - Character set has been assigned and loaded by the processorBytes 14-29 are omitted when the length of the status area is inadequate, without giving a return code. Information on character sets is only given when the character sets can be addressed via bytes 12-13.
PERPH: Connected peripherals (area length: 8 bytes)
Information is given in the status message from the data terminal, when this is available, otherwise it is supplied from the generation.
Byte
Symb. name
Meaning
0
STAPERPR
Status of the terminal
(STAPERY) - Status message from the data terminal available
(STAPERN) - No status message available from the data terminal1-2
-
reserved
3
STALOCHC
Local hardcopy unit
(STALHCY) - Local hardcopy unit connected
(STALHCN) - No local hardcopy unit connected4-5
-
reserved
6
STAIDCAR
ID card reader
(STAIDCY) - ID card reader connected
(STAIDCN) - No ID card reader connected7
STACKT
Chipcard terminal
(STACKTY) - Chipcard terminal connected
(STACKTN) - No chipcard terminal connectedBASIC: Basic information on the data terminal (area length: 24 bytes)
Information is given in the status message from the data terminal, when this is available, otherwise it is supplied from the generation or VTSU-B default values are assumed.
If you specify a length greater than 24 and less than 33 bytes, information is only returned for bytes 0-23.
If you specify a length of 33 bytes, information is only returned for bytes 0-32. If XHCS is not loaded or if the terminal does not support extended character sets, no information is supplied on the terminal type and the extended standard name.
If you specify a length greater than 33 bytes and less than 52 bytes and the data display terminal works in 8-bit mode, the first byte of this area is set to X'00'. The information received is truncated because the specified area is too small.
If you specify a length of 52 bytes, information is returned only for bytes 0-51. Bytes that are not required are set to X'00'. No information is provided for printers.
If you specify a length of 60 bytes, information is returned for bytes 0-59. Bytes that are not required are set to X'00'.
If you specify a length of 64 bytes, the information returned is complete (bytes 0-63). Bytes that are not required are set to X'00'.
Byte
Symb. name
Meaning
0
STAINFO
Terminal status
(STAINFOY) - Status message from the terminal is available
(STAINFON) - No status message from the terminal1
STAINFP
Status from the terminal
(STAINFPY) - Status message from the terminal possible
(STAINFPN) - No status message is expected from the terminal2-9
STAPTNA
Printable data terminal type
TYP00 - Unknown data terminal type
DSS-X.29 - X.29 data display terminal
RECHNER - PROCESSOR
SS-8102 - 8102 Printer
DSS-8151 - 8151 Data Display Terminal
DSS-8152 - 8152 Data Display Terminal
SS-8110 - 8110 Teleprinter
SS-8121 - 8121 Printer
FS100 - T100 Teleprinter
FS100-E - FS100-E Teleprinter
DRS90037 - 90037 Printer
DRS-8122 - 8122 Printer
DSS-8162 - 8162 Data Display Terminal
DSS-8160 - 8160 Data Display Terminal
DRS-8124 - 8124 Printer
AP - Application program
SST-X.29 - X.29 teleprinter
DSS-9750 - 9750 or 9749 Data Display Terminal
DRS-9003 - 9003 Printer
DSS-9770 - 9770 Data Display Terminal
DRS-9002 - 9002 Printer
DSS-3974 - 3974 Data Display Terminal
DSS-9751 - 9751 Data Display Terminal
DSS-9752 - 9752 Data Display Terminal
DSS-9753 - 9753 Data Display Terminal
DRS-9001 - 9001 Printer
DSS-9731 - 9731 Data Display Terminal
DSS9770R - 9770R Data Display Terminal
DRS-9004 - 9004 Printer
DSS-9754 - 9754 Data Display Terminal
DSS-9755 - 9755 Data Display Terminal
DSS-9763 - 9763 Data Display Terminal
DRS-9012 - 9012 Printer
DRS-9013 - 9013 Printer
DSS-3270 - 3270 Data Display Terminal
DRS-0131 - 9001-31 Printer
DRS-0189 - 9001-8931 Printer
DRS-9022 - 9022 Printer
DRS-1118 - 9011-18 Printer
DRS-1119 - 9011-19 Printer
DRS-3287 - 3287 Printer
TCP-IP - TCP-IP application
DRS-9021 - 9021 Printer
DRS-9014 - 9014 Printer
DRS-9026 - 9026 Printer (HDLC, 9025 compatible)
DSS-FE - Front-End Data Display Terminal (FHS-DOORS)10
STAHCOPY
Local hardcopy unit
(STABLHCY) - Local hardcopy unit connected
(STABLHCN) - No local hardcopy unit connected11
STAIDCR
ID card reader
(STAIDCRY) - ID card reader connected
(STAIDCRN) - No ID card reader connected12
STACOL
Number of colors on the data terminal
(STACOLNO) - No colors
(STACOL4) - 4 colors
(STACOL8) - 8 colors13-15
-
reserved
16-19
STALINES
Physical number of lines printable (decimal) (from the generation or default values)
20-23
STACOLUM
Physical number of characters per line printable (decimal) (from generation or default values)
24
STATTYPE
Terminal type
(STATYPE7) - Terminal can work in 7-bit mode only.
(STATYPE8) - Terminal can work in 7-bit or 8-bit mode.25-32
STACURCH
Extended standard name. The value is returned only if the data display terminal supports 8-bit mode.
33
STACCSNN
Number of 8-bit character sets supported
(STATRINF) - X' 00' and STATYPE8 simultaneously: the length of the information to be output exceeds the specified length. The information is truncated.
34
STACSS1
1st supported character set
The variant number is specified in hexadecimal form.35
STACSS2
2nd supported character set
The variant number is specified in hexadecimal form.36
STACSS3
3rd supported character set
The variant number is specified in hexadecimal form.37
STACSS4
4th supported character set
The variant number is specified in hexadecimal form.38
STACSS5
5th supported character set
The variant number is specified in hexadecimal form.39
STACSS6
6th supported character set
The variant number is specified in hexadecimal form.40
STACSS7
7th supported character set
The variant number is specified in hexadecimal form.41
STACSS8
8th supported character set
The variant number is specified in hexadecimal form.42
STACSS9
9th supported character set
The variant number is specified in hexadecimal form.43
STACSS10
10th supported character set
The variant number is specified in hexadecimal form.44
STACSS11
11th supported character set
The variant number is specified in hexadecimal form.45
STACSS12
12th supported character set
The variant number is specified in hexadecimal form.46
STACSS13
13th supported character set
The variant number is specified in hexadecimal form.47
STACSS14
14th supported character set
The variant number is specified in hexadecimal form.48
STACSS15
15th supported character set
The variant number is specified in hexadecimal form.49
STACSS16
16th supported character set
The variant number is specified in hexadecimal form.50-51
-
Reserved
52-59
STAACTCH
Name of the extended character set activated. The name is returned only if the data display terminal supports 8-bit mode.
60
STARMODE
Physical read mode
(STARMODM) - Only modified fields are read.
(STARMODU) - All unprotected fields are read.61
STALLECH
Logical line-end symbol for data display terminals without equivalent hardware functions.
62
STASUBCH
Substitute symbol for characters that are not X' 40' and are not logical control characters.
63
STAPERHC
Permanent hardcopy
(STAPERHY) - All output messages for a data display terminal are printed out simultaneously via a conn. hardcopy unit.
(STAPERHN) - Output messages are not also logged as hardcopy.If less than 16 different variants are supported in STACCSn (bytes 34-49), the remaining variant numbers (16-n) are set to X'00'.
Examples see TSTAT macro.