! *** 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 ! ! File Definition Language (FDL) Routines ! ! Note - FDL routines accept only class S string descriptors ! ! ! FDL$CREATE - Create a file ! ! status = FDL$CREATE (fdl_desc [,filename] [,default_name] ! [,result_name] [,fid_block] [,flags] ! [,stmnt_num] [,retlen] [,sts] [,stv] ! [,dflt-fdl-spc] ! ! fdl_desc - Name of file or string containg FDL statements ! filename - Name of file to be created ! default_name - Default name string ! result_name - Receives resultant file name ! fid_block - Receives file ID of created file ! flags - Flags controlling operation ! stmt_num - Receives number of statement in error ! retlen - Receives length of result_name ! sts - Receives RMS STS value ! stv - Receives RMS STV value ! dflt-fdl-spc - Name of file or string containing default FDL statements EXTERNAL LONG FUNCTION FDL$CREATE & ( & STRING BY DESC, & OPTIONAL STRING BY DESC, & STRING BY DESC, & STRING BY DESC, & LONG DIM() BY REF, & LONG BY REF, & LONG BY REF, & LONG BY REF, & LONG BY REF, & LONG BY REF, & STRING BY DESC & ) ! ! FDL$GENERATE - Generate an FDL specification from a file ! ! status = FDL$GENERATE (flags, fab_pointer, rab_pointer ! [,fdl_file_dst] [,fdl_file_resnam] ! [,fdl_str_dst] [,bad_blk_addr] [,retlen]) ! ! flags - Flags controlling operation ! fab_pointer - Address of FAB block ! rab_pointer - Address of RAB block ! fdl_file_dst - Name of FDL file to be created ! fdl_file_resnam - Receives resultant name of FDL file ! fdl_str_dst - Receives FDL string ! bad_blk_addr - Receives address of invalid RMS block ! retlen - Receives length of fdl_file_resnam or fdl_str_dst ! EXTERNAL LONG FUNCTION FDL$GENERATE & ( & LONG BY REF, & LONG BY REF, & LONG BY REF, & OPTIONAL STRING BY DESC, & STRING BY DESC, & STRING BY DESC, & LONG BY REF, & LONG BY REF & ) ! ! FDL$PARSE - Parse an FDL specification ! ! status = FDL$PARSE (fdl_spec, fdl_fab_pointer, fdl_rab_pointer ! [,flags] [,dflt_fdl_spec] [,stmt_num]) ! ! fdl_spec - Name of FDL file or FDL string to be parsed ! fdl_fab_pointer - Receives address of created FAB ! fdl_rab_pointer - Receives address of created RAB ! flags - Flags controlling operation ! dflt_fdl_spec - Name of default FDL file or default FDL string ! stmt_num - Receives number of statement in error ! EXTERNAL LONG FUNCTION FDL$PARSE & ( & STRING BY DESC, & LONG BY REF, & LONG BY REF, & OPTIONAL LONG BY REF, & STRING BY DESC, & LONG BY REF & ) ! ! FDL$RELEASE - Release FDL context ! ! status = FDL$RELEASE ([fab_pointer] [,rab_pointer] [,flags] ! [,badblk_addr]) ! ! fab_pointer - Address of FAB to be deallocated ! rab_pointer - Address of RAB to be deallocated ! flags - Flags controlling operation ! badblk_addr - Recives address of invalid RMS block ! EXTERNAL LONG FUNCTION FDL$RELEASE & ( & OPTIONAL LONG BY REF, & LONG BY REF, & LONG BY REF, & LONG BY REF & )