Path: utzoo!attcan!uunet!lll-winken!lll-lcc!ames!mailrus!cornell!uw-beaver!tikal!ole!ray From: ray@ole.UUCP (Ray Berry) Newsgroups: comp.sys.ibm.pc Subject: BTOA, ATOB for PC Message-ID: <532@ole.UUCP> Date: 24 Jan 89 19:26:19 GMT Distribution: na Organization: Seattle Silicon Corp., Bellevue, WA. Lines: 157 Here is 'c' source code for the two unix utilities 'atob' and 'btoa'. (="binary to ascii" and "ascii to binary"). They work by converting back and forth between 32 bit words and 5-digit base-85 ascii character groups. The original source for these was posted this past week to comp.misc. The versions included here are substantially updated and tweaked for Turbo C and MSC. Inline asm is provided for the TurboC version of btoa to speed up the base conversion. The compatibility of these programs has been confirmed by comparing their outputs with those of a BSD4.3 system running the original source versions on a variety of files. I've also included a pre-formatted image of the man page. begin 666 btoa.arc M&@A!5$]"+D,`7EY>7EY>A0<``#@2:%F@758,```,+U2`"$/GC1@=(.R4D3,G MS1LW(&BX@-%``0B!<^C(*1.F#0@S:=C060BB((@Q:,*X.5,&!!PY:=S0"2.& M30/"S9NH;0BB1%@&#U04,5*`V**2JY,G8>O0@2.X MBU45AT&`@!*F#AL04@2/E),@@9(W+9_XS)C8)9J0-.>$@+.P,FDZ<\B$4(/Y M<&:0U@ER#(@6()I,&?*"RI"3/^$03%.S3&1QV`L5!00"%4$($=%%$"I0T0@QC<%&'62T MQ$-&9#CD`AH^;-CAAR&"P(,98\C$QHDI*L"A&QZ"***)**J((XLBDL@&"^,UX4(.Y"I@)ECT=$&'%^XT5$96[#719X*U.%&0V>X M4097;#QT!EEEB`5"#R#`@*BBC#H*J:1DF>41III6Q&D:C3X*0J0KD>535*1N MNBBJGJX*ZAUB<15K14P9-<8;BM+10ZE.*EI;`GM4E,"IJ7[:*JYRD('HLK,V MV]69(-CG5:&'*MM'MC6]D12B>II!D($H\'D56F?HE:P""9CQ$E-FH$#B=&") M0)!!"!4AA11/2(%0"7-PX88(8+&;PK1UW947HGWH.8*4,;5$1!'IZH5"QK^! M<$(()Z2@9XB_AH@"L[6J.X9>%;V;`)0@I'LIIB?H$3((+K^<%0IB_!HL""&0 M*C*\E9D[$QLH!.6S3"#,D0>.:/CD1AIZ+/<0"-.))<+"RB90!AMSM)1S`F), M5:E@*,#`-=%DFPTL'6FO75G;([T=][25E5TWVFKC'3&\WRK[==A8Q2RS#S2# MK)<))L3L&P\Q?WP"""N`@$,-*62.<]F1FH[Z19A>CO?OI:]Q>JZ48[KZRL0.!L*V:[Z',OF_SRT5X*;O#*HZ["Y92KCC'TUNM]-MS`BZN\MF=N M,4,7H!ZM,'4\Q?[L>[;P&-N<0S6CH$D%(;'(&`UV+06.8S%(@$A/"1"4C M&^G(UB"F)R,D@0E%N(B?``42FY!+`06$6Z]6UC)E#:%28_$"IL8PK;*XB`>8ZF+7VAB5%<1Q6B&T MW1S%R`,X>J>*8K1C%I4%I8W9<`SI`LL0OU#$,F2N!STHPA.,,+2BG0MI.!P# M09)V!YB,!&MR\,E8KM9($""L)'\*U*`RQT,GQ24F*.C5F]0LF"H&QE('(X0UI,0C"#G3*7$J1@91H& M-QG([6_*DA`XPJ`TEFL,:?J`7 MF,'A#7-H2',PI">=;6R(RT1##U@R$C?8(6D,A<+64@!))U2!"4RHI$E1@%*" MJ)2E8'JI"&)*A"1(8:8UO6E.?==39K8)3\K*)!SRP--4"JH-96!!)C?95#0D M;`TC^5/2L``)`\Q4;LI:9"DQ988WD,8-50745;-JRCN(804[).3.U)K0F8'` MICC5*0HQJ1%-PDT$/F,#&=QP@JBX%4RHQ$\I3[G(N;*RI`$)VYE0\A%+H8$C M(1K+D!RE@@S%RU(HV,$.S`E.%)B!I7/@F3#!TA`]5"HKP30#;>E0(C?H!9)_ M5:I@+YFT,OR)#M6IH6":IA&.M"&O\/IB)L6:VWSA02AOZ(X0RG"&F-CSD]^)9.8:`=OV^O< M?3V&!_VR;;P<*6_7],@VDKW!9.P#G%YCEA.5U"LH0P%!$<+T5Q"40+$>9@,> M-!SB$:/GPR.60HGMR8*NF6":8'GQ-<>833G$&*1GN?&K]$).S/ENL$FKL!NR M8JZ0U&$C88&(J%!2AJ2LJF+0;2T*I@DT3%E3+WS@0\QJ7&5*B07+6D8!CCU" M3BNV`K"$`5`!H(0E1/02Y#`%Y>7EY>7N<)```X$G!9%B$I M$```#"]4@!!#YTT8'2#LE)$S)\T;-R!HN(#10`$(@7/HR"D3I@T(,VG8T%D( MHB"(,6C"N#E3!@2.@6GH#,PS<@Z(-&Y,PI&#DTX8,6Q:AIDS)DV:BA=/OFD# MIT[-DFA:NJG31@S)-V9FUF0!0B49J!M;KL%)QB96$`V9!CT9=TEK$99J-2-D''C/S:\PV(&3):B(D)XLX;.66YTHD*<6?/,H0ABAG: M$D>-N2!`E,$#!X5G%C52@/`AFC0*&2P0IP`]N660*4.2)&';-XS@A3;KS,'< MU:]5.G?*E(%X(L2)KFZ^GJAS`O0)/<^7VR6S]W#BQ3+U+'RS`\0)/,_3!!_^ MU62;OFN@MES^]:SV-]R_D@GCT\5)18$T!@@M@-`$;B]0,8123/&7!E!E`"B'&@,M)$<>50)6 MAAUUM'1'&"#$\((,8N*0`P@`#C$%"#?,0`,,-\060PTRA%9''6/``8(+?-9Q MAV(E.89SQ MWDUNL(%3E++2U^NN(_RZK)%!8`%%$5(PD8031;")PZXH]940<%MTT8,(6TBA M!*5BDOF"F5V(L,.N;#R45QUN-'2&&\0-4<9C(/0``@SS*E#O2B#@JR^_7PT! MET<"$US1P??F.R##(`S1H4P1%UQ13R?9A2_'`Q<,LA@BYQ3P806'*T=)3&U1 M0Q<>*X"OCB#L45$""E],',6-/49&P3Q;O"]Q+B?L\A8TT+QS:'TD#-0;;M5\ M'WR'P&$0[3!4(*YR=]L-L"QP#T;V"@(+&;\AD MPL!XX``#)`>H%O:%>,O$`P]R$SWVQG&'270?.Y?!QG!HBKUXWI\B[OC.A3>. M]LYU3.V6"WBF),<6*+\Q<@LM=+'RYV+7C4+J(W\ZL.`[)^`89*K3@4(*BM.N MLL`S/%X1Y`I4M#L9O?^^Z^`[RQYZO:,O'W#$3.!N>5-TN(S"=2<`?V&D;N1= M!D+@WV264PUYV@9^+7C&V\O#R:3"I9;+OL(*8Z3,LB?ZG+2`XE9#GD)P*#D*#>X!(`L#373E!FB4P9@34%8R;.< M&1Z#@C14L#QIX$$-8+@_$+!@>E1;@PNL]X(>>.9K"*1#S-+@.H'AL'I"`T$) M7%(#MIG'.04;P0:959%(7>$-6'%!:)2DOJZ((0]S>,^!'B(?$-1)6?PR2U:V M(Q0QO$$A=A/!3\`H1A$(+#$SP`)HYE"OY+QL,BHQ$FY`4`,7Q,`%*>#*EI9S MDZR882@5@DH@:Q,@GA#(#09"BXC,0(<7A($,7VE#&2:#'__("`1(>$-R<"29 MJ'PD47W$"PB"I11/@00/W0&D3'30@A1HD49+NL,+:*D>+_8N3"Z@`18JEY1' M9H0D@(3(D994R!A`Z@EX:$Q,%.044UIJ5T-I0P+>9X<(XH$KGD%@I(:P3`6Q MH2P@$)4=U`.PR72H#F=`@U+<@*.&/.1^%0GG.-^8@(9P100A"($(QB>03^:G M)(;9R'O(`DW#O&<-+;%,3GZREJ$4)0T`54`X04#.>*:!*T\P@A&F4`0JP`P. M"8@4'#0"T?D5AU%8H$+:9X<2OB1O14TAS%Y`$@(0A=.`*\TKB&.^\(`8V M,.D\N<.7.3Q,ECZ`*DQD$HB$5*#D3(`8TGI$MBX-!G&-E!"6*1SB#`4M7]+3 M1@CT3#G\M:QX>,R%R)!6SC+T)$$1EUT#E!5Y\I4^EQ6G/"\T!CRH4R#RA*B> M4L*&K'R1B7:#0U??X(-J<64G96B##XB`A12D-@%X0,D9$H!6K@SVLW0=2-X* MXA':FH$K=[7F?"T(%JN#:H&@?'<`@4YM&>K(.`N6'-R M7(=N-JT-^>Q%6_(^,D1(.,C2"4\V"J59XD8WQPUL`K8@JBXHE0UR14M!_,*$ M-8F*0#(YRT;@(I+CUF6S:1!O75Z6M)F^[+C)1<-RFSL0UT:8>[(E[7G+D%[3 M]C4STJ4#==5KH*RC9/:R5ZV,Y=:*E[SF+588<*+>1,$3,?"5KW?Q)U#[%AF_ M(7YQA\:P%YO((#HVU?!>(D2'!!-TP0U^<$#+^N$B'R6%GY6!%R#]`B;.VG:R MABH,75`&%W"%7WC@JE>U>(>0',@JML-K3.8P5L">VL@M7K5JK\Q:%T=8TBHK M)J/-6Z3R!0A'9N@C".#@H89`J;Z@O"]V7^UL+#.8B`^.\`P@8U(,RWC#I/8P MK4"\J\^F941R8$,>?CT:F5R8,<4&#(_A^,61Q->KW:4O_C[K%1!(=-$D?%G" MC\WD`AWHX!G.BDKFX,=FEQ6\M1+OE[?-!*Z<>=M(L%N=0(+)CP]HV2`P+J7+ M:FD6YS?"^\VQ/O6L49\4V&7,WKDX4[QB-G`E#&CXK%WDL!'!Z*62W#FQTLUZ MH7<[N"NNC51&'M,2-TYF?C89JQ2C\RQ8&Y6%+J0!#'WPPINP[H`I+GS8%90L#\)UJX'`!0@MK3%+;SGO7NF^UX#'QCX"/IO919$(`8SN#/D M(:\B$W5#"U76ES.,@2M)4T'I[5"NKPT.9+!+`-#<\,)^RZ[T0PJ!W/!NAJ*; M`06ALA(+1+"9KY3>)B8IP1P:*(*GR^$,K$\`4A;"L( M4I`%V%<_\3=_(;$<;W!_S.,4^L=__N<$`"B`1+,SOH<"(H`'!&$0XU4&E\1\ MV+`6 M[E>!(M!`&%@08%($H.8$2O1.99A-W5(";)!-:Z*&V20%9\A\OS:'&?,O+@Q12@VU><[1%@PGZ<`&@A"5$]!+DU!3@!>7EY>808``#<24(QJY[\+ M```,#10$%$+E21`4,5*`@-2@BI,D6$!`D?/FC)PP;=J4D7-B#H@F8=S4"<-F MH0."!A&F",A2@9,@38H$!$&3IA@Z;\*P`!$&IYB==,+(:1,F#9N===P$'5JT M9`L09=R,>4.FS(NJ4ZN"$)/&C=`\('#.K`D"CIRN0<6P*0,BR)0A29*TG)+% MR1,H4Y),&5OS9DZ^-'N^$0,XK%"B1D'<0?,&Q)PZ8M24&4,'A!FC93RZV%PX MZ5+$);=8Q@RB2TLB1=Y*20*%2I(G3@H+P1D&1!J/M2^SH;,Q+)J>(.24"4,& MMYL\=-!T/6.98AO?;.<$=4-&*)G"7>'4H;,S)!FH4JEFMET9;6.S:,.H9>L6 M;A(0;]Q`=SR]NISK"LC"WZZ=C@N:251&TAR-]134&&B,5UN"Q/7F'0@(3K;& M8\]U9<8;3-&11GR=S5'&=V*`E1Q;PMFQD8>C[>:@3V$U=AEU\TDG5&5OF`%= M8=4%Q1.,.$&8X!AKV*94&1:E04<>+K2D7Q`L"D><<>!E]6&*9>PDW5EP>%2C MC2&!M19QR^V(GWYT7&14F&QTI2`958$(%F@G=@>C<&,XR1MN$+X!!U@UWI@? M61BF<497)%$)GWPCTN>==?O1T=]_;;$XJ(D>V=5H?X6A\&`9>!CIT1U&HK$C M5')0)`<(<Q1QAGE*%0&C9Z*F1_MGETAE!BL,H6AH4E&B&0%'I$1F-NO%'9 MKVLD*="?-5%Q6%.U\N18@FR4-$>=:)\2D6:KEIF"C? M8Y%-5AD<:%SD(:1&8`@5'AC!L98.2D*BP&?07L0&Q2"(D*!PY$5K,L4B6/;& M&RZ,P9,+;VRG)%E7&%42'&$`J2NXXNHVG@@7TCQ&S`^*$`;.VS$-(VC0P?M& M82*\C$;,=*EP'I M%0DBFCO5M[7N=L,?%M9M[L:N#!X90-U>%L(/,U8'&]]US1;5/:YJXL!DJ3YT M5XZ]H5%8KL.!X>!&.`A0@IZ%^]8&'F0';-H(@+//"LQ^8L9 MJ,B%%?',QWRL>Y`!3V6D_U1!*4)I06&H-H:0C(M`6V&+]WR')]WP1@Z0$@)8 MNA8FDAEE)USQBASR4!BC&><[4=$0RV)')YS,D#YRJ`-EZB`"&6G1%<*'(AY796DR>,Z%3>FP/(EJ4? M>^%+52#@@6,F(QPZ>(0/$)JAMD"`2;_4!I-4TQHA:;+`DH`O=U&I4QZT-:6I M#$DI6K)1HN(G`@_5"8MSB)E8GJ@U2"7!1EH#P1J*=0>`H5(JFM10P@R7AYWD M[H@@:*!6C%28$/W/#BT\'K3J!T`AI2R!*>@7=.031#>X83F+=!Z+))D_3F9R ME97!9%(<6<0YM*0E$T'+E&+P`AG`X`4XR,%"'L"&-W2P))#H0`SNN2R&HN0@ M"5E(0QX2D8E4Y"(9V'KO'(4,=0,=W(3$G"OY8$H0I40,(3I%`8*(1A>R"0 MPG9."`(4M($JL$K#E*RIA#>PY0D4DJ*KQ2QZG M@-9&-X%`!C4H`?]H$@3<%&8.!QM#&@K500_M9`8R:`%7*J.'C31&LN%I$T^T ME#C&7H0R&^G?;0H;VS"9A2I"',]:()DS1_V46_*I0QT,6Q655$X!4RA"$=K" MA"D\@:?J>^0<5+*3D]*!N^!:;FS+`%[0J(2AZ"5I>M>KWO:R][WNC6\^A_0= 1?OH3H`*%!$$-ZM$.R("]&@!: ` end -- Ray Berry KB7HT uucp: ...{uw-beaver|uiucuxc}tikal!ole!ray CS: 73407,3152 Seattle Silicon Corp. 3075 112th Ave NE. Bellevue WA 98004 (206) 828 4422