?? RIGHT := 110 ??
  PROCEDURE {[INLINE]} bai$put_ansi_scw_for_putp;

    VAR
      scw_value: integer;

    CASE call_block.putp.term_option OF

    = amc$start =
      IF start_of_data THEN
        rh.header_type := bac$start_segment;
      ELSE
        rh.header_type := bac$continued_segment;
      IFEND;

    = amc$continue =
      rh.header_type := bac$continued_segment;

    = amc$terminate =
      IF gfi^.positioning_info.record_info.file_position = amc$mid_record THEN
        rh.header_type := v$header_types [FALSE {=not start of data}] [end_of_data];
      ELSE { gfi^.positioning_info.record_info.file_position <> amc$mid_record
        rh.header_type := v$header_types [start_of_data] [end_of_data];
      IFEND;
    ELSE
      amp$set_file_instance_abnormal (file_identifier, ame$improper_term_option, call_block.operation, ' ',
            status);
      RETURN; {----->
    CASEND;

    scw_value := put_size + rhl;
    IF scw_value > bac$scw_length_value_max THEN
      amp$set_file_instance_abnormal (file_identifier, ame$tape_rcd_mgr_malfunction, operation,
            'SCW length overflow encountered in US/S put_ansi_rcw_for_putp ', status);
      RETURN; {----->
    IFEND;

    i#int_to_unsig_0_fill_rjstring (scw_value, rh.length);

    put_data (file_identifier, operation, #LOC (rh), rhl, term_option, terminate_previous_block,
          {convert_if_ebcdic} TRUE, status);

    IF status.normal THEN
      last_record_header_p := ^tape_descriptor^.put_tape_block_buffer^
            [block_info^.current_block_byte_address + 1 - rhl];
    IFEND;

    start_of_data := FALSE;

  PROCEND bai$put_ansi_scw_for_putp;
