! *** PREDECLARED TYPES %IF %DECLARED ( %BASIC$QUADWORD_DECLARED ) = 0 %THEN RECORD BASIC$QUADWORD LONG FILL ( 2 ) END RECORD %LET %BASIC$QUADWORD_DECLARED = 1 %END %IF %IF %DECLARED ( %BASIC$OCTAWORD_DECLARED ) = 0 %THEN RECORD BASIC$OCTAWORD LONG FILL ( 4 ) END RECORD %LET %BASIC$OCTAWORD_DECLARED = 1 %END %IF %IF %DECLARED ( %BASIC$HFLOAT_AXP_DECLARED ) = 0 %THEN RECORD BASIC$HFLOAT_AXP LONG FILL ( 4 ) END RECORD %LET %BASIC$HFLOAT_AXP_DECLARED = 1 %END %IF %IF %DECLARED ( %BASIC$F_FLOATING_COMPLEX_DECL ) = 0 %THEN RECORD BASIC$F_FLOATING_COMPLEX SINGLE REAL_PART SINGLE IMAGINARY_PART END RECORD %LET %BASIC$F_FLOATING_COMPLEX_DECL = 1 %END %IF %IF %DECLARED ( %BASIC$D_FLOATING_COMPLEX_DECL ) = 0 %THEN RECORD BASIC$D_FLOATING_COMPLEX DOUBLE REAL_PART DOUBLE IMAGINARY_PART END RECORD %LET %BASIC$D_FLOATING_COMPLEX_DECL = 1 %END %IF %IF %DECLARED ( %BASIC$G_FLOATING_COMPLEX_DECL ) = 0 %THEN RECORD BASIC$G_FLOATING_COMPLEX GFLOAT REAL_PART GFLOAT IMAGINARY_PART END RECORD %LET %BASIC$G_FLOATING_COMPLEX_DECL = 1 %END %IF %IF %DECLARED ( %BASIC$H_FLOAT_AXP_CMPLX_DCL ) = 0 %THEN RECORD BASIC$H_FLOATING_COMPLEX_AXP BASIC$HFLOAT_AXP REAL_PART BASIC$HFLOAT_AXP IMAGINARY_PART END RECORD %LET %BASIC$H_FLOAT_AXP_CMPLX_DCL = 1 %END %IF ! --------------------------------------------------------------- ! ! Data Compression/Expansion (DCX) Routines ! ! ! DCX$ANALYZE_DATA - Analyze a data record ! ! status = DCX$ANALYZE_DATA (context, record) ! ! context - Context value returned by DCX$ANALYZE_INIT ! record - Record to be analyzed EXTERNAL LONG FUNCTION DCX$ANALYZE_DATA & ( & LONG BY REF, & STRING BY DESC & ) ! ! DCX$ANALYZE_DONE - Complete analysis ! ! status = DCX$ANALYZE_DONE (context) ! ! context - Context value returned by DCX$ANALYZE_INIT EXTERNAL LONG FUNCTION DCX$ANALYZE_DONE & ( & LONG BY REF & ) ! ! DCX$ANALYZE_INIT - Initialize context for analysis ! ! status = DCX$ANALYZE_INIT (context [,item_code, item_value]) ! ! context - Receives context value for data stream ! item_code - Specifies information to be used during analysis ! item_value - Value of information item ! [Note - successive pairs of item_code and item_value can be passed ! in the argument list] ! EXTERNAL LONG FUNCTION DCX$ANALYZE_INIT & ( & LONG BY REF, & OPTIONAL LONG BY REF, & LONG BY REF,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, & ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, & ,,,,,,,,,,,,,,,,,,,,,,,,,, & ) ! ! DCX$COMPRESS_DATA - Compress a data record ! ! status = DCX$COMPRESS_DATA (context, in_rec, out_rec, out_length) ! ! context - Value returned by DCX$COMPRESS_INIT ! in_rec - Data record to be compressed ! out_rec - Receives compressed record ! out_length - Receives length of compressed record ! EXTERNAL LONG FUNCTION DCX$COMPRESS_DATA & ( & LONG BY REF, & STRING BY DESC, & STRING BY DESC, & OPTIONAL WORD BY REF & ) ! ! DCX$COMPRESS_DONE - Delete context for compression ! ! status = DCX$COMPRESS_DONE (context) ! ! context - Value returned by DCX$COMPRESS_INIT ! EXTERNAL LONG FUNCTION DCX$COMPRESS_DONE & ( & LONG BY REF & ) ! ! DCX$COMPRESS_INIT - Initialize context for compression ! ! status = DCX$COMPRESS_INIT (context, map) ! ! context - Context value for this data stream ! map - Map value returned by DCX$MAKE_MAP ! EXTERNAL LONG FUNCTION DCX$COMPRESS_INIT & ( & LONG BY REF, & LONG BY REF & ) ! ! DCX$EXPAND_DATA - Expand a compressed data record ! ! status = DCX$EXPAND_DATA (context, in_rec, out_rec [,out_length]) ! ! context - Value returned by DCX$EXPAND_INIT ! in_rec - Data record to be expanded ! out_rec - Receives expanded data record ! out_length - Receives length of expanded record ! EXTERNAL LONG FUNCTION DCX$EXPAND_DATA & ( & LONG BY REF, & STRING BY DESC, & STRING BY DESC, & OPTIONAL WORD BY REF & ) ! ! DCX$EXPAND_DONE - Delete context for expansion ! ! status = DCX$EXPAND_DONE (context) ! ! context - Value returned by DCX$EXPAND_INIT ! EXTERNAL LONG FUNCTION DCX$EXPAND_DONE & ( & LONG BY REF & ) ! ! DCX$EXPAND_INIT - Initialize context for expansion ! ! status = DCX$EXPAND_INIT (context, map) ! ! context - Receives context value identifying data stream ! map - Map value returned by DCX$MAKE_MAP ! EXTERNAL LONG FUNCTION DCX$EXPAND_INIT & ( & LONG BY REF, & LONG BY REF & ) ! ! DCX$MAKE_MAP - Compute compression/expansion map ! ! status = DCX$MAKE_MAP (context, map_addr [, map_size]) ! ! context - Value returned by DCX$ANALYZE_INIT ! map_addr - Receives address of allocated map data ! map_size - Receives size of allocated map data ! EXTERNAL LONG FUNCTION DCX$MAKE_MAP & ( & LONG BY REF, & LONG BY REF, & OPTIONAL LONG BY REF & )