Exemplo n.º 1
0
void foo()
{
    int test = assert_same_type(
        f(slew(.799).name("z"))
      , named_params<
            name_tag, char const[2]        // .name("z")
          , named_params<
                slew_tag, double const     // slew(.799)
              , nil_t
            >
        >
        ());
}
Exemplo n.º 2
0
void CellularAutomata::onSimulation(double currentSampleCount, double sampleDelta) {
    SimTime deltaTime = float(sampleDelta) / m_sampleRate;
    m_displayInterpolationFactor = slew(m_displayInterpolationFactor, m_displayMode, deltaTime, 0.8f);
    if (m_paused) {
        m_currentTime = floor(m_currentTime / stepTime())*stepTime();
        return;
    }
    int oldBeatNum = beatNum();
    m_currentTime += deltaTime;
    int newBeatNum = beatNum();
    if (newBeatNum != oldBeatNum) {
        step();
    }
    for (const HeadWallCollision& c : m_wallCollisions) {
        int index = isVert(c.d) ? c.pos.x : c.pos.y;
        Synthesizer::global->queueSound(m_soundBank[index]);
    }
}
Exemplo n.º 3
0
void output()
	{
	mtrTarget[D_LEFT]  = outDrvL;
	mtrTarget[D_RIGHT] = outDrvR;

	for (int j=0; j<3; j++)
		{
#ifdef SLEW
		mtrSlewed[j] += slew(mtrTarget[j], mtrSlewed[j], slewConstants[j]); //SLEW CONTROLLERS
#endif
		capValue(-100, mtrSlewed[j], 100); //CAP ALL MOTORS
		motor[j] = mtrSlewed[j]; //ASSIGN MOTORS
		}
	string temp1,temp2;
	StringFormat(temp1,"Time:%.1f",((float)autoTimer/1000));
	StringFormat(temp2, "Step: %d", autoStep);	//Show step
	nxtDisplayCenteredTextLine(0,temp1);
	nxtDisplayCenteredTextLine(1,temp2);
	}
Exemplo n.º 4
0
/*
 * Copy a block of source and code to
 * the listing file. If no listing file or
 * the current line is not to be listed
 * just return. Multiple code bytes get
 * put out on extra lines after the source
 * line.
 */
