8L2C)pJJJJ IH(ȱH:=IH[H`@HcH  $ +   I/H`JLNGȄBȄF aK  haaFF  mJm# KKJ UJ )J ۈ) ;J3ȱJFȱJGJKaȄM  aaNNJFLGJL LLJ A IxX ho s(ii s / énn n===yyU$ ygH  g $ " g"L !Hr ! r -SPOOL.CMD.DOC[ r r (DIFF.CMDfi#! r ,DIFF.CMD.DOCjr r (MOVE.CMDoAq! r ,MOVE.CMD.DOCt2r ,MOVE.CMD8B.Sy|$q !r UTIL3TTA' #BLU-{VR&&TO.BNY5( )UNDO.BIN2= 'BLU.DOCGkBLU.NOTEV)SPOOL.CMDX >dMԡm#i㰼m#iЕOLԡȱfg hi !dLԡ憦  Ljmkm l y`2 Lԡ8(Je稽)ʈ@LLnSOS BOOT 1.1 SOS.KERNEL SOS KRNLI/O ERRORFILE 'SOS.KERNEL' NOT FOUND%INVALID KERNEL FILE: xةw,@  ȱlmi8#)!)? &PRODOS `DaElH$?EGvѶK+`L HHLy XP LM ŠϠĠӠS)*+,+`F)) (*=GJFjJJA QE'+ '== `@ STSP8QSS8 m P o R(8R  ogX m` H" g agLV!H h L!08I L!L#"8I L!L!Ʉ%I H H z VhL!H { Vh g"L !ɊL!ɕL!ɋL#"ɈL#"ɍL!)L LM/L/L/L%1L0LK0ɿ,aL$ɯ,aL$L!U$_$L! H  !"#$%&'()*+,-./0123)> -L- ->L-`--)//蹀-ʎ` }pIp e g{ }pIp{`4 -,70`:L?/0 -L.>. -:.@===% [`iQΐ`i`Ωzϭ'O V- -4`PΠ8ȱɠ )Ȉ - w Vh+``---"-m-----ʈ/--`. { % [{OR*L],:+  gf0POΩ gf0 gf:R*`Ω :R*` bΩzϩ  '+OΩR* , -    ,L, ҩ , +LL*L) m   { % [`8    { +L)LS*L+ɠ+,aLo, ,LS*Ɂ+Lo,ɛ:LK+ɍ:8L.`H7hLS*h)Lt++,aLo, ,LS*,a++Lo, b,,,',/ . `    ,` ` b,',, , `    ,` ` b` b`L 'CΩzϭ, $tqQmΥm b 3b g+ Lo,L:+ɀL*H h +Q*.,bL:+,a++ ,Q*LS*Q*R*08I +Q*L)8I +Q*L)+Lo,Ɋ +L)ɕ +L)ɋ +L)Ɉ ﬠ 󮠠󺠠묠 ЮϮ ̠ՠӠŠϠΠvhՠ嬠ɠ𮠠󠤱ɠ 宠Ƞ󺠠 ޠ젠㠽󠠠젽󠪪 , Ӡ , Ӡ Ġ, 젺 ,㠺% [ f%Ξ%/Y H gfh L<% gfLG% %L% c%L X{% [ f(L%  %  { % [LG%`,ޭ䠺ө gf`84#.# `i Vh8``c45 6; <78>Q*R*vh+`   ѭ íĭխͭɠŭɠ"̭ɠ8`% X{{% [ }pIp%%㩠묠{% [ }pIp""堭 }pIp {% [ }pIp"" }pIpѯѮ{ % [ gfN "U$_$V$ U$L !U$  L ! H"U$W$ _$U$L !U$  L ! { % [U$W$ e{` V$  { % [ {g$ "L"  mU$  `ȹg$ ` f X{% [ f{% [ }pIpɠ?844 ->> - !.R*Q*La\8`@nn n` e/ %2 2 n3 a\L w2!{% [ }pIp ` / 1 2 n3 a\ / 1L[>L w2!{% [ }pIp ` !0 1 2: 1y d*oyo 3 n3 a\̭ !0 1 1LUL w2 {% [ }pIp` k0 1 2 n3 a\L>L w2{% [ }pIp ɠ` 0 1 2: 1y d*oyo 3 n3 a\̭ 0 1 1L3L w2{% [ }pmomonn n nn m E=` GL` fCn  > ;3 Q. fL -` 7 c }pIpPoQo ;o }pIpL> }pIpL> nnn^=ɀ ^=]=n m E=/]= }pIpL: }pIp8`Lu: $tr$b=^= $tr$^=^= $ts$b=^=^=8^=^=_=_=`n ]nne= <>ZWoo o8o7o "oLu: =Lu:#n$n"nnnn]=T:o9o8oɀ]=L< ED$ne=n qnCn )nL_;nnL< c }pIp%n&nL+= n&nn m E=LZ=]=na=d=e= j=8^= _=._=$/m^;^;^;L;^;^;L;^;^; qnnn n nn m`.> -]=]= ===@A -B> -.===oo nLu:mmmmm mLu:L mmmmm mߩ+ _; ;3nn n nnnunn qn mCn )n Q. fL Cn )n]=L:n ]nn]=e=n qn :]=n qn -`%n&n#n$n"n na=}Dn)nnn͍ono n%8oooovu8`` c }pIp''렭庠 }pio }pIp亠 }piou g XL3=== f X Lu:9mmm mL8 8tL8q Vh8 8` 8`m` o o`%n&n*&n"&nɁ&nL8%n`8%n&n`oo ntvu oouvoo nO0n n`ȱ)`@ȹ@)/ /ș@@2m@@@22`%n&n#n$n nL8p ~GwLpi6z}  gʽ ]ʽ ɮS]=a=a=]=#8$8!8 "8]=6)nL6]=R6@===? 7YnZn@[n\n Dnȩ.ȩn E=L3@oo n @8@oo n }pIp L3L3n ]nne=` }pIpȩȩΙ`8`)/ZQFm]= 6L4L3L5@mmmmm m E=L3#n$n"nnnn]=L5 VCn )nne=n qnL4]= j=]=$n&n%nɀ 8%n &n nL5 ^8 nL3 n n| m Le5L3 Cn mmmm mL3oo nL3 " X }pIp c }pIp " X 8]=6 6 `7L3oo nL3 8LJ9]= 6 `7L3 %8 c]= 6 }pIp 7 m m mm@mm 3`Fuh n` 3 FD Vh8`o` 3F8`G VhL13,b0`,a' c }pIpҠԠ`y===yy===y` f X  3 ;3 fCn )nL Cn )n - Q.` E=Cn )nީ6L4 7mIpy c` 2 }pIp L2y 2 2 }pIpy c` X{% [ f gf{% [N gf`{% [ 2`M {`{% [ 2`yyy`y doyoIpɠ`5 6 7 1 1 2O @2y )d?oyo (3y===y? n3 a\ 1 1 H2L9L w2{% [ }pIpɠ`y 2 2 }pIpy c` 2 }p8%&D?E?Ωzϩ+ }? ;3ȩCn )nL }pIp ۠Ġݠ gCn )n -`Cn )nL@ 7mmm"nmm mL?L`?" X }pIp c3{% [ }pIp亠 ]" 8 `7L$@L`? `7LF? @7 ^8n ]nL9?nm%nnnm&nnnin qnL9?%D?m m{ % @{% [ }pioL{% [ }pioD? { % [ @%Lt? _ 3aLt?U` m@A \:\]N\^N\ N]N^N 9NLL;\:\ N\)\\*\`[N[\N[[[[[[L3K:\<\;\=\<\=\<\<\.=\` N \ȱ \` cN<\i=\i ` N \ȹ \` N\ȹ\` cN<\i=\i ` N\ȱ\` cN<\i=\iz ` ;\ N;\:\ N 9N;\:\ N\aN\bN]N:\^N;\_N\`N\ QaN\bN\ Q_N:\`N;\ N \4\\5\aN:\bN;\ N \m4\ \\m5\\]N:\^N;\ NaN:\bN;\ 1R\[\[_N:\`N;\ 1R\[\[ wR[[[\[\]N:\^N;\ N;;\ N/L:\0L;\8\\9\\ N/L[0L[L?K[:\[;\ N \6\\7\[:\[;\ N7\\6\ \>:[:\[;\ 1R\6\\7\[:\[;\ 1R\7\\6\8``[[N[\N]N^N\N[NL!N;\:\ N\_N\`N[N\N[N[N:\\N[[[[[[1K[2K[ 3K1K2K1KLJ[/L[0L/L.0L/L0L[:\[;\ N\8\\9\[0L[/L`?/L:\0L;\ N\[\[:\;\ N\[\[ 1L/L0L/L:\0L;\ N\[\[8\[9\[ 1L`/L:\0L;\ N[:\[`8'n (n- mCM\"n#n$n%n &n n`[ OJ'n(n'nHh`Ωϭ'n>\(n?\3\5m[[\>\?\>\8>\ ?\ LhJΩ`:\;\ \ \ \;\:\` BR &R:\;\LJ[1K[2K1K2K1K1K2K1KN2Kn1K2K`[N IILH\\ J\\`LI\\ɐ \`\\`\\Z J\\\\\\\\\LlI\\\\\\\`\\\\`\\`\\\\\\\`\\s$[I4\ (tcr$I4\ II $tBr$III IILGIiIIiIII II IH I:\I;\ N\I \I \\I \I\ NI IILVHILGIII II I` I:\I;\ N $tq \I \ \\ DG:\\G;\\ N \\ NG:\G;\ NGGGGLFG[G[ J L J {u)\ȹ)\ {u O4\ȱ4\ qu5\4\LF%\&\#\$\`II IIIIIII IW I:\I;\ N \I\I $t\\\\\;\:\:\;\ N` N N Q Q;\ N:\;\LF E\ IGGGG GGG:\G;\ N\ \ \\ NGGЩ[[[[ }pIp 箮 GN[n[GGGG\\GGɩM\N\nn c }pIp }pIp 箮*\[\3\'n(nC LFM\nn qn3\'n(nCCnn\\\\\\ R\\\ T ETLE8\ \ lTLuA:\;\ \\\\\o*\.\a=.\ $tr$/\d/\ $tr$/\+\/\ }pio/\ }pIp쮮0\/\d }pIpD`]= }pIp` }pIp`vh[ 7 c }pIp B[LuA QB[LuA c }pIpLDE== !.M\7o "o omommmmGuh mmmmmN\nm m[`{ % {% [C06 qD{% [ CCLC CD{% [ qCLC qD{% [ q { % [` gf gf`D7fL ====@A@ @LABi@Q@Q@.@`BmmmmM\m m[LlCBbB %n&n"n#n$n n[LlC GLCn )n[LlCLrBy[ VhLlCoo n[LlC=)ߙ@ɯ8`P TSX^`_ a&@`]= f X nLAC mC]= C`Cn )n[ }pIpDLA CD c[ymOo ;oLAoo n -` D ;3Cn )n Q. N\ȹ\`QȱQ quQȱQ quQQQ:\Q;\ Q\Q\Q Q\Q\QQQLPQQLPQ:\Q;\Q \ &R \ \8Q N \n \!\- \ \"\- \ \Q:\Q;\ BR͖Q͕Q QQ {uQȹQ`QQLP4\5\Q 4\.5\4\I-!\!\5\I-"\"\ {u Q {uQȹQ8ƙQiȭQi OQȱQ qu Q quQQ {uQȹQ`QQLQ4\5\Q 4\.5\!\ 4\!\"\ 5\"\ K|cN'( `0n nCn)nnn͍ono n$ooD `8ooHooh9 ` "a`oom"nn m, n'##%n)nn$&`n)n)$ )nn0m#in qn n))oommmm#n$n+%n&n:Fuh n FD Vh8`oDLS]`% & ^ _ 3a&Cn )n` }pIp&&堠󠠠 }pIp))䠠蠠 ` a \p w^k X ]c ]" f]Rnn n'; a  , agL) ,0 }pIp ۠ݠ g"`Cn )n"8`+vhΩzϩA\`΍H\?\(n>\'n`>\?\`΍F\?\(n>\'n z[LT[>\?\Ϡ΍G\?\(n>\'n>\?\` mCΩϩ>\?\ ["n n'n(n'n`]=8`=_="8^=!8 ]= 8 8$n $ts$^=!8^=`W\LZW\V\LZW\0LZL1ZV\0LZ@\A\D\B\ ZD\ ZV\S\T\V\ZZ )[[GF\@\G\A\S\B\D\ Z )[[%F\@\G\A\S\B\D\ ZS\S\ͽZб`[x Vh`B\D\ @\|A\}`@\zA\{`B\D\ |@\}A\`z@\{LXʬ ]=LxYoo n om BXommmmGuh mmmmmm m[LZN\nnn\\ }pIp c]= }pIpLY }pIp箮 )[[LZF\V\G\W\m[[\\ \! mC\n\\ m`====== !.`L\[\[U\cQ\R\ z[ )[[LZF\S\G\T\T\S\vu Vh[V\W\LZ )[[LZF\O\G\P\ [[LZH\)\P\[O\v VhLUU\ U\\J\` aW[3K\K\ɐ\J\` aW[K\U\J\`U\U\\J\`WWQ\Q\ [[LWH\#\Q\N#\WB\#\)D\ Z@\WA\WWWW8WWWWWW Y\K\WK\`[/\\I\mC]=` }pIpL7V }pIp ]=8`Cn )n -` gV ;3Cn )n Q. fL 7mmmmM\m mLV c"n#n$n%n &n?\C pX[LVL\LV WY\L\[ J\I\ WLV8\ \ X[[\` U[ N(\n'\8%\[%\LU%\ U8[%\[$\#\%\[LU\\` I#\$\$\#\ #\$\#\:\$\;\ fR \'\ \(\ R \%\LT'\4\(\5\8[ 4\.5\[ 4\[[ 5\[`]= f X LLSVC \ T\ \LT lT( \\ T\ \LlT`\\ T\ \LlT`\n $tBr$/\\/\\\ m[`CCCC CC mC`]= ET쀮LET ET[[[&\[%\[*SSSSTS:\S;\ Q\S\S Q\S\SSSSS8SSSSLxS`8)\SS*\SSSSSS8SSSSLS8)\SS*\SSSS SSS SSSSSSLS\\ȹ\` R \`:\i;\i} ` R \` N\ȱ\` SR \ȹ \` cN<\i=\i ` SR \ȱ \`[[[[`[[[[`[v S[\ S T*\)\ SSLR8)\S*\SSS S)\S*\SSS {u Q {uQȹQ8ƙQiȭQi OQȱQ qu Q quQQ {uQȹQ` {uQȹQ` Q\ȱ\` cN<\i=\i ` Q\ȹ\` Q\ȱ\` cN<\i=\i ` Q%&` a) P΢Ƚb L9_  `Lf_bN ;0?_GL_ӳЯ͠թҍHHI ` `E ` ` ` H `h `< ` `)!+J!H) h****)  m !d8sc`H< `h  `(! `Kc󩭙 L`id ``H) `hJJJJ ɺi` `   ` a.8LVh` RoʍC !nLVh` Ro̍C BnLVh` RoC XnLVh` RoύC υnLVh` Ro΍C ΅nLVh` RoƍC ƲnLVh` RoǍC DznLVh` RoōC nLVh`n RoÍCo oLVh` RočCɠuvwxy٠z{ em RoC mLVh` RoȍC mLVh` RoˍC nPQRӠSU֮î®VWZqɠrstN%'ɯϠ(.BCJKLM {yhyh`{tj% [ gf # yh{ 9{ yhyh{# gf`+@DEFGHIB A }pIpC {ujvh0vh LMi { }pIp c g iwh{xh% [8`{tj% [yh{% e yhyh`{tj% [yh%0H gfh gfLi Н8 ?hX hhh`H %HHx ?hUh8 Xhh` `H  ThUhh Sh`LvhLLkhuhLzhuhvh8`tjuj{wh%xh i j{uj% [vhp'z?H }pIp̠Ҡh L%i }pIp ɠҠvh }pIp`H  agɀ 2L)g h 22`H % ag 2LTg h 22``H  h 0`x ?hX`H 2ȅ#  Uh H `H I ` x ?hxxx ?h ?h ?hX`H HHxUh*E jUȘJ(,T*,  @`H)0jhH, I@,bfI@,H*E JUȘJh(T*h`(h`   Lf  ` gf N O{ { O{ {N gf`{ % [ f "L!# X` "#P! eɠ{Ld cLd`,Jd  L0em {{{HM8M{22 h{` eɠ{ eɠ ɯ{Ld{ eɯ{ȑ )۰ɺɮ`8`{ Le{{ eɯ{LdHH{ eI &fhh`2{ e2`(, ) `Jd Kd kdL@dJdJd dL@d Kd kd8``H8{  ,Jd h`,Jd0 {Ld{Ld{  e ag .g e{xɛnɈF.ɕJ,Jd0ɉ a0LceLeɍPM@ e; ȑLd -{ {Ld {LdMӱб庠亠 ` c c0$ c0ιc`8Hh`` c ɯ/ȑ 芑`ȱ {% [ Tb - /+.. $`r Vh`P{% [O ` bP { ++ +  ,` { O` { % [ e{` `..`O`P ` "a% Ta`P -`++VR H }pIp ۠ݠh gH{ }pIp hɛ{% [+`Ωzϩ+'`'eXQ)P '  o oLVh` RoэC 6oLVh` RoC OoLVh`hhhAhBHAHHH``Hpɀ4p:pBpLpBpCp1pDp2pEpBp-;p8ЅЩх qCpBp 0;pCpBpҝFpDpн3p qНDpFp0Bp0;pBp8HpBp tp;p qBp`' -327688 tpiАѠ q` q`qhhqiЅ©íqJJJJq) u©âqJJJJJJ uq)@P©âqJJJJ) u qq)  o200* iff$(nf)""thennfnf1:goto200I nfnf1:ifnf0thenhome:end :"enter a name for the appbinary file: ";:input"";ab$ ifab$""thenhome:end llen(ab$):ifl15then232 onerrgoto242 d$;"create";ab$;",tbin":poke216,0:goto245* ify key to continue:";:geta$:a$::goto50Y home:"enter the names of the prodos files"| "(press [return] when done):" nf1 :"enter the name of prodos file #";nf;": "; input"";f$(nf) iflen(f$(nf))15then"error: illegal filename.":gotr the name of the directory in"J <"which the prodos files are stored"n F"( e.g. /mydisk/myfiles/ ):": Pinput"";pf$:ifpf$""thenhome:end Zonerrgoto110 dd$;"prefix";pf$:poke216,0:goto190 n:"that directory does not exist.") x"press an46789:;:next1 #"prodos to appbinary file converter"] %"(version 1.00 --- november 10, 1986)"v ("by gary b. little" *:"this is a public domain program.": -"this program creates an appbinary" ."file from a group of prodos files."! 2:"enteremappbin.to/ normal:text:notrace:home>d$chr$(4)Wcd8192:remcodestartyeccd18:remerrorcodelocationpncd19:rempathnamelocationdt10752:remblockbufferaddress($2a00) dimf$(255):remfilenames !foricdtocd296:readx:pokei,xov i qu`nv qunv`nvov ie`ȱ( ȱinv`ȹLKu LKu LKuHʥ˩Ѕȩh LKu (lljumu.lu*mu.lu*mu.lu*`e`u8uƙŗŖ $`u uu  `  ` ȹ`ˆ`ovpvnv,OKå tXX`HJJJh)8j` ouhhjuiou?Ѕ© Ru Rupu uou Ou RuLt#© Ru Ru u Oul Ou RuLt© Runu RuH uhpu дЕ Oununu RuH uh {unuАeԥeեe֥effffffffЈϥ) $`8ЅЩхѩ҅ҩӅ`ׅօՅԥ s8`8ХѥҥP $`é©ĥ t=X¥Ðȑ8``e…å` 8ЅЩх`Ӆҥ8ЅЩх8`eХeѥeҥeP $`E` ` $` `s &&&&&&&8ԥե֥Ј8ЅЩхѩ҅ҩӅ` `s J qqllq l6 $` rЅҥхөЅ`!&&&8᪥҅Ј*8eЈҥ 8ЅЩх` r& qLqJ eҥeffffЈ` qхХ҅ѥӅ҄LqІFѐejfЈѥ) $peek(222)19thend$;"delete";ab$:goto2406 goto600n pokepn,l:fori1tol:pokepni,asc(mid$(ab$,i,1)):next callcd0:gosub5000:remopenappbinaryfile home forj1tonf llen(f$(j)) "pokepn,l:fori1tol:pokepni,asc(mid$(f$(j),i,1)):next,"storing... ";6fori1tolQ@chasc(mid$(f$(j),i,1)):ifch128thenchch128gJchr$(ch);:next:~Tremcreatetheheader^callcd3:gosub5000:remopenformheaderhpokedt127,nfj:remfilestofollowrremwritetheheader|callcd9:gosub5000/ef when done):" nf1F :"enter the name of the binary ii file"n "you want to convert:";:input"";f$ iflen(f$(nf))15then"error: illegal filename.":goto200 iff$""thenhome:end llen(f$):ifl15then5200 :"enter a name for the appbie:end Zonerrgoto51008 dd$;"prefix";pf$:poke216,0` n:"that directory does not exist." x"press any key to continue:";:geta$:a$::goto50 fori0to297:readx:pokecdi,x:next home:"enter the names of the prodos files" "(press [return]cts prodos files"9 ."from a file in binary ii form."h 0:"this program is in the public domain." 2:"enter the name of the directory in" <"which the binary ii file is stored" F"(e.g., /mydisk/myfiles/ ):": Pinput"";pf$:ifpf$""thenhom<>?@ABCDE($2a00)% lldt20:remeoflocationL !foricdtocd296:readx:pokei,x:nextv #"binary ii to prodos file converter" %"(version 1.20 --- november 19, 1986)" ("by gary b. little": *:"this is a public domain program.": -"this program extrarembinary.dwn0 normal:text:notrace:homeK ifpeek(48896)76then15t "this program requires prodos.":endd$chr$(4)cd8192:remcodestarteccd21:remerrorcodelocationpncd22:rempathnamelocation dt10752:remblockbufferaddress128,0,0,0&data4,0,0,42,128,0,0,02,25,33,144,5,201,76,208,1,24,32,251d}data32,96,32,0,191,203,33,33,32,251,32,96,169,0,56,32,251~data32,169,0,141,18,32,32,0,191,204,11,33,96,141,18,32,144data8,104,104,32,0,191,204,9,33,96,1,0,1,0,3,19,32 data0,34,0,3,19,32,0,38,0,4,0,0,42,32,251,32,169,71,141,1,42,169,76,141,2gydata42,173,4,42,201,15,240,30,32,0,191,200,19,33,32,251,32zdata173,24,33,141,26,33,141,12,33,141,19,42,32,0,191,209,18{data42,32,251,32,96,162,127,169,0,157,0,42,202,16,250,96,32&|data192,32,32,0,191,20tdata0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32kudata0,191,200,13,33,32,251,32,173,18,33,141,34,33,96,32,192vdata32,169,10,141,0,42,169,2,141,18,42,169,23,141,1,42,169wdata42,141,2,42,174,19,32,189,19,32,157,23,42,202,16,247,32(xdata0,191,196,0,42,rror: file not found":endApop::"error: mli code #";en:endpdata76,84,32,76,100,32,76,203,32,76,223,32,76,233,32,76,239qdata32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0rdata0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0sdata0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0+callcd12:remcloseappbinaryfileG:"the appbinary file, ";ab$;","h"has how been created.":endX:"error: can't create ";ab$b"applesoft error #";peek(222):endenpeek(ec):remgeterrorcodeifen0thenreturnifen70oren64then:"epeek(dt20)256peek(dt21)65536peek(dt22)Aifef0then460^callcd6:remread128bytesifpeek(ec)76then460:rembranchifeofgosub5000callcd9:gosub5000:remwrite128bytesgoto420callcd15:gosub5000:remcloseprodosfilenextj!nary file: ";:input"";ab$4 ifab$""thenhome:endA pokepn,l^ llen(ab$):ifl15then232o onerrgoto242 fori1tol:pokepni,asc(mid$(f$,i,1)):next ifpeek(222)19thend$;"delete";ab$:goto240 goto600pokepn,l:fori1tol:pokepni,asc(mid$(ab$,i,1)):nexthome"home1forj1tonfBllen(f$(j))|"pokepn,l:fori1tol:pokepni,asc(mid$(f$(j),i,1)):next,callcd0:gosub5000:remopenbinaryiifile1"scanning the binary ii file:":6remreadheaderandcheckidbytes@callcd6:gosub5FHIJKLMNOPQRSTU to show your appreciation I do accept gratuities. If you send me $10.00 I will send you the latest version of BLU and some of my other programs that I have written. The $10.00 will also entitle you to 1 free update that will be AUTOMATICALLY mailed t BLU is FREEWARE. You can distribute BLU freely, just don't sell it. I do ask that you make sure that this doc file is made available with the program. You are under no obligation to pay anything for BLU. However, if you like this program and wantdata0,191,208,37,33,32,247,32,96,141,21,32,144,8,104,104,32pdata0,191,204,5,33,96,1,0,1,0,3,22,32,0,34,0,3data23,42,0,38,0,4,0,0,42,128,0,0,0,4,0,0,42data128,0,0,0,2,0,0,0,0Bzdata32,0,191,200,15,33,176,13,173,20,33,141,30,33,141,38,33{data141,8,33,96,201,70,240,200,56,32,247,32,32,0,191,202,21|data33,32,247,32,96,32,0,191,203,29,33,32,247,32,96,169,0}data56,32,247,32,169,0,141,21,32,32,0,191,204,7,33,96,32=~,141,22,33Jvdata96,169,7,141,0,42,169,23,141,1,42,169,42,141,2,42,173wdata3,42,9,2,141,3,42,162,2,189,20,42,157,39,33,202,16xdata247,48,23,162,3,189,14,42,157,8,42,202,16,247,32,0,191ydata192,0,42,32,247,32,76,170,32,32,0,191,195,0,42,176,21199,32,76,209,32,76,219,32,76,225Rqdata32,76,237,32,0,0,0,0,0,0,0,0,0,0,0,0,0|rdata0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0sdata0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0tdata0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 udata0,0,32,0,191,200,9,33,32,247,32,173,14,33nd":end+pop::"error: mli code #";enLifen70then"file not found"qifen71then"duplicate filename"yendhome:"error: directory not found.":poke216,0:endPhome:"error: illegal file name.":poke216,0:end#pdata76,87,32,76,103,32,76,:"error: can't create ";ab$Fb"applesoft error #";peek(222):endicallcd12:remclosebinaryiifilehome:"error: ";f$;" is not a binary ii file":endenpeek(ec):remgeterrorcodeifen0thenreturn ifen70oren64then:"error: file not foucallcd9:gosub5000:remwrite128bytes1nextiXcallcd18:gosub5000:remsetexacteofcallcd15:gosub5000:remcloseprodosfileiftf0then320callcd12:remclosebinaryiifile:"conversion completed.":end"has how been created.":endX"encrypted ";,ifdf1then"packed ";2_tfpeek(dt127):remnumberoffilestofollowcallcd3:gosub5000:remopenprodosfileifnb0orft15then460fori1tonbcallcd6:gosub5000:remread128bytesifpeek(ec)76then460:rembranchifeof'1)65536peek(ll2)Crnbint(ef128)((ef128int(ef128))0)\|remdisplaynameoffilexlpeek(dt23):fori1tolchpeek(dt23i):ifch128thenchch128chr$(ch);:next:htab17ifdf127thendfdf128:"compressed ";ifdf63thendfdf64:000:remread128bytes5Ji1peek(dt0):i2peek(dt1)VOi3peek(dt2):i4peek(dt18)Tifi110ori271ori376ori42then1000Yftpeek(dt4):remfiletype[dfpeek(dt125):remdataflags^remcalculatenumberofblockstoreadhefpeek(ll)256peek(llo you when I update BLU again. This way I make a little money and you do not have to spend the money downloading the updates. After the first mailing and the free update I will continue to mail out updates, but I will include a bill for $5.00 to covehange this use a block editor or from the basic prompt enter: CALL-151 ;enter monitor BLOAD BLU,TSYS,A$2000 ;load file 204B:XX ;XX being the new value. Higher value=lesser sensitivity. BSAVE BLU,TSYS,A$2000 ;save file ^C ;back to bas The sensitivity of the mouse is at location $204B when the program is in memory. This is the $4B byte after the beginning of the program. It is currently set at $08. This means the mouse must move 8 increments to move inverse bar. If you want to cdown the OA (open apple) key when pressing the mouse button will toggle the file for squeezing. Holding down the CA (closed apple, option on the gs) when pressing the mouse button will act just like pressing return does - it will start the processing. BLU does not support disk swapping so if you only have one 5.25" floppy disk drive and you get a "Not enough disk space" error you will not lect files though you still have to press return to start the process after the files are selected. Holding rocessing using the selected filenames. Pressing OA-D when selecting the files will cause ALL the files and sub-dirs to be squeezed and all subsequent files and sub-dirs contained within them. You could use this to sqz a WHOLE disk if you wanted. he 'S' key will toggle a file to be squeezed when added to the Binary II file and will display a '$' next to the name. OA-space or control-a will toggle all the normal items and OA-S will toggle all the squeezed items. Pressing return will start the pted a catalog of the source directory will be displayed. Using the up, down, left and right arrows will move the inverse bar accordingly. Pressing the space bar will toggle a file for normal selection and will display a checkmark next to the name. T previous '/'. The DELETE key will delete characters and the <-- --> keys will backspace and move the cursor forward. When prompted for a destination PATHNAME be sure and enter a pathname for a file not a directory. After the directory(s) are selec----- After making your menu selection you will be prompted for a source directory name and where necessary a destination pathname or target directory. You can use the TAB key to skip to the next '/' in the pathname shown or OA-TAB to back up to theon and then pressing return. You will be returned to the menu after all processing is done. By pressing OA-? or OA-/ from the main menu one can view a help screen listing the commands. Selecting Files To Be Processed --------------------------rom a Binary II file 5) Lists the contents of a Binary II file 6) Deletes files The Menu -------- You can select a menu item by either the first letter in the item or by using the arrow keys to move the inverse bar to your selectint me to continue to provide programs in this manner than support the cause and send in the $10. Thanks. Features -------- 1) Catalogs disks 2) Makes Binary II files 3) Unsqueezes files 4) Extracts individual files for downloading this program. My address is: Floyd Zink, Jr. P.O. Box 060069 Palm Bay, FL 32906 I repeat YOU ARE UNDER NO OBLIGATION TO PAY ANYTHING FOR BLU, but if you war disk and shipping costs. This way you will always have the most current versions. I will do all mail outs before I upload them to any source. You will find that in the long run this method will be cheaper for you than the connect charges would be fic Making Binary II Files ---------------------- You can use the Destination pathname to pick which directory or disk the Binary II file is placed. BLU will display all the sub-directories that are selected and allow you to select files from them unless of course you use OA-D which will select them all automatically. BLU adds an extension of '.QQ' to the original filename to form the squeezed filename within the Binary II file. So if your TC program auto-unpacks Binary II files that c'itL  8" =">" "5 //" ɿ   ũ   "<='>? BC ,ȹ `" 'm `ei`̠徠۬ݠ۬ The doc file works for both versions. A slight misunderstanding allowed the characters in the blu6502 file to all become lowercase. It still should work, however, and I like that version (it's in basic) better that the binary version which is blu228. r any bugs or come up with a suggestion on improving the program please let me know. Floyd Zink, Jr. ely first and then made into a Binary II file BLU will still unsqueeze them automatically as long as the files have a suffix of '.QQ'. Deleting Files -------------- BLU will not delete locked files. Final Words ----------- If you encounte any files unless there is enough space. Squeezed files within the Binary II file will be AUTOMATICALLY unsqueezed when extracted. You do NOT have to use the USQ function from the main menu to unsqueeze bny files. If the files were squeezed separathe file when you are done with BLU. BLU checks available disk space to make sure there is enough room for all the files. If there is insufficient space then the program will issue an error message and exit back to the main menu. It will not extracten BLU overwrites it. Extracting from Binary II Files ------------------------------- BLU will NOT overwrite any files, except the above. If there is a duplicate file then BLU will add an extension of '.n' to the filename. You can then rename tto integrate the routines into BLU. The core of the algorithms though are basically unchanged from Don's source. Un-squeezing Files ------------------ The squeezed file is un-squeezed to the original file's name. If this name already exists thtion of his SQ/USQ source code to the Public Domain. I adapted these routines to speed up the processing of squeezing and un-squeezing files and to fix a bug that sometimes caused large files to squeeze incorrectly. There also had to be some changes uency of appearance in the incoming data stream. Decoding information is included in the squeezed file, so squeezing short files or files with uniformly distributed byte values will actually increase the size. Special thanks to Don Elton for the donafor counts that are greater or equal to 3. On the second translation it developes a binary tree representing the decoding information for a variable length bit string code for each input byte. Each string's length is in inverse proportion to its freqontains squeezed members and is not able to turn this option off then you will have a bunch of files on your disk with the '.QQ' suffix. You can use the "Unsqueeze files" option to unsqueeze these particular files. s are encoded as value, DLE, count ۬ݍƱƲ獍䠤䬠㩍WYsame addresses as the SSC. It does not depend on the serial firmware at all, nor does it interact with the standard input or output. Documents may be spooled from any disk drive, though spooling from ramdisk is optimal. SPOOL.CMD should run on a GS in 8 or newer than a II+ with an Apple Super Serial Card or the equivalent hardware in slot 1 (e.g. the IIc's serial printer port). Specifically, it requires a Synertek 6551 ACIA (that's the chip that does the serial stuff) with it's registers mapped to the -enable interrupts, allowing a disrupted (usually by reset) spooling to continue. If a SPOOL.CMD is trying to spool a file, the filename will be parsed but ignored. If not, the new file will be spooled. SPOOL.CMD should work on any Apple or clone as new[,Fn] [,Sn] [,Dn] The F(orce) parameter is optional. F1 will force the presently spooling file to stop, and will then attempt to spool the new file specified. If you do not wish to spool a new file, give the name of a file that does not exist. F2 will reing. Versions are being written for all the popular ProDOS shells, and one $5 shareware fee is good for all versions. Comments on file formatting paradigms (filter programs or command line options?) are welcome. Money talks. Syntax: SPOOL stribute SPOOL.CMD, including as part of a collection, without permission in writing from me. You may charge for media and postage, of course, and you may upload SPOOL.CMD to pay-access electronic bullitin boards, as long as no charge is made for downloadhland, WA 99352 Otherwise, delete it from your disks. You may pass it on to other people, but you must not give them a modified copy and you must give them all the files, and they must also pay the shareware fee if they keep it. You may not charge to diZ\]^_`abcdial Card by setting DIP switch 2-6 to ON. To install: BRUN SPOOL.CMD to start a document printing in the background: SPOOL SPOOL.CMD is shareware: Try it out for two weeks, and if you decide to keep it, send $5 to: Doug Reeder 1718 Birch Ric SPOOL.CMD - a background print spooler that runs under BASIC.SYSTEM documentation for version 8 (Basic) Unpack using BinSCII then ShrinkIt to get a BIN file named SPOOL.CMD and a TXT file named SPOOL.CMD.DOC. You must enable interrupts on your Super Ser#x#X`H #h `ح) )8`)) #00 t#`#####`#0 #) - ##`# A# #` #`xH t##h(l#)##?"$#SPOOLحlmȱ#&#RSTU#P#Q`8L# ~#<#4W)c # cp `lm########## #m### #T#### @#@##)jjj#)#8jJJJ -bit emulation mode with a SSC in slot 1. It will not work with the GS's built-in serial port. Bug reports should be sent to the address at the end of this document, and MUST describe EXACTLY what commands were used and EXACTLY what the computer and printer did in response (did the disk drive spin?), and of course should list the hardware used. On II+'s and IIe's, do not use the system monitor program while a document is spooling, as interrupts trash location $45, which the monitor uses. SPOOL.CMD sets حlmȱٲ$&̲$RSTU$P$Q`8L$$$$$$$$$$$ʎ$$W)_$lm$$st$$ $i$$$$$ $Rno$$$$$$ $2$$$$$ $$$$$$$$$ egh۬ݍ̠󠣠Ơ荍̮Ĭ*i tL 8" =">" "5 //" ɿ   ũ   "<=*>? BC ,ȹ `" *m `ei`Ơ屾岾۬ݠ۬ WA 99352 Bug reports, compability reports, and comments can also be sent to: USENET: ...!tektronix!reed!reeder BITNET: REEDER@REED.BITNET Money talks. et), you will get the message 'busy'. If you wish to terminate the current spooling and begin another, use SPOOL ,F1 SPOOL.CMD and this document are copyright 1990 by Doug Reeder. Send the shareware fee of $5 to: Doug Reeder 1718 Birch Richland, neccesary, giving no message. Reset will disable interrupts and suppress spooling. To continue spooling the current file, use SPOOL ,F2 If you attempt to spool a second document while another is spooling (including a spooling suppressed by resa new interrupt routine because too many are already active (probably because one was left dangling by a reset). Any error while reading the file will terminate spooling with no message. If the printer appears to be unready, SPOOL.CMD will wait as long as SPOOL.CMD to install itself, it will report PROGRAM TOO LARGE. Problems with starting a document spooling will give you the appropriate BASIC.SYSTEM error message. The most common problems are a mistyped or unavailable file, and being unable to install ormatting of some kind. The ideal paradigm would be to run the file through a formatting filter to a copy on ramdisk, an spool it from there. Send compatibility reports to the address at the end of this document. Errors: If there is not enough memory forin slot (port) 1. If you need a different configuration, send me the shareware fee, and I'll send you a modified version. I won't cash your check 'till you have a version that works for you. Future versions will be easier to configure and will include fbled, which is standard for Imagewriter I's and II's. At present, these parameters are not settable though software and SPOOL.CMD does no other formatting, including breaking lines wider than your printer can handle. It assumes your SSC or equivalent is the Super Serial Card to 8 data bits and no parity. It reads the DIP switches on the SSC to determine baud rate, numer of stop bits, and whether or not to add line feeds after carriage returns. For the IIc, it sets 9600 baud, 1 stop bit and line feeds ena $ $`$$ $ $ $Lȍ$$ #L# $ $LЧ # #$$ͷ$ש$ $$$ͷ$$$$ʎ$$ #$L#L#$$8`ʽ%&`$ $Li$lm $ H$$ A $/ $* $LL"$ʠ% $L"no $ H$$ A $/ $ $LL"$ʠ& $ 8$m$$$i$8$m$$$i$`ȱ `?"%&'DIFF npqrŠ徬򮾠۬ݠ۬ݍ򮾠뮍宍̮Ĭȹ `&itL  8# =#># #5 //" ɿ   ũ   #<=@&>? BC ,ȹ! !`# &m `ei`%Ӡtronix!reed!reeder ges. Corporate licences are $5. If you like MOVE.CMD, write me and tell me how wonderful it is. MOVE.CMD and this document are copyright 1989 and 1990 by Doug Reeder. Doug Reeder 1718 Birch Richland, WA 99352 BITNET: REEDER@REED.BITNET USENET: ...!tekpe: DIFF SPAM3.S,SPAM4.S,L10 MOVE.CMD is free for non-commercial use. You may give it to other people, but you must give them this documentation file as well, and you may not charge them for it, except of course for media and normal connect-time char of lines DIFF.CMD will look forward to find a matching line. The default is 8, and when L is set, it remains at that value until changed again. For example, if you forget what changes you made to your program between versions three and four, you could tyd output, and thus may be redirected to the printer, for example, with PR#1. DIFF.CMD comes as a self-installing BIN file. To install, simply BRUN DIFF.CMD. Syntax: DIFF , [,Ln] [,Sn] [,Dn] The optional L parameter selects the numberiklmes are identical or not. Note that Applesoft BASIC programs are not text files. DIFF.CMD works on a line-by-line basis, displaying the lines that differ and their line numbers, breaking the lines if they are too long. These lines are sent to the standarBasic.System DIFF external command by Doug Reeder DIFF.CMD shows the differences between two similar files. It is useful primarily for text files, since the differences are displayed as ASCII characters, but it is also useful to see if two binary fil write me and tell me how wonderful it is. MOVE.CMD and this document are copyright 1989 and 1990 by Doug Reeder. Doug Reeder 1718 Birch Richland, WA 99352 BITNET: REEDER@REED.BITNET USENET: ...!tektronix!reed!reeder non-commercial use. You may give it to other people, but you must give them this documentation file as well, and you may not charge them for it, except of course for media and normal connect-time charges. Corporate licences are $5. If you like MOVE.CMD,tories will make it disappear, requiring you to repair the disk with a disk editor (the information and directories are still there, and will not be overwritten by other disk access, because their blocks are still in the bitmap). MOVE.CMD is free for does not appear to hurt anything, and the data structures on the disk remain absolutely correct. Moving a file to the directory it is currently in does strange things, usually unhappy. Moving a directory inside itself, or inside one of its own subdirecnation directory> [,Sn] [,Dn] may be anything, including a subdirectory, except the volume directory itself. The destination directory must be on the same disk. When MOVE.CMD is installed, CAT will not work without a volume name. Thissuvwear and tear on your disk. The real strength of MOVE.CMD is its ability to move directory files, allowing you to restructure the subdirectory tree on you disk without copying the individual files. To install: BRUN MOVE.CMD syntax: MOVE ,