static void checkreceive_serial (void) { #ifdef SERIAL_PORT static int ninebitdata; int recdata; if (!canreceive()) return; if (ninebit) { if (!readseravail()) return; for (;;) { if (!readser (&recdata)) return; if (ninebitdata) { serdatr = (ninebitdata & 1) << 8; serdatr |= recdata; serdatr |= 0x200; ninebitdata = 0; break; } else { ninebitdata = recdata; if ((ninebitdata & ~1) != 0xa8) { write_log (_T("SERIAL: 9-bit serial emulation sync lost, %02X != %02X\n"), ninebitdata & ~1, 0xa8); ninebitdata = 0; return; } continue; } } } else { if (!readseravail()) return; if (!readser(&recdata)) return; if (currprefs.serial_crlf) { if (recdata == 0 || (serial_recv_previous == 13 && recdata == 10)) { //write_log(_T(" [%02X] "), (uae_u8)recdata); serial_recv_previous = -1; return; } } //write_log(_T(" %02X "), (uae_u8)recdata); serial_recv_previous = recdata; serdatr = recdata; serdatr |= 0x100; } data_in_serdatr = 1; serdatr_last_got = 0; serial_check_irq (); #if SERIALDEBUG > 2 write_log (_T("SERIAL: received %02X (%c)\n"), serdatr & 0xff, dochar (serdatr)); #endif #endif }
int main(int args, char** argv) { int c; while((c = getchar()) != EOF) { dochar(c); printf("\n"); } }
void dumpsect() { u16 cnt; printf("\n="); for (cnt = 0; cnt < 512; cnt++) { if (!(cnt & 31)) printf("\n"); printf("%02X", filesectbuf[cnt]); } printf("\n-"); for (cnt = 0; cnt < 512; cnt++) { if (!(cnt & 31)) printf("\n"); printf("%c", dochar(filesectbuf[cnt])); } }
static void checkreceive_enet (void) { #ifdef SERIAL_ENET uae_u16 recdata; if (!canreceive()) return; if (!enet_readseravail ()) return; if (!enet_readser (&recdata)) return; serdatr = recdata & 0x1ff; if (recdata & 0x200) serdatr |= 0x200; else serdatr |= 0x100; data_in_serdatr = 1; serdatr_last_got = 0; serial_check_irq (); #if SERIALDEBUG > 2 write_log (_T("SERIAL: received %02X (%c)\n"), serdatr & 0xff, dochar (serdatr)); #endif #endif }
int main(int argc, char *argv[]) #endif { u8 sta = 0, cmd; int i; #ifndef __AVR__ if (argc > 3 || argc < 2) { printf("Usage: (sudo) testfat rawdevice e.g. fat32 /dev/sdb \r\n"); return 1; } // fcntl(0, F_SETFL, fcntl(0, F_GETFL) | O_NONBLOCK); if (initsec(argv[1])) return -1; #endif hwinit(); printf("\nFAT32 Test\n"); i = sdhcinit(); printf("init %d\n", i); if (!i) { printf( "%lu sects\n", sdnumsectors ); i = mount(0); printf("Mount: %d\n", i); if (!i) seekfile(0, 0); #if 1 // show what is read else for (i = 0; i < 1; i++) { readsec(i); dumpsect(); } #endif } if (i) printf("Not Ready\n"); for (;;) { cmd = tzgetchar(); if (cmd >= 'a') cmd -= 32; switch (cmd) { #ifdef __AVR__ case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': // while (!tzkbhit()) { ADMUX = 0xe0 + cmd - '0'; ADCSRA = 0xc7; while (ADCSRA & 0x40); printf("%c %04x\n", cmd, ADC); // } break; #endif case 3: case 26: case 'Q': exit(0); case 'Y': { u16 u; u = getdirent((u8 *) ""); printf("%u entries in dir\n", u); } break; case 'I': sta = sdhcinit(); printf("init %d\n", sta); if (sta) continue; printf( "%lu sects\n", sdnumsectors ); sta = cardinfo(0); printf("inf %d\n", sta); if (sta) continue; for (sta = 0; sta < 18; sta++) printf("%02X", filesectbuf[sta]); printf(" "); for (sta = 0; sta < 18; sta++) printf("%c", dochar(filesectbuf[sta])); printf("\n"); sta = cardinfo(1); printf("inf %d\n", sta); if (sta) continue; for (sta = 0; sta < 18; sta++) printf("%02X", filesectbuf[sta]); printf(" "); for (sta = 0; sta < 18; sta++) printf("%c", dochar(filesectbuf[sta])); printf("\n"); break; case 'M': i = mount(0); if (!i) printf("Mounted\n"); else printf("Error\n"); break; case 'O': printf("Open:\n"); i = getfname(); if (i < 0) { printf("bad fname\n"); break; } i = getdirent(filename); if (i == 2) printf("Entered Dir\n"); else if (!i) printf("Opened\n"); else printf("Not Found\n"); break; case 'C': printf("Create:\n"); i = getfname(); if (i < 0) { printf("bad fname\n"); break; } if (i == 1) { printf("Directory:\n"); i = getfname(); if (i) { printf("bad fname\n"); break; } i = 0x10; // directory attribute } i = newdirent(filename, i); if (!i) printf("Created\n"); else if (i == 2) printf("Exists\n"); else printf("Error\n"); break; case 'N': i = newdirent(NULL, 0); if (!i) printf("Created Ser Log\n"); else printf("Error\n"); break; case 'L': resettodir(); seekfile(0, 0); for (i = 0; i < 16; i++) { if (!filesectbuf[i << 5]) break; if (0xe5 == filesectbuf[i << 5]) { printf("(del)\n"); continue; } if (0xf == filesectbuf[(i << 5) + 11]) { printf("(lfn)\n"); continue; } printf("%8.8s.%3.3s %c\n", &filesectbuf[i << 5], &filesectbuf[(i << 5) + 8], filesectbuf[(i << 5) + 11] & 0x10 ? '/' : ' '); if (i == 15) { i = readnextsect(); if (i != 512) break; i = -1; } } break; case 'W': printf("Write: ^c|^z to exit\n"); for (;;) { char cx; cx = tzgetchar(); if (cx == 3 || cx == 26) break; writebyte(cx); printf("%c", cx); } printf("\nWritten "); flushbuf(); printf("Flushed "); syncdirent(0); printf("DSynced\n"); break; case 'F': flushbuf(); printf("Flushed\n"); break; case 'E': syncdirent(0); printf("dirsynced\n"); break; case 'P': syncdirent(1); printf("size pushed\n"); break; case 'Z': zaphint(); printf("hint zapped\n"); break; case 'T': truncatefile(); printf("Trunc-ed\n"); break; case 'D': i = deletefile(); if (i == 1) printf("no rmdir\n"); else if (!i) printf("Deleted\n"); else printf("Error\n"); break; // will go away when seek is filled in case 'A': seekfile(0, 2); printf("At EOF\n"); break; case 'S': { u32 x = 0; u8 y = 1; seekfile(x, y); printf("Rewound\n"); } break; case 'R': case 'V': case 'X': sta = 0; while (!tzkbhit()) { i = readbyte(); if (i < 0) { printf("\n=EOF=\n"); break; } switch (cmd) { case 'R': printf("%c", i); break; case 'V': printf("%c", dochar(i)); break; case 'X': if (!(sta++ & 15)) printf("\n"); printf("%02X", i); break; } } break; case 'U': resetrootdir(); seekfile(0, 0); // for list printf("At rootdir\n"); break; case 'G': resettodir(); seekfile(0, 0); // for list printf("At curdir\n"); break; default: // help message { char *c = mainmenu; while (pgm_read_byte(c)) putchar(pgm_read_byte(c++)); } break; } } }
void dopage() { while ((opcode = (int) get1()) != EOP) { /* process page until eop */ if (opcode <= LASTCHAR) dochar((char) opcode); else if ((opcode >= FONT_00) && (opcode <= FONT_63)) setfont(opcode - FONT_00); else if (opcode > POST_POST) errorexit(illop); else switch (opcode) { case SET1 : setchar(get1()); break; case SET2 : setchar(get2()); break; case SET3 : setchar(get3()); break; case SET4 : setchar(get4()); break; case SET_RULE : { long height = sget4(); rule(MOVE, sget4(), height); break; } case PUT1 : putcharacter(get1()); break; case PUT2 : putcharacter(get2()); break; case PUT3 : putcharacter(get3()); break; case PUT4 : putcharacter(get4()); break; case PUT_RULE : { long height = sget4(); rule(STAY, sget4(), height); break; } case NOP : break; /* no-op */ case BOP : errorexit(bdbop); break; /* case EOP : break; strange place to have EOP */ case PUSH : if (sptr >= stackmax) /* push */ errorexit(stkof); stack[sptr].hh = h; stack[sptr].vv = v; stack[sptr].ww = w; stack[sptr].xx = x; stack[sptr].yy = y; stack[sptr].zz = z; sptr++; break; case POP : if (sptr == 0) /* pop */ errorexit(stkuf); sptr--; h = stack[sptr].hh; v = stack[sptr].vv; w = stack[sptr].ww; x = stack[sptr].xx; y = stack[sptr].yy; z = stack[sptr].zz; break; case RIGHT1 : (void) horizontalmove(sget1()); break; case RIGHT2 : (void) horizontalmove(sget2()); break; case RIGHT3 : (void) horizontalmove(sget3()); break; case RIGHT4 : (void) horizontalmove(sget4()); break; case W0 : h += w; break; case W1 : w = horizontalmove(sget1()); break; case W2 : w = horizontalmove(sget2()); break; case W3 : w = horizontalmove(sget3()); break; case W4 : w = horizontalmove(sget4()); break; case X0 : h += x; break; case X1 : x = horizontalmove(sget1()); break; case X2 : x = horizontalmove(sget2()); break; case X3 : x = horizontalmove(sget3()); break; case X4 : x = horizontalmove(sget4()); break; case DOWN1 : v += sget1(); break; case DOWN2 : v += sget2(); break; case DOWN3 : v += sget3(); break; case DOWN4 : v += sget4(); break; case Y0 : v += y; break; case Y1 : y = sget1(); v += y; break; case Y2 : y = sget2(); v += y; break; case Y3 : y = sget3(); v += y; break; case Y4 : y = sget4(); v += y; break; case Z0 : v += z; break; case Z1 : z = sget1(); v += z; break; case Z2 : z = sget2(); v += z; break; case Z3 : z = sget3(); v += z; break; case Z4 : z = sget4(); v += z; break; case FNT1 : case FNT2 : case FNT3 : case FNT4 : setfont(num(opcode - FNT1 + 1)); break; case XXX1 : mseek(DVIfile, get1(), relative); break; case XXX2 : mseek(DVIfile, get2(), relative); break; case XXX3 : mseek(DVIfile, get3(), relative); break; case XXX4 : mseek(DVIfile, get4(), relative); break; case FNT_DEF1 : case FNT_DEF2 : case FNT_DEF3 : case FNT_DEF4 : fontdef(opcode - FNT_DEF1 + 1); break; case PRE : errorexit(bdpre); break; case POST : errorexit(bdpst); break; case POST_POST: errorexit(bdpp); break; } } } /* dopage */
void mainbody( void ) { initialize () ; opengffile () ; o = getbyte () ; if ( o != 247 ) { fprintf ( stderr , "%s%s%c\n", "Bad GF file: " , "First byte isn't start of preamble!" , '!' ) ; uexit ( 1 ) ; } o = getbyte () ; if ( o != 131 ) { fprintf ( stderr , "%s%s%ld%s%ld%c\n", "Bad GF file: " , "identification byte should be " , (long)131 , " not " , (long)o , '!' ) ; uexit ( 1 ) ; } o = getbyte () ; putc ( '\'' , stdout ); while ( o > 0 ) { o = o - 1 ; putc ( xchr [getbyte () ], stdout ); } { putc ( '\'' , stdout ); putc ( '\n', stdout ); } do { gfprevptr = curloc ; do { a = curloc ; o = getbyte () ; p = firstpar ( o ) ; if ( eof ( gffile ) ) { fprintf ( stderr , "%s%s%c\n", "Bad GF file: " , "the file ended prematurely" , '!' ) ; uexit ( 1 ) ; } if ( o == 243 ) { { if ( wantsmnemonics ) { putc ('\n', stdout ); fprintf ( stdout , "%ld%s%s%ld%s", (long)a , ": " , "yyy " , (long)p , " (" ) ; } if ( wantsmnemonics ) { printscaled ( p ) ; putc ( ')' , stdout ); } } o = 244 ; } else if ( ( o >= 239 ) && ( o <= 242 ) ) { { if ( wantsmnemonics ) { putc ('\n', stdout ); fprintf ( stdout , "%ld%s%s", (long)a , ": " , "xxx '" ) ; } badchar = false ; b = 16 ; if ( p < 0 ) { putc ('\n', stdout ); fprintf ( stdout , "%ld%s%s%s", (long)a , ": " , "! " , "string of negative length!" ) ; putc ('\n', stdout ); } while ( p > 0 ) { q = getbyte () ; if ( ( q < 32 ) || ( q > 126 ) ) badchar = true ; if ( wantsmnemonics ) { putc ( xchr [q ], stdout ); if ( b < linelength ) b = b + 1 ; else { putc ('\n', stdout ); b = 2 ; } } p = p - 1 ; } if ( wantsmnemonics ) putc ( '\'' , stdout ); if ( badchar ) { putc ('\n', stdout ); fprintf ( stdout , "%ld%s%s%s", (long)a , ": " , "! " , "non-ASCII character in xxx command!" ) ; putc ('\n', stdout ); } } o = 244 ; } else if ( o == 244 ) { if ( wantsmnemonics ) { putc ('\n', stdout ); fprintf ( stdout , "%ld%s%s", (long)a , ": " , "no op" ) ; } } } while ( ! ( o != 244 ) ) ; if ( o != 248 ) { if ( o != 67 ) { if ( o != 68 ) { fprintf ( stderr , "%s%s%ld%s%ld%c%c\n", "Bad GF file: " , "byte " , (long)curloc - 1 , " is not boc (" , (long)o , ')' , '!' ) ; uexit ( 1 ) ; } } putc ('\n', stdout ); fprintf ( stdout , "%ld%s", (long)curloc - 1 , ": beginning of char " ) ; a = curloc - 1 ; totalchars = totalchars + 1 ; if ( o == 67 ) { charactercode = signedquad () ; p = signedquad () ; c = charactercode % 256 ; if ( c < 0 ) c = c + 256 ; minmstated = signedquad () ; maxmstated = signedquad () ; minnstated = signedquad () ; maxnstated = signedquad () ; } else { charactercode = getbyte () ; p = -1 ; c = charactercode ; q = getbyte () ; maxmstated = getbyte () ; minmstated = maxmstated - q ; q = getbyte () ; maxnstated = getbyte () ; minnstated = maxnstated - q ; } fprintf ( stdout , "%ld", (long)c ) ; if ( charactercode != c ) fprintf ( stdout , "%s%ld", " with extension " , (long)( charactercode - c ) / 256 ) ; if ( wantsmnemonics ) fprintf ( stdout , "%s%ld%s%ld%c%ld%s%ld\n", ": " , (long)minmstated , "<=m<=" , (long)maxmstated , ' ' , (long)minnstated , "<=n<=" , (long)maxnstated ) ; maxmobserved = -1 ; if ( charptr [c ]!= p ) { fprintf ( stdout , "%ld%s%s%s%ld%s%ld%c", (long)a , ": " , "! " , "previous character pointer should be " , (long)charptr [c ], ", not " , (long)p , '!' ) ; putc ('\n', stdout ); } else if ( p > 0 ) { if ( wantsmnemonics ) fprintf ( stdout , "%s%ld%c\n", "(previous character with the same code started at byte " , (long)p , ')' ) ; } charptr [c ]= gfprevptr ; if ( wantsmnemonics ) fprintf ( stdout , "%s%ld%c", "(initially n=" , (long)maxnstated , ')' ) ; if ( wantspixels ) { maxcol = maxmstated - minmstated - 1 ; if ( maxcol > maxcols ) maxcol = maxcols ; maxrow = maxnstated - minnstated ; if ( maxrow > maxrows ) maxrow = maxrows ; if ( ( maxrow >= 0 ) && ( maxcol >= 0 ) ) imagearray = xcallocarray ( pixel , maxcol , maxrow ) ; } m = 0 ; n = 0 ; paintswitch = 0 ; if ( ! dochar () ) { fprintf ( stderr , "%s%s%c\n", "Bad GF file: " , "char ended unexpectedly" , '!' ) ; uexit ( 1 ) ; } maxnobserved = n ; if ( wantspixels ) { if ( ( maxmobserved > maxcol ) || ( maxnobserved > maxrow ) ) fprintf ( stdout , "%s\n", "(The character is too large to be displayed in full.)" ) ; if ( maxcol > maxmobserved ) maxcol = maxmobserved ; if ( maxrow > maxnobserved ) maxrow = maxnobserved ; if ( maxcol >= 0 ) { fprintf ( stdout , "%s%ld%c%ld%s\n", ".<--This pixel's lower left corner is at (" , (long)minmstated , ',' , (long)maxnstated + 1 , ") in METAFONT coordinates" ) ; n = 0 ; while ( n <= maxrow ) { m = 0 ; b = 0 ; while ( m <= maxcol ) { if ( imagearray [m + ( maxcol + 1 ) * n ]== 0 ) b = b + 1 ; else { while ( b > 0 ) { putc ( ' ' , stdout ); b = b - 1 ; } putc ( '*' , stdout ); } m = m + 1 ; } putc ('\n', stdout ); n = n + 1 ; } fprintf ( stdout , "%s%ld%c%ld%s\n", ".<--This pixel's upper left corner is at (" , (long)minmstated , ',' , (long)maxnstated - maxrow , ") in METAFONT coordinates" ) ; } else fprintf ( stdout , "%s\n", "(The character is entirely blank.)" ) ; if ( ( maxrow >= 0 ) && ( maxcol >= 0 ) ) { libcfree ( imagearray ) ; imagearray = nil ; } } maxmobserved = minmstated + maxmobserved + 1 ; n = maxnstated - maxnobserved ; if ( minmstated < minmoverall ) minmoverall = minmstated ; if ( maxmobserved > maxmoverall ) maxmoverall = maxmobserved ; if ( n < minnoverall ) minnoverall = n ; if ( maxnstated > maxnoverall ) maxnoverall = maxnstated ; if ( maxmobserved > maxmstated ) fprintf ( stdout , "%s%ld%c\n", "The previous character should have had max m >= " , (long)maxmobserved , '!' ) ; if ( n < minnstated ) fprintf ( stdout , "%s%ld%c\n", "The previous character should have had min n <= " , (long)n , '!' ) ; } } while ( ! ( o == 248 ) ) ; putc ('\n', stdout ); readpostamble () ; fprintf ( stdout , "%s%ld%s", "The file had " , (long)totalchars , " character" ) ; if ( totalchars != 1 ) putc ( 's' , stdout ); fprintf ( stdout , "%s\n", " altogether." ) ; }