MODULE XDESC ( IDENT = 'V1.2-04' %TITLE 'XDESC - XPORT Descriptor Dumper Routine' %BLISS32( ,ADDRESSING_MODE( EXTERNAL=LONG_RELATIVE ) ) %BLISS36( ,ENTRY(XDESC),OTS='') ) = BEGIN LIBRARY 'XPORT'; ! ! The Module header and Library declaration above has been inserted in place of the automatically generated one. ! %BLISS32( PSECT OWN=$CODE$; ) GLOBAL ROUTINE XDESC(desc) : NOVALUE = BEGIN MAP desc : REF $STR_DESCRIPTOR( CLASS = BOUNDED ); IF .desc[STR$B_DTYPE] EQL XPO$K_DTYPE_BU THEN BEGIN $XPO_DUMP_FIELD( FIELD_NAME=XPO$H_LENGTH, TYPE=BYTES, VALUE=.BLOCK[.desc,XPO$H_LENGTH] ); $XPO_DUMP_FIELD( FIELD_NAME=XPO$B_DTYPE, TYPE=BYTE, VALUE=.BLOCK[.desc,XPO$B_DTYPE] ); $XPO_DUMP_FIELD( FIELD_NAME=XPO$B_CLASS, TYPE=BYTE, VALUE=.BLOCK[.desc,XPO$B_CLASS] ); $XPO_DUMP_FIELD( FIELD_NAME=XPO$A_ADDRESS, TYPE=ADDRESS, VALUE=.BLOCK[.desc,XPO$A_ADDRESS] ); IF .desc[STR$B_CLASS] EQL STR$K_CLASS_B OR .desc[STR$B_CLASS] EQL STR$K_CLASS_DB THEN BEGIN $XPO_DUMP_FIELD( FIELD_NAME=XPO$H_MAXLEN, TYPE=BYTES, VALUE=.BLOCK[.desc,XPO$H_MAXLEN] ); $XPO_DUMP_FIELD( FIELD_NAME=XPO$H_PFXLEN, TYPE=BYTES, VALUE=.BLOCK[.desc,XPO$H_PFXLEN] ); END; END ELSE BEGIN $XPO_DUMP_FIELD( FIELD_NAME=STR$H_LENGTH, TYPE=BYTES, VALUE=.BLOCK[.desc,STR$H_LENGTH] ); $XPO_DUMP_FIELD( FIELD_NAME=STR$B_DTYPE, TYPE=BYTE, VALUE=.BLOCK[.desc,STR$B_DTYPE] ); $XPO_DUMP_FIELD( FIELD_NAME=STR$B_CLASS, TYPE=BYTE, VALUE=.BLOCK[.desc,STR$B_CLASS] ); $XPO_DUMP_FIELD( FIELD_NAME=STR$A_POINTER, TYPE=POINTER, VALUE=.BLOCK[.desc,STR$A_POINTER] ); IF .desc[STR$B_CLASS] EQL STR$K_CLASS_B OR .desc[STR$B_CLASS] EQL STR$K_CLASS_DB THEN BEGIN $XPO_DUMP_FIELD( FIELD_NAME=STR$H_MAXLEN, TYPE=BYTES, VALUE=.BLOCK[.desc,STR$H_MAXLEN] ); $XPO_DUMP_FIELD( FIELD_NAME=STR$H_PFXLEN, TYPE=BYTES, VALUE=.BLOCK[.desc,STR$H_PFXLEN] ); END; END; END; END ELUDOM