コード例 #1
0
ファイル: orbits.c プロジェクト: jguillaumes/orbit-examples
static int
ORBITS_ (const int entry)
{
  /* Local variables */
  #include "orbits.c.l.h"

  static int initialized = 0;
  static cob_field *cob_user_parameters[COB_MAX_FIELD_PARAMS];
  static struct cob_module module = { NULL, NULL, NULL, NULL, cob_user_parameters, 0, '.', '$', ',', 1, 1, 1, 0 };

  /* Start of function code */

  /* CANCEL callback handling */
  if (unlikely(entry < 0)) {
  	if (!initialized) {
  		return 0;
  	}
  	cob_close (h_ENTRADA, 0, NULL);
  	cob_close (h_SORTIDA, 0, NULL);
  	mpz_clear (d0.value);
  	d0.scale = 0;
  	mpz_clear (d1.value);
  	d1.scale = 0;
  	mpz_clear (d2.value);
  	d2.scale = 0;
  	mpz_clear (d3.value);
  	d3.scale = 0;
  	mpz_clear (d4.value);
  	d4.scale = 0;
  	initialized = 0;
  	return 0;
  }

  /* Initialize frame stack */
  frame_ptr = &frame_stack[0];
  frame_ptr->perform_through = 0;

  /* Push module stack */
  module.next = cob_current_module;
  cob_current_module = &module;

  /* Initialize program */
  if (unlikely(initialized == 0))
    {
      if (!cob_initialized) {
        cob_fatal_error (COB_FERROR_INITIALIZED);
      }
      cob_check_version (COB_SOURCE_FILE, COB_PACKAGE_VERSION, COB_PATCH_LEVEL);
      /* Initialize decimal numbers */
      cob_decimal_init (&d0);
      cob_decimal_init (&d1);
      cob_decimal_init (&d2);
      cob_decimal_init (&d3);
      cob_decimal_init (&d4);

      (*(int *) (b_1)) = 0;

      if (!h_ENTRADA)
      {
        h_ENTRADA = cob_malloc (sizeof(cob_file));
      }
      h_ENTRADA->select_name = (const char *)"ENTRADA";
      h_ENTRADA->file_status = h_ENTRADA_status;
      memset (h_ENTRADA_status, '0', 2);
      h_ENTRADA->assign = &c_1;
      h_ENTRADA->record = &f_14;
      h_ENTRADA->record_size = NULL;
      h_ENTRADA->record_min = 0;
      h_ENTRADA->record_max = 33;
      h_ENTRADA->nkeys = 0;
      h_ENTRADA->keys = NULL;
      h_ENTRADA->file = NULL;
      h_ENTRADA->organization = 1;
      h_ENTRADA->access_mode = 1;
      h_ENTRADA->lock_mode = 0;
      h_ENTRADA->open_mode = 0;
      h_ENTRADA->flag_optional = 0;
      h_ENTRADA->last_open_mode = 0;
      h_ENTRADA->special = 0;
      h_ENTRADA->flag_nonexistent = 0;
      h_ENTRADA->flag_end_of_file = 0;
      h_ENTRADA->flag_begin_of_file = 0;
      h_ENTRADA->flag_first_read = 0;
      h_ENTRADA->flag_read_done = 0;
      h_ENTRADA->flag_select_features = 0;
      h_ENTRADA->flag_needs_nl = 0;
      h_ENTRADA->flag_needs_top = 0;
      h_ENTRADA->file_version = 0;
      if (!h_SORTIDA)
      {
        h_SORTIDA = cob_malloc (sizeof(cob_file));
      }
      h_SORTIDA->select_name = (const char *)"SORTIDA";
      h_SORTIDA->file_status = h_SORTIDA_status;
      memset (h_SORTIDA_status, '0', 2);
      h_SORTIDA->assign = &c_2;
      h_SORTIDA->record = &f_16;
      h_SORTIDA->record_size = NULL;
      h_SORTIDA->record_min = 0;
      h_SORTIDA->record_max = 80;
      h_SORTIDA->nkeys = 0;
      h_SORTIDA->keys = NULL;
      h_SORTIDA->file = NULL;
      h_SORTIDA->organization = 1;
      h_SORTIDA->access_mode = 1;
      h_SORTIDA->lock_mode = 0;
      h_SORTIDA->open_mode = 0;
      h_SORTIDA->flag_optional = 0;
      h_SORTIDA->last_open_mode = 0;
      h_SORTIDA->special = 0;
      h_SORTIDA->flag_nonexistent = 0;
      h_SORTIDA->flag_end_of_file = 0;
      h_SORTIDA->flag_begin_of_file = 0;
      h_SORTIDA->flag_first_read = 0;
      h_SORTIDA->flag_read_done = 0;
      h_SORTIDA->flag_select_features = 0;
      h_SORTIDA->flag_needs_nl = 0;
      h_SORTIDA->flag_needs_top = 0;
      h_SORTIDA->file_version = 0;

      initialized = 1;
    }

  /* Allocate LOCAL storage */
  b_17 = cob_malloc (24);
  b_21 = cob_malloc (24);
  b_25 = cob_malloc (24);
  b_29 = cob_malloc (24);
  b_33 = cob_malloc (24);
  b_37 = cob_malloc (24);
  b_41 = cob_malloc (24);
  b_45 = cob_malloc (8);
  b_46 = cob_malloc (4);
  b_47 = cob_malloc (8);
  b_48 = cob_malloc (8);
  b_49 = cob_malloc (8);
  b_50 = cob_malloc (8);
  b_51 = cob_malloc (8);
  b_52 = cob_malloc (4);
  b_53 = cob_malloc (1);
  b_55 = cob_malloc (56);
  b_61 = cob_malloc (56);
  b_67 = cob_malloc (56);

  /* Initialialize LOCAL storage */
  {double temp = 0.0; memcpy (b_17, (char *)&temp, sizeof(temp));}
  {double temp = 0.0; memcpy (b_17 + 8, (char *)&temp, sizeof(temp));}
  {double temp = 0.0; memcpy (b_17 + 16, (char *)&temp, sizeof(temp));}
  {double temp = 0.0; memcpy (b_21, (char *)&temp, sizeof(temp));}
  {double temp = 0.0; memcpy (b_21 + 8, (char *)&temp, sizeof(temp));}
  {double temp = 0.0; memcpy (b_21 + 16, (char *)&temp, sizeof(temp));}
  {double temp = 0.0; memcpy (b_25, (char *)&temp, sizeof(temp));}
  {double temp = 0.0; memcpy (b_25 + 8, (char *)&temp, sizeof(temp));}
  {double temp = 0.0; memcpy (b_25 + 16, (char *)&temp, sizeof(temp));}
  {double temp = 0.0; memcpy (b_29, (char *)&temp, sizeof(temp));}
  {double temp = 0.0; memcpy (b_29 + 8, (char *)&temp, sizeof(temp));}
  {double temp = 0.0; memcpy (b_29 + 16, (char *)&temp, sizeof(temp));}
  {double temp = 0.0; memcpy (b_33, (char *)&temp, sizeof(temp));}
  {double temp = 0.0; memcpy (b_33 + 8, (char *)&temp, sizeof(temp));}
  {double temp = 0.0; memcpy (b_33 + 16, (char *)&temp, sizeof(temp));}
  {double temp = 0.0; memcpy (b_37, (char *)&temp, sizeof(temp));}
  {double temp = 0.0; memcpy (b_37 + 8, (char *)&temp, sizeof(temp));}
  {double temp = 0.0; memcpy (b_37 + 16, (char *)&temp, sizeof(temp));}
  {double temp = 0.0; memcpy (b_41, (char *)&temp, sizeof(temp));}
  {double temp = 0.0; memcpy (b_41 + 8, (char *)&temp, sizeof(temp));}
  {double temp = 0.0; memcpy (b_41 + 16, (char *)&temp, sizeof(temp));}
  {double temp = 0.0; memcpy (b_45, (char *)&temp, sizeof(temp));}
  memset (b_46, 0, 4);
  {double temp = 0.0; memcpy (b_47, (char *)&temp, sizeof(temp));}
  {double temp = 0.0; memcpy (b_48, (char *)&temp, sizeof(temp));}
  {double temp = 0.0; memcpy (b_49, (char *)&temp, sizeof(temp));}
  {double temp = 0.0; memcpy (b_50, (char *)&temp, sizeof(temp));}
  {double temp = 0.0; memcpy (b_51, (char *)&temp, sizeof(temp));}
  memset (b_52, 0, 4);
  *(unsigned char *)(b_53) = 32;
  memcpy (b_55, "X", 1);
  memset (b_55 + 1, 32, 17);
  *(unsigned char *)(b_55 + 18) = 32;
  memcpy (b_55 + 19, "Y", 1);
  memset (b_55 + 19 + 1, 32, 17);
  *(unsigned char *)(b_55 + 37) = 32;
  memcpy (b_55 + 38, "Z", 1);
  memset (b_55 + 38 + 1, 32, 17);
  memset (b_61, 61, 18);
  *(unsigned char *)(b_61 + 18) = 32;
  memset (b_61 + 19, 61, 18);
  *(unsigned char *)(b_61 + 37) = 32;
  memset (b_61 + 38, 61, 18);
  memset (b_67, 48, 18);
  *(unsigned char *)(b_67 + 18) = 32;
  memset (b_67 + 19, 48, 18);
  *(unsigned char *)(b_67 + 37) = 32;
  memset (b_67 + 38, 48, 18);

  cob_save_call_params = cob_call_params;

  /* Entry dispatch */
  goto l_2;

  /* PROCEDURE DIVISION */

  /* Entry ORBITS */

  l_2:;

  /* MAIN SECTION */

  /* BEGIN */

  /* orbits.cob:97: DISPLAY */
  {
    cob_display (0, 1, 1, &c_3);
  }
  /* orbits.cob:98: MOVE */
  {
    cob_move (&c_4, (f_45.data = b_45, &f_45));
  }
  /* orbits.cob:99: OPEN */
  {
    cob_exception_code = 0;
    {
      cob_open (h_ENTRADA, 1, 0, NULL);
    }
    if (unlikely(cob_exception_code != 0))
      {
        /* PERFORM Default Error Handler */
        frame_ptr++;
        frame_ptr->perform_through = 1;
        frame_ptr->return_address = &&l_14;
        goto l_1;
        l_14:
        frame_ptr--;
      }
  }
コード例 #2
0
ファイル: fizzbuzz.c プロジェクト: gdm9000/euler1
static int
fizzbuzz_ (const int entry)
{

#include "fizzbuzz.c.h"  /* local variables */

  static int initialized = 0;
  static cob_field *cob_user_parameters[COB_MAX_FIELD_PARAMS];
  static cob_module module = { NULL, NULL, &f_8, NULL, cob_user_parameters, 0, '.', '$', ',', 1, 1, 1, 0};


  /* perform frame stack */
  int frame_index;
  struct frame {
  	int  perform_through;
  	void *return_address;
  } frame_stack[255];

  /* Start of function code */

  if (unlikely(entry < 0)) {
  	if (!initialized) {
  		return 0;
  	}
  	initialized = 0;
  	return 0;
  }

  module.next = cob_current_module;
  cob_current_module = &module;

  if (unlikely(initialized == 0))
    {
      if (!cob_initialized) {
        cob_fatal_error (COB_FERROR_INITIALIZED);
      }
      cob_check_version (COB_SOURCE_FILE, COB_PACKAGE_VERSION, COB_PATCH_LEVEL);
      (*(int *) (b_1)) = 0;
      (*(int *) (b_2)) = 0;
      (*(int *) (b_3)) = 0;
      memcpy (b_5, "001", 3);
      memset (b_6, 48, 3);
      memset (b_7, 48, 3);
      memset (b_8, 48, 4);


      initialized = 1;
    }

  /* initialize frame stack */
  frame_index = 0;
  frame_stack[0].perform_through = -1;

  /* initialize number of call params */
  (*(int *) (b_3))   = cob_call_params;
  cob_save_call_params = cob_call_params;

  goto l_2;

  /* PROCEDURE DIVISION */


  /* fizzbuzz: */

  l_2:;

  /* MAIN SECTION: */

  /* MAIN PARAGRAPH: */

  /* fizzbuzz.cob:13: PERFORM */
  cob_set_location ("fizzbuzz", "fizzbuzz.cob", 13, "MAIN SECTION", "MAIN PARAGRAPH", "PERFORM");
  {
    while (1)
      {
        if (((int)cob_cmp_numdisp (b_5, 3, 100) >  0))
          break;
        {
          /* fizzbuzz.cob:14: DIVIDE */
          cob_set_location ("fizzbuzz", "fizzbuzz.cob", 14, "MAIN SECTION", "MAIN PARAGRAPH", "DIVIDE");
          {
            cob_div_quotient (&f_5, &c_1, &f_7, 2);
            cob_div_remainder (&f_6, 2);
          }
          /* fizzbuzz.cob:15: IF */
          cob_set_location ("fizzbuzz", "fizzbuzz.cob", 15, "MAIN SECTION", "MAIN PARAGRAPH", "IF");
          {
            if (((int)cob_cmp_numdisp (b_6, 3, 0) == 0))
              {
                /* fizzbuzz.cob:17: DISPLAY */
                cob_set_location ("fizzbuzz", "fizzbuzz.cob", 17, "MAIN SECTION", "MAIN PARAGRAPH", "DISPLAY");
                {
                  cob_new_display (0, 0, 1, &c_2);
                }
              }
            else
              {
                /* fizzbuzz.cob:19: DIVIDE */
                cob_set_location ("fizzbuzz", "fizzbuzz.cob", 19, "MAIN SECTION", "MAIN PARAGRAPH", "DIVIDE");
                {
                  cob_div_quotient (&f_5, &c_3, &f_7, 2);
                  cob_div_remainder (&f_6, 2);
                }
                /* fizzbuzz.cob:20: IF */
                cob_set_location ("fizzbuzz", "fizzbuzz.cob", 20, "MAIN SECTION", "MAIN PARAGRAPH", "IF");
                {
                  if (((int)cob_cmp_numdisp (b_6, 3, 0) == 0))
                    {
                      /* fizzbuzz.cob:22: DISPLAY */
                      cob_set_location ("fizzbuzz", "fizzbuzz.cob", 22, "MAIN SECTION", "MAIN PARAGRAPH", "DISPLAY");
                      {
                        cob_new_display (0, 0, 1, &c_4);
                      }
                    }
                  else
                    {
                      /* fizzbuzz.cob:24: DIVIDE */
                      cob_set_location ("fizzbuzz", "fizzbuzz.cob", 24, "MAIN SECTION", "MAIN PARAGRAPH", "DIVIDE");
                      {
                        cob_div_quotient (&f_5, &c_5, &f_7, 2);
                        cob_div_remainder (&f_6, 2);
                      }
                      /* fizzbuzz.cob:25: IF */
                      cob_set_location ("fizzbuzz", "fizzbuzz.cob", 25, "MAIN SECTION", "MAIN PARAGRAPH", "IF");
                      {
                        if (((int)cob_cmp_numdisp (b_6, 3, 0) == 0))
                          {
                            /* fizzbuzz.cob:27: DISPLAY */
                            cob_set_location ("fizzbuzz", "fizzbuzz.cob", 27, "MAIN SECTION", "MAIN PARAGRAPH", "DISPLAY");
                            {
                              cob_new_display (0, 0, 1, &c_6);
                            }
                          }
                        else
                          {
                            /* fizzbuzz.cob:29: DISPLAY */
                            cob_set_location ("fizzbuzz", "fizzbuzz.cob", 29, "MAIN SECTION", "MAIN PARAGRAPH", "DISPLAY");
                            {
                              cob_new_display (0, 0, 2, &f_5, &c_7);
                            }
                          }
                      }
                    }
                }
              }
          }
          /* fizzbuzz.cob:33: ADD */
          cob_set_location ("fizzbuzz", "fizzbuzz.cob", 33, "MAIN SECTION", "MAIN PARAGRAPH", "ADD");
          {
            cob_add (&f_5, &c_8, 2);
          }
        }
      }
  }
  /* fizzbuzz.cob:35: DISPLAY */
  cob_set_location ("fizzbuzz", "fizzbuzz.cob", 35, "MAIN SECTION", "MAIN PARAGRAPH", "DISPLAY");
  {
    cob_new_display (0, 1, 1, &c_9);
  }
  /* fizzbuzz.cob:36: STOP */
  cob_set_location ("fizzbuzz", "fizzbuzz.cob", 36, "MAIN SECTION", "MAIN PARAGRAPH", "STOP");
  {
    cob_stop_run ((*(int *) (b_1)));
  }

  cob_current_module = cob_current_module->next;
  return (*(int *) (b_1));

}