VOID
list()
{
	register char *wp;
	register int *wpt;
	register nb;

	if (lfp == NULL || lmode == NLIST)
		return;
	slew(lfp, 0);
	while (ep < &eb[NERR])
		*ep++ = ' ';
	fprintf(lfp, "%.2s", eb);
	if (lmode == SLIST) {
		fprintf(lfp, "%24s%5u %s\n", "", line, ib);
		return;
	}
	if (xflag == 0) {		/* HEX */
		fprintf(lfp, " %04X", laddr);
		if (lmode == ALIST) {
			fprintf(lfp, "%19s%5u %s\n", "", line, ib);
			return;
		}
		wp = cb;
		wpt = cbt;
		nb = (int) (cp - cb);
		list1(wp, wpt, nb, 1);
		fprintf(lfp, " %5u %s\n", line, ib);
		while ((nb -= 6) > 0) {
			wp += 6;
			wpt += 6;
			slew(lfp, 0);
			fprintf(lfp, "%7s", "");
			list1(wp, wpt, nb, 0);
			putc('\n', lfp);
		}
	} else
	if (xflag == 1) {		/* OCTAL */
		fprintf(lfp, " %06o", laddr);
		if (lmode == ALIST) {
			fprintf(lfp, "%17s%5u %s\n", "", line, ib);
			return;
		}
		wp = cb;
		wpt = cbt;
		nb = (int) (cp - cb);
		list1(wp, wpt, nb, 1);
		fprintf(lfp, " %5u %s\n", line, ib);
		while ((nb -= 4) > 0) {
			wp += 4;
			wpt += 4;
			slew(lfp, 0);
			fprintf(lfp, "%9s", "");
			list1(wp, wpt, nb, 0);
			putc('\n', lfp);
		}
	} else
	if (xflag == 2) {		/* DECIMAL */
		fprintf(lfp, "  %05u", laddr);
		if (lmode == ALIST) {
			fprintf(lfp, "%17s%5u %s\n", "", line, ib);
			return;
		}
		wp = cb;
		wpt = cbt;
		nb = (int) (cp - cb);
		list1(wp, wpt, nb, 1);
		fprintf(lfp, " %5u %s\n", line, ib);
		while ((nb -= 4) > 0) {
			wp += 4;
			wpt += 4;
			slew(lfp, 0);
			fprintf(lfp, "%9s", "");
			list1(wp, wpt, nb, 0);
			putc('\n', lfp);
		}
	}
}
Exemplo n.º 5
0
VOID
lstarea(struct area *xp, struct bank *yp)
{
        struct areax *oxp;
        int i, j, n;
        char *frmt, *ptr;
        int nmsym;
        a_uint a0, ai, aj;
        struct sym *sp;
        struct sym **p;
        /* sdld specific */
        int memPage;
        /* end sdld specific */

        /*
         * Find number of symbols in area
         */
        nmsym = 0;
        oxp = xp->a_axp;
        while (oxp) {
                for (i=0; i<NHASH; i++) {
                        sp = symhash[i];
                        while (sp != NULL) {
                                if (oxp == sp->s_axp)
                                        ++nmsym;
                                sp = sp->s_sp;
                        }
                }
                oxp = oxp->a_axp;
        }

        if ((nmsym == 0) && (xp->a_size == 0)) {
                return;
        }

        lop = NLPP;
        slew(xp, yp);

        if (nmsym == 0) {
                return;
        }

        /*
         * Allocate space for an array of pointers to symbols
         * and load array.
         */
        if ( (p = (struct sym **) malloc (nmsym*sizeof(struct sym *))) == NULL) {
                fprintf(mfp, "Insufficient space to build Map Segment.\n");
                return;
        }
        nmsym = 0;
        oxp = xp->a_axp;
        while (oxp) {
                for (i=0; i<NHASH; i++) {
                        sp = symhash[i];
                        while (sp != NULL) {
                                if (oxp == sp->s_axp) {
                                        p[nmsym++] = sp;
                                }
                                sp = sp->s_sp;
                        }
                }
                oxp = oxp->a_axp;
        }

        if (is_sdld()) {
                /*
                 * Quick Sort of Addresses in Symbol Table Array
                 */
                qsort(p, nmsym, sizeof(struct sym *), _cmpSymByAddr);
        } else {
                /*
                 * Bubble Sort of Addresses in Symbol Table Array
                 */
                j = 1;
                while (j) {
                        j = 0;
                        sp = p[0];
                        a0 = sp->s_addr + sp->s_axp->a_addr;
                        for (i=1; i<nmsym; ++i) {
                                sp = p[i];
                                ai = sp->s_addr + sp->s_axp->a_addr;
                                if (a0 > ai) {
                                        j = 1;
                                        p[i] = p[i-1];
                                        p[i-1] = sp;
                                }
                                a0 = ai;
                        }
                }
        }

        /*
         * Repeat Counter
         */
        switch(a_bytes) {
        default:
        case 2: n = 4; break;
        case 3:
        case 4: n = 3; break;
        }

        /*
         * Symbol Table Output
         */
        /* sdld specific */
        memPage = (xp->a_flag & A_CODE) ? 0x0C : ((xp->a_flag & A_XDATA) ? 0x0D : ((xp->a_flag & A_BIT) ? 0x0B : 0x00));
        /* end sdld specific */
        i = 0;
        while (i < nmsym) {
                if (wflag) {
                        slew(xp, yp);
                        if (is_sdld()) {
                                switch(a_bytes) {
                                default:
                                case 2: frmt = "     "; break;
                                case 3:
                                case 4: frmt = ""; break;
                                }
                                if (memPage != 0)
                                        fprintf(mfp, "%s%X:", frmt, memPage);
                                else
                                        fprintf(mfp, "%s  ", frmt);
                        } else {
                                switch(a_bytes) {
                                default:
                                case 2: frmt = "        "; break;
                                case 3:
                                case 4: frmt = "   "; break;
                                }
                                fprintf(mfp, "%s", frmt);
                        }
                } else
                if ((i % n) == 0) {
                        slew(xp, yp);
                        switch(a_bytes) {
                        default:
                        case 2: frmt = "  "; break;
                        case 3:
                        case 4: frmt = "  "; break;
                        }
                        fprintf(mfp, "%s", frmt);
                }

                sp = p[i];
                aj = (sp->s_addr + sp->s_axp->a_addr) & a_mask;
#ifdef  LONGINT
                switch(a_bytes) {
                default:
                case 2:
                        switch(xflag) {
                        default:
                        case 0: frmt = "  %04lX  "; break;
                        case 1: frmt = "%06lo  "; break;
                        case 2: frmt = " %05lu  "; break;
                        }
                        break;
                case 3:
                        switch(xflag) {
                        default:
                        case 0: frmt = "     %06lX  "; break;
                        case 1: frmt = "   %08lo  "; break;
                        case 2: frmt = "   %08lu  "; break;
                        }
                        break;
                case 4:
                        switch(xflag) {
                        default:
                        case 0: frmt = "   %08lX  "; break;
                        case 1: frmt = "%011lo  "; break;
                        case 2: frmt = " %010lu  "; break;
                        }
                        break;
                }
#else
                switch(a_bytes) {
                default:
                case 2:
                        switch(xflag) {
                        default:
                        case 0: frmt = "  %04X  "; break;
                        case 1: frmt = "%06o  "; break;
                        case 2: frmt = " %05u  "; break;
                        }
                        break;
                case 3:
                        switch(xflag) {
                        default:
                        case 0: frmt = "     %06X  "; break;
                        case 1: frmt = "   %08o  "; break;
                        case 2: frmt = "   %08u  "; break;
                        }
                        break;
                case 4:
                        switch(xflag) {
                        default:
                        case 0: frmt = "   %08X  "; break;
                        case 1: frmt = "%011o  "; break;
                        case 2: frmt = " %010u  "; break;
                        }
                        break;
                }
#endif
                fprintf(mfp, frmt, aj);

                ptr = &sp->s_id[0];

#if NOICE
                /*
                 * NoICE output of symbol
                 */
                if (jflag) DefineNoICE(ptr, aj, yp);
#endif

#if SDCDB
                /*
                 * SDCDB output of symbol
                 */
                if (yflag) DefineSDCDB(ptr, aj);
#endif

                if (wflag) {
                        fprintf(mfp, "%-32.32s", ptr);
                        i++;
                        ptr = &sp->m_id[0];
                        if(ptr) {
                                fprintf(mfp, "   %-.28s", ptr);
                        }
                } else {
                        switch(a_bytes) {
                        default:
                        case 2: frmt = "%-8.8s"; break;
                        case 3:
                        case 4: frmt = "%-9.9s"; break;
                        }
                        fprintf(mfp, frmt, ptr);
                        if (++i < nmsym)
                                if (i % n != 0)
                                        fprintf(mfp, " | ");
                }
                if (wflag || (i % n == 0)) {
                        putc('\n', mfp);
                }
        }
        if (i % n != 0) {
                putc('\n', mfp);
        }
        free(p);
}