.pg .x d__descr .x Obsolete Macros > d__descr .lt ------------------------------------------------------------------------ D_DESCR .BLKx length [address] [allot] ------------------------------------------------------------------------ .el .b 3 This macro will allocate the appropriate dynamic descriptor structure for the storage type specified: .b One the following directives must be used in place of .BLK^&x\&. .b .lt .BLKA addresses (longwords) .BLKB bytes .BLKD double-precision floating-point (quadwords) .BLKF single-precision floaging-point (longwords) .BLKG G_floating (quadwords) .BLKH H_floating (octawords) .BLKL longwords .BLKO octawords .BLKQ quadwords .BLKW words .el .b If ^&address\& is specified as the asterisk character (i.e. _*), the D__DESCR macro will also generate the appropriate block storage allocation directive. .b If ^&address\& is not specified, no storage allocation directive is generated; you must then follow the D__DESCR macro with the appropriate storage allocation directive. .b If ^&address\& is specified and allot is specified as the asterisk character, the D__DESCR macro will generate the appropriate block storage allocation directive and assign it to the label address. .b For example: .b .lt var buffer_descr: d_descr .blkb 512 buffer * .el .b will generate the following code: .b .lt buffer_descr: .word 512 .byte dsc$k_dtype_b .byte dsc$k_class_d .address buffer buffer: .blkb 512 .el .b See also DESCR, STDESCR, and D__STDESCR.