Bootstrap code
Article: 4925 of alt.hackers From: Terje.Mathisen@hda.hydro.com (Terje Mathisen) Newsgroups: alt.hackers Subject: Bootstrap code Date: 7 Jun 1995 18:19:45 GMT Organization: Hydro Data, Norsk Hydro (Norway) Lines: 116 Approved: Yes Message-ID: 3r4qk1$hqv@vkhdsu01.hda.hydro.com Reply-To: Terje.Mathisen@hda.hydro.com (Terje Mathisen) NNTP-Posting-Host: sk08ts.hda.hydro.com X-Newsreader: IBM NewsReader/2 v1.02 Status: RO
A few weeks ago, I posted a msg containing a program I had written that ascii-encoded binary files so that you could use DEBUG as its decoder. It had a tiny (40-byte) hex decoder which then processed the rest of the input file, where each 32-bit binary dword had been extended to 5 ascii chars. Since then I received email stating a) that DEBUG is no longer a part of Dos, and b) it could be done better, by writing a program that uses nothing but printable ascii characters. I got MAKEBOO.COM and UNBOO.COM as examples of this approach. >From Jim Tucker I got another version, NETPIC, which works on the same principle, but where MAKEBOO uses a uuencode-like process to pack 3 bytes in 4 chars, Jim got better packing by storing 13 bits in two-character pairs, using 91 different characters (91*91 > 2^13). Based on their ideas, I wrote the enclosed program, TEXT.COM. This can be saved to disk and executed directly, and it will then recreate the base91.zip file that's embedded inside it. This Zip contains all the source code for my encoder. One feature that I like very much, is the way my program is partly self- relocating, so it will adjust itself to handle either one or two-character line terminators, i.e. this program can be saved as a Unix text file and still be executable. -Terje Mathisen (include std disclaimer) <Terje.Mathisen@hda.hydro.com> "almost all programming can be viewed as an exercise in caching" ******* Save the rest of this message as TEXT.COM and run it! ********** ZRYQIQD[L@RX-g7-f61GDSXu&@,~P^P_O,!(GU(GZ(Gju4base91.zip<t<4<<<= CFFFRX,`,`2$F=@!t.rQ0%IuL0%(%(%GERYAA 5t<(C)_Terje_Mathisen_1995 0P0PB#y#141m1#m#0Br#h#0_A#0^k#0t0>1k<#0&0Oy#080Br#i#0_A#I#070Cx# 081/0$P#0$0X1$K#1Y0)0Ts#1u0S2#0X18N#1#0.0;t#G#1S8#0B0z0z1^A#0q05 J#F#0>0zy#1412g#0_u#1O0k1S11q#031W18v#p#T#1{G#0X1*F#0>0x12g#0__# 05J#j#0;t#G#0>O#12g#0_S#0>0y12g#0_M#0;a#H#0@F#1#K#0;P#H#0@G#0p0> O#12g#0l0>0r12g#F#0u1d0b1ff#1t1qf#1f0_0_1a0_g#S#P#j#f#1g0_1f1h0^ 1f0fg#S#P#j#!,@#n#'#7P$<Hnzgs1GRS>T&@#%.:%+###,fRXL:8^y#T^X=8pY) WE\t3cw|/q=x\0X:C<T4?:#EJ#SX&`*.[)Jq|/$n\>j)j:/qWl'+6eh>lHL{efbf 7s/f9\}qlR;V\%v]NxSR34P:{sd_E[`V}K:UA,d=my[T[`Q@A4nku$tZoA+ata_^ YG?>#F6oZtL]tp4<11gq*<xak_%Kk]:kx7q'8G|Q>)NJ<Rpk@Zr%o^?NJ'gp^CSL eL8;,XJv:,@)NG[c)n${?'0-BB,{>6B$`W\U@qSd'$9YF[RRm@eW2_['O-<LQ'G- )YvmNabeA:kn|9AYd6T5B1sE|BY$&^wptZ<pqD&l9L(kKtfA1q;ag]Kj,GW?om9$ 2V+,hVNYAKU/O;DQJ8se,[kdr\x?F9NO-$4VeWc=ZR4X6YZQ##1&'Mx'EXsL4ic? :;<?ro/-aH[p?{Cp308n9I^^:b0:3;oLE(kKcEB;'?jcI+U&'M^fcCkJ)k=oR3l^ H)Z#qWc)Hp(;j8o`u&k/Md?G&hpZ/+&O,jEK<Bs*JnK[}vi>M@Kze+`z,:zr9iq) [9KG.e>K.>>TYj1q{.)URBYO{zOp`u[NV#U3&.&+Dilt:BhNV7eD0q)VofW:-F+5 )/}\>--q`NO8\:V@WX[$UYPH#sSvb54kQ3{$a.V\`JJY38W(xK/4n7aH^djWLKO# 2aO`0CYNHyNiD]sh|C)Rfe.]N9i*^RedN4]q0|Jwv<t_XCp;5_*@/;Uy?Q{&9&dw Xbm)#_hqV^%T`-SJlSX(.2j92Au*VMm/Ee1aPENkyu0)fi&onjCU`rYHZqN>C^aX U|S9L0fF*Y<Qe90^[)ZoliQI=7#O&|jJ{fZ%+*`bVWdO|{rJg?p_}j4ZRW|e4Rf( k&]#.:.:M5xhhb7NkL$Y#&.:'d<@####wG.|j5/3:$HOuJouPqZqGgspOo'O9 Ue)End1k])edA:TfY(,SI3yfR.]V*`*0l=.CF@'yPZT2^nD\vNP`%(,NLMsZbr/e N#0ixU-d<n]qfm3;3@5^'G;A&\Q{@h:WyndkJ>g_1hSs9kTHjL4k}w%pLlGP61=b i`_kXhId;-rO4i{Qh1xuH:I.qS']gpG|;BmyDFEbq92yz|ojgWGMfRe_qK,`)Zn2 &FpT:IZVx59^c&Q%wR+*V_8v-0;NogS|P`Q0D1%0EcH+<X\@>JO=G_#AP(F+M=4X c_=dk&t<&Pxmj8K7q9BG8s@eN.OG-z*8\Zwb3#?v=TX%80gR;#chFRO$%yXVzQ`U ?5^j+Cp1*EQ:v66j1W<CIRO^NVN-xB8d=;5|SkLC1$tD/hI$:&$4>]_L*h4?\\4) h/yrM$WIcSe0,#slipWCNum+Mtz&JpP,T:bxUPRlssMVQt8;mBS`$.$Xj'NomY$H Fs-jibr'a94][1L>Ej<{k.d%3:is]jG[$3BI:XBB#2hzC]qO1qIaa7Z4r\MK8,>/ n1{;g(#G5k'=5|:F=Q_Yd7+xLJaW5uPN1G)6$sZtAm'BkH1v'_e4H9wdYjAQ:ESh oYsASr3C]|>gi7Zi4.fO3J}GX|cs`7x&baq?*>2lrC9m&7+L}u$*^)/FueI(Bg]5 K$^v7n}VL0.sVAUhu0I?c;W^J^/^66}gognCO]AC*onsV8fW,-6e:M^Y;ixZZVjB #(?8d|z,Z\NP;?ysE0C:G;w2zT/^%8$'.7$mjg>=/W%nF:Eo*dVD)H%n)FK&J{Ki >(Y{<9@0i7YDLrq7O$QQ^{`:mIRbiiWtgR[-6k\tb|.EJA)pA)Yy}ITdvX}`k_Tu =LJYK@BBU<`m2y2.x@Jt={SfbbjCBIY8ltKVdNAQ@}$K>SEMu.B38],2gPU-lI%* zMEycyd<9LG)@-ZJ-k|erm\.%|I9:ZILK'}3.2@EkHLkER\)(&]#.:P$6bxkR 4oP62>?#)qi':9Q####(\[}rag<1ZdKmrb+2%SMtV0RRj%j&FSq['gGUm.B3<Ch@ UojUh`\]_(\kxh]w{2wwtb&fICzx4e8GYf9.(8l6FOP4Ky`*2VD>Lb]a<XZSgvd{ SO9[vEtI3.j)@'Eu#sZ2Rx_,Q(&P`+wx6T)yU3SyLUfM1`J0_>]KL/_T6Y-i|;-1 {W,P2YZU>K|IV3$$_fH[7ONV;.b%=^S]boA'`x&SLdxq)>*_D$h+LP\Q4re)Bm=l nnewGQi$pAD%z1>*fFvYap5eXYPwMPvdQ2y17t=tb(,o5-e@BIlD6?k64n&5USu$ n*MWq/<W@_v.GKM((H)7>KPIse}XB(62$eRjIvP:+8`IGLd9#'O7tsS6@/xmpXV@ <3vNGQ:<ZNBY}He]q<jky5smn9rA1I|/}k&Xeb,>5zSnDGUJ|Ia`+1h9JqDXe;<Y )<iO<_lx*Cr^7N<Zo%mBi{:b8HUlM6?3S9YM>tnkv1Q-v0pww7uoS)Ou<{ud-(0d +9s)LbF2{f::UgvZ%Ln90\UI=u3KG*c|Y'0-$u/2pFyaN</[PPf]x-&@>JS+|({V '&OD5t,^{j1O}jsQ5g[jsjP2A\7L{hogP9Q+aho6($nDKOCemls/0<<*ab))W4[X @&%Uh23h;NRMSvJw3van.7\{E0>o}G]N/VLl}^nu'KbTB5/Y3u])*;kvflw%yV,0 0GVo)X'(uy^[M_=l:>%D0yuslNTl}pl[-\QPPpUWzh]s'|g&(u|UUz4%jO*UNB-D OJ)f?:V^G|>FQr9[jfQsOQf)P$dy|h?7|OXH6-^+Nj?XCpsD[q:eSp:${KczV6i9 X7&vpr=W>mbjiTCt]>(O;]PLi&CyGfAe]f3>]+iHA|[R%jMu9J'T{CqMC/2o,Zdm #\a]UNT;-.vkAjTGpiftL?qclB;MFRc*;o`eh=Pvr&'<2KSadv(&|v*{HTr4guEj q>-uH**q:mHRb]5K:@zVi&s<-\ObR6@?@f:<zJ[{k`$o*]Ud'P+yLH3WO8:7<B>* Zb=FZrDUEPIRZu{C(0J%+c=cbVhGF:@%;Atb74YN$l/(GnmEU-Ds|8})i6Ykssqo sIqf5K#/q.yKhu}u.]FFi<5J@,C/40=;tKxwYY39j^E$W(]rojcLS:6K_U%,*jy& P?t5TlKBBC#?#@UWGBn\,l\S1PJPBctI({V|gFUdE=M=5>Utv>Szhv$3YHW<`fP: ^`=rid6le^7:>SEG8vGZKpxnvb@1^s_AOnz4uEzF|%w$}P:H6F,7xzpAw{WLFJ'P }QA[ovb.mpwb%'{?#MGqW[0Uk1phT<tIbTxN$*.xuT;LL,CLNu]&AT{qa7DrANT. R>Hl`KKI|@tS'#I@IT.RWL4wCmm{>[W$:Q<dM$hYb)'C\q`yt|K_+>v0k#uK>{<e *G;;H-(Rf9(*aQAwcI.qich>u\f.A31I<#?g9gu:OI&sM4]:'P9'D.}2csN_M]Dp Ch@28<:u$tArxj+s{\B9wX4*X0X+rwBq.ckOF<G^O,c?K\GU&>i\MzgN'svMqyh\ FN-\|yF%yKlsVZ4\No;PpyuJR0>T1zf?%t-Mx/s$^?97de8v+b&<[pbP1i%w7U@O py}3Qsgh'3n,&.;;m[MgKUZy'ifuK5}0HNdk,F/-n2-2fJ-_.ZVL1I`b9MhO<@9V ,7]xP/aPJSi8ze_|khj,\tt`=70b,a5?.c&1,V?2\%.Z]B8,VPQ'F'21eODqGcn) 32Wyz{cS7\AMiq#6Ib>Z#\sX8:Q8T)_AwazILsWMV@n,q*Sd0$ge,iV5OZU1#6%h &p4;fLs_0{|On)WvhuM[DVI?S/f73P|ixXV<'>lJ1:X0zOphC<jjZ.vN'u\W%0.m K52+T<A8CIB(Q&WI&[%qN#CN*{*?z?^`\^Kv9Rci{\:H*G,*;mR0*2tB{ciRF6AC BI,BR*;p/o?/Sa}h5|fN]zpY6C6b9{5ejuv>?*8^x{;B((IC-@({IfQ/hxa[w?ks zVwu<2<B<vqa5uJv,M6E`2PDQoIVsclHqpYr:xYa;uX&kBW*N|I0Wkz)QdxN3`.v X(EPTi`/\5Yq0#<9-y='j$Pup1\eQ;7)_ujbe=H1h&7J$F#wMnI(Y32)L#OQP $tXsAU#\>ix[X#$###M[>####Dh?p=()J[m4F^k:sN,p.u-o37>]}0rTy64_UdqV HCrpI)0=QdX83Q=F/JYOXWUJaEfFVDgkIR78:fzrF;q7AD_U9fQ:4G$yngC|LvFv k@A1TF0,eI`nFwkY><i@o9Q9Q&&tcl44L;[^/p59#EC8gtzF<3F^+.>\LPF7e@(` JzSx(sKzM0su*{Rr0TXXy4K1{t@mbu\?&2$v(`V,A/oYX95EII6J41Lw991IFD?( +Te?ePu`ELs=SK1&]1Q:TZsEzIP;dM6e-iW*C`M1?C:;qcj[RC3@Pq*>+$sbN{Dg XxrX.t]7ET.F+8|Y$G>6ev\nD]Ju=.1(tJx4BoGW(OR;-%,'l(O&cBCP>k9)rwl% qN9QKtU]F/L;_%bCSMLokxSeL30H:WwgF4@99a'J1&IWr?:3rK$4W{)yE#}47c=N F|hE}Hc$,Mfr%k;-6rj(UkN&ugrAp?ra:EdT{/N^aQ6+3ke$8.?1^bG^4xbfl-yY yTD5frU2n*QDKEU?i@S?.NQa<5X}$4.'];bM,'/6wZZt+BM)Q1*9S%m#####+65K g&0t=*p$nfTcc#+###,#########$#C######P$7I1x4lXzlqVO//#$?C######P ,T1NV[Y;\L/#/GW1)#,###,#########$#Cl0Dh#%qi='VQj:[i#d1v&]#$#7#7# ###wOdDhbfpIq5rh/##%m#2###+#########$#C#####)%m?qK>rSV31l=5#$[O# ######+-#p:B<u4$1$n[<(\#&###-#########$#C.:cc#/fRPeVU/(:(H*?p1y# n#)####(`P$nz####$O#1####DtS9"