void startup_message(void) { putcrlf(); #ifdef __GNUC__ putstring("GCC " __VERSION__ "\r\n"); #endif putstring(name_string); putspace(); putstring(version_string); /* Silicon Revision */ putstring(" Mask("); puthex(ECHV); /* ADC reading codes Board ID */ putstring(") ID("); putstring(board_id_to_string()); /* Stack pointer */ putstring(") SP("); puthex(SP); putstring(") "); putstring(date_string); putspace(); putstring(time_string); /* now for some manufacturing data */ putcrlf(); if( manufacturing_find_tag("T#") ) manufacturing_print_tag(); putspace(); if( manufacturing_find_tag("SN") || manufacturing_find_tag("S#") ) manufacturing_print_tag(); }
void ow_dump() { putspace(); puthex( transfer_state ); putspace(); puthex( transfer_cnt ); }
void putpage(void) { int colno; for(Line = Margin/2;; get(0)) { for(Nspace = Offset, colno = 0, Outpos = 0; C != '\f';) { if(Lnumb && C != -1 && (colno == 0 || Multi == 'a')) { if(Page >= Fpage) { putspace(); Bprint(&bout, "%*ld", Numw, Buffer? Colpts[colno].c_lno++: Lnumb); Outpos += Numw; put(Nsepc); } Lnumb++; } for(Lcolpos=0, Pcolpos=0; C!='\n' && C!='\f' && C!=-1; get(colno)) put(C); if(C==-1 || ++colno==Ncols || C=='\n' && get(colno)==-1) break; if(Sepc) put(Sepc); else if((Nspace += Colw - Lcolpos + 1) < 1) Nspace = 1; } /* if(C == -1) { if(Margin != 0) break; if(colno != 0) put('\n'); return; } */ if(C == -1 && colno == 0) { if(Margin != 0) break; return; } if(C == '\f') break; put('\n'); if(Dblspace == 2 && Line < Plength) put('\n'); if(Line >= Plength) break; } if(Formfeed) put('\f'); else while(Line < Len) put('\n'); }
static int print(char *name) { static int notfirst = 0; char *date = NULL; char *head = NULL; int c; if (Multi != 'm' && mustopen(name, &Files[0]) == NULL) return (0); if (Multi == 'm' && Nfiles == 0 && mustopen(name, &Files[0]) == NULL) die("cannot open stdin"); if (Buffer) (void) ungetwc(Files->f_nextc, Files->f_f); if (Lnumb) Lnumb = 1; for (Page = 0; ; putpage()) { if (C == WEOF && !(fold && Buffer)) break; if (Buffer) nexbuf(); Inpos = 0; if (get(0) == WEOF) break; (void) fflush(stdout); if (++Page >= Fpage) { /* Pause if -p and not first page */ if (Ttyout && Pause && !notfirst++) { PROMPT(); /* prompt with bell and pause */ while ((c = getc(Ttyin)) != EOF && c != '\n') ; } if (Margin == 0) continue; if (date == NULL) date = GETDATE(); if (head == NULL) head = Head != NULL ? Head : Nfiles < 2 ? Files->f_name : nulls; (void) printf("\n\n"); Nspace = Offset; putspace(); (void) printf(HEAD); } } C = '\0'; return (1); }
void put(long c) { int move; switch(c) { case ' ': Nspace++; Lcolpos++; return; case '\b': if(Lcolpos == 0) return; if(Nspace > 0) { Nspace--; Lcolpos--; return; } if(Lcolpos > Pcolpos) { Lcolpos--; return; } case ESC: move = -1; break; case '\n': Line++; case '\r': case '\f': Pcolpos = 0; Lcolpos = 0; Nspace = 0; Outpos = 0; default: move = (ISPRINT(c) != 0); } if(Page < Fpage) return; if(Lcolpos > 0 || move > 0) Lcolpos += move; if(Lcolpos <= Colw) { putspace(); Bputrune(&bout, c); Pcolpos = Lcolpos; Outpos += move; } }
int pr(char *name) { char *date = 0, *head = 0; if(Multi != 'm' && mustopen(name, &Files[0]) == 0) return 0; if(Buffer) Bungetc(Files->f_f); if(Lnumb) Lnumb = 1; for(Page = 0;; putpage()) { if(C == -1) break; if(Buffer) nexbuf(); Inpos = 0; if(get(0) == -1) break; Bflush(&bout); Page++; if(Page >= Fpage) { if(Margin == 0) continue; if(date == 0) date = getdate(); if(head == 0) head = Head != 0 ? Head : Nfiles < 2? Files->f_name: nulls; Bprint(&bout, "\n\n"); Nspace = Offset; putspace(); Bprint(&bout, HEAD); } } if(Padodd && (Page&1) == 1) { Line = 0; if(Formfeed) put('\f'); else while(Line < Len) put('\n'); } C = '\0'; return 1; }
/* * Called when proc p is dying. */ void mmurelease(Proc *p) { if(p->kp) return; if(tracemmu) iprint("mmurelease %ld %s\n", p->pid, p->text); if(p->pmmu.vxproc) vxproc_flush(p->pmmu.vxproc); if(p->pmmu.us) { if(tracemmu) iprint("^^^^^^^^^^ %ld %s [release %d]\n", p->pid, p->text, p->pmmu.us - uspace); putspace(p->pmmu.us); if(m->flushmmu) mmapflush(p->pmmu.us); } }
void keep(struct op *o) { char *s; int ok; if(o->blanks == NEVER)ok = NO; else ok = YES; if (strict && ((o->blanks & ALWAYS) || ((opflag == 0 && o->blanks & SOMETIMES) && clev->tabs != 0))) putspace(' ',YES); for(s=o->name; *s != '\0'; s++){ if(*(s+1) == '\0')putch(*s,ok); else putch(*s,NO); } if (strict && ((o->blanks & ALWAYS) || ((opflag == 0 && o->blanks & SOMETIMES) && clev->tabs != 0))) putch(' ',YES); }
static void foldpage() { int colno; int keep; int i; int pLcolpos; static int sl; for (Line = Margin / 2; ; (void) get(0)) { for (Nspace = Offset, colno = 0, Outpos = 0; C != '\f'; ) { if (Lnumb && Multi == 'm' && foldcol) { if (!Fcol[colno].skip) { unget(colno); putspace(); if (!colno) { for (i = 0; i <= Numw; i++) (void) printf(" "); (void) printf("%wc", Nsepc); } for (i = 0; i <= Colw; i++) (void) printf(" "); (void) put(Sepc); if (++colno == Ncols) break; (void) get(colno); continue; } else if (!colno) Lnumb = sl; } if (Lnumb && (C != WEOF) && ((colno == 0 && Multi == 'm') || (Multi != 'm'))) { if (Page >= Fpage) { putspace(); if ((foldcol && Fcol[colno].skip && Multi != 'a') || (Fcol[0].fold && Multi == 'a') || (Buffer && Colpts[colno].c_skip)) { for (i = 0; i < Numw; i++) (void) printf(" "); (void) printf("%wc", Nsepc); if (Buffer) { Colpts[colno].c_lno++; Colpts[colno].c_skip = 0; } } else (void) printf("%*ld%wc", Numw, Buffer ? Colpts[colno].c_lno++ : Lnumb, Nsepc); } sl = Lnumb++; } pLcolpos = 0; for (Lcolpos = 0, Pcolpos = 0; C != '\n' && C != '\f' && C != WEOF; (void) get(colno)) { if (put(C)) { unget(colno); Fcol[(Multi == 'a') ? 0 : colno].fold = 1; break; } else if (Multi == 'a') { Fcol[0].fold = 0; } pLcolpos = Lcolpos; } if (Buffer) { alleof = 1; for (i = 0; i < Ncols; i++) if (!Fcol[i].eof) alleof = 0; if (alleof || ++colno == Ncols) break; } else if (C == EOF || ++colno == Ncols) break; keep = C; (void) get(colno); if (keep == '\n' && C == WEOF) break; if (Sepc) (void) put(Sepc); else if ((Nspace += Colw - pLcolpos + 1) < 1) Nspace = 1; } foldcol = 0; if (Lnumb && Multi != 'a') { for (i = 0; i < Ncols; i++) { Fcol[i].skip = Fcol[i].fold; foldcol += Fcol[i].fold; Fcol[i].fold = 0; } } if (C == WEOF) { if (Margin != 0) break; if (colno != 0) (void) put('\n'); return; } if (C == '\f') break; (void) put('\n'); (void) fflush(stdout); if (Dblspace == 2 && Line < Plength) (void) put('\n'); if (Line >= Plength) break; } if (Formfeed) (void) put('\f'); else while (Line < Length) (void) put('\n'); }
static void putpage() { int colno; if (fold) { foldpage(); return; } for (Line = Margin / 2; ; (void) get(0)) { for (Nspace = Offset, colno = 0, Outpos = 0; C != '\f'; ) { if (Lnumb && (C != WEOF) && (((colno == 0) && (Multi == 'm')) || (Multi != 'm'))) { if (Page >= Fpage) { putspace(); (void) printf("%*ld%wc", Numw, Buffer ? Colpts[colno].c_lno++ : Lnumb, Nsepc); /* Move Outpos for number field */ Outpos += Numw; if (Nsepc == '\t') Outpos += DEFTAB - (Outpos % DEFTAB); else Outpos++; } ++Lnumb; } for (Lcolpos = 0, Pcolpos = 0; C != '\n' && C != '\f' && C != WEOF; (void) get(colno)) (void) put(C); if ((C == WEOF) || (++colno == Ncols) || ((C == '\n') && (get(colno) == WEOF))) break; if (Sepc) (void) put(Sepc); else if ((Nspace += Colw - Lcolpos + 1) < 1) Nspace = 1; } if (C == WEOF) { if (Margin != 0) break; if (colno != 0) (void) put('\n'); return; } if (C == '\f') break; (void) put('\n'); if (Dblspace == 2 && Line < Plength) (void) put('\n'); if (Line >= Plength) break; } if (Formfeed) (void) put('\f'); else while (Line < Length) (void) put('\n'); }
static int put(wchar_t wc) { int move = 0; int width = Colw; int sp = Lcolpos; if (fold && Ncols == 1) width = Linew; switch (wc) { case ' ': /* If column not full or this is separator char */ if ((!fold && Ncols < 2) || (Lcolpos < width) || ((Sepc == wc) && (Lcolpos == width))) { ++Nspace; ++Lcolpos; } if (fold && sp == Lcolpos) if (Lcolpos >= width) return (1); return (0); case '\t': if (Itabn == 0) break; /* If column not full or this is separator char */ if ((Lcolpos < width) || ((Sepc == wc) && (Lcolpos == width))) { move = Itabn - ((Lcolpos + Itabn) % Itabn); move = (move < width-Lcolpos) ? move : width-Lcolpos; Nspace += move; Lcolpos += move; } if (fold && sp == Lcolpos) if (Lcolpos >= width) return (1); return (0); case '\b': if (Lcolpos == 0) return (0); if (Nspace > 0) { --Nspace; --Lcolpos; return (0); } if (Lcolpos > Pcolpos) { --Lcolpos; return (0); } /*FALLTHROUGH*/ case ESC: move = -1; break; case '\n': ++Line; /*FALLTHROUGH*/ case '\r': case '\f': Pcolpos = 0; Lcolpos = 0; Nspace = 0; Outpos = 0; /* FALLTHROUGH */ default: if (isascii(wc)) { if (isprint(wc)) move = 1; else move = 0; } else if (iswprint(wc)) { move = wcwidth(wc); } else { move = 0; } break; } if (Page < Fpage) return (0); if (Lcolpos > 0 || move > 0) Lcolpos += move; putspace(); /* If column not full or this is separator char */ if ((!fold && Ncols < 2) || (Lcolpos <= width) || ((Sepc == wc) && (Lcolpos > width))) { (void) fputwc(wc, stdout); Outpos += move; Pcolpos = Lcolpos; } if (fold && Lcolpos > width) return (1); return (0); }
void work(void){ int c; struct keyw *lptr; char *pt; int cc; int ct; while ((c = getch()) != Beof){ switch (c){ case '{': if ((lptr = lookup(lastlook,p)) != 0){ if (lptr->type == ELSE)gotelse(); else if(lptr->type == DO)gotdo(); else if(lptr->type == STRUCT)structlev++; } if(++clev >= &ind[CLEVEL-1]){ fprint(2,"too many levels of curly brackets\n"); clev = &ind[CLEVEL-1]; } clev->pdepth = 0; clev->tabs = (clev-1)->tabs; clearif(clev); if(strict && clev->tabs > 0) putspace(' ',NO); putch(c,NO); getnl(); if(keyflag == DATADEF){ OUT; } else { OUTK; } clev->tabs++; pt = getnext(0); /* to handle initialized structures */ if(*pt == '{'){ /* hide one level of {} */ while((c=getch()) != '{') if(c == Beof)error("{"); putch(c,NO); if(strict){ putch(' ',NO); eatspace(); } keyflag = SINIT; } continue; case '}': pt = getnext(0); /* to handle initialized structures */ if(*pt == ','){ if(strict){ putspace(' ',NO); eatspace(); } putch(c,NO); putch(*pt,NO); *pt = '\0'; ct = getnl(); pt = getnext(0); if(*pt == '{'){ OUT; while((cc = getch()) != '{') if(cc == Beof)error("}"); putch(cc,NO); if(strict){ putch(' ',NO); eatspace(); } getnext(0); continue; } else if(strict || ct){ OUT; } continue; } else if(keyflag == SINIT && *pt == '}'){ if(strict) putspace(' ',NO); putch(c,NO); getnl(); OUT; keyflag = DATADEF; *pt = '\0'; pt = getnext(0); } outs(clev->tabs); if(--clev < ind)clev = ind; ptabs(clev->tabs); putch(c,NO); lbegin = 0; lptr=lookup(pt,lastplace+1); c = *pt; if(*pt == ';' || *pt == ','){ putch(*pt,NO); *pt = '\0'; lastplace=pt; } ct = getnl(); if((dolevel && clev->tabs <= dotabs[dolevel]) || (structlev ) || (lptr != 0 &&lptr->type == ELSE&& clev->pdepth == 0)){ if(c == ';'){ OUTK; } else if(strict || (lptr != 0 && lptr->type == ELSE && ct == 0)){ putspace(' ',NO); eatspace(); } else if(lptr != 0 && lptr->type == ELSE){ OUTK; } if(structlev){ structlev--; keyflag = DATADEF; } } else { OUTK; if(strict && clev->tabs == 0){ if((c=getch()) != '\n'){ Bputc(output, '\n'); Bputc(output, '\n'); unget(c); } else { lineno++; Bputc(output, '\n'); if((c=getch()) != '\n')unget(c); else lineno++; Bputc(output, '\n'); } } } if(lptr != 0 && lptr->type == ELSE && clev->pdepth != 0){ UNBUMP; } if(lptr == 0 || lptr->type != ELSE){ clev->iflev = 0; if(dolevel && docurly[dolevel] == NO && clev->tabs == dotabs[dolevel]+1) clev->tabs--; else if(clev->pdepth != 0){ UNBUMP; } } continue; case '(': paren++; if ((lptr = lookup(lastlook,p)) != 0){ if(!(lptr->type == TYPE || lptr->type == STRUCT))keyflag=KEYWORD; if (strict){ putspace(lptr->punc,NO); opflag = 1; } putch(c,NO); if (lptr->type == IF)gotif(); } else { putch(c,NO); lastlook = p; opflag = 1; } continue; case ')': if(--paren < 0)paren = 0; putch(c,NO); if((lptr = lookup(lastlook,p)) != 0){ if(lptr->type == TYPE || lptr->type == STRUCT) opflag = 1; } else if(keyflag == DATADEF)opflag = 1; else opflag = 0; outs(clev->tabs); pt = getnext(1); if ((ct = getnl()) == 1 && !strict){ if(dolevel && clev->tabs <= dotabs[dolevel]) resetdo(); if(clev->tabs > 0 && (paren != 0 || keyflag == 0)){ if(join){ eatspace(); putch(' ',YES); continue; } else { OUT; split = 1; continue; } } else if(clev->tabs > 0 && *pt != '{'){ BUMP; } OUTK; } else if(strict){ if(clev->tabs == 0){ if(*pt != ';' && *pt != ',' && *pt != '(' && *pt != '['){ OUTK; } } else { if(keyflag == KEYWORD && paren == 0){ if(dolevel && clev->tabs <= dotabs[dolevel]){ resetdo(); eatspace(); continue; } if(*pt != '{'){ BUMP; OUTK; } else { *pt='\0'; eatspace(); unget('{'); } } else if(ct){ if(paren){ if(join){ eatspace(); } else { split = 1; OUT; } } else { OUTK; } } } } else if(dolevel && clev->tabs <= dotabs[dolevel]) resetdo(); continue; case ' ': case '\t': if ((lptr = lookup(lastlook,p)) != 0){ if(!(lptr->type==TYPE||lptr->type==STRUCT)) keyflag = KEYWORD; else if(paren == 0)keyflag = DATADEF; if(strict){ if(lptr->type != ELSE){ if(lptr->type == TYPE){ if(paren != 0)putch(' ',YES); } else putch(lptr->punc,NO); eatspace(); } } else putch(c,YES); switch(lptr->type){ case CASE: outs(clev->tabs-1); continue; case ELSE: pt = getnext(1); eatspace(); if((cc = getch()) == '\n' && !strict){ unget(cc); } else { unget(cc); if(checkif(pt))continue; } gotelse(); if(strict) unget(c); if(getnl() == 1 && !strict){ OUTK; if(*pt != '{'){ BUMP; } } else if(strict){ if(*pt != '{'){ OUTK; BUMP; } } continue; case IF: gotif(); continue; case DO: gotdo(); pt = getnext(1); if(*pt != '{'){ eatallsp(); OUTK; docurly[dolevel] = NO; dopdepth[dolevel] = clev->pdepth; clev->pdepth = 0; clev->tabs++; } continue; case TYPE: if(paren)continue; if(!strict)continue; gottype(lptr); continue; case STRUCT: gotstruct(); continue; } } else if (lbegin == 0 || p > string) if(strict) putch(c,NO); else putch(c,YES); continue; case ';': putch(c,NO); if(paren != 0){ if(strict){ putch(' ',YES); eatspace(); } opflag = 1; continue; } outs(clev->tabs); pt = getnext(0); lptr=lookup(pt,lastplace+1); if(lptr == 0 || lptr->type != ELSE){ clev->iflev = 0; if(clev->pdepth != 0){ UNBUMP; } if(dolevel && docurly[dolevel] == NO && clev->tabs <= dotabs[dolevel]+1) clev->tabs--; /* else if(clev->pdepth != 0){ UNBUMP; } */ } getnl(); OUTK; continue; case '\n': if ((lptr = lookup(lastlook,p)) != 0){ pt = getnext(1); if (lptr->type == ELSE){ if(strict) if(checkif(pt))continue; gotelse(); OUTK; if(*pt != '{'){ BUMP; } } else if(lptr->type == DO){ OUTK; gotdo(); if(*pt != '{'){ docurly[dolevel] = NO; dopdepth[dolevel] = clev->pdepth; clev->pdepth = 0; clev->tabs++; } } else { OUTK; if(lptr->type == STRUCT)gotstruct(); } } else if(p == string)Bputc(output, '\n'); else { if(clev->tabs > 0 &&(paren != 0 || keyflag == 0)){ if(join){ putch(' ',YES); eatspace(); continue; } else { OUT; split = 1; continue; } } else if(keyflag == KEYWORD){ OUTK; continue; } OUT; } continue; case '"': case '\'': putch(c,NO); while ((cc = getch()) != c){ if(cc == Beof) error("\" or '"); putch(cc,NO); if (cc == '\\'){ putch(getch(),NO); } if (cc == '\n'){ outs(clev->tabs); lbegin = 1; count = 0; } } putch(cc,NO); opflag=0; if (getnl() == 1){ unget('\n'); } continue; case '\\': putch(c,NO); putch(getch(),NO); continue; case '?': question = 1; gotop(c); continue; case ':': if (question == 1){ question = 0; gotop(c); continue; } putch(c,NO); if(structlev)continue; if ((lptr = lookup(lastlook,p)) != 0){ if (lptr->type == CASE)outs(clev->tabs - 1); } else { lbegin = 0; outs(clev->tabs); } getnl(); OUTK; continue; case '/': if ((cc = getch()) == '/') { putch(c,NO); putch(cc,NO); cpp_comment(YES); OUT; lastlook = 0; continue; } else if (cc != '*') { unget(cc); gotop(c); continue; } putch(c,NO); putch(cc,NO); cc = comment(YES); if(getnl() == 1){ if(cc == 0){ OUT; } else { outs(0); Bputc(output, '\n'); lbegin = 1; count = 0; } lastlook = 0; } continue; case '[': putch(c,NO); ct = 0; while((c = getch()) != ']' || ct > 0){ if(c == Beof)error("]"); putch(c,NO); if(c == '[')ct++; if(c == ']')ct--; } putch(c,NO); continue; case '#': putch(c,NO); while ((cc = getch()) != '\n'){ if(cc == Beof)error("newline"); if (cc == '\\'){ putch(cc,NO); cc = getch(); } putch(cc,NO); } putch(cc,NO); lbegin = 0; outs(clev->tabs); lbegin = 1; count = 0; continue; default: if (c == ','){ opflag = 1; putch(c,YES); if (strict){ if ((cc = getch()) != ' ')unget(cc); if(cc != '\n')putch(' ',YES); } } else if(isop(c))gotop(c); else { if(isalnum(c) && lastlook == 0)lastlook = p; if(isdigit(c)){ putch(c,NO); while(isdigit(c=Bgetc(input))||c == '.')putch(c,NO); if(c == 'e'){ putch(c,NO); c = Bgetc(input); putch(c, NO); while(isdigit(c=Bgetc(input)))putch(c,NO); } Bungetc(input); } else putch(c,NO); if(keyflag != DATADEF)opflag = 0; } } } }
void print_states (void) { unsigned char i; if( !print_states_enable ) return; putstring("\r\n"); puthex_u16(states.timestamp); putspace(); puthex_u16(states.number); putspace(); puthex(states.command); putspace(); puthex(states.matrix_3x3); putspace(); puthex(states.power); putspace(); puthex(states.battery); putspace(); puthex(states.ds2756); putspace(); puthex(states.charge_sched); putspace(); puthex(states.watchdog); #if DEBUG_MATRIX_3x3 putspace(); puthex(GPIOEIN0); putspace(); for(i=0; i<5; i++) { puthex(((unsigned char __pdata *)&cursors)[i]); if( i==2 ) putspace(); } if( cursors.keycode_updated ) { putchar('*'); cursors.keycode_updated = 0; } #endif ow_dump(); }