Example #1
0
File: debug.c Project: bloovis/isis
void debug (void)
{
    if (savepc - 1 == breakpt1 || savepc - 1 == breakpt2)
    {
	print("Breakpoint\n");
	savepc--;

	// Restore contents of breakpoint 1
	if (breakpt1)
	    mem8080[breakpt1] = brkdata1;
	breakpt1 = 0;

	// Restore contents of breakpoint 2
	if (breakpt2)
	    mem8080[breakpt2] = brkdata2;
	breakpt2 = 0;
    }

    xcmd();
    listptr = savepc;
    for (;;)
    {
	int nchars;

	print("-");
	nchars = read(0,cmdline,sizeof(cmdline)-1);
	if (nchars < 0)
	    return;
	cmdline[nchars] = 0;
	for (cptr = cmdline; *cptr != '\0'; cptr++)
	    if (*cptr >= 'a') *cptr -= 'a' - 'A';
	cptr = cmdline;
	switch(*cptr++)
	{
	case 'G':
	    if (gcmd()) return;
	    return;		// resume execution of 8080 program
	case 'D':
	    dcmd();
	    break;
	case 'X':
	    xcmd();
	    break;
	case 'L':
	    lcmd();
	    break;
	case 'S':
	    single_step ();	// force single stepping
	    return;		// resume execution of 8080 program
	default:
	    printf ("valid commands:\n");
	    printf (" g        go\n");
	    printf (" d[NNNN]  display memory [at address]\n");
	    printf (" x        examine registers registers\n");
	    printf (" l[NNNN]  disassemble instructions [at address]\n");
	    printf (" s        single step\n");
	}
    }
}
Example #2
0
// Selection from Command widget
static void DoPlotCommandCB(Widget, XtPointer client_data, XtPointer call_data)
{
    PlotWindowInfo *plot = (PlotWindowInfo *)client_data;
    XmCommandCallbackStruct *cbs = (XmCommandCallbackStruct *)call_data;

    MString xcmd(cbs->value, true);
    string cmd = xcmd.str();

    send_and_replot(plot, cmd);
}
Example #3
0
void
process(Biobuf *b, char *name)
{
	int c, r, v, i;
	char *p;

	cno = 0;
	prevlineH = res;
	filename = name;
	for(;;){
		c = getc(b);
		switch(c){
		case Beof:
			/* go to ground state */
			attr = 0;
			emit('\n');
			return;
		case '\n':
			break;
		case '0': case '1': case '2': case '3': case '4':
		case '5': case '6': case '7': case '8': case '9':
			v = c-'0';
			c = getc(b);
			if(c<'0' || '9'<c)
				sysfatal("illegal character motion at %s:#%d", filename, cno);
			v = v*10 + (c-'0');
			hp += v;
			/* fall through to character case */
		case 'c':
			indent();
			r = getc(b);
			emithtmlchar(r);
			break;
		case 'D':
			/* draw line; ignore */
			do
				c = getc(b);
			while(c!='\n' && c!= Beof);
			break;
		case 'f':
			v = setnum(b, "font", 0, Nfont);
			switchfont(v);
			break;
		case 'h':
			v = setnum(b, "hpos", -20000, 20000);
			/* generate spaces if motion is large and within a line */
			if(!atnewline && v>2*72)
				for(i=0; i<v; i+=72)
					emitstr("&nbsp;");
			hp += v;
			break;
		case 'n':
			setnum(b, "n1", -10000, 10000);
			//Bprint(&bout, " N1=%d", v);
			getc(b);	/* space separates */
			setnum(b, "n2", -10000, 10000);
			atnewline = 1;
			if(!didP && hp < (Wid-1)*res)	/* if line is less than 19" long, probably need a line break */
				emitstr("<br>");
			emit('\n');
			break;
		case 'p':
			page = setnum(b, "ps", -10000, 10000);
			break;
		case 's':
			ps = setnum(b, "ps", 1, 1000);
			break;
		case 'v':
			vp += setnum(b, "vpos", -10000, 10000);
			/* BUG: ignore motion */
			break;
		case 'x':
			xcmd(b);
			break;
		case 'w':
			emit(' ');
			break;
		case 'C':
			indent();
			p = getstr(b);
			emitstr(troffchar(p));
			break;
		case 'H':
			hp = setnum(b, "hpos", 0, 20000);
			//Bprint(&bout, " H=%d ", hp);
			break;
		case 'V':
			vp = setnum(b, "vpos", 0, 10000);
			break;
		default:
			fprint(2, "dhtml: unknown directive %c(0x%.2ux) at %s:#%d\n", c, c, filename, cno);
			return;
		}
	}
}