! *** 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 ! ++ ! ! $CLIDEF --- COMMAND LAGUAGE INTERFACE DEFINITIONS ! ! THIS MODULE DEFINES THE OFFSET VALUES FOR THE DATA STRUCTURES ! USED TO COMMUNICATED COMMAND INFORMATION BETWEEN THE CLI AND ! THE UTILITY THAT WAS REQUESTED TO PERFORM THE OPERATION. ! ! -- DECLARE LONG CONSTANT CLI$M_DEBUG = x'00000001' DECLARE LONG CONSTANT CLI$M_DBGTRU = x'00000002' DECLARE LONG CONSTANT CLI$M_VERIFY = x'00000004' DECLARE LONG CONSTANT CLI$M_BATCH = x'00000008' DECLARE LONG CONSTANT CLI$M_INDIRECT = x'00000010' DECLARE LONG CONSTANT CLI$M_VFYINP = x'00000020' DECLARE LONG CONSTANT CLI$M_TRMVRBLV = x'00000300' DECLARE LONG CONSTANT CLI$M_DBGEXCP = x'00010000' DECLARE LONG CONSTANT CLI$S_CLIDEF = 32 record CLIDEF LONG CLI$L_INIARGCNT ! INITIAL ARG COUNT LONG CLI$A_PROGXFER ! PROGRAM TRANSFER VECTOR ADDRESS LONG CLI$A_UTILSERV ! ADDRESS OF CLI UTILITY SERVICE LONG CLI$A_IMGHDADR ! ADDRESS OF IMAGE HEADER LONG CLI$A_IMGFILED ! ADDRESS OF IMAGE FILE DATA LONG CLI$L_LINKFLAG ! LINK FLAG LONGWORD group CLI$R_CLIFLAG_OVERLAY variant case LONG CLI$L_CLIFLAG ! CLI FLAG LONGWORD case group CLI$R_CLIFLAG_BITS ! DEBUG QUALIFIER SEEN ! DEBUG WAS TRUE ! VERIFY IS ON ! THIS PROCESS IS A BATCH JOB ! INDIRECT LEVEL NOT EQUAL TO ZERO ! UTILITY SHOULD VERFIY INPUT ! ROUND UP TO NEXT BYTE ! TERMINAL VERBOSITY LEVEL ! ROUND UP TO NEXT BYTE ! DEBUGGER CALLED VIA "DEBUG" EXCEPTION LONG DEBUG_bits ! COMMENT ADDED BY SDL - DEBUG_bits contains bits DEBUG through FILL_104_ end group CLI$R_CLIFLAG_BITS ! THE FOLLOWING ARGUMENTS ARE OPTIONAL DEPENDING ON INIARGCNT end variant end group CLI$R_CLIFLAG_OVERLAY LONG CLI$L_ARGLIST ! ADDRESS OF APPLICATION ARGUMENT LIST ! (USED FOR MERGED IMAGE ARG. PASSING) ! ! DEFINE CLI COMMAND INTERFACE REQUEST BLOCK ! end record CLIDEF DECLARE LONG CONSTANT CLI$M_PARMREQ = x'00000001' DECLARE LONG CONSTANT CLI$M_ABSADR = x'00000002' DECLARE LONG CONSTANT CLI$M_EXPNAM = x'00000004' DECLARE LONG CONSTANT CLI$M_LASTVAL = x'00000001' DECLARE LONG CONSTANT CLI$M_DUMMY = x'00000002' DECLARE LONG CONSTANT CLI$M_PARMPRS = x'00000001' DECLARE LONG CONSTANT CLI$M_CONCATINP = x'00000002' DECLARE LONG CONSTANT CLI$M_MOREINP = x'00000004' DECLARE LONG CONSTANT CLI$M_PARMDEF = x'00000008' DECLARE LONG CONSTANT CLI$M_MOREVALS = x'00000001' DECLARE LONG CONSTANT CLI$M_KEYVALU = x'00000002' DECLARE LONG CONSTANT CLI$K_REQDESC = 28 ! SIZE OF THE STRUCTURE DECLARE LONG CONSTANT CLI$C_REQDESC = 28 ! SIZE OF THE STRUCTURE ! DECLARE LONG CONSTANT CLI$S_CLIDEF1 = 28 record CLIDEF1 group CLI$R_FILL_3_OVERLAY variant case LONG CLIDEF$$_FILL_3 ! DUMMY ARG case group CLI$R_FILL_3_FIELDS group CLI$R_RQTYPE_OVERLAY variant case BYTE CLI$B_RQTYPE ! TYPE OF REQUEST BEING MADE case group CLI$R_RQTYPE_BITS ! SUB TYPE VIELD ! PRIMARY TYPYE BYTE SUBTYP_bits ! COMMENT ADDED BY SDL - SUBTYP_bits contains bits SUBTYP through PRITYP end group CLI$R_RQTYPE_BITS end variant end group CLI$R_RQTYPE_OVERLAY group CLI$R_SERVCOD_OVERLAY variant case WORD CLI$W_SERVCOD ! CLI SERVICE CODE case group CLI$R_SERVCOD_FIELDS group CLI$R_RQINDX_OVERLAY variant case BYTE CLI$B_RQINDX ! OFFSET FOR VALUE KEYWORD INDEX case BYTE CLI$B_BITNUM ! BIT TO SET IF REQUEST IS SUCESSFUL end variant end group CLI$R_RQINDX_OVERLAY group CLI$R_RQFLGS_OVERLAY variant case BYTE CLI$B_RQFLGS ! INPUT FLAGS CONCERNING REQUEST case group CLI$R_RQFLGS_BITS0 ! PARAMATER IS REQUIRED ! ALL ADDRESS ARE ABSOLUTE ! RETURN EXPLICIT NAMES ONLY BYTE PARMREQ_bits ! COMMENT ADDED BY SDL - PARMREQ_bits contains bits PARMREQ through & ! FILL_105_ end group CLI$R_RQFLGS_BITS0 case group CLI$R_RQFLGS_BITS1 ! LAST VALUE ALLOWED ! *** SAVE PLACE FOR ABS ADR *** BYTE LASTVAL_bits ! COMMENT ADDED BY SDL - LASTVAL_bits contains bits LASTVAL through & ! FILL_106_ end group CLI$R_RQFLGS_BITS1 end variant end group CLI$R_RQFLGS_OVERLAY end group CLI$R_SERVCOD_FIELDS end variant end group CLI$R_SERVCOD_OVERLAY group CLI$R_RQSTAT_OVERLAY variant case BYTE CLI$B_RQSTAT ! OUTPUT STATUS FLAGS case group CLI$R_RQSTAT_BITS0 ! PARAMETER IS PRESENT ! INPUT CONCATONATION EXISTS ! ANOTHER SET OF INPUT PARAMETERS ! PARAMETER WAS DEFAULTED PRESENT BYTE PARMPRS_bits ! COMMENT ADDED BY SDL - PARMPRS_bits contains bits PARMPRS through FILL_107_ end group CLI$R_RQSTAT_BITS0 case group CLI$R_RQSTAT_BITS1 ! UNPROCESSED VALUES REMAIN ! SUBSEQUENT TOKEN IS VALUE FOR KEY BYTE MOREVALS_bits ! COMMENT ADDED BY SDL - MOREVALS_bits contains bits MOREVALS through FILL_108_ end group CLI$R_RQSTAT_BITS1 end variant end group CLI$R_RQSTAT_OVERLAY end group CLI$R_FILL_3_FIELDS end variant end group CLI$R_FILL_3_OVERLAY LONG CLI$A_ERRACT ! ADDRESS OF ERROR ACTION ROUTINE group CLI$R_RQDESC_OVERLAY variant case BASIC$QUADWORD CLI$Q_RQDESC ! QUADWORD REQUEST DESCRIPTOR case group CLI$R_RQDESC_FIELDS WORD CLI$W_RQSIZE ! RESULTANT SIZE OF PARAMETER WORD CLIDEF$$_FILL_4 ! SPARE WORD IN DESCRIPTOR group CLI$R_RQVALU_OVERLAY variant case LONG CLI$L_RQVALU ! ACTUAL VALUE IN VALUE CONVERSTION case LONG CLI$A_RQADDR ! ADDRESS OF RESULTANT PARAMETER end variant end group CLI$R_RQVALU_OVERLAY end group CLI$R_RQDESC_FIELDS end variant end group CLI$R_RQDESC_OVERLAY LONG CLI$A_PRSACT ! PARAMETER PRESENT ACTION ROUTINE LONG CLI$A_ABSACT ! PARAMETER ABSENT ACTION ROUTINE LONG CLI$A_QUALST ! ADDRESS OF QUALIFIERS ! Define the Descriptor Used by Symbol and Logical-name Callbacks ! end record CLIDEF1 DECLARE LONG CONSTANT CLI$S_CLIDEF2 = 36 record CLIDEF2 BYTE CLIDEF$$_FILL_8 ( 1 to 4 ) BASIC$QUADWORD CLI$Q_NAMDESC ! Logical name or symbol name BASIC$QUADWORD CLI$Q_VALDESC ! Equivalence name or symbol value BASIC$QUADWORD CLI$Q_TABDESC ! Name of logical name table LONG CLI$L_ITMLST ! Address of item list LONG CLI$L_ATTR ! Address of attribute longword ! ! Define the Descriptor Locations Used for the Old/New ! Out-of-Band Character(s) Masks ! end record CLIDEF2 DECLARE LONG CONSTANT CLI$S_CLIDEF3 = 12 record CLIDEF3 BYTE CLIDEF$$_FILL_9 ( 1 to 4 ) LONG CLI$L_NEW_MASK ! Enable/disable mask LONG CLI$L_OLD_MASK ! Previous enabled values mask ! ! Define the descriptor used for ATTACH callback ! end record CLIDEF3 DECLARE LONG CONSTANT CLI$S_CLIDEF4 = 8 record CLIDEF4 BYTE CLIDEF$$_FILL_10 ( 1 to 4 ) LONG CLI$L_PID ! PID of "destination" process ! ! Define the descriptor used for SPAWN callback ! end record CLIDEF4 DECLARE LONG CONSTANT CLI$M_NOWAIT = x'00000001' DECLARE LONG CONSTANT CLI$M_NOCLISYM = x'00000002' DECLARE LONG CONSTANT CLI$M_NOLOGNAM = x'00000004' DECLARE LONG CONSTANT CLI$M_NOKEYPAD = x'00000008' DECLARE LONG CONSTANT CLI$M_NOTIFY = x'00000010' DECLARE LONG CONSTANT CLI$M_NOCONTROL = x'00000020' DECLARE LONG CONSTANT CLI$M_TRUSTED = x'00000040' DECLARE LONG CONSTANT CLI$M_AUTHPRIV = x'00000080' DECLARE LONG CONSTANT CLI$M_SUBSYSTEM = x'00000100' DECLARE LONG CONSTANT CLI$M_DETACHED = x'00000200' DECLARE LONG CONSTANT CLI$K_SPAWN_VERSION = 1 ! Latest version DECLARE LONG CONSTANT CLI$C_SPAWN_VERSION = 1 ! Latest version DECLARE LONG CONSTANT CLI$K_SRVDESC = 88 ! Length of longest "service" callback DECLARE LONG CONSTANT CLI$C_SRVDESC = 88 ! Length of longest "service" callback ! DECLARE LONG CONSTANT CLI$S_CLIDEF5 = 88 record CLIDEF5 BYTE CLIDEF$$_FILL_11 ( 1 to 4 ) group CLI$R_FLAGS_OVERLAY variant case BYTE CLI$B_FLAGS ! Flags (as byte) case WORD CLI$W_FLAGS ! Flags (as word) case group CLI$R_FLAGS_BITS ! Do not wait for subprocess completion ! Do not copy CLI symbols to subprocess ! Do not copy logical names to subprocess ! Do not copy keypad state to subprocess ! Output notification message ! Do not put CR/LF in front of prompt string ! Allow spawn regardless of UAF CAPTIVE flag ! Propagate AUTHPRIV to subprocess ! Copy protected subsystem IDs to subprocess ! Spawn a detached process WORD NOWAIT_bits ! COMMENT ADDED BY SDL - NOWAIT_bits contains bits NOWAIT through FILL_109_ end group CLI$R_FLAGS_BITS end variant end group CLI$R_FLAGS_OVERLAY BYTE CLIDEF$$_FILL_5 ( 1 to 2 ) ! Unused LONG CLI$L_OUTPID ! PID of subprocess on return LONG CLI$L_LSTSTATUS ! Address to store final subprocess status BASIC$QUADWORD CLI$Q_CMDSTR ! Descriptor of command string BASIC$QUADWORD CLI$Q_INPUT ! Descriptor of input filespec BASIC$QUADWORD CLI$Q_OUTPUT ! Descriptor of output filespec BASIC$QUADWORD CLI$Q_PRCNAM ! Descriptor of name for subprocess LONG CLI$L_ASTADR ! Address of termination AST routine LONG CLI$L_ASTPRM ! Address of AST routine parameter BYTE CLI$B_EFN ! Event flag to set on termination BYTE CLI$B_VERSION ! Data structure version BYTE CLIDEF$$_FILL_6 ( 1 to 2 ) ! Unused BASIC$QUADWORD CLI$Q_PROMPT ! Descriptor of prompt string BASIC$QUADWORD CLI$Q_CLI ! Descriptor of cli name BASIC$QUADWORD CLI$Q_TABLE ! Descriptor of cli table name LONG CLI$L_KT_LIMIT ! Kernel thread limit ! ! Define the length of the longest "supervisor-mode service" request block, ! so that programs can allocate a fixed amount of space for the block. ! ! DEFINE THE PARAMETER QUALIFIER DESCRIPTOR ! end record CLIDEF5 DECLARE LONG CONSTANT CLI$M_ALLOCCUR = x'00000001' DECLARE LONG CONSTANT CLI$M_QDUSRV = x'00000002' DECLARE LONG CONSTANT CLI$M_QDEXPA = x'00000004' DECLARE LONG CONSTANT CLI$M_QUALTRU = x'00000001' DECLARE LONG CONSTANT CLI$M_QUALEXP = x'00000002' DECLARE LONG CONSTANT CLI$K_QUALDEF = 20 ! SIZE OF FIXED PART OF STRUCTURE DECLARE LONG CONSTANT CLI$C_QUALDEF = 20 ! SIZE OF FIXED PART OF STRUCTURE DECLARE LONG CONSTANT CLI$K_QDBITS = 20 ! START OF BIT LISTS(VARIALBLE LENGTH) DECLARE LONG CONSTANT CLI$C_QDBITS = 20 ! START OF BIT LISTS(VARIALBLE LENGTH) DECLARE LONG CONSTANT CLI$S_CLIDEF6 = 24 record CLIDEF6 BYTE CLI$B_QDBLKSIZ ! SIZE OF THE FINAL BLOCK BYTE CLI$B_QDCODE ! ID CODE FOR THE QUALIFIER group CLI$R_QDFLGS_OVERLAY variant case BYTE CLI$B_QDFLGS ! FLAGS BYTE case group CLI$R_QDFLGS_BITS ! TAKE ACTION ON ALL OCCURANCES ! USER CONTEX VALUE IS PRESENT ! TAKE ACTION ON EXPLICIT OCCURANCES BYTE ALLOCCUR_bits ! COMMENT ADDED BY SDL - ALLOCCUR_bits contains bits ALLOCCUR through FILL_110_ end group CLI$R_QDFLGS_BITS end variant end group CLI$R_QDFLGS_OVERLAY group CLI$R_QDSTAT_OVERLAY variant case BYTE CLI$B_QDSTAT ! QUALIFIER STATUS case group CLI$R_QDSTAT_BITS ! QUALIFIER IS TRUE ! QUALIFIER EXPLICITLY STATED BYTE QUALTRU_bits ! COMMENT ADDED BY SDL - QUALTRU_bits contains bits QUALTRU through FILL_111_ end group CLI$R_QDSTAT_BITS end variant end group CLI$R_QDSTAT_OVERLAY group CLI$R_QDVALDESC_OVERLAY variant case BASIC$QUADWORD CLI$Q_QDVALDESC ! QUALIFIER VALUE DESCRIPTOR case group CLI$R_QDVALDESC_FIELDS WORD CLI$W_QDVALSIZ ! SIZE OF VALUE WORD CLIDEF$$_FILL_7 ! SPARE WORD LONG CLI$A_QDVALADR ! ADDRESS OF VALUE STRING end group CLI$R_QDVALDESC_FIELDS end variant end group CLI$R_QDVALDESC_OVERLAY LONG CLI$A_TRUACT ! QUALIFIER TRUE ACTION ROUTINE LONG CLI$A_FLSACT ! QUALIFIER FALSE ACTION ROUTINE LONG CLI$L_USRVAL ! OPTION USER VALUE IF PRESENT ! ! DEFINE SPACE FOR THE RESULT PARSE WORK AREA ! end record CLIDEF6 DECLARE LONG CONSTANT CLI$K_WORKAREA = 128 ! SIZE OF HEADER DECLARE LONG CONSTANT CLI$C_WORKAREA = 128 ! SIZE OF HEADER ! DECLARE LONG CONSTANT CLI$K_UTILOPR = 0 ! UTILITY OPERATIONS DECLARE LONG CONSTANT CLI$K_INPSPEC = 1 ! REQUEST FOR AN INPUT SPECIFICATION DECLARE LONG CONSTANT CLI$K_OUTSPEC = 2 ! AN OUTPUT FILE SPECIFICATION DECLARE LONG CONSTANT CLI$K_PARDONE = 3 ! PARAMETER DONE REQUEST DECLARE LONG CONSTANT CLI$K_VALCONV = 4 ! REQUEST A VALUE CONVERSION DECLARE LONG CONSTANT CLI$K_CLINT = 5 ! CLINT OPERATIONS ! DECLARE LONG CONSTANT CLI$K_INITPRS = 0 ! REQUEST INITIALIZATION OF PARSE DECLARE LONG CONSTANT CLI$K_GETCMD = 1 ! GET COMMAND BUFFER LIMITS DECLARE LONG CONSTANT CLI$K_GETQUAL = 2 ! OPTAIN STATE OF QUALIFIERS DECLARE LONG CONSTANT CLI$K_GETOPT = 3 ! DECODE COMMAND OPTION DECLARE LONG CONSTANT CLI$K_GETLINE = 4 ! GET COMMAND LINE ! ! THE CLISERV REQUEST TYPE APPEARS HERE, INSTEAD OF WITH THE OTHER REQUEST ! TYPES, BECAUSE IT HAS NO SUBFUNCTIONS ASSOCIATED WITH IT, AND BECAUSE A ! DAY 1 CODING ERROR CAUSES DCL TO EXPECT THAT THIS REQUEST NUMBER WILL ! APPEAR IN THE SUBFUNCTION BITS. THIS MEANS THAT NO UTILITY OPERATION ! CAN BE DEFINED WITH THE SUBFUNCTION NUMBER 5. ! DECLARE LONG CONSTANT CLI$K_CLISERV = 5 ! REQUEST A SERVICE FROM THE CLI ! DECLARE LONG CONSTANT CLI$K_INPUT1 = 16 ! PRIMARY INPUT DECLARE LONG CONSTANT CLI$K_INPUT2 = 17 ! SECONDARY INPUT DECLARE LONG CONSTANT CLI$K_INPUT3 = 18 ! THIRD, DECLARE LONG CONSTANT CLI$K_INPUT4 = 19 ! ETC,ETC,ETC ! DECLARE LONG CONSTANT CLI$K_OUTPUT1 = 32 ! FIRST OUTPUT DECLARE LONG CONSTANT CLI$K_OUTPUT2 = 33 ! SECOND OUTPUT DECLARE LONG CONSTANT CLI$K_OUTPUT3 = 34 ! THIRD,- DECLARE LONG CONSTANT CLI$K_OUTPUT4 = 35 ! ETC,ETC,ETC ! DECLARE LONG CONSTANT CLI$K_ENDPRM1 = 48 ! COMPLETED PARAMETER SET 1 DECLARE LONG CONSTANT CLI$K_ENDPRM2 = 49 ! COMPLETED PARAMETER SET 2 DECLARE LONG CONSTANT CLI$K_ENDPRM3 = 50 ! COMPLETED PARAMETER SET 3 DECLARE LONG CONSTANT CLI$K_ENDPRM4 = 51 ! COMPLETED PARAMETER SET 4 ! DECLARE LONG CONSTANT CLI$K_NUMERVAL = 64 ! NUMBERIC VALUE DECLARE LONG CONSTANT CLI$K_ASCIIVAL = 65 ! ASCII VALUE DECLARE LONG CONSTANT CLI$K_KEYWORD = 66 ! KEYWORD VALUE DECLARE LONG CONSTANT CLI$K_KEYVAL = 67 ! KEYWORD WITH VALUE DECLARE LONG CONSTANT CLI$K_FILSPEC = 68 ! VALUE IS A FILESPEC ! DECLARE LONG CONSTANT CLI$K_PRESENT = 80 ! DETERMINE IF ENTITY IS PRESENT DECLARE LONG CONSTANT CLI$K_GETVALUE = 81 ! GET VALUE OF ENTITY DECLARE LONG CONSTANT CLI$K_ENDPARSE = 82 ! CLEAN UP AFTER PARSING COMMAND DECLARE LONG CONSTANT CLI$K_DCLPARSE = 83 ! PARSE USER COMMAND LINE DECLARE LONG CONSTANT CLI$K_DISPATCH = 84 ! DISPATCH TO ACTION ROUTINE DECLARE LONG CONSTANT CLI$K_NEXTQUAL = 85 ! PROCESS NEXT QUALIFIER ! DECLARE LONG CONSTANT CLI$S_CLIDEF7 = 128 record CLIDEF7 variant case LONG CLI$L_WORKAREA ( 1 to 32 ) ! ALLOCATE 32 LONG WORDS ! DEFINE CLI UTILITY REQUEST CODES ! ! CODES ARE 8 BITS, CONSISTING OF 2 4 BIT FIELDS ! THE LEAST 4 BITS ARE SUBFUCTION DEFINITONS ! AND THE MOST SIGNIFICANT 4 BITS ARE REQUEST TYPE ! ! DEFINE REQUEST TYPE CODES ! DEFINE COMPLETE CODES FOR UTILITY OPERATIONS ! ! DEFINE COMPLETE CODES FOR INPUT SPECIFICATIONS ! ! DEFINE COMPLETE CODES FOR OUTPUT SPECIFICATIONS ! ! DEFINE CODES FOR RESULT PARSE PARAMETER COMPLETION ! ! DEFINE CODES FOR VALUE CONVERSION REQUESTS ! ! DEFINE COMPLETE CODES FOR UTILITY OPERATIONS ! ! DEFINE SET CODE SET REQUEST BLOCK ! end variant end record CLIDEF7 DECLARE LONG CONSTANT CLI$S_CLIDEF8 = 8 record CLIDEF8 BYTE CLIDEF$$_FILL_12 ( 1 to 4 ) LONG CLI$L_CODESET ! CODE SET VALUE end record CLIDEF8