/*
 * Sample Program for microVIEW-G(x)
 * <<< samp5.c >>>
 * 1996 @ advice Yokogawa Digital Computer Corp.
 */

/*
 * Include Files
 */

#include        "samp0.h"
#include        "samp1.h"
#include        "samp2.h"

/*
 * Data Definition
 */

struct sDataType {
    char                uc;
    short               us;
    int                 ui;
    long                ul;
} ;

struct uDataType {
    unsigned char       uc;
    unsigned short      us;
    unsigned int        ui;
    unsigned long       ul;
} ;

short ShortReturnFunc(void)
{
    short       ret;
    float       f;
    char        *c;

    unsigned char       uc;
    unsigned short      us;
    unsigned int        ui;
    unsigned long       ul;

    enum Planets {
	Sun,
	Mercury,
	Venus,
	Earth,
	Mars,
	Jupiter,
	Saturn,
	Uranus,
	Neptune,
	Pluto 
    } planets;

    union SignUnsign {
	struct sDataType sdt;
	struct uDataType udt;
    } suu;

	struct BITFLD2 {
		unsigned long *pp;
		unsigned char xx:2;
		unsigned char yy:6;
		unsigned int zz;
	} lbitfld2;

    SystemCounter = 1000;

/* program loop */
    ret = 9;

    uc = 0xff;
    us = 0xffff;
    ui = 255;
    ul = 0xffffffff;

    suu.udt.uc = uc;
    suu.udt.us = us;
    suu.udt.ui = ui;
    suu.udt.ul = ul;

	lbitfld2.pp = bitfld2.pp;
	lbitfld2.xx = bitfld2.xx;
	lbitfld2.yy = bitfld2.yy;
	lbitfld2.zz = bitfld2.zz;
	
    for (ret = 1; ret <= 10; ret ++) {
	switch (ret) {
	case 1:
	    planets = Sun;
	    f = Divide ( planets );
	    Fill(Sun);
	    f = Square ( planets );
	    f = Multiplication ( planets );
	    break;

	case 2:
	    planets = Mercury;
	    f = Divide ( planets );
	    f = Square ( planets );
	    f = Multiplication ( planets );
	    break;

	case 3:
	    planets = Venus;
	    f = Divide ( planets );
	    f = Square ( planets );
	    f = Multiplication ( planets );
	    break;

	case 4:
	    planets = Earth;
	    c = MemClr( MasterStr, STRSIZ );
	    f = Divide ( planets );
	    f = Square ( planets );
	    f = Multiplication ( planets );
	    break;

	case 5:
	    planets = Mars;
	    f = Divide ( planets );
	    f = Square ( planets );
	    f = Multiplication ( planets );
	    break;

	case 6:
	    planets = Jupiter;
	    f = Divide ( planets );
	    f = Square ( planets );
	    f = Multiplication ( planets );
	    break;

	case 7:
	    planets = Saturn;
	    f = Divide ( planets );
	    f = Square ( planets );
	    f = Multiplication ( planets );
	    Fill(1);
	    break;

	case 8:
	    planets = Uranus;
	    f = Divide ( planets );
	    f = Square ( planets );
	    f = Multiplication ( planets );
	    break;

	case 9:
	    planets = Neptune;
	    f = Divide ( planets );
	    f = Square ( planets );
	    f = Multiplication ( planets );
	    break;

	case 10:
	    planets = Pluto ;
	    f = Divide ( planets );
	    f = Square ( planets );
	    f = Multiplication ( planets );
	}
    }

    ret = 9;
    return (ret);
}

/* EOF */
