PROTOCOL: ALT COMPRESSION: NONE CONNECT 2400/ARQ CBBS(R) 4.0.3b 09/29/92 00:37:43 Y/N: want CBBS "1st time user" info?^U ?^U ?^U ?n;ward;christensen;odraw;;fullc;piss Logging name to disk... You are caller 227428; next msg =45755; 361 active msgs. Prev. call 09/27/92 @ 22:28, next msg was 45752 Recording logon for next time. Use FULL? to check assignments ?^U ?xxxxx "Mine" command checking for msgs TO you, ^K t >Function:?dir c:log;dir c:killed;dir summary;type-10 log,ward c;or;*;short LOG. 11 KILLED. 204 SUMMARY. 24 09/27/92,22:28:59,227409,2,WARD CHRISTENSEN,,4 09/27/92,23:51:08,227410,2,DAVID JOHNSON,,1 09/27/92,23:59:59,227411,2,BILL MATTSON,,2 09/28/92,01:35:16,227412,2,STEVE RYAN,,2 09/28/92,04:08:53,227413,9,NORB DEMBINSKI,, E#45752,20 ]NORB DEMBINSKI, 09/28/92,05:08:00,227414,2,JERRY OLSEN,,61 09/28/92,10:11:56,227415,2,PETE JONES,,2 09/28/92,10:54:07,227416,1,ROY LIPSCOMB,, E#45753, E#45754,2 09/28/92,11:17:08,227417,2,DENNIS STAHL,,5 09/28/92,13:16:05,227418,2,ROBERT ERWOOD,Chicago/ IL.,13 09/28/92,15:38:53,227419,2,DENNIS STAHL,,1 09/28/92,16:16:48,227420,1,PHIL BOLD,winfield,5 09/28/92,16:59:13,227421,2,TITO JUNCO,SUE/TX,7 09/28/92,18:36:26,227422,2,WALTER SIDNAR,,10 09/28/92,20:16:21,227423,2,ALEX ZELL,, 09/28/92,20:24:59,227424,1,KK KK,kk,1 09/28/92,20:28:00,227425,1,MICHAEL JENSEN,Chicago, 09/28/92,20:42:56,227426,2,JESSE JEFFRIES,CHG./ILL,11 09/28/92,21:29:54,227427,1,JIM EATON,,1 09/29/92,00:37:46,227428,2,WARD CHRISTENSEN,, 45752 09/28/92 NORB DEMBINSKI => BENJAMIN COHEN: "R/TELEBIT QBLAZER MODEM" 45753 09/28/92 ROY LIPSCOMB => ALL: "CRC ALGORITHM?" 45754 09/28/92 ROY LIPSCOMB => ALL: "QUESTIONS ABOUT DOS 4" - End of summary - Retrieving flagged msgs: C skips, K aborts. Msg 45752 is 08 line(s) on 09/28/92 from NORB DEMBINSKI to BENJAMIN COHEN re: R/TELEBIT QBLAZER MODEM Thanx for the info. I had used the QBlazer for a trial period and liked it very much. I decided to return it because it did not have all the features I may want in the future. I had noticed that I could trade my old USR HST in for a new model for just a few $ more and have the ability to upgrade in the future if things change. I appreciate your comments about the QBlazer. Norb Dembinski Msg 45753 is 01 line(s) on 09/28/92 from ROY LIPSCOMB to ALL re: CRC ALGORITHM? What is the specific formula or algorithm that produces the CRC of a file? Msg 45754 is 06 line(s) on 09/28/92 from ROY LIPSCOMB to ALL re: QUESTIONS ABOUT DOS 4 I don't have a copy of DOS 4, but I need two items of information to complete a utility program that displays the DOS errorlevel for DOS 3+: 1) What is the exact offset (from 0H, not 100H) of the byte in DOS 4's COMMAND.COM that holds the current errorlevel? 2) What are the first three bytes of DOS 4's COMMAND.COM (at 100H)? Thanks. dup. chars. >Function:? PROTOCOL: ALT COMPRESSION: NONE CONNECT 2400/ARQ CBBS(R) 4.0.3b 09/29/92 22:05:41 Y/N: want CBBS "1st time user" info?^U ?^U ?^U ?n;ward;christensen;odraw;;fullc;piss Logging name to disk... You are caller 227440; next msg =45759; 365 active msgs. Prev. call 09/29/92 @ 00:37, next msg was 45755 Recording logon for next time. Use FULL? to check assignments ?^U ?xxxxx "Mine" command checking for msgs TO you, ^K t >Function:?dir c:log;dir c:killed;dir summary;type-10 log,ward c;or;*;short LOG. 12 KILLED. 204 SUMMARY. 24 09/29/92,00:37:46,227428,2,WARD CHRISTENSEN,, E#45755, E#45756, E#45757, E#45758,13 09/29/92,07:52:55,227429,2,DENNIS STAHL,,3 09/29/92,10:47:47,227430,2,L L,, 09/29/92,11:07:05,227431,2,ED LANDA,Charlotte/ NC,5 09/29/92,13:23:49,227432,2,DENNIS STAHL,,0 09/29/92,15:56:39,227433,2,DENNIS STAHL,,0 09/29/92,16:45:21,227434,1,LANE LARRISON,,2 09/29/92,16:51:34,227435,2,MURRAY ARNOW,,3 09/29/92,20:28:03,227436,2,WALLY KLINGER,park ridge/ ill,4 09/29/92,20:58:08,227437,2,GREG BLA,,2 09/29/92,21:05:25,227438,2,JACK LEARY,Glenview IL,4 09/29/92,21:08:37,227439,2,JACK LEARY,,8 09/29/92,22:05:44,227440,2,WARD CHRISTENSEN,, 45755 09/29/92 WARD CHRISTENSEN => ROY LIPSCOMB: "CRC2.C 1 OF 3" 45756 09/29/92 WARD CHRISTENSEN => ROY LIPSCOMB: "CRC2.C 2 OF 3" 45757 09/29/92 WARD CHRISTENSEN => ROY LIPSCOMB: "CRC2.C 3 OF 3" 45758 09/29/92 WARD CHRISTENSEN => ROY LIPSCOMB: "CRC" ++Invalid number++ First msg #:? >Function:?qr;* 45755 CRC2.C 1 OF 3 45756 CRC2.C 2 OF 3 45757 CRC2.C 3 OF 3 45758 CRC ---- End of summary ---- Retrieving flagged msgs: C skips, K aborts. Msg 45755 is 28 line(s) on 09/29/92 from WARD CHRISTENSEN to ROY LIPSCOMB re: CRC2.C 1 OF 3 /* compute crc's */ /* crc-16 is based on the polynomial x^16+x^15+x^2+1 */ /* The data is assumed to be fed in from least to most significant bit */ /* crc-ccitt is based on the polynomial x^16+x^12+x^5+1 */ /* The data is fed in from most to least significant bit */ /* The prescription for determining the mask to use for a given polynomial is as follows: 1. Represent the polynomial by a 17-bit number 2. Assume that the most and least significant bits are 1 3. Place the right 16 bits into an integer 4. Bit reverse if serial LSB's are sent first */ /* Usage : crc2 [filename] */ #include #include #include #define M16 0xA001 /* crc-16 mask */ #define MTT 0x1021 /* crc-ccitt mask */ /* function declarations */ unsigned int updcrc(unsigned int,int,unsigned int); unsigned int updcrcr(unsigned int,int,unsigned int); void perr(char *); /* variables */ char filename[100]; unsigned int crc16,crctt; int ch; unsigned long num; FILE *fp; Msg 45756 is 19 line(s) on 09/29/92 from WARD CHRISTENSEN to ROY LIPSCOMB re: CRC2.C 2 OF 3 /* driver */ main(argc,argv) int argc; char **argv; { if(argc>2) perr("Usage: crc2 [filename]"); if(argc==2) strcpy(filename,argv[1]); else { printf("\nEnter filename: "); gets(filename); } if((fp=fopen(filename,"rb"))==NULL) perr("Can't open file"); num=0L; crc16=crctt=0; while((ch=fgetc(fp))!=EOF) { num++; crc16=updcrcr(crc16,ch,M16); crctt=updcrc(crctt,ch,MTT); } fclose(fp); printf("\nNumber of bytes = %lu\nCRC16 = %04X\nCRCTT = %04X", num,crc16,crctt); } Msg 45757 is 28 line(s) on 09/29/92 from WARD CHRISTENSEN to ROY LIPSCOMB re: CRC2.C 3 OF 3 /* update crc */ unsigned int updcrc(crc,c,mask) unsigned int crc,mask; int c; { int i; c<<=8; for(i=0;i<8;i++) { if((crc ^ c) & 0x8000) crc=(crc<<1)^mask; else crc<<=1; c<<=1; } return crc; } /* update crc reverse */ unsigned int updcrcr(crc,c,mask) unsigned int crc,mask; int c; { int i; for(i=0;i<8;i++) { if((crc ^ c) & 1) crc=(crc>>1)^mask; else crc>>=1; c>>=1; } return crc; } /* error abort */ void perr(s) char *s; { printf("\n%s",s); exit(1); } Msg 45758 is 10 line(s) on 09/29/92 from WARD CHRISTENSEN to ROY LIPSCOMB re: CRC There's also a "crcfast" that uses a pre-computed table to do the CRC. Also there's a CRC routine that uses it on the Ward Board (708) 849-1132, in one of the low #'d msgs, like msybe 7 or so? Basically a CRC is the remainder when a message, treated as a HUGE number (128 byte msg = 128 x 8 bits = 1024 bit long NUMBER) divided by a polynomial like x^16+x^15+x^2+1. However, it can be computed by shifting a bit at a time and doing XORs and other tricks; then others have figured how to do it 8-bits at a time (instead of a loop shifting each bit in a byte). Actually I don't undersatnd it as well as it may already sound, and cannot elaborate on what I've already said. >Function:?