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; }
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) ); }
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; }