Ejemplo n.º 1
0
static int
rdn()
{
    int a = 0, b = FALSE;
    if (Ch == '-') { b = TRUE; rch(); }
    while ('0' <= Ch && Ch <= '9') { a = 10 * a + Ch - '0'; rch(); }
    if (b) a = -a;
    return a;
}
Ejemplo n.º 2
0
		void XUI_Wnd::RenderEdit( const iPoint &adjust )
		{
			iRect rc = GetWindowRect() + adjust;

			XUI_DrawRect( rc, XUI_ARGB(0xff,0,0,0), XUI_ARGB(0x40,80,80,80) );

			iRect rch( -HANDLE_EDGE, -HANDLE_EDGE, HANDLE_EDGE, HANDLE_EDGE );
			rch.OffsetRect( rc.TopLeft() );
			XUI_DrawRect( rch, 0, XUI_ARGB(0x60,0xff,0xff,0xff) );

			rch.OffsetRect( rc.Width()/2, 0 );
			XUI_DrawRect( rch, 0, XUI_ARGB(0x60,0xff,0xff,0xff) );

			rch.OffsetRect( rc.Width()/2, 0 );
			XUI_DrawRect( rch, 0, XUI_ARGB(0x60,0xff,0xff,0xff) );

			rch.OffsetRect( 0, rc.Height()/2 );
			XUI_DrawRect( rch, 0, XUI_ARGB(0x60,0xff,0xff,0xff) );

			rch.OffsetRect( 0, rc.Height()/2 );
			XUI_DrawRect( rch, 0, XUI_ARGB(0x60,0xff,0xff,0xff) );

			rch.OffsetRect( -rc.Width()/2, 0 );
			XUI_DrawRect( rch, 0, XUI_ARGB(0x60,0xff,0xff,0xff) );

			rch.OffsetRect( -rc.Width()/2, 0 );
			XUI_DrawRect( rch, 0, XUI_ARGB(0x60,0xff,0xff,0xff) );

			rch.OffsetRect( 0, -rc.Height()/2 );
			XUI_DrawRect( rch, 0, XUI_ARGB(0x60,0xff,0xff,0xff) );
		}
Ejemplo n.º 3
0
static void
assemble()
{
    int v[501];
    int f = 0;
    int i;

    Labv = v;
clear:
    for (i = 0; i <= 500; i++) Labv[i] = 0;
    Cp = 0;
next:
    rch();
sw:
    switch (Ch) {

    default: if (Ch == EOF) return;
        printf("\nBAD CH %c AT P = %d\n", Ch, P);
        goto next;

    case '0': case '1': case '2': case '3': case '4':
    case '5': case '6': case '7': case '8': case '9':
        setlab(rdn());
        Cp = 0;
        goto sw;

    case '$': case ' ': case '\n': goto next;

    case 'L': f = 0; break;
    case 'S': f = 1; break;
    case 'A': f = 2; break;
    case 'J': f = 3; break;
    case 'T': f = 4; break;
    case 'F': f = 5; break;
    case 'K': f = 6; break;
    case 'X': f = 7; break;

    case 'C': rch(); stc(rdn()); goto sw;

    case 'D': rch();
        if (Ch == 'L') {
            rch();
            stw(0);
            labref(rdn(), P - 1);
        } else
            stw(rdn());
        goto sw;

    case 'G': rch();
        A = rdn() + G;
        if (Ch == 'L') rch();
        else printf("\nBAD CODE AT P = %d\n", P);
        M[A] = 0;
        labref(rdn(), A);
        goto sw;
    case 'Z': for (i = 0; i <= 500; i++)
        if (Labv[i] > 0) printf("L%d UNSET\n", i);
        goto clear;
    }
    W = f << FSHIFT;
    rch();
    if (Ch == 'I') { W = W + IBIT; rch(); }
    if (Ch == 'P') { W = W + PBIT; rch(); }
    if (Ch == 'G') { W = W + GBIT; rch(); }

    if (Ch == 'L') {
        rch();
        stw(W + DBIT);
        stw(0);
        labref(rdn(), P - 1);
    } else {
        int a = rdn();
        if ((a & ABITS) == a)
            stw(W + a);
        else { stw(W + DBIT); stw(a); }
    }
    goto sw;
}