%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$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_FLOATING_COMPLEX_DECL ) = 0 %THEN RECORD BASIC$H_FLOATING_COMPLEX HFLOAT REAL_PART HFLOAT IMAGINARY_PART END RECORD %LET %BASIC$H_FLOATING_COMPLEX_DECL = 1 %END %IF ! ! CONDITION HANDLING ARGUMENT LIST OFFSETS ! THERE ARE THREE CONDITIONAL HANDLING STRUCTURES: THE PRIMARY ARGUMENT ! LIST, AND THE SIGNAL AND MECHANISM ARRAYS. ALL ARE IDENTIFIED BY THE SAME ! BLOCK PREFIX. ! DECLARE LONG CONSTANT CHF$S_CHFDEF = 12 record CHFDEF LONG CHFDEF$$_FILL_1 ! PRIMARY ARGUMENT COUNT LONG CHF$L_SIGARGLST ! ADDRESS OF SIGNAL ARGUMENTS LONG CHF$L_MCHARGLST ! ADDRESS OF MECHANISM ARGUMENTS end record CHFDEF DECLARE LONG CONSTANT CHF$S_CHFDEF1 = 12 record CHFDEF1 group CHF$R_SIG_ARGS_DESC variant case LONG CHF$IS_SIG_ARGS ! NUMBER OF SIGNAL ARGUMENTS case LONG CHF$L_SIG_ARGS ! NUMBER OF SIGNAL ARGUMENTS end variant end group CHF$R_SIG_ARGS_DESC group CHF$R_SIG_NAME_DESC variant case LONG CHF$IS_SIG_NAME ! SIGNAL NAME case LONG CHF$L_SIG_NAME ! SIGNAL NAME end variant end group CHF$R_SIG_NAME_DESC group CHF$R_SIG_ARG1_DESC variant case LONG CHF$IS_SIG_ARG1 ! FIRST SIGNAL SPECIFIC ARGUMENT case LONG CHF$L_SIG_ARG1 ! FIRST SIGNAL SPECIFIC ARGUMENT end variant end group CHF$R_SIG_ARG1_DESC end record CHFDEF1 DECLARE LONG CONSTANT CHF$S_CHFDEF2 = 20 record CHFDEF2 group CHF$R_MCH_ARGS_DESC variant case LONG CHF$IS_MCH_ARGS ! NUMBER OF MECHANISM ARGUMENTS case LONG CHF$L_MCH_ARGS ! NUMBER OF MECHANISM ARGUMENTS end variant end group CHF$R_MCH_ARGS_DESC group CHF$R_MCH_FRAME_DESC variant case LONG CHF$PH_MCH_FRAME ! ESTABLISHER FRAME ADDRESS case LONG CHF$L_MCH_FRAME ! ESTABLISHER FRAME ADDRESS end variant end group CHF$R_MCH_FRAME_DESC group CHF$R_MCH_DEPTH_DESC variant case LONG CHF$IS_MCH_DEPTH ! FRAME DEPTH OF ESTABLISHER case LONG CHF$L_MCH_DEPTH ! FRAME DEPTH OF ESTABLISHER end variant end group CHF$R_MCH_DEPTH_DESC group CHF$R_MCH_SAVR0_DESC variant case LONG CHF$IH_MCH_SAVR0 ! SAVED REGISTER R0 case LONG CHF$L_MCH_SAVR0 ! SAVED REGISTER R0 end variant end group CHF$R_MCH_SAVR0_DESC group CHF$R_MCH_SAVR1_DESC variant case LONG CHF$IH_MCH_SAVR1 ! SAVED REGISTER R1 case LONG CHF$L_MCH_SAVR1 ! SAVED REGISTER R1 end variant end group CHF$R_MCH_SAVR1_DESC end record CHFDEF2