2IMGSHEP@@@ 8L xC)pJJJJ IH(ȱH:=IH[H`@H^H 2 9 @   I/H`JLNGȄBȄF aK ' faaFF  RJm# KKJ qJ )J ۈJJm  JFȱJGJKaȄM ' 5aaNNJFLGJ`a  XL LG &PRODOS`DaElH$?EGvѶK+`L XX LU ŠϠĠӥS)*+,+`F)) (*=GJFjJJA QE'+ '== `@ STSP8QSS8 m P o R(8RWAP.20283//' @'READ.MEQ.2626FINDER.DATA / p2 &PRODOS }=β8 β8 &DOGPAW- )&@)&,BASIC.SYSTEM9( 'WINDOWSN ò,WINDOWS.QUIT[ 8@ STARTUPM2 26 FINDER.ROOTN2 p2 FINDER.ROOTɪ/%p/%HARD.DISK.NOTES`/6Ϲ/8UTILITIES/ /6 9:;<=>?@ABCDEFGHIJKL1/15/90 WAP2028 Utilities 1 ******************************************************************************** Welcome to the Washington Apple Pi, Ltd. Apple IIGS Disk WAP2028. This text file will explain a little about the software on this disk and how to use it. Washington Apple Pi (WAP or the Pi) is a microcomputer user group based in Washington D.C. metropolitan area. The club consists of more than 6000 Apple II and Macintosh owners joined as part of and educational, non-profit self-help community whose purposes range from helping people with specific questions about computers to raising everyone's level of understanding of these tools and toys of our technological age. For more information write: Washington Apple Pi 7910 Woodmont Ave. Suite 910 Bethesda, Md 20814 or call: (301) 654-8060 ******************************************************************************** The ProDOS 8 on this disk is supplied so you may boot this disk and read this message. Some of the programs on this disk require PRODOS 16 to be active. You will either need to boot the System disk and run the programs from the Finder or copy the programs over to a disk with the ProDOS 16 system. The files PRODOS, BASIC.SYSTEM, WINDOWS, WINDOWS.QUIT, DOGPAW, and STARTUP are on this disk to allow it to be self booting and to display this text file. This text file is called READ.ME. This disk may include "shareware" programs as well as public domain software. The writers of shareware code ask that the user of his code pay for it's usage. Information on how to pay the programs author is included in the software or the documentation. ******************************************************************************** This disk contains a variety of utilities. The utilities are divided into nine catagories: Desk.Accs.Utils, File.Utils, Font.Utils, Graphic.Utils, Hard.Disk.Notes, Hard.Disk.Utils, Misc.Disk.Utils, Text.Utils, and Virus.Utils. /WAP.2028/Utilities/Desk.Accs.Utils/Carpet.Bag/ %lSTARTUP.QUITTIL5 UTILITIESUITTILT WINDOWS.QUITTILTBWINDOWSYSTEMTIL BASIC.SYSTEMTILTDOGPAW.8LSMTILBPRODOS.8LSMTIL5BREAD.ME8LSMTIL !"#$%&'()*+,L !Cj" %v"w" (#M8( *% ) L5"x"y" (jB, )7(P0 ( @X p 8 " ! *j"q"0 &q"0 #%z"{" (,) &|"}" ( #%L5")0I0hx H( , #%Щ ߩ"L! )L! 8'  )ɀ)4,- U JNT) "L~"" ( !` i"M)Fi/ m"3 s"t"u" p" iL XI"LF"ίΠ`""""""*$ Fv%ZeRQ!0SB}RBiBB}] }FEL7#> ȏ6 . ) ɘ"    LE#E#ŠϠĠԠ  m# m# J Qڨ)̰}] нȱ ̀𩠙 i V N c ɘ\   VG+ #X ɛL ' 0% '8 Jm ʈ0  0ŠϠĠ͢Š͠͠ϠŠŠϠĠخ͠ ͍B B(8`<YYZLYLYLY뿭` 8!@8` #%MNЩUMߩ  L 5   8 0 8  `0 / X&& 6&&B&Pi&0`ŠӠֱ٭ԠŠҬî̠ӠĮʎ1&… (n&Dž (\%T&Ln()8= (J 8(&(& >((ʎ1·&·&&3223 ')L&18&"m11 2H22h2舌&&12H)M0 h10200I20h2 (`LP%12 `_("L  <8# ȱ)ɀ  ) ( ` (Xp< @ ( )m ( (. (( M (i  ``) '(j21 & &!` (&&(i(&(( CBDFGE (}&$ >(,&}& … >(ŅL'JJJJ`Ϡ(8`}&h)hrȱȱȱȱ0]cȱeem*ȱ*ȱ**ȱ**ȱ* )* * )L)`LJ* &*Lw) ) L) )Lw)8e` ,$`ee` `* R** n*` * R* n*`hh8`8`***`}*`e`H)hJJ*0JJ)` (< ( < *? ( < (? ( < (? ( <*? * **? *? *? ( < *? ( <x0HH1HH "hhc+("i 0Ꮻ\Ꮸ0hh8(`hhh8k/<ʆ>-=?BC8 é&'112`HB-9F 3"aɿ LLB Nϰ H  @h( L Lj  @`eLJCAB@=?<>=?<>CAB@?A` 1 L  <>`ڢF]PL8i m L   6< L  BLRAM' hLDLآ <B*IBGF08Lé'+8H <,``h(`@ڍL3hh@ihAiH(ؠȱ@JJJJq@)@pvȱ@Hȱ@Ah@@cpe J) LL LJiB LJ) BxNhHHHHL(  ްƠx@BEOD  ް(`( C)CJJJl`B f-`J,~@~@}J@` ߩ%S @ ~`E hhhߺ0 h ߐ( ߐ ߐ  0 HϭߍLпllllhh8` Q)T'P") ɺiL? )?      `l@Hȱ@IױHXATȱH ɯȩ׍̎5H)/@a)_ .0 :A[8@`,뎎׮Б` L ` @>O)I38 I`aם`K8`@Nȱ@O@ IiNȽבN)/ȩ/N`@[ WHJjjjhA C'KI؍0JHi 뎁`C8` @)0 3N0" K莭0 ⭪i` ]; 뮁ٝ٘ 0 W,0 .H hȑNWȮّNW8`ٍّNΨ0NN` G8`F@ 0 F LK8`6 7I8`FHGH hGhF܌ բFܽܕF芝ܝ 밶67 8܅I m9IHHyHȘI Lܝ` @_@ g@Ю׍O)mיOʈ@mȱ@_ȱ@iklbJtKuO)5OI0ܢܽ eL'A* 7`aFG (CD Lz܅IN mAIH` pm mI0LM AOHJFKG 밳JK 밨C%܈@" T)Ii)܍N*܍A'ܮ( 4 䭐 $H %HFFHGHG 됬`R8`)` AHO` 'Q'܅IHHOOЍO@`8 ` ͉% ΉQ8`܅I `L܍MN h8D`F` alH)HFȍJHGK $%܍&܍!ܢ8* J8` L ܝ:)I 'ܝ6`B8iNFLGM`B܅IH3H ( )ȱHΨ`Ί8AeHI SB60I ٙGٙEFJCʈ h猪`8m0`,0H hi PȽΨhٍ0GF8yאFG  $0 K01 E8`1ݺ00 ] 0ʩ 谼 谷`12)1`0`Ȏi 0U`)8`Ψ` W |G 4A)H ܝʈh٭0٭)ܝ٭*ܝ٥F٥G٭'ܝ٭(ܝ`)َ 8ʈ` 0ٝ)i `8`R ꍌvw zNمFمG < Ό0 FGL鮁0 ٭w٭vٽ8`H8`  ,v w 8` vw `ٽJJJJ`H͌hn)NjNjNjN. GH͌ z;٭ *Nۙ۰ڙک `Z8` G# ,`w .w .w .w8۰*Jv۩ ٰvw`JJJJ;i z묁͖ zٍ0  `H8` `ٍyٍiB0H0FG h0`FG `ϩBxED0C ް(`(8`ؑ@`M8`8@ؐʈI묂)v8vv L} LةC8`؍)@ i)v8vyJ ^ ؅F Ls) +%J(a ,FإGؐ.` ,JHIH IL3FHGI ҭJjHIHB>IؙJJ [: IL}HIHI`JKJK`FHIG ( Ȣ؝}؈JL)eKM`)` J vJ͛ $0 ΊJFȱJL8`GBJ R FإG`BH RFإG`,H hHB؅F  ؅GxDE؍00C ް(`(8` zL)J  8"L zH  8 9ؙ` @ P8`K8`B8` H؈OJJJJحm) ) )Ю ЪG `F $ ᭔ع+ؠ 6H  Qh8` 䮁ٽ ٬ؠ@` ( H )8`)i п` H h)N$% LL L L 6 $pJ덟 )@።NJOK 6iKKΞΞ IJΟ JФ̭JjHFIH HIGxKE ް((H hH h8`8@ȭ@L6쬂8NNO 8 ؍JL`RΞʱLN1MOMEKP/MEKΞL9L-M O,p莝eNNO(`JNKOL 6/ $P L8 } [ؑJ`L@ȱ@ `@Nȱ@O`؝}}vIvؐ` hzؽ}؝v h ' h؝zv؈` ` H Rh)N@ 9; L  6$ )bJ ] ) H 6hL )  )حJjIwHIvH؊ PLKΞʱNLMO MЈMEKݸP%MEKΞL& O, PeNNO N(` C  7 2JvHIwHI؊ LI  ,` A Hv ع Hw ؙ؊ؠIhHIhH  iع `  عiعi` )؍0CGHFHBFGx ް(8hFhG`@4͔ L @Ai ׭2` . Q#ع؍0 ]讁)`.@+ i 8` L )߹0 )p )@ ) ȩ ؝H0JK 방 LMJKFG 嬂؍b؍c؝d ؝_ vO) vO )حI͖ z`H@h`h``N8`  ) 9⬂Ȣ؝z@zݚ@ʈLN KIJHȢݚ h魚)Jn 8 δ ؍ ؍ `H8 ع)ꭱJJJJ Ȣ؝I؈ 6h(8H ; h(8Hh(`ؑ@`@ȱ@ ` B@8ZO h鮁ٍٍٍoHٍn8bhcOJJJJO)O@` %I -m) 0@O)N8` @LL =@ -ȹP8` i` ;ם0 -B ;)( ȹ`8m8m@8` G8`F Pm)@N8`O)@J -טyרםOO)׍O`a 밑 LȹL@ȅH@IL,0` G קּ= ]H.m)N 0 F`aO)@LP8` `  zHOCDC h`yٙ٭yٙ٩`H GB`FaG 3%&N    ܮ `J HH hh` 0 @ LJL t_̴Xܝ ݝ0̴ȩFG  0` ܅F݅G ` } tͬ 밽܅F݅G ` }) t$ L`L뮰HH hFhG܍ݍ 8 `FHGH  hGhF`ݹܙ݊`@Bɼ>K@J5 z9X(K zXXK تKo`V8`no` C on zI9XX`)HJJJh`OeNeO࿰ z9XАO`@ȭ@` ON `NJKO`HхhꭋILhH),ex8 (8` ԍ`@Ae Hk00YpmGIJK,-NOPQRSu' @   !"#$Ԡ͠(C)1983-89APPLELKL`BLL ެެެެެެެެެެެެެެެ(C)APPLE'83xLLM Mh@8nЍLޭ 0J @,,LRP׽8H  ): e: y8鰕:Jjjj<)yאi8i;i(*=>hPם8`;Zx3QZYXXWV[HEVhEhH)IWHPHHHAHHHLaVEWLӿ`` ֽ ְ& .Vӈ  JJJJH 8h Ei 8EX`'8`jӍWӥC)p> pӥCYӍY 轊( ( ӈBV ( ӭp0 \BkJ ՠ@iӦ> Ӑi'j:ZH i@ioZZH h ѐȭnWǥBJ Ӱ8XӦ>` Ր+>*L o % ԽYӍZӭoӝY 3Ѡ шNZ`rZLkӭZӍq8r7IZӐiZkӐk 8 ѹs ӭq ѹ| kн Z)*>>` @ $(,048<@DHLPTX\`dh 0ުlptx| 0($ p,&"op8`kkV꽌ɪɖxlӽ*kӽ-kәmMlӈ 꽌ɪ`8` ZԍsԍԍԍԥDEԌ8TԌ8WpԌqԠ 7I꽌ɪ꽌ɭ蠪:љVE:8`]ѾV]H)]ѾV]ҙ)]ѾT]ҙ)] >8hUD` ԝY`> Hh݌(`HCJJJJ)*h`8LխӅ:HhHh Ո թ թ ՘VYҪҦ>:Y)Ң`;R?AJ;<ȰY)Ң`Y?)Ң`ȐҰ ;HhHh=Ң`Hh `Hh`DEiȍ0֌18V%֌&8V֌֠)HV)hH)hHIhդD?DRIDQD)҅; ?JDQD]ՎՎՎ`MY pӭY)p  ӭp`C)`BFGV 8``  / XʩXύX X %   % ɍRH hɛɘɉɈ $ Ld :Ldې)ɮ۰ɺ' Ld  : X ( % ɛ$ɘɉ ɈL :Lɍ)ې)ɮ۰ɺH h 'L  ġLL ̹L)'L ȳL O'F ʻ ̹(((L $ʩ $$ $L `ީ % K@D EFby LҠؠӠ΢ϠԩҠŠƠԠԠŠӢɯϠҠůȠԠĠ  0h)ύh0HHHH " ׍hhhhhhh .hh8`JIMJAYKERRY&MIKE./012345678 Ns\tie\RBL4N`ɖ᭳ߍQRsRtR RLNs#< \A= _ATA LNn@ Uit vN QLN RA8BSAfBgBRAQmSAQBH /ɿȱ AȘ AL@ AB UmSA`ei`U?QABRAC ,BL4N`جӠĠآɠ)\Rʽɠ)bR5STUPQL>NRɿ RLC8LKRLRMROR#RJR+R=R RR?RCRNRs-R,R{RDR4FRGRSRQRFSRRRLBJRJR`Ȣʈ=.R.RɠɍLCɠ BɥU-RQ?RɫDRFR GRɭɤ<Rɍ-ɤNR :LMR+RLRɍ ) :LR ЋKRKR BJR8.R.R.RQ1 !>R1?R_RQ) ?R:QDR)mGRGRLDH>R-R,RߍQRF?RCR,RL4N N>R?R?RRR R.RRR R%DG vN QLN@ vN QLNLNRI vN QLNIRmmi/Rni0R8oR;RpRH 'MLEFRERMR Q Q ɍɛLPI&R,?R@R@R I +JDR% "HR'R(R,Rjn,RXGGGGGGGG>RH CL"R IR?RLvF)) @R"RLF  Iޑ :LMRL L$R<R KR I8/RR0R RiiR RLE'R3RR<,!R0  I -RRR"R ,!R0!R ?R,ɛ&RIR R FJCR JPR I0 ) ȭPR IPRɭ 'RheeHRHRERP>RH"R :JDR :JPR/R0R#RRRRRR@RRLFLE ^J>RH L;HSR 'MLROR &RtOR+R MRR M,ɠFɋBɛ;ɍBɊ>)حLRӍ+ROR&RLGFHQRFhQRHRLHLPI+RL~H+RRR'RQ+R-NRLPI MLG,R* :J 'R*&R( 9 +J Q&R Q ɍ ɛ-RLPILE)RHRmERHRHR8>R>R0X ɍ~,R00u#R/R K%R$R5R86RmRi RLH(RȭSRRRL,IHR)R HRHR)R>R) -ei(R HRHR ILELH N 9>RH@RR1-R,,R%,R-R +J Q Q ɛɍL3D !NR{ +J`/R0R`9R:R`;RR)?2`L>R)2`L85R/R7R6R0R 8R ` vN QLN>RQLLX,R*`LRi>R 8>RRJ J`$R!'RBU`LNR/RR0RR7RR8RR RLLNRm7RAR Rm8RBR RR RR$R`RmRRm R` fK8RARRRBRRRR wKR R R#R` I=RMRȭRȭRȌ=R`#R IRȱRȱRȌ=RLwKR RLN`R RLN`#R!RRIR JLJLNLP%RR/R<>0R=i?/Rm7RB0Rm8RC<%RBBC<>=?<=߭IR JLJLNLQRLRȽɍ :L >RORQPRRLE)a)`,R*: 9 +J Q $2 Q2 :J +J Q Q Q$%MRiRRiRح,R*` L!#" :JKR> JKRɣ ɍ' ɍ8KR FJKRթ%M L :J :J :JL:JRR MRHJJJJ Mh) ɰ,RP`RL{ I>RH,$ Q SSS Q# LI${ QSSS Q#LIOR$>RQ N"{  Q B$ I QLIRR$>RQ N{  Q B$ I QLI>RQ N{  Q$NR I QLI${ QFLJhR L Q uJ` NsύXX?kL1 !N 9LQR vN QR  Q N :JL R`RRR,R wK fK %K JLN8=R GK J*RR/R0R/ P PRRJ PˠRieiЬȱ)TRR I OWR( PLN I5R6R*R P`iiWR P    I ITR$RB84R883RUR4RVR fK8RURRRVRRRR wK` ILI WRLI3R<4R=1Ri>2Ri?85RB6RC ,6Ri6R*R`1R82R85R1R6R(2R J IZR[R fK %K=R @QDXR aQJJJ QXR) R aQJJJJJJ R QXR)?J Q)ŒXR aQ) Q0LP fK %KXR=R @QXRȩYR8=R GK=RXR @Q#RXRLQLPRZRR[RRRR nQLI IR$R. JZR[R`XRR fK8RRRRR wKhhYRYR`! 8mRi` I1R2R`%L"RrR IR I ) LQ`ң ,'. 宍宍ԬР宍砭㾠卍㾠 ξҠԠŻžҠӠŻþϠԠ͠ ĠƠ þϠŠŭ ӾϠΠҠԠ 𠸹򍠠Ӯ宍Ӡ򠣤嬠嬠򻍍:;<=>?@ABCDEFGHIJKLMLG ASTARTUP$#   / XXύX?klmnÍoL) "6L'?"(0`6708" = ***)<JJH !h穖tp% ;"Z/݀>">"' 1" 7"5).莀/ ;" " 6" >" 1"6"$ "g"" !"""""I򭨻LYL 8!9 詍` "  4"/pŠϠŠà͠ӠàԠŠH06172839h` v97L75v^a ?/( va?L0LLɍ$?`?a ɍɥAH93827160hH46576879h`,C bL ɍ b ,S0 @ lLޭBDEF޾ p ޾ p($ذ v (0 :( L?ԦʚLeةީa s  lL b,FLg,DL,C0$3 >@ Ɉ 3ɾꩈL(3ɾ;Ƀ :B94 l% bʽ  ՚,S` H $݅3`(l8L3LX>(Ƀ,`3,G0]ɾ g` H`پ_پ p _پ׾`>( p۾m׾) W)ʩ@`ɾ>(O仩 puȾ ɾ-O c־Jjjj廝-滝. `O>0O v POپھ p &H־Ǿh۰8L黭־Jjjj-廽.滭ɾ)Ⱦ8廰  OLӜ ΤLLX>(F껽껝껩`ѻ־ؾپھ׾` bɄ KDEF vLl v lL0 bKɍKL?`  vLl@3 @LtJ)s@J b  l`a?sa?,E30ɍФ3 E3HD F3 Ʉ%h3 bM E  lLthɍLL3`3,A0s0% Ipn DpnI:L ؅3ط03LB8C933LΞAAJL ةޘг uv $ 8LƞaЌ>?@`>?@`B68`R K  仐LK ҟ ҟ g KK`JJJJ8`轇K)` #hhLJپھ pHJh` D!hgtp `tp8nnitpiͬtso8pinii>j?kͲ>pIiͪͲ l - `>i>?Ek?!>Q>>>ͭͮ `` \>ͭ ͮ `e>>?ͯ?>?Emn(>e>ȱ>e?>Q>ؠ> ie>>?`;=:<:<=;`ͪm;>:8o>oȑ>ppȑ>> :op` DKpn͆ @p;톻=po:i>?Ek?>Q>> L> \/ e>>?ͯ?ޱ>ȥj>>m>` im8injkiljoS (ٻ)ڻ$I2 U)VJ T)`lٻ8`a HbIJhjǾȾɾ p٭b=aݻIe f`8` ^P־ǾҾ,G0C =W)_``\"׾پӾؾھ pD`־ǾY׾ؾOW)ݩȾɾʾ pD`8`W)CB) 綰5W) |)W)@! pZ}ȾȾ󰹩 p` ^־ǾҾ,G 8`׾ؾ  p ۥs׾tؾE` ^ ( wо(־Ǿ,G 8`_`W)H־Jjjjh-һ.ӻ p̭ӻһ L Ǿܻ໎Ỡ ..8һӻ ໍݻۭ (һ8໪ӻỨmȾȾmɾɾʾiʾ` Lpl8l:/,s̝sƬƀ#(ZZV4G_0=( A P FjL\5p-e9ABSAVERIFYBLOADELETEBYECATALOGOPENWRITEXECREATEFRESTORENAMEBRUNLOCKCHAIN#FLUSHREADPOSITIONOMONPR#PREFIXCLOSEAPPEND]uDg `wŬ-⭚شb\=<{KyQM@@ -!S    !C- !ABELSDFRV@@ !$(19@EüϠž(+@ABCDEFGHIKLMNPSV     T[fouu~ՠٯ* PWN*]ĿNTz @n6VC/+A>@I5gN Oz @n[Dz @nd0,~z @`$仫@v$⩔,C[B?I>孓`仫6VtCicQĿUKqtVt Nʮq$6,⨁ K6, VtI=v!gNVt Vt  lg~T٤   LiLMTRLLLLL03껀ֻ)Dֻ `-@ֻ8`껀 ԠŬLLOPQRSTUVWXYZ= D$(4):D$"PREFIX":P$:D$"PREFIX"P$:D$"-DOGPAW":30TD$"-WINDOWS.QUIT"s24576:D$(4):F$(71):C1(D$"FRE":TP1:1280:1580 2UEĖ32:"_________________":31::(27)"Z";:34:"[";:46:"[";:49:"_":32:"LLLLLLLLLLLLLLLLL":(24): <1::37:"WindowsT F4:19:"V.1.9.kb, by Anderson, AG60, Esmay & Bunkery P6:LN$;:1403,42:" ":22:LN$ Z7:L116:" |";:1403,42:"||";:1403,78:"|": d6:" _Name___________Type__Blocks__Modified n32,45:7:` x"[P] to enter new Prefix [esc] to back up a directory [C] to Change the Slot, Drive [?] to show disk info M$"[K/J":UEM$"[<- / ->" 1220:"] to move up/down "[1]-[9] to hop through directory": M$"[M":UEM$"[return" 1220:"] to launch/view/open file "[=] to view all Pictures [^P] to Print TXT or AWP file [S] to Scan text for a string [B] to Boot a slot [Q] to Quit to Basic 32,1:33,40:34,5:N0270 12:14:M$"C please wait C":1220 23::D$"OPEN"P$",TDIR":D$"READ"P$ N1$,N2$,N$:N1$N1$"/"/ N$:N$""260N N70NN1:F$(N)(N$,39)W 230` IN$| D$"CLOSE":12:3:868 1540:" Prefix: "P$;:320 " Fill file window, do scrolling ,C1CNCC(A11)(A10):430# 6C7N14Ģ6C:3:F$(C1)::3:F$(C)::3:F$(C1):430= @ Re-draw full window J IF C < 1 OR C > N THEN C = C + (A = 11) - (A = 10): GOTO 420 TC8TP1 ^C7TPC6 hCN6TPN12 rTP1TP1 |8 C1āLTPC1:3:F$(L): C1L1:3:F$(L)#:LL1TP12:3:F$(L):122:17:YNĺ"File "C" of "N;::"___";:460q18:" No files ": Get keypress(RK)128470A(RK)128:CK,0 Up/down or number?A21A10A8A11 A10A11CC(A10)(A11):290A49C1:320RA49A58OA48:C(O(N9))1:CC(CN):320m& Other keys pressed:~0A95AA32:F$(F$(C),2,15):T$(F$(C),18,3)DLN((F$(C),27,2))N Handle pic/textXA13T$"DIR"ĺD$"PREFIX"P$F$:30-b(A13A83)(T$"TXT"T$"AWP"T$"$B0")1400YlA16(T$"TXT"T$"AWP"T$"$B0")1440vA13(T$"BIN"T$"$C1")LN65GSİ830:A$:GV,1:430A13T$"BIN"LN17İ880:A$:49233,0:430A13T$"BIN"LN33İ920:A$:49233,0:49247,0:430A61İ1000:430& Launch stuffSA13T$"BAS"İ1520:::(21):D$"-"F$kA13T$"SYS"1180A13T$"$B3"1140 Get/change prefixA27P$N1$P$(P$,(P$)(N1$)):D$"PREFIX"P$:30I(A27P$N1$)A67İ1540:" Slot? ";:S$:S(S$):S;:" Drive? ";:DR$:D(DR$):D;:D$;"PREFIX,S"S",D"D:30A80İ1540:34,23:" Prefix: /";P$:P$"/"P$:D$"PREFIX"P$:30A63İ1540:34,22:IN$:"Press a key ";:G$:40 Quit, RebootA81ĉ::1680 A66460F1540:(7);" What slot number do you want to boot? #";:S$:S(S$):S;] S0S8ĺD$"PR#"Se*30}4 Display pictures> Display Super-Hires pictureHN$D$"bload"F$",t"T$",a$2000,"RN$"l$4000":GV,193\790:67,32:768fN$"B$4000":67,96:768:5p Display Single-Hires pictureOzD$"bload"F$",a$2000"n49239,0:49234,0:49232,0t Display double-hires picture49246,0D$"bload"F$",a$2000"D$"bsave/ram/page1,a$2000,l$2000" D$"bsave/ram/page2,a$4000,l$2000",D$"bload/ram/page2,a$2000"T49237,0:49239,0:49234,0:49232,0Z Display all pictures in current directory:L1N:T$(F$(L),18,3)F$(F$(L),2,15):LN((F$(L),27,2))(T$"$C1"T$"BIN")LN65GSİ830:1080#T$"BIN"LN17İ880:1080B$T$"BIN"LN33İ920:1080L.1130\8K$:K(K$)wBK32K13ĹCK,0:1120LK27ĹGV,1:49233,0:CK,0:C1:40V1080`GV,1:49233,0:49247,0:j:GV,1:::C1:40t Launch a $B3 (S16) application~D$"VERIFY"P$F$V$"00056032031254144001096251175189000225056251240246032000191101023003000004238128002000000000":A768798:V((V$,3(A767),3)):A,V::7681540:"GS/OS not available.";:1560 Launch a SYS application (of any size) 1520V$"00169149032237253032088252169240133054169253133055169027133056169253133057169000162005157106191202016250154032000191200056003032000191202062003032000191204070003076000032003128002000187000004001000032255255000000001000"#A768839:V((V$,3(A767),3)):A,V::768I MouseText chracter out routinem(27);:M1(M$):X$(M$,M,1)X$"A"X$"Z"ĺX$;:1270UE1270:X$;::(24);: Variable setup and init  :(64448)234UE1/(1)192GS1:L(49205):X(L8):X2(X2)Ĺ49205,L8NRK49152:CK49168:GV49193v(D$"PREFIX":P$:D$"PR#3":CK,0::2LN$" ":L119:LN$LN$"____":<GSıFL045:B:L768,B:::P169,0,133,60,133,66,169,32,133,61,169,255Z133,62,169,95,133,63,56,76,17,195,169Ld0,160,32,141,5,192,153,0,158,136,16,250xn168,153,0,157,200,208,250,141,4,192,96x Call Dogpaw to show textA83İ1540:" Enter word or phrase to scan for: ";SC$:F$F$"$"SC$::"One moment..."D$"DOGPAW"F$:401 Call Dogpaw to print textDT$"AWP"1500w1540:" Hard or soft formatted file? (H/S) ";HS$:HS$"H"HS$"h"F$F$"@":1500HS$(27)40HS$"S"HS$"s"1460::(21):D$"PR#1"D$"DOGPAW"F$"\\"F$" Page #":40! Verify file5D$"VERIFY"F$:Z Clear bottom line for messagen:23::868: Prompt and restart"" Press a key. ";:G$:30, Error routines 6EL(218)(219)256:EN(222)@EN5P$"/RAM/"270J1540:D$"CLOSE":34,22:ATEN4ĺ"No device connected.";:1560k^EN8EN6:" Prefix "P$" not found."hEN6ĺ" Press [P] to re-enter Prefix, or [C] to Change Slot and Drive. ";:G$:A(G$):AA32(A95):A80A671610rEN6Ĺ33,75:32,1:7103|EN16ĺ"Syntax error in Prefix.":EN6:1640"Error #"EN" has occured in line #"EL:"Press to continue, to quit ";:G$:G$(27)Ĭ30::"Enter 'BYE' or 'RUN 30' to return to Windows\] ǝ@Lq@A轀 ɯ rAAA@rA̲AA   `<@=>B?BхC ,` / 9 é XXoύX  5Eh  1  XL3 g/ m' b   L C  L d`렬Ӡ򠣤 îU FONT.UTILSv/' 'FINDER.DATA_T/p1^FONT.DOCTORa'/^FONT.VIEW9'/6^FONTASMP'/^FONT.INFO.ED{'ȹ/^?f FONT.DOCTOR2.81BFONTASMCTOR2.81 FONT.INFO.ED.81HARD.DISK.UTILSv/"Ϲ' 'FINDER.DATAɩj/#p1`HD.FORMAT.V1.2(6Ї/,`VANILLA.V1.1(7@/-`SCSI.HACKER'-/.`DISK.TIMER=( //`HARD.DISK.NOTES`/6Ϲ/8`FONT.DOCTORv/' ^'FINDER.DATAbT'p/a*FONTDOCTORcf a.FONTDOCTOR.DOC6%%a/FONTDOCTOR.ICON464paL$sFONTDOCTOR.ICONBFONTDOCTOR.DOCR FONTDOCTORAITORdefghijklmnopqrstuvwxyz{|}~ i0 ,@ main 0 """") ;8[i{iHHH" d ,"HH"hن2J"HH "h݆ݢ"""ݢ" J"H "P'^J" H "+Pa^J" H "xP^J" H "d:"{iH)H"h{iH{iH"{iH"d*:"yy"d6:"aa"dB:"{iH"H"hץׂ" d6" (  ٢"ݢ "  {i+;iklike to Save it Before has not been saved. Would you. NoYesCancel ;8[i{iH"HH{iH""hH{iH"h ʥI  8pI  ʉ{iH"{i+k ;8[i) 8pI0U媿) ީ {iH{iH"{iH"傫%8pI0$㪥 )) e  m)) e)) e)) e)) e)) e)) e mi)) e )!) e$)%) e 8 8ddi'ʍߦ "hߦ"h߆ߦ"hH"hʅx8pI0 mʍ )"h骿) e m) m)b  8pI02  몆8-8pI  -8pI     _8pI  _8pI  H "h [ 1"1"\1"Z1"1"Y1"]1"1" {i+k(This Font is too large for this program. ;8[iFIG  H "hG Gޭ {iHm m "2{iHH{iHH "{i^H"{iNH"H{ea "Q Q """" [ 0"0"\0"Z0"0"Y0"]0""8pI> > " [ 1"1"\1"Z1"1"Y1"]1"1"3  "" """" {i+kPreparing Font for EditingIt is not loaded into Memory.File is too large.Loading Font File from DiskSelect GS Font to Load:You Load a New One? ;8[i HH""{iHH "z  ݭ:8pI0M߭:8pI0)He"he ߂݂ H""{iHH ""z"h"z"hݭ:8pI07H"hmʅن۩߭ "z8pI0٦ۆ)"8pI08Hm"h ee瘟謹 ٦"hنۥ߂| :8pI0FHe"heHm"hme謹 ズ݂ 1H^^"hI I  {i+kCharacter not Defined ;8[i 8 edݭ߭8pI0# ݟ ݥ߂ ݟ"z"h8pI"h8pI8"zH"h"zmH"hmH"hm"h  "z  "h $ "z %2 )8 {i+k ;8[i":8pI0#"d׭ :8pI0dH"he媿)"8pI0$ת ץ傜H"hm)"ۂ:ۂ  :ۅ8pI0$ת ץ:8pI04תHe"he ץH"hm)"8pI0$ת ץ8pI0c"he媿)"8pI0$ת ץ傝 ߥׅ٥8pI0م߅8pI0ת ץdݩ:8pI0f8pI0&݆ ݥ""he媭 傚ddѭH"hʅӆեϦцϦц Ϧ"hφѥϦ{i+k ;8[i 7"::H"hmH"hmHH:"HH<"HH:"HH<"HH:"HH<"HH:"HH<"H"hH:"idH<"iHi H:"//"{i+k Base Line ;8[iH"hmߥmH"hmmJ"H7"T"iߥiJ"T" iߥifJ"T"{i+k ;8[i":8pI0`:8pI0<He"he"゠{i+k ;8[i"d:""" 7"d:"Z<"d<"_<"d<"_:"Z<"DZ:"Nd<"XZ<"N_<"DZ<"N_:"Nd<"X:"{iHH"h{iH  {eH{iH"{iH{iH"{iH"{i+k-ASCII #640 Mode | 320 Mode ;8[iJ"7"T"YJ"T"elJ"T"""{i+;ik ;8[ix t {J"HH "hHH"h߆"dd۩@{iH"8""""JJ" ##H "J$J" ##H "'J5J" y#y#H "8JFJ" s#s#H " """HH"h8pIHH"HH"h8pIHH"tHH{iH "h {iH "H㢰HH$"h?H:Hy"y"{iyHH "#H:Hy"y"{iyHH "8H"z8H"zHe"heI He"he   "H"h;{iH "  % H:Hy"y"{iyHH "H:Hy"y"{iyHH "\8H"z8H"zHe"he " H"h HH"hHHHHH"h  HH"hHHHHH"h?[#[#"" """" HH"hHHHHH"h:8pIHH"HH"h8pIHH"""HH"hHHHHH"hHH"HH"h8pIHH"""&#80 #H`/ :!"  ߢ" "{i+kReplacing New CharacterWiderNarrowOKCancel ;8[iHH"hۆ?J"HH "h߆ߢ"""ߢ"3AJ" u'u'H "%3sAJ" n'n'H "l'x)J"{iH "(:"O'O'":"-'-'" t H"h٥ق)8pI  )# %6 H{iH{iH"hh{iH"h : )8pI) HH""{iHH "/ۢ"ߢ " +'+' "{iH"{iH "Lۢ"ߢ " e ' {i+k#!or # followed by its ASCII NumberEnter Character to be Edited#CancelOK ;8[i ߭8pI0$ߪ߆) ߂ʍ   ̏   ߩ%8pI0;ߢH"h߆ ߂i'ʍdd謹 "h"hH"hʅ߭8pI0 m "h m "z m 몿 m 몿 ߂r8 mʍ{i+;ik ;8[it,v,v,t,t,{iuH)H"h{iuHp,p,{iuH"{iuH{iuH"2{iuH{iuH "u{iH"P,P, """"4,4,""{iH""zz"h 8 pI03HH{iH""h  {iH"{iH"MOQ{iMH"{iH" dddddd!{i H" "{i+kNow Saving New Font to DiskNow Creating New Font in Memory as Save ;8[iH,,"h {i+k you Quit? ;8[i - -""))"""  {i+kPreparing Font for Display ;8[iߥ߂" """""HH"hH"""""""""H"hHH""{iHH """I"5H"hHH""{iHH "H"))H//"hH"h"  "-yɑxɒsɓɔɕɖɗ~ɘəɚɛɜYZ[\]^ ,"{i+;ikresize the font? ;8[i HHH"hH+"h"hD0"0"0"0"0"A1"1"1"1"1"H{iH"hͥ͂F|y"nkhe"ZWTQ8H0@ 0H`0000%100%1000%1%1%1%1%100%1000000%1%10  v {i+k ;8[i""""""""""{i+k ;8[i  "" "HH"  LJ"H"H"..H"AAHqq"TTHJJ"ggH##"zzH"H"H"H"H``"H99"H"H"H"%%H"88Hvv"KKHOO"^^H(("qqH"H"H"H"Hee"{i+k&FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF&FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF&FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF&6666FFFFFFFFFFFFFFF66666FFFFFFFFFFFFFF&F666FFFFFFFFFFFFFFFF666FFFFFFFFFFFFFFF&FF666FFFFFFFFFFFFFFF666FFFFFFFFFFFFFFF&FFF666FFFFFFFFFFFFFF666FFFFFFFFFFFFFFF&FFFC6660FFFFFFFFFFFF666FFFFFFFFFFFF000&FFFC4666FFFFFFFFFFFF666FFFF000000000FF&FF8C4F666FFFFFFFFFFF666FFF0FFFFFFFF0FF&FA884FF666FFFFFFFFFF666FF0FFFFFFFFF0FF&FFFC8FFF666FFFFFFFFF6000000000FFFF0000&FFFC48FFF66666666666666FF0F0F0FFF0FFFF&FFAC4FFFFF6666666666666FF30F0FFF0FFFFF&FF884FFFFFF666FFFFFF666FFF30FF00FFFFFF&FFF88FFFFFFF666FFFFF666FFFF300FF444FFF&FFFC88FFFFFFF666FFFF666FFFFFFFFF444FFF&FF8C48FFFFFFFF666FFF666FFFFFFFFF444FFF&FFA84FFFFFFFFFF666FF666FFFFFF444444444&FFF88FFFFFFFFFFF666F666FFFFFF444444444&FFFC88FFFFFFFFFFF666666FFFFFF444444444&FFFC488FFFFFFFFFFF66666FFFFFFFFF444FFF&FFFC488FFFFFFFFFFFF6666FFFFFFFFF444FFF&FFFF4FFFFFFFFFFFFF666666FFFFFFFF444FFF*/SYSTEM/FONTS ;8[i{iH"{iH"8 pIC"h"ziЦ :HH{iH"{i+;ik00000123456789ABCDEF ;8[i{iH"{iH"8 pIC"h"ziЦ :HH{iH"{i+;ik000123456789ABCDEF ;8[i){i+;ik ;8[i)  )  )  )  )  )  )@  )  {i+k ;8[i  i i i  i@ i{i+k ;8[ic]xJ"HH "hHH"""HH" :""{i+k ;8[iHH "{i+k ;8[i t HH"h߆AJ"HH "h""""C:""2:"":""9;GJ" H "%33J" H ")) eʅ"pIA)) eH"h{iHHH"h{iH{iH"{9FJ"{iH{iH"{iH "{iH)H"h{iH{iH"{iH{iH"z(5J"{iH "{iH"@J"{iH "H"hݥ݂ ))8uu{iH")H{iH"h  HH{iH"h"h  "zz <{iH"HH{iH"hH"pI  HH{iH"h"pI  {iH{iH" {iH"H{iH"hH "{iH{iH"C{iH"&#80 XH`JW%  ߢ" "{i+kOKCancelNew Font Name- Point Size-Family Number- ;8[i{iHHH")ۭ)ݩ݅8pI06i i)H "NH " i8 iF H " i8 KH " i i. e8pI>{iH{iH{iH"{iH{iH"8ۅ8pI0/ii ۅ8pI068ۢuii  HH{iH"{i+;ik ;8[i dJ H{iH"h{iH{iH"{iH"h {i+;ik Tool error $ ;8[il"H"h"HH H "hHH"iHH""":"":"LL"modqsduwdy{d}dddddddddd{imH"H"hH"9"HiH"HiH""HiH"H"HiH""""HiH"Hi H"{i+k4Please hold on patiently while he gathers his tools.The Doctor is Coming... ;8[i" """""""""""""""H""{i+k ;8[i{iH"{iH"mm]]MM33{iH "{iH"xxffVV{iH"{iH"??##{iH"{iH" "HHH-"hH "HHH-"hH "HHH-"hH "HHH-"hH ","H"h*"{i+k==Resize Font...\N606D*Rr."==Edit Character Offsets\N605D*Kk==Edit Character\N604D*Ee==Show Font Info...\N603D*Ii==Change Font Info...\N602D*Bb==Display Font...\N601D*Ff>> Font Doctor \N600==Clear\N254D.==Paste\N253D*Vv==Copy\N252D*Cc==Cut\N251D*Xx ==-\N999D==Undo\N250D*Zz>> Edit \N500==Quit\N412*Qq.==Print...\N411D*Pp==Page Setup...\N410D==Chooser...\N409D==Close all windows\N408D==Close top window\N407D==Export\N406D==Import\N405D==Save as Source\N404D==Save...\N403D*Ss==Open...\N402*Oo ==New\N401D>> File \N400 ==-\N302D..==About Font Doctor...\N301 >>@\XN300 ;8[iv{iwHHH"w{iyHJ" dddd{iHdJ" yydddd{iHd |J"{iwdddd{iHF<nJ"ǩ ɩʩ˩ {iw͆{iц{iՆddH{iH"h  {i+;ikCancelOkay ;8[i "h"z2 {iH"{iH""h"z2 {iH"{iH""h"z2u u {iH"{iH""h"z2m m {iH"{iH""h2g g {iH"{iH"f f "` b d {i+;ikPlainBold Italic Underline Outline Shadow ;8[iHH"h݆J"HH "h""""/J" P)P)H ":"I)I)":"A)A)":"2)2)"&:"()()"0:"))"::"))"D:"))"N:"(("X:"(("b:"(("l:"(("v:"((":"((":"((":"((":"z(z(""B:"x(x({iH)H"h{iH{iH"{iH")H"B:"":")) eʅ"pIA)) eH"h{iHHH"h{iH"&:"{iH)H"h{iHv(v({iH )H"h{iH{iH"{iH"0:"{iH )H"h{iH"::"{iH ) ) eH"h{iH"D:"{iH)H"h{iH"N:"{iH)H"h{iH"X:"{iH)H"h{iH"b:"{iH)) eH"h{iH"l:"{iH)H"h{iH"v:"{iH)H"h{iH":"{iH)H"h{iH":"{iH)H"h{iH":"{iH )H"h{iH":"{iH")H"h{iH"H"hݢ" "{i+k.. Leading- Descent- Ascent- Height- Font Rectangle Width- Neg of Descent- Max Leftward Kern- Max Character Width- Last Character- First Character- Type- fbrExtent- Version- Family Number-Style- Font- OK ;8[iJ"HH "h"J" ..H """":".."""..":"--"#:"------{iH"{iH"-:"--"7:"--"A:"--"K:"l-l-"U:"D-D-"_:"--"i:"--"s:",,"}:",,":",,":",," J"H "H"h "{i+kApplelink PE- AFC MarkGEnie A2 RoundTable- A2.MARK.CWaukesha, WI 531882511 Pebble Valley RoadPebble Valley Software*$15 to register your copy with the author.'To see more features added, please send&If you like the program and would like$A "Shareware" Apple IIGS Font EditorAll Rights Reservedby Mark T. Collins1989 Copyright Version 1.0B11 Font DoctorOK ;8[i{iHHH"{iHHH"HH"h׆8J"HH "hۆۢ"""ۢ"5CJ" //H ":"{iH"#:"{iH"H"hע"ۢ "{i+  ;ikOKH;i{HH ;[ H "H"hHHH "hhH "HHHH "hhe: "kHH ;[HH"HH""" d&y)H "h "Ԣ"""H"8kHH"h"kHH"k0;8 ;[H"h#H({iH "h%)))XHH "h: ) )d   +;i08k"k ;[ 0 1 :T+  ;i k ;[ k l e:e::D+  ;i k ;[   :0 )   h)+H   ;i(k HH;[H"h H "    hh+;ik ;[HH""+;ik ;[0  +  ;i k ;[0  +  ;i k ;[0   +  ;ik ;[  Ȁ +  ;ik ;[  Ȁ +  ;ik ;8 [  d) e )e     ;e i ;[907301 )80'e     +  ;ikHH ;[ d0b) W  gF @ e )e)8 0  ):  +;ik HH;[ F0D @0>)8 04  8 8  e :e   hh+  ;ik H;[d 8 2 )    8 ) h+  ;ik {cH;[hh+hk {cH;[ JJJ -)0 0 0 0 0 0 0  hh+hhk {cH;[  :JJJ 1)0 0 0 0 0 0 0  hh+;ik{cH ;[ +;ik{cH ;[ I7+;ik{cH ;[ 7+;ik ;[   (+;i (k ;[I7   (+;i (k ;[ I7  (+;i (k ;[ jjjjjjjj +;ik ;[JJJ+)0 0 0 0 0 0 0 7    (+;i(k H;[IIʩ FeI+k H;[ I Iʀ f  8 F F I+kcck8k H;[IIIIʀFf ee&IIhhhh+k H;[ I I IIʀ&&ff !  8  FfFfͥ  IIzzzzzz+kIIkIIk##kkCCkIIk8 # zz(k *kJjkjjjk***k;8 ;[  {iH "{iH{i H " +;ik;8 ;[  {iH "{iH{i H " +;ik;8 ;[H({iH "h+;ik;8 ;[H({iH "h)+;ik ;[:"hH "h::H:"+;ik;8 ;[{iH "{iHU""+;ik;8  ;[{i H)" 8   {iHU"+;i k;8 ;[{i H)" 8d  "zH"HHg"h{iH ~"h"+;ik;8 ;[{i H)" 8d  "zH"HHg"h{iH~"h"+;ik ;[) eH0"+;ikHHH ;[ HHHHH &"  Ȁ8: ))e:  +  ;ikHHH ;[H HHH HH '"  Ȁ 8: ))e:  +  ;i k;8% ;[$ &{i$H-H+H{iH "{i$H{iH1H/H "+'+&*;i)k ;[HHH)H ("h +;ik ;[HHHH)H )"h h +;ik;8& ;[.H,H{iH{iH{iH "{iH2H0H "+(,'+;i*kHHH ;[ )f A [8Ai a {8ai 80))  J ) J) +  ;i k""""""""""""""""""""""""""""""""33333333333333333333333333333333DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUffffffffffffffffffffffffffffffffwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww ;[;8 ")) )))));i+;ik ;[ HH H HHH "+  ;i k ;[;8")) ;i+;ik ;[;8" ;i+;ik ;[;8+" ;i+;ik ;[HHHHHH H$"h hhh+;ik ;[;8 " ;i+  ;ik ;[;8 " ;i+  ;ik ;[;8 " ;i+  ;ikHH;iHHHHHڢ "hhk    hhZ"HHkHHHH "hk ;[  "ኇ+ ;i k   ;[Z z Z"+hhhk . &     ;[Z z Z"+hhk ;[ ڢ "+  ;ik ;[  "+  ;ik   ڢ "+  ;ik ;[ " +hhk;iHHHڢ "ኃhhk ;[d  +hhk ;[ȗȥ @ȩ+hkH "hk ;[ "  +hhkHH "hhkH "hk;iH "hk "  k H H H H "(p0   ;ik;8  ;[dd\:"hi ) A[i     + ;ik;8 ;[$&{iH"` V$&") d d dd{iH"$&{iH"(+$#;i"k;8$ ;[HH,*"hH,*."h222202 2 2 22 2.)dHHH" "h!#%#2%2# {iH" 22+&2%1;i0k;8 ;[$$G$dd{iH"$$$$$ $$ + $#;i"k;8( ;[HH0."h! " "666646 6 6 66 62)AHHH" "h!#!%!'%6'6 66H0.2"h)6)66646 6 6 66 62)_HHH" "h!#!%!'%6'6) {iH" 666dd{iH"+*6)5;i4k;8 ;[  ' dd{iH"   + ;ik;8 ;[$$A${iH"$$HH""+ $#;i"k;8 ;[$& " {iH"+$#;i"k;8 ;[ "{iH"+ ;ikk;8 ;[  < $& d {iH"L  +$#;i"k;8 ;[  < $& d {iH"L  +$#;i"k;8 ;[$$n$HHHH$H" "hh {iH"${iH"{iH"+$#;i"k;8 ;[  2 {iH" H"zz$&+ ;ik ;[) +;ik;8 ;[$$$$$) d {iH"L $+ $#;i"k;8  ;[&&& d {iH"!&&  &!L &+"&!%;i$k ;[) +;ik ;[ HH"+;ik ;[ HH"+;ikHH ;[   ȥ  "+ ;i kHH ;[  )   "+;ikHH ;[    ȯ   ȯ   "+ ;i ktruefalseHHHHH ;[HHHHH &"  Ȁ 8 : ) )e:   "+  ;ikHHHHH ;[HHHH HH '"  Ȁ 8 : ) )e:   "+  ;ik;8) ;[//3 (3*(5 *{i(H9H7H{iH "{i(H{iHHH "5/1"++7*6;i5kHZHH ;[ 80,* )e)     HH"%  ȷ ȷ HH" +kHH ;[   ") "+  ;ikHH ;[   "  ) "+ ;i kHHHH ;[":e   Ȁ :    +  ;ikHH ;[   "%HHeHژ8 ("h "+ ;i kHH ;[   " ,HHHeHژ8 )"hh "+ ;i k;8* ;[0002"LHH{iH{i H{i H "{i H6H4H "02"+,4+3;i*kZHH ;[ "N)   Ș "Ȁػȷ)  Ȁ阠+hhhhkZ ;[ )? HH"% ȷȷ HH"+kZ ;[ ) )   +k;8 ;[d)  : )) H"h{i H)"{i H "H{i H{i HO"h)HH:" HH")j{i H)"H i H:" @HHg"{i HHH H H~"h"H 8 H:"HH "h)5HH "h)!HH ")  "+;ik;8< ;[BB)) H"h{i H)"{i1H "H{i H{i1HO"h)HH:"d{i H)"  i{iHV"᩼ {iHV"᩼ H({iH "hХ ɥ) {iHU" H i H:"႑v8pI9) {i H)"H H"8hH H:" 8 i{iHU"H"  B5 HHg"{i1HHH H H~"h"H 8 H:"Ⴋd;HHH "hhh=H ""h9) 4;Ȅ;  "= "BN&; " " ";;Ȅ;  9 ";f) B +>B=A;i@k;8 ;[d)  : HH " " +;ikprinter: console: keyboard: (a?1 a@cH[FgFpsFFFFFFF *F-0FFPSY\tFwzFFFFF  !$08oSegFwFzy}yFFaaFFFF)0F>F  zjE$(3\~t{~    e  c"6?QTZ]afkor{ !"#$%*+,-#&+25.>/PS0\1nq4z5 jjj&*-jNSkwzj  !&OV\ p   N * F7 FD FQ F^ Fk Fx F F     !  m  m  c2 S95 S9P FS  V  e ci  l  { c F     Q  Q  c /;  F   F F F F F F- F0 ;8 E > H > K N Q _W f Fs F F F F F F F         c /; F g F ;    g h  i        , j= [ e n gu h   i  _j   _j   _j   _j    j  _j/ 699Zjrz٧j jj٧'^*^-N7:HP     _j _j(.1_jHKOWZ_j_bhjp_jvy|jj_j,_j-_j4_j5$ % AtJdFinj 9'j  9"8ai'j'j 9'.4HKjT [^9''/'7Kn:QTj]b j  jF  j $'+.j48;?JFMQ\F_cnFquFFFFFjFFF//%FFJMjS[`dgjmuz}FFFFF'F*-7FNWoj9FFFF"F2FBFRFbFrFFFFFFFFFFF$(o7:=ce|cFFFFF'F*-CFFISFaFdFFFFF'F4FAFOFRUkFux~##FF##FF  y#y#-F03IFSV\s#_s#wFz AFFFF 4FWcFFghi gh5iDIO_jT]bh_jmpwj~j9cFQV^geh{ighi_j_jj  9 cA Fx F F F    ![#![# !c !/;!F!4!;*!FL!F!F!!!!F!F!!"F""A1"Fh"F~"""""F"F""F""A####/ # !#:!##"C#FQ#F#F###F###F#F#F $F$F$$5$F?$B$H$u'K$u'c$Ff$i$$F$$$n'$n'$F$l'$$$F$$$F%F%O'%O'%F/%F2%-'5%-'?%FY%F%f%p&&#&g*&h=&iQ&F_&F|&+'&+'&F&F&F&F&F'''''''' ''''''''((("(&()(S(V(Y(jg(o((((((( ((((j(((j(((j)),)9)=)_jF)P)^)b)_jk)u)) ))))))))))*v,*v,*  *  *t,*t,*$*o3*p,6*p,E*e^*cq* t* *F* * *c* * *P,*P,*c*/;*x'*;* * *4,*4,*c*/;* * *g|+ ++Vk++ +#+Vk6+:+=+@+L+m+{+j+~+ + +F+++F+F+ + +,F$,),;,,,,,!,, , , -, -,c,/;,,,,,x',;,,,,-B-ZL-IP- T-_-Rf-q-)x--F-N-I-n-c--|,-,-<-R-#----g-h--i.I . ..}%.#*.-.1.9.g@.hM.T.i].a.h.o.r.y.}././.!..g.....Ig/F//F/F/.l/F0F0F0F*0F:0FG0FT0Fa0Fn0F0F0(-0N00000000000%100000%10010101%11%11%1 1%1 1%110101%1101010101010 1%1"1%1$10)1L11P1%FT1_1Fb1If1j1Zn1/r1Iv1I1117171c11111c1#1#1#1F1%1'1 1 1c111111122c 2c 2F#2k&2k+2g7.2g712q52~82~=2@7@2@7C2qG2J2O27R27U2qY2\2a26d26g2qk2n2s26v26y2q}2226262q222}62}62q222V62V62q222/62/62q2226262q2)2)25252q2<2<25252q2O2O3535 3q 3b3b3l53l53q3u"3u'3E5*3E5-3q1343935<35?3qC3F3K34N34Q3qU3X3]34`34c3qg3j3o34r34u3qy3|334343q333[43[43q333443443q3 3 3 43 43q3 3 33333q3c3c337h87h87c7c87c87c7_j78_j8J8c8B98B98c8?98?98c8_j88_j8&9c99999999:::/:5:H:N:a:{:~::::::::::::::::::;;;;%;<;?;U;FZ;];p;Fu;x;{;;;F;F;F;;;F;F; ; ;F;;;F%<F.<1<G<FL<O<b<Fv<F<F<F<F<F<^B<^B<F<Fj9>pT>cX>[>q>F>c>>>F>>o>c?c? ??F)?,?O?F[? ^? d?ch?k??F???F?F? ??@ @@ @  @c$@ *@7@p>@O@qt@Vk|@@Vk@@F@q@Wl@q AWlDcEcEFEFEFE7EeEN9FFDFFHFRFF]FqFFvFyF|FFFFFFFFFFFFFFFFFIFIGFGFGHGH"GFGFGEGGFGFGGGGFGGGHFHFH"H%H:HF=HHHFKHOHRHgHFqHF{HFHFHHHHFHHHHF.IF8IFBIFLIFVIF`IFjIFtIF~IFIFIFIFIFIFIFIFIIFIFIvNIvNIYNIYNILNJLNJeJJ'Jc+J:N.J:N1J-N4J-N7JN:JN=JN@JNCJMFJMIJMLJMOJMRJMUJMXJM[JM^JMaJMdJMgJnMjJnMmJYMpJYMsJHMvJHMJeJJJcJ6MJ6MJ%MJ%MJMJMJ MJ MJLJLJLJLJLJLJeJJJcJLJLJLJLJLJLKfLKfLKKL KKL K(LK(LK LK L%Ke)K,K;KcIKFNKQK]KFnKFsKvKKFKFKKKFKFKKKFKFKFKFLFNcNFNPNPOFOO OO;OFsOFOFPRP#P_j/P_j

SZASZKSF[SF^SZaSZkSF{SF~SZSZSFSFSZSZSFSFSZSZSFSFSsZSsZSFSFS]ZT]Z TFTFTIZ!TIZ+TF;TF>T8ZAT8ZKTF[TF^T!ZaT!ZkTF{TF~TZTZTFTFTZTZTFTFTZTZTFTFTYTYTFTFUF U U UYUY U(UoCUeWUFZUlUP}UFUUUFUFUUUWlUUVjDVpZVFjVFvV~VoVYVYVVoVeVFVFVVo WFWF)W2WOWpeWFuWFWWoWFWFW WoWFWFW"WoXF#XF/X$8X%KXoaXFqXF}X&XoXFXFX(XoXFXFX*XoYFYF+Y.3YoIYFYYFeY0mYoYFYFY2YoYFYFYFYFZZZFZ[[F)[F,[/[E[FO[R[X[_[[_s[F[F[F[F[F[_[_[F[F[F[_[_[F[F[r_[r_\F\F\g_\g_\e_ \e_#\`_&\`_5\eI\FY\F\\M__\M_i\Fy\F|\9_\9_\F\F\_\_\F\F\^\^\F\F\^\^\F\F\^\^ ]F]F]^]^)]F9]F<]k^?]k^I]FY]F\]V^_]V^i]Fy]F|]7^]7^]F]F]^]^]F]]]F]]]]]F^F^F_c_c_F___F__`F%`F2`F?`FM`FP`S`i`Fs`v`|`%a`%a`F`F`F`F`F`F`F aF+aJ0aH9aa>aaIaF_aakaaaaaaaaaaaaaaaaaabababa ba)ba=bbvbabababRbNbPbbbbbPbNxcRc c cFcccccdcdmcmjmj8nmn_jnmz{e|ew|y||_}>zf}e~e~eCexeeeAeaeۀee,Vke5ewׂ;;FLT\bjx;;;(;bڅll1^lņZ܇l>ĺMmPmZer~Le{ߏe, ;[ ):  +;ik;8 ;[     : pr ie H  HH H"2+ H) H1 H"[ :    A+;ik;8" ;[(@**d(*)ȷȷ)ȷ)Ȅe2 4  )P ,@ utility P ;8[i t {iH"{iH"{iH"{iH"{iH"{iH"HH"h݆l J"HH "h"""" :""":"""&:"||"!4:"hh""B:"WW""P:"GG""^:"00""l:"""z:""":""":""4Z:""3!z/J" H ".7EJ" H "#_dhJ" H "#h^qJ" H "#tl}J" H "#J" H "#tJ" H "#oJ" H "RJ" {iH ")J" {iH "*7J" {iH "8EJ" {iH "FSJ" {iH "TaJ"{iH "boJ"{iH "p}J"{iH "~J"{iH "J"{iH "H"hۢ t ۂ.  ^ t H{iH"hH "  H{iH"h8pI  H"pI  H{iH"hnnH "  H{iH"hNNH "  8pI  H{iH"h..H "  H{iH"hH "  H{iH"hH "  H{iH"hH "  8pI  H{iH"hH "  8pI  88pI  xx"I{iH")  i "h  "z  ))  "# 8    "h  "z  ! 8  88  8  i$8 mi8"z"h  i8"z"z $% 8pI0; -8pI  -8pI       ) ) e8   [ 0"0"\0"Z0"Y0"]0"  tH."h :VH."h ::H."h::::H."hi8H."hi8f {iH" {iH "/ {iH" {iH " {iH" {iH " {iH" {iH " {iH" {iH "S{iH"{iH "{iH"{iH "{iH"{iH "{iH"{iH "w{iH"{iH "@=80 H`8EM=tP, /"/""h/"/""h"z/"/""h"z/"/""h"z/"/""z/"/"  I ݢ" "{i+kPlease Try It Again. You've entered Incorrect Values.ShadowOutline UnderlineItalicBoldPlainCancelOKStyleMaximum Leftward Kern- Font Descent-Leading-Maximum Character Width-Font Rectangle Height-Last Character-First Character-Font Family Number- Point Size-Name-Create a New Font321212126323276712FontDoctor Temp ;8[iHH"h݆?J"HH "h"""" AnOJ" IIH "AOJ" FFH "{iH 8H"h{iH{iH"{iH H"h{iH{iH",J"{iH ".;J"{iH "3 J"00H ":1:J"##H ":"+J"H " AnOJ"H"hۥۂeH{iH"hH{iH"h   {iH"H{iH"hH "{iH{iH"{iH "{iH"H{iH"hH "{iH{iH"{iH "$!80 H` u  Oݢ" "{i+;ik Left Offset Right OffsetSet Character OffsetsOKCancel"(c58>cKNTcadjcnsccFF FF+F8FFFVFY\fFvFy|FF||FFhhFFWWFFGGFF00&F6F9<FFVFY\fFvFy|FFFFFFF,F69?BZF]`vFFFF F 8F;>TF^agjFFFFF2F<?bFeh~FFFFF #FFILbFloFFFF*F-0FFPSvFy|FFFFFZpdgsipWlp n n i5 p? NB NN i p . . i p   i p   i6 p@ C O i p   i   x x _4  7  F cJ  P X ^ g j q | _j  _j            2 3      ( 2  8 !C M "S #^ i _jp $~ _j % * +  0 1  . /   & ' ( )   " ' * - 6 ? _jG _jN ,T ] f _jn _ju -{ 4 5          )/<BISW]f   FFFFFF'F^FFFFVFpFFFFFFF2FLFiFFFFFFF(FEF_F{8EM=tP,FF_jFF'_j/_jMFdFo_jw_jFF_j_jFF_jF4F`FnFFF F1F>FKFYF\_uFIIFFFFF  o.c?Do_ccf|FFFFF!'0*0BFEH^Fhkq#t#FFFFFp,pC[ a qFpicFFp%(1iOcjF uFF ;[ ):  +;ik;8 ;[     : pr ie H  HH H"2+ H) H1 H"[ :    A+;ik;8" ;[(@**d(*)ȷȷ)ȷ)Ȅe2 4 T ,@ ~global T ;[ ):  +;ik;8 ;[     : pr ie H  HH H"2+ H) H1 H"[ :    A+;ik;8" ;[(@**d(*)ȷȷ)ȷ)Ȅe2 4  )9 ,@ sourcer 9 ;8[i44bb)"<<&"))&"RR&"{{&"&"~~&"XX&"22&"HH  &"qq&"&"&"tt&"NN&">>((&"gg&"&"&"&"{i+k%{ Width in Words of Font Strike }%{ Leading }%{ Font Descent }%{ Font Ascent }%{ Offset in Words to owTable }%{ Font Rectangle Height }%{ Font Rectangle Width }%{ Negative of Descent (unused on GS)}%{ Maximum Leftward Kern }%{ Maximum Character Width }%{ Last Character }%{ First Character }%{ Font Type (unused on the GS) }%{ Font Bounds Rectangle Extent }%{ Version- should be 1.1 ($0101) }%{ Point Size }%{ Font Style }%{ Font Family Number }%{ Offset in Words to Mac Font }( { GS Rec (length of Font Name) } ;8[i{iHHH"{iHHHQ"{i,HHHQ"{i~HHHQ"{iHQ"" ""{iH{iH"{i,H{iH"{iH"{iHH"h{iH{iH)"{iH44{iH"{iEH{iHQ"{iEH{iH"{iH"{i~H{iH"{iH"{iH"{iH"{iH"{iH"{iH"{iH"C8CpI0m{iHC )H"h{iH{iHC )H"h{iH{iH"{iH{iH)"{iHCH)"heH{iH"{iEH{iHQ"{iEH{iH"{iH"Ci{iH"{iH"TT{iH"{iH"55{iH"{iH"CC{iH"{iH"d=d?H"hʅA8ApI0"hH=?"pI{iH{iH=?媿)H"h{iH{iH"{iH{iH)"I8{iH{iH"{iH{iH)"=?"h=?AA{iH{iH"{iEH{iHQ"{iEH{iH"{iH"?="pI{{iH"{iH"A8ApI0{iHA H"h{iH{iH)"{iHA"h{iH{iH"{iH{iH)"{iH{iH{iH"{iEH{iHQ"{iEH{iH"{iH"AA{iH H"h{iH{iH)"{iH"{iH{iH)"{iH{iH{iH"{iEH{iHQ"{iEH{iH"{iH"{iH H"h{iH{iH)"{iH"{iH{iH)"{iH{iH{iH"{iEH{iHQ"{iEH{iH"{iH"{iH"{iH"A8ApI03{iHA H"h{iH{iHA H"h{iH{iH"{iH{iH)"{iHA"h{iH{iH"{iH{iH)"{iH{iH{iH"{iEH{iHQ"{iEH{iH"{iH"AA{iH H"h{iH{iH H"h{iH{iH"{iH{iH)"{iH"{iH{iH)"{iH{iH{iH"{iEH{iHQ"{iEH{iH"{iH"  mm{iH"{iH{iH)"{iH{iH{iH"{iEH{iHQ"{iEH{iH"{iH"{iH"tttt {iH"""{i+;ikEnd of Table - Should be -1FFFFMissing Symbol)Char(* Offset/Width Table (owTable)Total Width in PixelsMissing Symbol)Char(%* Character Location Table (locTable)  * Font Strike (Bit Image)* Font FtRec - Mac Font Record<* Future Versions may have additional records inserted here.,* This Source is for Font Format version 1.1/* the Font Manager or QuickDraw II, Start Here..* If you are creating a font handle to pass to* Font Header - GS Font Record ;8[i {iH "2ll{iH{iQH "QtYY"GG"55"02 4 .{igH"!!{iWH{i H"{iH{i HQ"{i H)H"h{i H{i H"{i^H{i HQ"{i H"{i H{i HQ" t {iH{i^H{i H )H"{i+k START to disk. Now Writing '' ; DC H ' DC C ' DC I '$Save Font as APW Source: Untitled.ASM ;8[i   2 {iH{iQH "Qv  {igH"{iWH{i H"{iH{i HQ"{i H)H"h{i H{{{i H"{i^H{i HQ"yy{i H"{i H{i HQ" {iH{i^H{i H )H"{i+k" ;start of file to disk. Now Writing  ; hex  asc " dw $Save Font as Merlin Source: Untitled.S ;8[iHH"h߆CJ"HH "h"""" :">>""9GJ" 77H ""J" &&H ""%3J" H "H"hH "ߢ" "݂,"%" {i+kAPW/ORCA AssemblerMerlin AssemblerCancelChoose Source Code Format ;8[i _8pI d _8pI d H"h mi'8"heH"pI  ??##" {i+ktoo large for this program. This would create a Font that is ;8[i{iH)H"h{iH{iH"HH"hچOJ"HH "hކޢ"""ޢ"5"d0J" H ">\J"{iH "|J"H "H"hإ؂ H{iH"hH "̢ t `}}^^"{iH)H"h{iH{iH"{iH " d M{iH"{iH "  ڢ"ޢ "{i+kin the range of 1 to 48 pointsSorry! Your new font must be New Font SizeOK ;8[i d  "̅ d ߩ{iH"ۢ"hHH"hӆHH"hÆHH "hφϢ""HH"h """"HH"hˆˢ "HHˢ"hdžɭʍ˪˅ "h"hˢ""â"Ӣ"Ϣ "    " "{i+k#window open when using this option."You must have the Display the Font 44bbc #&<)</c3)6)9<BcFRIRLOUcY{\{_bhcloru{c~~cXXc22cHH  cqqccc t tcN N&c*>->0(3(9c=g@gCFLcPSVY_ccfilrcvy|ccccc  c/;F0g|IVcgy8c44ec(59<KX\_n{y8y8ec] ]#j),AeZcsTT55"*.1jN{jWl y8ec   e/ c= jS V b e t e c   Wl        7: c> A O o^ a p e c ] ]   e c     75 c9 < K ed ch ]k ]w z  e c     7 c   e4 c8 ]; ]G J b e{ c           y8  y8- eF cJ M [ oj m | e c ] ]   e c ! &y8>DIy8de}cec]]ec #+3m6mEe^cb]e]qtec~  GFJ;UFRU[celhlF]]YYcrrGGc55c024.  c!!$e=cA D PXogjyecrr  ec  F]_ art#v(,x158<?CFJMQT W fcjmy|ec  o{{ecrr   y ye4cD G nFF!4FHFUFbFpFF>>FF77FF & &$F'*@FJMSVnFFiFF<njjWl?? # #_v~ocFFFFFFF"%;FEHNQiFloFFFFF.p8;Gin}q}t^w^z_ocFFFFFTFFF0.lLF^FilFFF`FFFFFFF!03=Mj]`cjilorFFFF  _F ;[ ):  +;ik;8 ;[     : pr ie H  HH H"2+ H) H1 H"[ :    A+;ik;8" ;[(@**d ,@ display  ;8[ittHH"h߆8J"HH "h"""" t $ J" ddH "5CJ" aaH "HVJ" ZZH "\J" TTH ""V+J" OOH ".d7J" HHH ":{CJ" >>H "FlOJ" 66H "Rg[J" //H ""+J" ""H " J" H "H"hݥ݂  tH."h :|H."h ::CH."h::::H."hi8H."hi8H ."ht^H ."h t0-8 0 H`%-dT /"/""h/"/""h"z/"/""h"z/"/""h"z/"/""z/"/" /" /" /" /"  ߢ" "{i+k Monospaced ProportionalShadowOutline UnderlineItalicBoldPlainCancelOKSelect Font Display Attributes ;8[iHH"hHH)"h߆ߪ߅"{i+k ;8[iHH"h߆ "{i5H"{i5H3 3 "̢3"" "I  ""̍  )    {iH)H"h{iH{iH"{iH"i'H"he8 eʅ'HHH'"hHH "h+ʅ+ +"h+"h'"hb"HH"h# )HH"HH""""#HH"HH " {i5H"ߢ" d "{i+k Preparing Font for ViewingFontDoctor Temp ;8[iHH"hHH "HH" )HH""m")e#) e{iH)H"h{iH{iH"{iH{iH"H"h )"H"H":"{iH{iH"{iH"8pI0"H$"hit8pI0 8pI{iHᢉ  {ieH{iH"{iH{iH"!FH$"hi{ieH{iH$"8H$"hi{ieH{iH$"8pI0o{iH)"eH:"H$"hi{iH{eH$"{iH"႑HH"{i+k      ;8[i d HHH "hن۰Nݍ:<ٍۍ lJ" "&((*,.02468FHJL٪مHH"mH"h ) me׍$٪م>>mHmHmHmHJ"ii x8pI HH "h݆ݢ"" {i+;ik ;8[iH"hmH "h[0"0"0"0"0"^0"Y1"{i+k ;8[i"HH)"h߆ߢ" "HH"1"1"1"^1"Y0"HH"h1"1"{i+;ik ;8[iHH"hHH"hH"1"1"1"1"1"^1"Y0"{i+k ;8[i ^PJ"{i+k ;8[iHH)"h߆ߪ߅"{i+;ik ;8[iH"h {i+k ;8[iHH"h߆HHH "h "HHHH"h""""HH""{i+k ;8[iHHH "h {i+k ;8[iHHH "hHH " "{i+kFontDoctor Temp hl&F/2HFMPcFwFFFFpFddFF$a'a?FBE[FehnZqZFFTTFFOOF #9FCFLHOHgFjmF>>FF66FF!$*/-/EFHKaFknt"w"FFFFhlp!p>FuFFF(FeFF%-dTFF$_jBFYFd_jl_jFF_j_jFF_j_jF1F<_jZFqFFFFFF FFFC FF F 3  3  c1 F4 ? FB pP  S  V  Y  _ cc /;j do fr } g         g o e d d c    j   . j6 J FO R U X v   j j j0 ;= FQ Y d Fg k v Fy d| d F } } F q q F F   F F F FY Fm q | F   F   F d d F   2 3       g o e0 c< FB lg Fj hu Fx h| P F       e F j ; zecjcj'cRFeFnjcFFF #&),169<RFUX[^djpv|ddcj $(,0 48CFFMPW^nsvFFFFFFF*F7FDFrFFFFFFFFFFF$F1F_FzFNFFFFFFFF@FUC cFcFF F&#F1F48OFYFqu|cFFF ;[ ):  +;ik;8 ;[     : pr u ,@ smarry u ;[ ):  +;ik;8 ;[     : pr ie H  HH H"2+ H) H1 H"[ :    A+;ik;8" ;[(@**d(*)ȷȷ)ȷ)Ȅe2 4  )B ,@ mdarry B ;[ ):  +;ik;8 ;[     : pr ie H  HH H"2+ H) H1 H"[ :    A+;ik;8" ;[(@**d(*)ȷȷ)ȷ)Ȅe2 4  ) ,@ fntary  ;[ ):  +;ik;8 ;[     : pr ie H  HH H"2+ H) H1 H"[ :    A+;ik;8" ;[(@**d(*)ȷȷ)ȷ)Ȅe2 4  )  ,@ starry  ;[ ):  +;ik;8 ;[     : pr ie H  HH H"2+ H) H1 H"[ :    A+;ik;8" ;[(@**d(*)ȷȷ)ȷ)Ȅe2 4  )  ,@ stbrry  ;[ ):  +;ik;8 ;[     : pr ie H  HH H"2+ H) H1 H"[ :    A+;ik;8" ;[(@**d(*)ȷȷ)ȷ)Ȅe2 4  )  ,@ bitarry ;[ ):  +;ik;8 ;[     : pr ie H  HH H"2+ H) H1 H"[ :    A+;ik;8" ;[(@**d(*)ȷȷ)ȷ)Ȅe2 4  ) !"#$%&'()*+,-./0123Font Doctor Version 1.0B11 Documentation and Notes... Font Doctor is an Editor for Apple IIGS Fonts. Shareware Notice... This version of the program is released as Shareware. This means that Font Doctor is NOT Free. If you find the program useful, please send in the $15 Shareware registration fee. If not, please delete the Font Doctor files from your disk, and you'll find you'll have 180 precious blocks of disk space available to you. If you have already sent in the Shareware fee, I thank you very much!!!!! Those who have sent in the Shareware fee will continue to receive upgrades of the program as they come out. Future versions may or may not be released as Shareware, largely depending on the response to this request. How to use Font Doctor... Font Doctor will run on any Apple IIGS with at least 768K of System Memory (NOT including "RAMdisks" and "ROMdisks".) It requires Apple IIGS System Disk 3.2 or higher. (Of course, I STRONGLY recommend running it under GS/OS!) The main program file is an S16 file, which can be launched with any ProDOS 16-GS/OS program selector or shell (Finder, ProSEL, DAVEX, ECP-16, APW, etc.). The Menu Options... APPLE Menu- About Font Doctor... The Standard Credits Screen Any New Desk Accessories (NDA's) will also be found under this menu. FILE Menu- New Will allow you to create your own font file from scratch, entering all the parameters needed to establish the font. I STRONGLY encourage you to get familiar with font file structure (see the Apple IIGS Toolbox Reference, under QuickDraw II, or the A2 Font Technical Reference) BEFORE using this option. NEW is not available in this release. Open... (Apple-O) Loads an existing Apple IIGS Font File (Filetype = $C8) for editing. If you already have a Font in Memory when you try to load a new file, the program reminds you of this and lets you either cancel, save your file, or continue. Remember that if you load a font while another is already in memory, any changes you have made to the font since the last time you Saved it will be gone forever (unless, of course, you reenter all your changes all over again!!). Once you've loaded a font into memory, the Show Font Info window will appear. Save... (Apple-S) Saves the font in memory, including any changes you may have made, to an Apple IIGS Font File. I STRONGLY encourage you to do this regularly and often... you never know when a power outage or other disaster might strike. Please remember to use the standard Font File Name convention when saving your font- Font Name followed by Point size, as in CHICAGO.12 for Chicago 12 and NEWHELNARR.24 for New Helvetica Narrow 24. Remember that under ProDOS, the file name is limited to 15 characters, including the period. Once saved, you will be able to resume editing. Save as Source... Creates a Source Code file for the font in memory, in either APW or Merlin assembler format. Close Top Window Closes the top window- created by either a Desk Accessory, or the 'Display Font' option. (kind of obvious, isn't it!) Close All Windows Closes all windows on the desktop. Import Will let you load a font from a different Font Format (Print Shop GS, PublishIt, GEOS, etc.). This option is not available in this release. Export Will let you save a font into a different Font Format. This option is not available in this release. Chooser The standard Apple IIGS Choose Printer Dialog. Page Setup The standard Apple IIGS Page Setup Dialog. Print Prints the sample of your font displayed in the Display Font window. This is only accessible when you have a Font Display window on the desktop. Quit (Apple-Q) Exits Font Doctor. The program will remind you to save any font you might have in memory before you quit. EDIT Menu- Undo (Apple-Z) Cut (Apple-X) These commands are not used in this version of Font Copy (Apple-C) Doctor and are disabled under normal use. They are here Paste (Apple-V) so they will be available for any NDA's you might wish Clear to run. FONT DOCTOR Menu- Display Font... (Apple-D) Creates a window on the desktop which displays all of the characters available in the font in memory. You are limited to only one Display Font window at a time. Resize Font and the Print options will only be accessable when this window is on the desktop. Change Font Info... (Apple-B) Lets you rename the font, change the font family number, and its point size listing. Changing the point size here will NOT make your font larger or smaller. It MAY help confuse anyone else who uses your font, as well as the Font Manager. You may give your font any name you wish, so long as it is less than 25 Characters long. I strongly encourage you to register your font with the A2 Font Clearinghouse, which will assign your Font a number and reserve the name (DO NOT USE THE SAME NAME FOR DIFFERENT FONTS!!!!!). To register your font, contact me via GEnie (A2.MARK.C), Applelink PE (AFC MARK) or Compuserve (76324,564). (There are no fees or charges for registering your font!!) Lets show the Mac world we don't have to be as confused as they are!!!! Show Font Info... (Apple-I) Display the header information of the font. To see the relevance of these items, see either the Apple IIGS Toolbox Reference (Volume 2), or the A2 Font Technical Reference. Edit Character... (Apple-E) Allows you to edit any character in font. The character will be displayed in three ways- Edit Window- where you actually do the work 640 Mode Graphics Mode- 320 SHR Graphics Mode- To edit the character, simply point the cursor anywhere in the edit window, and that pixel will be toggled on or off, depending on its current state. (that is, if it is black, it will become white, and vice versa). If you DRAG the cursor while depressing the mouse button, you will be able to "draw" a series of pixels, until you release the button. There are four buttons in the upper right corner- Cancel- Quits edit mode, and ignores any changes you may have made. OK- Quits edit mode, saving your changes. Wider- Makes the INDIVIDUAL character wider, one pixel at a time. Narrower- Makes the INDIVIDUAL character narrower, one pixel at a time. The Wider button becomes inactivated when the Character width is equal to the Maximum Character width of the font (See Show Font Info...). The Narrower button becomes inactivated when the character is one pixel wide. This is the only window in the program in which hitting RETURN will NOT activate the Default (in this case "Cancel" button). Edit Character Offsets (Apple-K) Lets you change the kerning and left and right spacing of a character. Resize Font (Apple-R) Changes the size of the whole font. As with Open..., you will be prompted to save the font currently in memory, since this operation will make the new size font the one in memory. You may choose any size from 1 to 48 points, though effectively, sizes smaller than 5 points seldom have any relevance. A Font Display window must be on the desktop to use this option. Well, that's about it for this version. Limitations to the program- Font Doctor will work on any GS font, up to 64K in size, so long as the font height and maximum character width are no more than 95 pixels. Features being added to subsequent versions... Character Invert, Rotate, Flip, Shift Left, Right, Up and Down Support for "DoubleClicking" a font file automatically starting program and loading that font into memory. "OnLine" Help screen Import/Export routines Revision History- Font Doctor 1.0B1-1.0B3 Internal working versions of the program. 1.0B4 First release version, available on the A2-Central February Disk. 1.0B5 Cosmetic changes and minor bug fixes. Released through GEnie A2 library, Applelink PE and MAUG on Compuserve. 1.0B6 Internal working version- Save as Source and Print Options added. 1.0B7 Internal working version- Resize Font added. 1.0B8 Internal working version- Wider/Narrower buttons activated, several major bug fixes. 1.0B9 Major bug fixes, Colour buttons removed, other cosmetic changes. 1.0B10 Included a temporary workaround for a bug in Display Fonts when the font loaded is a kerned font. 1.0B11 This version. The Kerned Fonts bug is fixed!!!! A few cosmetic changes and bug fixes, including eliminating the Font Info window that showed up full of 0 values when you canceled opening a font. Also fixed was the Watch Cursor that showed up in windows when the arrow cursor should have. Finally, the reminder dialog box now appear only when you have changed the font you have loaded without saving it, rather than whenever any font was loaded. Well, That's about it for now. Please let me know what you think of it- and especially if you find any problems. You can reach me on the following online services... GEnie- A2.MARK.C Applelink Personal Edition- AFC Mark Compuserve- 76324,564 5678 FONTDOCTORr&OfffDOOfoDOHffoDOffoDDDDfofoDDDDOffoDDDDHfofoDOffoDOfofoDOOffo0OffffffoHffffffofo`OffoOfofoFffofofoffofofoffoffff oOdDooOoofooooo FONTDOCTORFONTDOCTORrffffoffoffofffffofoffffffoDDDDOfofoDDDDDffoUUUUfofoffoffffffoffffffofofoffofofoffoffoff2 fffoff` This version of Carpet Bag is only compatably with GS/OS 5.0.2. Place Carpet.Setup in your System.Setup folder and reboot. This init installs a NDA called "Carpet Bag" which can be accessed from the apple pull-down menu. This NDA will allow you to install NDAs and CDAs from within an application. When you choose the Carpet Bag NDA, a standard file dialog will appear to let you select the DA you want. When you find what you want, Carpet Bag will load it and add it to the apple menu. /WAP.2028/Utilities/Desk.Accs.Utils/Install.DA/ This application allows you install CDAs & NDAs without having to reboot. You can have your DAs on a separate disk and load them as needed. /WAP.2028/Utilities/File.Utils/Change.File2.81/ Change-A-File is a utility for batch processing to change file or auxiliary type codes. It reads AWP files. Converts text files to AWP files and AWP files to text files. Converts AW 3.0 files to AW 2.x files (for those who haven't updated to AW 3.0). It will also strip line feeds. /WAP.2028/Utilities/File.Utils/FAZ.v2.6/ This utility allows you to easily change the primary type, auxiliary type, and access bits of any ProDOS file. The file access bits define the ways in which a file may be accessed and control whether or not a file can deleted, renamed, written to, or read, and also indicate whether or not the file has changed since its last backup and whether or not the file should be invisible. /WAP.2028/Utilities/File.Utils/Fixer.v1.1.1/ File Fixer is a SHR mode P16 program that you can use to clean up files downloaded from an information service. It will allow you to clear high-bits / set high-bits, expand tabs / unexpand spaces, filter most control characters, add linefeeds, strip linefeeds, or "just don't do anything with linefeeds." /WAP.2028/Utilities/Font.Utils/FontASM/ This is a GREAT, shareware font editor (sw fee = $20) for the IIgs. It came from France. It allows you to edit, customize and create standard font files, double the font size, convert Mac fonts, and much more. /WAP.2028/Utilities/Font.Utils/Font.Doctor/ Font Doctor is a shareware font. It allows you to edit, customize and create standard font files. FontDoctor 1.0B11 is now fully functional. The bug in previous versions that prevented display, resize, etc. to work with kerned fonts is now taken care of. /WAP.2028/Utilities/Font.Utils/Font.Info.Ed/ FontInfo.Editor allows you to edit the font name and number of your fonts. This program is designed to help you resolve font conflicts which are common among the public domain fonts. The program contains a chart of the font numbers and names currently recommended by Apple Computer Inc. /WAP.2028/Utilities/Graphic.Utils/PSGS.Convert/ This Applesoft program will allow you to move all of your DOS 3.3 Print Shop graphics to ProDOS disks for use by The Print Shop IIGS. It will convert an entire disk of graphics quickly. Includes menus to make it easier to use. /WAP.2028/Utilities/Graphic.Utils/PS.UpGrader/ This short BASIC program will read those Print Shop DOS 3.3 disks and convert the pictures to Print Shop GS format. Then they can be loaded onto your ProDOS hard disk and colored with PSGS. /WAP.2028/Utilities/Graphic.Utils/PWG.Patch/ This patch was written by Jason Harper. It allows PaintWorks Gold to function properly under more recent System versions (such as GS/OS 4.0, 5.0, and 5.0.2). The patched version of PaintWorks Gold requires at least 1.5 meg of RAM. /WAP.2028/Utilities/Graphic.Utils/Slide.Show/ This program is an automatic slide show. It will look at the sub-directory and show all 65 block pictures ($C1) starting with the one you designate. It will then repeat by itself. /WAP.2028/Utilities/Hard.Disk.Notes/Build.Hard.Disk/ This is the text of an information file on how to build your own SCSI hard drive for approximately $650 for a 65 meg drive system, complete with SCSI interface card, using a Seagate STxxxN series drive. Warranty is 1 year directly from Seagate for the drive; power supply warranty varies by vendor. For more information, call The Washington Towne Crier (1-201-689-3649). /WAP.2028/Utilities/Hard.Disk.Notes/HD.Tape.Info/ This file describes how to assemble a hard drive and tape backup in a single case for less than $1000. The directions are easy to follow. Several diagrams are included. A list of "parts" vendors is provided that you can contact. /WAP.2028/Utilities/Hard.Disk.Notes/Share.Hard.Disk/ This file describes how to configure a CMS hard drive, thereby allowing you to share a hard disk between a Mac and a GS. Note the cautions. /WAP.2028/Utilities/Hard.Disk.Notes/Vanilla.Tape/ This file describes how to build your own Vanilla SCSI Tape Backup System. Article includes list of hardware needed, list of vendors (and prices for comparison purposes only), cookbook directions for the assembly, and directions of using HDTAPE, the formatting/backup/restore software authored by Tim Grams. Other miscellaneous info is provided. /WAP.2028/Utilities/Hard.Disk.Utils/Disk.Timer/ This application provides timings for multi-block reads. This will allow you to find the optimum interleave ratio for a hard drive. A list of timings for various hard drives is included for comparison purposes. /WAP.2028/Utilities/Hard.Disk.Utils/HD.Format.v1.2/ A "Low-level" SCSI Hard Disk formatter utility for use with the Apple II SCSI interface card (Rev. C or later). Use it to build your own hard drive, fix bad blocks, or change interleave. Freeware. This version features error codes, set block size, and support for unenhanced //e's. You had better be sure you know what you're doing before trying to use this and MAKE A FULL BACKUP of anthing on your HD FIRST!!!! /WAP.2028/Utilities/Hard.Disk.Utils/SCSI.Hacker/ This is a SCSI HD formatter by Joe Jaworski, author of DiskTimerGS. It will format integrated SCSI HardDisk drives or ST506/SCSI Controller drives. You need Apple's SCSI Card (Rev. C or later) and the SCSI.TOOLS disk that comes with the Rev. C card. READ THE DOCS AND USE WITH GREAT CARE!!!!! /WAP.2028/Utilities/Hard.Disk.Utils/Vanilla.v1.1/ The Plain Vanilla Hard Disk Utility is designed to let you format & partition hard drives connected to an Apple SCSI Card in any IIgs, IIe, or 64K Apple II Plus. It is distributed as shareware. The fee is $5. This program needs a slotted Apple II or clone, and an Apple II SCSI Card with the Revision C ROM. /WAP.2028/Utilities/Misc.Disk.Utils/Check.Disk.Plus/ Here are two programs which check the status of the drives connected to your apples IIGS, IIe's or IIc. They also return information telling you if your 3.5 has the current ROM's or if they may have the early apple" "bug". /WAP.2028/Utilities/Misc.Disk.Utils/DirMap.v1.0/ DirectoryMap allows you to view the directory structure of any GS/OS readable disk in a graphical format. The width shown for each directory is proportional to the amount of disk space taken by files in that directory. Moving the mouse cursor onto a directory will show it's PRODOS block size. This makes it easy to locate directories that are taking up more disk space than expected, perhaps due to some large files that were placed there and forgotten. /WAP.2028/Utilities/Misc.Disk.Utils/Disk.Test/ DISK.TEST uses ProDOS 8 to do three basic speed tests on any disk device, including floppy disks. It reads block 0 a total of 1024 times. It does a sequential read from block 0 to block 1023 (or the max on the drive). And it does a seek test across 1/3 of the drive 100 times. The tests can be used to make ProDOS 8 comparisons between different drives, drive interleaves, and devices. This program is roughly similar to the Disktimer GS program. /WAP.2028/Utilities/Misc.Disk.Utils/InterLeave/ This small program will check the interleave factor on a 3.5" disk on the Smartport chain. (2:1 or 4:1). Nice to have if you don't know i/l factor. /WAP.2028/Utilities/Misc.Disk.Utils/Uni.Version/ The program UNIVER.OBJ was written by Tom Vier to identify the firmware version number for the UniDisk 3.5. If it's #0010, then it is prey to the write protect bug; but if it is #0011, it is the corrected version. /WAP.2028/Utilities/Text.Utils/HTE/ This is "Herb's Text Editor", a IIGS text editor from GEnie, using the TextEdit toolset in GSOS 5.0. It can CUT, COPY, PASTE & CLEAR text selected via the mouse. /WAP.2028/Utilities/Text.Utils/Text.Display/ Text display (v1.3) is a text lister for the IIGS with the ability to change fonts on-screen and scroll text vertically and horizontally. /WAP.2028/Utilities/Virus.Utils/Vaccine2.v1.1/ Vaccine ][ 1.1, a virus detector for the IIgs by Joe Jaworski. /WAP.2028/Utilities/Virus.Utils/Virus.Check/ A "LodeRunner" virus-checker from La Belle Francais. "VirusCheck.SHK" uses a custom OS (operating system.) and is included on this disk in a compressed format. Before using this file, you will have to "un-shrink" this file with the application "ShrinkIt v2.1" ShrinkIt can be found on WAP's TCS.1.04 disk. **Contains an acronym on the screen that may be offensive to some people** /WAP.2028/Utilities/Virus.Utils/Virus.Detector/ This is a new version of the Block0Save virus detector. It has been enhanced and works with GSOS. Virus Detector fixes the bug in BLK0SAVE that caused it to sometimes incorrectly identify which volume was the boot volume. Virus Detector will detect any infection of CyberAIDS or Festering Hate on your system. /WAP.2028/Utilities/Virus.Utils/WOP.FOG.Vaccine/ This is a vaccine for the CyperAIDS or WOP-FOG virus that been making the rounds of some of the BBS's. Useful only for this particular strain of virus and may not be effective against other viruses.  :)10:"WAP.2028 Utilities 1"L::10:"Washington Apple PI"s(6:"7910 Woodmont Ave. Suite 910"210:"Bethesda, MD 20814"<13:"(301) 654-8060"F::P10:"1 Read the Docs"Z:d10:"2 Exit to BASIC"n: x10:"3 Quit to ProDOS"% ::C 11:"------------------"c 10:"< Enter 1, 2, or 3 >" 11:"------------------" A$ A$"1"ĺ(4)"-WINDOWS" A$"2"ė: A$"3"ĺ(4)"BYE" 170B*L(sBFONTVIEW.SYS16SFONTASMv/' ^'/FONTASM.A.SYS16Q O% P-FONTASM.A.DOCwPFONTASM.BOOSTqF! PFONTASM.ICONr'8/PFINDER.DATAzj'$p/PRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~F ,@ main F "","|") ;8[i1"=0"=0"=0"="="=Ģ*"={i+k ;8[iHH H "=hk"=ĭ=>HH/"=h"pI4AA"z"="=Ă㪧㪧X@ 㪧i˔˔HH"IH??"jhI"!"H㪧/㪧i˔˔HH"I" p"="={i+k Memory low ! ;8[ik"z d d"(H"4Jh {i+kFONTASM.BOOST missing. ;8[ik"zd"("K{i+kFONTASM.BOOST missing. ;8[i+C+1E1/+81/H"1h +C+1EC+ 1/Ⓣ"@{i+k ;8[id   % ~ "hץׂY@   ?{i+ ;i k ;8[iHHg"=hņǩ(ϩdѩ`m+өHH{iH "=h߆ߢ"=ĩ"Jhˆͩ$m+ϩѩ3m+ө{iH H "="="=7:"="=ĩϩ}ѩө{iH "=ĩϩѩm+өե::ץ::::٥ۥ{iHS"=ĭHH "=ĭH"Jh"JhH+H"=į ڿ~ھ ڿڿ"=ھھڿڿ"{iHU"=Ţ%"=ĩH"={iH&"=m/H:"=ڿڿ"=ĭHH"=Ţ$"=ھھڿڿ"IHˢ"=hɥ  HH""=ߢ "=Ţh"={i+k String : ;8[iAש٩}۩HH{iH "=h߆ߢ"=ĩ "Jhӆթ(ש٩7۩d{iH H "=ĩ٩{iH H "="="=:"=  "=F:"= "=ĩש٩"۩<{iH "=HH"=hφڿڿ"=Hڿڿ"h婀8pID{iH"Bhڿڿ{iH"Iڿڿ "=ĭڿ)   Ϣ"=ĩ r Ϣ"= r HӢ"=hͥ    ߢ "=ĥ8pI0H "hGeG  %' HHwH8H"f {"̇"Z{i+k Pixel(s).Characters' width ;8[iH "Wh8pI0H "hGeG  %' eHHwH8H"f {"̇"Z{i+kShift font right ;8[iH "Wh8pI0H "hGeG  %' 8HHwH8H"f {"̇"Z{i+kShift font left ;8[i <өթשHH{iH "=hۆۢ"=ĩ "Jhφѩ2өթAשd{iH H "=ĩթ{iH H "="="=:"=//"=:"=:"=#:"=##"=#:"=:"=!!{iH"6ڿڿ{iH"I{iH"6ھھ{iH"Iөթש{iHڿڿH "=ĩө({iHھھH "=HH"=hˆͩߩc8pIcڿڿ"=Hڿڿ"h8pIB߅{iH"Bhڿڿ{iH"Iڿڿ "=ھھ"=Hھھ"h8pIB߅{iH"Bhھھ{iH"Iھھ "=ĭڿ)8pI]ڿ)8pI0A媽ڿ)-$: ڿ ڿڿ "=Ă 傿 ھ)8pI]ھ)8pI0A媽ھ)-$: ھ ھھ "=Ă 傿 ڿ) ھ )  8pI  8pI  ˢ"=ĩ r ˢ"= r HϢ"=hɥ    Jۢ "=ĥ8pI0H "hGeG  %K 8e8HiH"fHHwH8H"f W"̇"Z {i+k00 Add to endsAdd to origins ;8[i  "(8pI0HH "hGeGHH "hSeSH"")傸C` _ 1"=0"=0"=ĩ")"*{i+k*Copying into auxiliary font in progress... ;8[i "=ĩ8pI0)H "hSeSH"` _c 0"=  1"=1"=Ģ"={i+k ;8[iȗiʅCH"`hۆHHۭH "=hȊ"zȗ HH "=Ġ 盛HH"`8CpI.ʅ`H"`hۆݠ 盛HH 盛HH" HH""={i+  ;ik ;8[iV XXHVH"=nn"(8pI0HH "hSeSHH "hGeGH"")傸")"*"̇"Z"{i+kFilling from auxiliary font... ;8[id"(V XXHVH"=ĩ<٩۩xݩHH{iH "=h"=ĩ "JhՆש#٩۩2ݩd{iH H "=ĩ۩{iH H "="="=:"="={iHCH"Bhڿڿ{iH"I ٩۩ݩ{iHڿڿH "=HH"=hцڿڿ"=Hڿڿ"h婀8pID{iH"Bhڿڿ{iH"Iڿڿ "=ĥ8pIѢ"=ĩ r Ѣ"= r Hբ"=hϥ     "=ĥ=C",CEe8CEEE"f""{i+k New Height : ;8[iH"jhI"!"{i+kLoad which font : ;8[iH "hGeG ҆Ԡ񅼠񅾠wݠwHiH"fgHHwH88H"fH "hOQ d  "z"zۥ  {iH "fCH"hʅ†HH­H "=hֆذ"z֢ "=ĥH "hOQΆХH "hGeG֗ȥؗݠHiH"f֪օƆȩ߭C8pI04΅ʥЅ̩ۅ8pI0 d )) ))0)  Ʀ"JhƆȥ ډmd ))  )))  Ʀ"JhƆʦ"Jhʆ HΦ"JhΆХ߂Ң"=֢""= d {i+;ik ;8[iV XXHVH"="(8pI0%H"h") ")"*"̇"Z"{i+k"Horizontal doubling in progress... ;8[id ,"=ĂV XXHVH"=ĭ+m+C1m1E8CpICEmC8+8+EEE"fmc"f""̇"Z"{i+k ;8[ibId eJH!!"|hH"Oh!w 1"=1"=1"=0"="=X"=1"="=Ģ*"=ĭV XXHVH "=ĜVX h "ZssH" HH"=Ĝ8pI0SH "hOQ0H "hQHOH"=ĥH "hOQ傭 bc " e {i+kthe font ;8[i "=HHۺۺH-"=hH "=HHۻۻH-"=hH "=HHڼڼH-"=hH "=HH۷۷H-"=hH "=HH۸۸H-"=hH "=HH۹۹H-"=hH "=,"=H"=hf"=.3"=Ģ*"={i+k ;8[i۩߭쓉 ݩ ݩ6HH{iH "=h"=ĩ}۩dݩߩ{iH H "="="=Hڿڿ "=h8pI:"=ĂSթ ש "=H&&"=h,8"zH:"=&&"=Ģ"="=-:"=&&"="=A:"=&&"=K:"=&&"=U:"=&&"=_:"=g&g&"=i:"=B&B&"=x:"='&'&"={iH"Bhڿڿ{iH"Iڿڿ"=#&#&"=ڿڿ"=."=H"=h "=ĭ쓉"܈{i+k x Maximum matrix size : $are copyrighted by TML Systems, Inc.!Certain portions of this software(c) 1988 TML Systems, Inc.Documentation on disk.(c) 1989 Stephan HADINGER. Version 1.0 F O N T A S M F O N T A S M ;8[iߥݥ݂""E""7d"("a~"w">p"4i"bH"Oh ⓂT"M"( F" ?" 8"1"x*"o#"#"Ld"("Z^"P"b"o"([""S"XS"I "*\쓉 "*\ "E wd e-b\H))"|h,H"OhI  & 퓂  *?-./3ɑ_ɒɓVɔ\ɕɖɗ s_YZ[\]_ɽɾɿ ߢ,"={i+;ikthe font ;8[i H"=h)\+,"=ĭHH"'HH"=h"_'HH"=hVX"*q"=ĥ  ͎쐔  0"=  1"= 1"=ĂHH"HH"'͎쐔"([?"E'VXo"(["HH"`VX HH":+P"`8 '& h " h 퓉 de "{i+k ;8[iH"~h+"!"=ĩ 쓜hi "v-... . .. "HH"=hHH"=h _ <>---. .bc " e HJVXy{}wsu+--"I"Pp%%H" C"")";{i+k 170026938603106/02/70 78.59.09.94 ;8[id    "hץׂk0 rI %  % 8pI80pI 0 98pI 0%    - % \     8ApI 0 F8pI 0%  8apI 0 f8pI 0%$ 8aiAʠȊ ~ p ӆ{iH"=H{iHO"7h #H{iHO"7h H{iH쇢O"7h H{iH䇢O"7h H{iH܇܇O"7h {H{iHԇԇO"7h QH{iḢ̇O"7h 'H{iHććO"7h  {i+ ;i k ;8[i"([(ϩdѩөHH{iH "=h׆ע"=ĩ."Jhˆͩdϩsѩsөե "I@@ @ {iH H "=ĩѩE{iH H "="="=7:"=@"=s:"=:"=Ģ6"=7"=:"=="=]:"=="=,"=:"=]<"=,"=(:"=@"=(:"=:"=7:"=@"=7:"=:"=F:"=z@"=F:"=$"=U:"=u@"=U:"=$"=(:"=n~@"=^(:"=:"={iH+H"Bhڿڿ{iH"Im(:"=ڿڿ"=7:"=dt@"=^7:"=:"=F:"=Yi@"=^F:"=:"=U:"=Qa@"=^U:"=:"=ĩ}H "={iH3H"Bhڿڿ{iH"IKćhƇXȇʇ ććڿڿH "={iH1H"Bhڿڿ{iH"I<̇h·IЇ҇ ̇̇ڿڿH "={iH+81H"Bhڿڿ{iH"I-ԇhև:؇ڇԇԇڿڿH "=į\@ڿ^@ܿ `@޿ HۿۿH ""=ĩK܇އX܇܇ڿڿH "=įW@ڿY@ܿ [@޿ HۿۿH ""=ĩ<䇩懩I臩ڿڿH "={iHH"Bhڿڿ{iH"I-쇩:ڿڿH "={iHH"Bhڿڿ{iH"I􇩌+ڿڿH "=ĩHH"=hdž r ڿڿ"=ĭڿ)  r Hڿڿ"hۭ+8pIC+{iH"Bhڿڿ{iH"Iڿڿ "=ĭ+8ۅ{iH+H"f{iH"Bhڿڿ{iH"I ڿڿ "=ĭ  ڿڿ"=ĭڿ)  r Hڿڿ"hݭ+8pIC+{iH"Bhڿڿ{iH"I ڿڿ "=ĭ+8݅{iH+H"f{iH"Bhڿڿ{iH"Iڿڿ "=ڿڿ"=ĭڿ)  r ڿڿ"=ĭڿ)  r Hڿڿ"hߥ8pI  r ڿڿ"=ĭڿ)  r ڿ)8pIڿ)8pI0A᪽ڿ)-$: ڿ ڿڿ "=Ă Ⴟ HۿۿHڿ)H ("=h߰  r Hڿڿ"hߥ  r ڿڿ"=ĭڿ)  r ڿڿ"=ĭڿ)  r ڿڿ"=ĭڿ)  r Hڿڿ"hߩ8pI  r rǢ"=ĂǢ"=Hˢ"=hť    Oڿڿ"=ooڿڿ"Iڿڿ"=Hڿڿ"hߥߍc"fڿڿ"=Hڿڿ"hߥ    ߍڿڿ"=HۿۿHڿ)H $"=hڿڿ"=HۿۿHڿ)H $"=h ڿڿ"=Hڿڿ"hߥߍ111+H"f+8ߍ/ ڿڿ"=Hڿڿ"hߥߍ333"f e  d ע "={i+;ik00000000Leading Descent AscentHeightTypeStyleFamilySizeNameSave ;8[i1I'HH "=ĭH"Jh"JhHH H" H"JhHH"HH""=ĭo)͏8HHHH"=hۆݭHۦ"Uho)H"Jh߆ߥۦ"pI߭HH"=İ"zHH "=ĭH"Uho)H"Jh孤HHHH"ooHHo)H"߭HH"=İ"zHH "=ĭo)H"UhH"JhHHHH"mooHHo)H"HH""=oo"I){i+k ;8[i )8pI  )ZG\G^G`Gc"f     CSG##";KG%%">8-pI .>G"z33"f8pI/G"zF8푘pIG"zv   G"z7 8pIF"z8pIF"z!8pIF"z8!pIF"z!8pIF"z-8pIF"zm+8pIF"zL8+pIyF"z+11+H"f1I'+81/ d {i+kHeight too big.fRectHeight < 0 Font too big.lastChar < firstCharlastChar > 255 lastChar < 1firstChar > 255 firstChar < 0Incorrect family number.offsetToMF > 70offsetToMF < 6 Font > 32Kb.kernMaxwidMaxUnnamed ;8[i?8pI0 @)  ?)  @)  ?)  ? oHH "=ĭ!8H"Jh"Jh H"Jh- H"Jh H"Uh߆ 77eHHH H" Hߦ"Jh߆ ??eHHH H"HH""=Ĝ#)%8pI %I!8pI0 ?e?t)#8pI)#) }7 87)8pI)m%孛8pI卛 ^8#pI#{i+k ;8[i "=ĩ˔˔KMKK"=İ=F˔˔KMOQSUWY[KK"=İ˔˔MOQSKK"=İuMOHHHH"=hQSKK"=İ)KK"= ed "=Ă, "p"=KK"=ĩ {i+k ;8[ibI"z=d:L "=ĭ H"4Jh {i+k Save font : ;8[iprddߩ> ፭ H"=hd:!OH "=ĭ˔˔MOQSKK"=İKK"=İMOHHH "=h݆ߠݪ݅نۥQSٍMۍOKK"=İ?KK"=ĩNt vxzd5HHtt "=hprrHpH"= :"=!O"=:"=٦"JhH"=٦"JhՆ:"=ĥHH"=d:!O!O "=ĭ˔˔KMKK"=ĩ˔˔KMOQSUWY[KK"=İ˔˔MOQSKK"=İnՍM׍O"UhQSKK"=İ6KK"=ĭrHpH "=ݢ"=ĂM "pKK"=ĭp rrHpH "=ĥݢ"={i+k Font.defaultSave GS font : Font : Convert Macintosh font : ;8[iHz"P"jh[H"1hI"@H"4JhI HH"=Ĝ be {i+k"Modify parameters of which font : ;8[i"="= :"=%S"=􏗢"=$S"={iHH"Bhڿڿ{iH"Iڿڿ"=$R"={iHH"Bhڿڿ{iH"Iڿڿ"=."=HH "=H"Jh"JhH"=83㯞߯寢8pI0jI"h - o/o3H:"=o+o3 HH"=ߪ߅߆|HH"=HH""={i+k , family = , size = Font : ;8[iH"7hHHH "7h {i+k ;8[iHHH "7h {i+k ;8[i d Aѩ}խ쓉 өׂ #өHH{iH "=hن٢"=ĩ(ѩө7թd{iH H "=ĩө{iH H "="="=:"=(%V"=ĩѩө"թdݥڿڿ(V"I{iH ڿڿH "=H"=hϥJH."=hݥ/"=Ă/"=ĥ    k<H."=hݥ    ٢ "={i+;ik Double width.Font printing : ;8[i  )HHH "7hI ="p3)   H)Hjj"ShIz@V  "h "=ddéŭjũǩͭj@ͥϥѥÅӥŅխj(HHH "=h%HH`H "=h="z j KɆ{iH"={iH"={iH"={iH"=HHg"=h  {iHl"= "= $"= {"= h"="P"=HHHH"=h=ą "=ĥ =ą %{iH{iH"="=ĥ =ą "=ĥ =ą {iH"=ĭV) 8pI  %" HH"= =ĥ "pHH"=ԽԻ"=Ģ"= j {i+k ;8[i 1"=ĭHH "=Ĝ R孢8pI0;㭠HH"F፞㍠{i+k ;8[i 1"=ĭHH"=ĭoHH "=Ĝ"ZHH"=ĜI "*\ b 0"=1"=1"=.1"=/1"="=Ģ*"= o {i+k ;8[i"=ĭ HH"=Ģ"="=ĭ쓉d"="={iH "={iH"=Ģ"=ĭHH"=Ģ"=ĭ쓉@"=Ģ"=Ģ%"=Ģ)"=Ģ/"=Ģ"=ĭIHH@@ "=h쓉#.3"=/3"=Ă /3"=.3"=9"=ĭ q쓉`,†HHH"=ĭ쓉HH"=ĭHH"={i+k ;8[i 'HH"=ĭHH"=ĂY3a3a{iHH"Bh{iH3a{iH"6ĆĆ{iH"IN@܍BĆĆDFHJLNPRTVXZ\^`bFdfh'jlnprtvxPz|~dHH@@ "=hHH"=ĭH+H"="a ȗ׭٢ "=ĭߥd߅!8pI0 ? 77 ?)e!dv8pI0) 娥 T{iH"ۗȥݗץۅץ݅٩  נ ȗ ?)  "=ĭ+m3H"hi83††㩟8†pI†쓉`†HHH"=Ă,†HHH"=㭐HHA"=ĭHH"= o {i+k   ;8[iH;i"jh-XX"I"I;;??"I77"Iۭݜ b N   68:<>@BDF-HbJLNPRHH "=hTVVHTH"= :"=;i"=Z :"="=, :"=;i"={iHH"Bhھھ{iH"Iھھ"=,"=ĭ "HH"=Ĝ eb  H;i"jh)VHTH "=ۢ"=ĜTV'XX"I";i"z  -Ⓣ ;i"z m -Ⓣ ;i"z ⓭Ⓣ VHTH"=:"=s;i"=Z:"=􏗢"=,:"=k;{i"={iHH"Bhھھ{iH"Iھھ"=,"=d٭㭒8pI0 ;T ?B < ?)e8pI ; ق? ;))&٩8pI ; PVHTH"={iH"Bhھھ{iH"I :"=ھھ"= :"=Z;ji"=d٭!8pI0 ;g ;)"z8pI ?)) ? @ ? yVHTH"={iH"Bhھھ{iH"I:"=ھھ"=:"=I;Yi"=??"I77"IXX"I??;;"I77"I߭ۍݍ"I"bGXX"I"K HH"= e ߍ፦XX"I??"I77"I"bGXX"I"K HH"=Ĝ eb VHTH "=ĜTV{i+kmodification(s).modification(s).Size = Font x :It's not half size !Different family !Different font name !Adjust font, size x :Size = Font 2x :Adjust font, size 2x : ;8[i{iHHH"I b  HH/"=h"pI @APo"zB ȍ H"=h?AOo{iH"  -d:{iHH "=ĭI "= d ˔˔KMKK"=İQ0A@o"z=Ăj˔˔MOQSKK"=İ@ KK"=İMۭOHHۭH "=h"zHH "=ĭ׆٥ۍQݍS׍MٍOKK"=İKK"=İo dΜc ߩ8pI0 7 ?߂ӆեӅϥՅѥHH")HӦ"Jh"JhφѥHHL"HӦ"Jh"Jh󭑘 H"JhφѥHH"!8 HӦ"Jh"Jh󭑘 H"Jh- H"JhH"UhφѥHH 77eHH"HϦ"JhφѥHH ??eHH""=H"Ch$HH"=Ĝ "bG b " e +C1EHH""= d [ "p"=ĥΉKK"=ĭ HH"=Ĝ b {i+;ikBad file type. Memory low ! ;8[i"Z^1"=0"=0"=.0"=/0"="=Ģ*"=ĩ o {i+k ;8[iHA p"jhI"^o{i+kDisplay which font : ;8[iH?BOp"jhI"^o{i+k ;8[i oj {i+k ;8[iۥݥۅ݅{i+;ik ;8[i=ą٥"=Ģ,"=įzzÓzœ٩ÓÓH ""=ĩ2۩ݩdߩHH{iH "=h"=ĩ۩Uݩ-ߩ{iH H "=įz ڿ ق1ڿڿ uz"I;ڿڿ cz"I%XzڿZzܿ\z޿^z࿯`z bz係ڿڿ Gz"Iڿڿ 8z"Iڿڿ %z"Iڿڿ z"Iڿڿ y"Iڿڿf y"IrڿڿV y"I\ڿڿD y"IFڿڿ4 y"I0ڿڿ y"Iڿڿ y "Iڿڿvy"Iڿڿgy"IڿڿMy"Iڿڿ4y"Iڿڿy"Iڿڿ y"Iڿڿx"Ijڿڿdx"ITڿڿKx"I>ڿڿ3x"I(ڿڿ$x"Iڿڿx"Iڿڿ|x"Iڿڿhx"IڿڿYx"Iڿڿ>x"Iڿڿ%x"Iڿڿ!"Ixڿڿx"Ibڿڿx"ILڿڿiw"I6ڿڿIw "I '+ ./&@4BBCPD^ElFzGHIJKLMNPQRS"T0U>WLXZYhZv[ "="=ĩ8pI  8pI %G H9w"=h8"zH :"=)w"= D H w"=h8"zH :"=w"= ڿ )CHڿڿ"=h8"zH:"=ڿڿ"=Ă@H"=h8"zH:"="=H"=h "={i+kError :Error :ProDOS error :ProDOS error :Read-write error (LaserWriter).Bad connection to LaserWriter.Bad LaserPrep file.Bad LaserPrep.Illegal pathname change.Block number out of range.Invalid level.Not a block device.Duplicate volume.VCB table full.Out of memory.Parameter out of range.Unsupported volume type.Directory structure damaged. File is open.Access not allowed.Position out of range.End-od-file encountered.Unsupported storage type.Version error.Volume directory full. Volume full.Duplicate pathname.File not found.Volume not found.Path not found.Invalid file reference num.FCB table full.Invalid pathname syntax.Device not online.Disk switched.Write-protected. I/O error.Device not found.ProDOS is busy.$0000 ;8[i{iHHH"I"=Ģ,"=ĩ2թשd٩HH{iH "=h݆ݢ"=ĩթש-٩{iH H "="="=ĥCH |"=h^8"zH :"= |"=Ă@H }|"=h^8"zH :"= r|"=H{iH"=h^8"zH:"={iH"=H"=hݢ "={i+;ik Warning : Warning :Error :Error : ;8[i{iHHH"IHH"=hцөF٩۩ݩHH{iH "=hՆբ"=ĩ٩۩-ݩd{iH H "=ĩ2٩A{iH H "=ĩ۩{iH H "="="= :"=~"={iH"=:"=~"=H"=hբ "=Ѣ"={i+;ikbefore closing ?Do you want to save ;8[iV"=H"=h䓭 擢"=HH H "=h蓎ꓭ蓮꓅eeH"=ĥeiHH"="/6"="="=7"="=ĩ2]ia_c{i]HT"=7"=,"=ĥ]]a::a__c::::c{i]HS"="=F:"=."="=P:"="=_:"={"={iWH"Bhڿڿ{iWH"Iڿڿ"=w"=ڿڿ"=."=Ģ6"=ĩ kmoqsuwy{} "=Ģ"={ikH"=İL"=H<dރE>9"=h"=Ă  d "=ĭH"=ĭHeiH"=ĭHeiH"=ĥeiHH"=ĭH"=ĭHeiH"=Ģ"=Ģ"=ĭHeiH"=ĭHei H"=HHH "=hHH "=ꩣ)H "=HhhpHhhYHhh[HhhWHhhWHHY["zph"Uhln=  k  k "=9"={i+k1/FONTASM.BOOSTQuitReloador too old. (system disk v3.1)Some tools are out x Maximum matrix size : (c) 1989 Stephan HADINGER. FONTASM 1.0 ;8[iHpH"=h "=Ģ"=Ģ"=Ģ"=Ģ"=Ģ"=Ģ"=Ģ"=Ģ"=Ģ"=Ģ"=Ģ"=Ģ"=Ģ"=Ģ"=ĭH"=ĭH"=Ģ"={i+k ;8[id   % "hץׂ8  rI % k 80pI 0 98pI 0% + - -㓉 {i+ ;i k ;8[i8pI8pI{i+  ;ik ;8[i{iHHH"I8pI`{iHNȇ{iH"Bh{iH{iH"6ڿڿ{iH"Iڿڿ"z8pI`{iHJć{iH"Bh{iH{iH"6ڿڿ{iH"Iڿڿ"z{i+ ;i k <  > ;8[i d 9"=1"={i+k ;8[i d 9"=0"={i+k ;8[i)٩եم8pI0:Մ먷 Ղ)שեׅ8pI0"e:Մ먷 Ղ{i+ ;i k ;8[i۩ߩ2ݩNHH{iH "=h"=ĩ۩ݩߩ@{iH (H "="="=:"=㌢"=:"=Y"=#:"=T"=-:"="=7:"=ϋ"=A:"=I􈋢"=K:"=H􇋢"=U:"=G􆋢"=_:"=5t"=i:"=!`"=s:"= K"=}:"=7"=H"=h "={i+k FRANCE69340 FRANCHEVILLE8 Grande rue B2Stephan HADINGERFor new versions. It is only YOU who can help me writing such programs.Ccommercial equivalent, and to be informed about future enhancements@address below to support the develompent of Fontasm which has noCand if you want to keep on using it, please send a $20 check to theJfriends. You can use it freely during two weeks. Then if you are satisfiedDThis soft is under ShareWare. Please copy it and give it to all yourTHANKS ;8[i ["IL"Iïïïïï)hS<$ іv{iH "6{iH"IbH _ = 1 {iH"6{iH"I ҕ Õy Y < {{iH"6{iH"I % d"I Y = % {iH"6ڹڹ{iH"I Δ Ôs _ T : y$ c N C 2{iH "6ڸڸ{iH"I    ԓ Ɠ| n {iH "6ڷڷ{iH"IZ B * i I > % {iH"6ڿڿ{iH"I  ƒd {iH"6ھھ{iH"IڼڼڿڿHھھH"?M 1 p U <   {iH"6ڻڻ{iH"I ɑr U 4 s) h9{iH"6ںں{iH"I{i+k.==Convert font : Macintosh -> GS\N704*Gg. ==-\N299D ==Adjust a couple of fonts\N703==Modify parameters\N702*Mm==Display font\N701*Dd>> Utilities \N700==Spaces...\N605.==Double horizontally\N604 ==-\N299D ==Non-proportional font...\N607==Shift margins...\N603==Shift font left...\N602==Shift font right...\N601>> Special \N600D"==Fill with auxiliary font\N510D.==Clear auxiliary font\N508D!==Copy into auxiliary font\N507D ==-\N299D==Double font\N505==Change height...\N504 ==-\N299D==Modify parameters...\N503*Mm==Test font...\N509*Tt==Display font\N501*Dd>> Font \N500D ==Add\N298D. ==-\N299D ==Clear\N254==Paste\N253*Vv==Copy\N252*Cc==Cut\N251*Xx ==-\N299D==Undo\N250*Zz>> Edit \N299==Quit\N499*Qq. ==-\N299D==Print...\N407*PpD==Page setup...\N406==Choose printer...\N405 ==-\N299D==Save as...\N404D==Save\N403*SsD ==-\N299D==Close font\N402*KkD==Open...\N401*Oo>> File \N400== 320 x 200 \N303*<>D==About FONTASM...\N301*?? >>@\N300X Select a character : == Next character\N1406*++.== Previous character\N1405*-- ==-\N1402== Grid\N1401== Change dimensions\N1403>> Misc \N1400.==Get a character from auxiliary font\N1304D. ==-\N1300D!==Save character and close\N1303'==Save character and continue\N1302*Ss==Close editing\N1301*Kk>> Edit \N1300==Double vertically\N1206.==Double horizontally\N1205 ==-\N1200D==Repeat...\N1207==Shift left\N1204*Ll==Shift right\N1203*Rr==Shift down\N1202*Dd==Shift up\N1201*Uu>> Special \N1200 Clipboard  Reduced view Out of memoryNoYesCancelOKHA?;it{vHH ;[ H "H"hxHHxH "hlhnH "HHHxH "hphre: "kHH ;[nHlH"rHpH""z" d&2)H "h "Ԣ"""xH"tv[ZI8kHH"hEG{"kGHEH"k0;8 ;[H"h#H({iH "h%)))XHH "h: ) )Id   +;i08k"=k ;[ g h :T+  ;i k ;[  e:e::D+  ;i k ;[   :0 )   h)+H   ;i(k HH;[H"h H "    hh+;ik ;[HH""+;ik ;[0  +  ;i k ;[0  +  ;i k ;[0   +  ;ik ;[  Ȁ +  ;ik ;[  Ȁ +  ;ik ;8 [  d) e )e     ;e i ;[907301 )80'e     +  ;ikHH ;[ d0b) W  gF @ e )e)8 0  ):  +;ik HH;[ F0D @0>)8 04  8 8  e :e   hh+  ;ik H;[d 8 2 )    8 ) h+  ;ik {cH;[hh+hk {cH;[ JJJ -)0 0 0 0 0 0 0  hh+hhk {cH;[  :JJJ 1)0 0 0 0 0 0 0  hh+;ik{cH ;[ +;ik{cH ;[ I7+;ik{cH ;[ 7+;ik ;[   (+;i (k ;[I7   (+;i (k ;[ I7  (+;i (k ;[ jjjjjjjj +;ik ;[JJJ+)0 0 0 0 0 0 0 7    (+;i(k H;[IIʩ FeI+k H;[ I Iʀ f  8 F F I+kcck8k H;[IIIIʀFf ee&IIhhhh+k H;[ I I IIʀ&&ff !  8  FfFfͥ  IIzzzzzz+kIIkIIk##kkCCkIIk8 # zz(k *kJjkjjjk***k;8 ;[  {iH "{iH{i H " +;ik;8 ;[  {iH "{iH{i H " +;ik;8 ;[H({iH "7h+;ik;8 ;[H({iH "h)+;ik ;[:"hH "h::H:"+;ik;8 ;[{iH "{iHU""e+;ik;8  ;[{i H)" 8   {iHU"+;i k;8 ;[{i H)" 8d  "zH"eHHg"h{iH ~"h"+;ik;8 ;[{i H)" 8d  "zH"eHHg"h{iH~"h"+;ik ;[) ɨeH0"+;ikHHH ;[ HHHHH &"  Ȁ8: ))e:  +  ;ikHHH ;[H HHH HH '"  Ȁ 8: ))e:  +  ;i k;8% ;[$ &{i$H-H+H{iH "{i$H{iH1H/H "+'+&*;i)k ;[HHH)H ("h +;ik ;[HHHH)H )"h h +;ik;8& ;[.H,H{iH{iH{iH "{iH2H0H "+(,'+;i*kHHH ;[ )f A [8Ai a {8ai 80))  J ) J) +  ;i k""""""""""""""""""""""""""""""""33333333333333333333333333333333DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUffffffffffffffffffffffffffffffffwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww ;[;8 ")) )))));i+;ik ;[ HH H HHH "+  ;i k ;[;8")) ;i+;ik ;[;8" ;i+;ik ;[;8+" ;i+;ik ;[HHHHHH H$"h hhh+;ik ;[;8 " ;i+  ;ik ;[;8 " ;i+  ;ik ;[;8 " ;i+  ;ikHH;iHHHHHڢ "hhk    hPhRZ"RHPHkHHHH "hk ;[  "ኇ+ ;i k   ;[Z z Z"+hhhk . &     ;[Z z Z"+hhk ;[ ڢ "+  ;ik ;[  "+  ;ik   ڢ "+  ;ik ;[ " +hhk;iHHHڢ "ኃhhk ;[d  +hhk ;[ȗȥ @ȩ+hkH "hk ;[ "  +hhkHH "hhkH "hk;iH "hk "  k H H H H "(p0   ;ikA?gW   6  I /C#p!K n ' !C$&r$&$&$&$&%&6%g&V%B&v%'&%#&r()--G2.=3@4@N4@4@4@5~@5t@5i@6a@pDSGDKGD>GD/GDG;EG`EFEFEFEFEFFF&FFGFFKL]LOMORNOXNOPPPS QSUQRT%VTV^a^a^ae_Pbi!ciaciciSdidididi7e{ifjigYisjPojOoVk@oo p.pOpquzqczrGzr8z3r%zIr z_ryuryryryryryryrvysgy%sMy;s4yQsygs y}sxsxsxsxsxsxt|xthx-tYxCt>xYt%xtxtxtwtwMvw|vwvwvws{|{|{}|{r|}~-~~#.Ppރȁ΁ȇXćY(𾉘މTϋ>^~t`ފK7𕍚𨍋ߍhS<$  і;AG_M=S1YҕÕ𗎸𝎘{ՎdY=%  &,Δ2Ô8>DJyPcVN\Cb2ԓƓ𸏻𾏭ꏙiI>%:@FƒL𒐌pU<ɑsh9ڗ=gzzzY{ "ɨTjҁZ9F FsNށ ρ܃*Fu9YyuD@Qs>c)J`U[ X݉b$dV:݂vY1 6Lbx (>Tj0F\ʁPƄv0&Ssс[V!Aa >DJPV\#)/5;AGMSY_e =CIO \% t pGց#/MV%Go}jKR4Lf xhW4!4[_$#f~+-:e|_(/ESZaiv}&?xt CJQXap]BlP?W gAHQ5M%=p2et  -F2Q0^  3Di/Pd\h"h"t,?D(@tR,Eq]{X!EV4GZm~:J\Tlt 2Elp 3e|_ (4Qj+P_k4D &ELUZ^pv| %1>TZ`fsy.KUXl #@JMa} (7ADW_|>MWZm|%4{2?IMUcgt~ "?:JNY\blp{<[^@Cehk $*7Kiy Ot:Z`horvyr !,/39ARY\ax '*SV\_eow "(2@JO]sy"9>Qit~( (6@FLORUX[^adgjmpsy9Idnq| !'1?ILP[i{ VYaepsv{~1G}:>Lfjx 7Wr%De| CFRVp #&j{ 'L`s .;lz/8IMXfpu 58JMQ\_jny|>ADLP[eru%/9CMPpy/3>AEPgjrv3  #&),/28>DJMPSVY\_hkqw} $'>UrwDGKP`cfo((.;ANTagqv{~.>DN^nz"%.4AGbgjw$4DP]s}DW[f}->O\qu&,9?INUZ`fw} '*-25:>ILO >Z'-06@Kciorux~ "',17AOYh >dnry|;CL[lp{~ "y _bgjmp :Nx 0F\r "8Ndz *@Vlrā Zy ",6U[ev 0KXe%8IZ KQ^dA+1>DZpz#)6<]ctz*3l{4L a@{ -CYo 5Kaw '=Sio)X3?zȆ/%o x$bxFK ,@ ~global Km{ ,@ editor m{ ;8[i8pI0H "hSeSȗH "hGeGȗl`{i+k ;8[iEI"6VyHH"=h"zN͎쐔"6V6 i "? i dd"z{i+kThis window cannot be printed.No window to print. ;8[i<ש٩۩HH{iH "=h߆ߢ"=ĩ "Jhӆթ2ש٩A۩d{iH H "=ĩ٩{iH H "="="=:"="=:"=:"=#:"="=#:"=:"={iHɠH"Bhڿڿ{iH"I{iHH"Bhھھ{iH"Iש٩۩{iHڿڿH "=ĩש({iHھھH "=HH"=hφڿڿ"=Hڿڿ"h㩀8pID{iH"Bhڿڿ{iH"Iڿڿ "=ھھ"=Hھھ"h婀8pID{iH"Bhھھ{iH"Iھھ "=ĭڿ) ھ )  8pI  8pI  Ϣ"=ĩ r Ϣ"= r HӢ"=hͥ    .ߢ "=ĥǠɠ"̇"Z{i+kNon-breaking space Normal space ;8[icI ,"=Ă>k@@"z#ɠ   **"z" dۥ  H "hOQ  H "hI  "zeݥ  H "hOQ  H "hI  "z8K٥ۅ݅8pI0 H "h}K٥ "zi"z˥ CH"hʅцѩ"pI  8pI  "z  ѩ}"pI "z) ei"Jh H"JhцӭHH""=ѭHH"=İ"z\HH "=ĭ)HH"džɭHǦ"Jh"Jh H"JhÆũ8pI0 ? 7 :H"(eˢʅՆdϩͥۅ8pI0pd8H") ϝ7H "hI{iH"fH "hOQ8H "hI ? @ ? H "hMߥ "zH "hG8pIH "hGH "hOQHHCHH "hKHKbnHlHkH "h}K ゐ ϝ7")ۅ8pI0{d ?KH "hK4H "hG8ͅ{iH"f @ ゅ͍%C+E1ˍ5+H"him˥ˍ-ۍݍ!H"Ch "z"bGDžåɅ􏗥HHH"HǦ"Jh"JhÆHH H"HǦ"Jh"Jh H"JhÆHH"HH""=""Z e "*{i+kOne moment, please... ! DBytes = 0.One moment, please... Font > 32Kb.BitMap too big.No character is defined. Empty font.No character is defined.Spaces are undefined.FONTASM.BOOST missing. ;8[iץ׭+C8pICׅխ!8pI0(Յӭ!dӥ8H") ? 7H "hGeG ?)HiH"f 78峠HiH"f"z륱[ @)m%HHwH8H"fHHCH"hHH "=h"zԹԷ "=ĠȥÆťHHCH"hH""zH"Jhdž"h녵٥8pI0AÅ˥ŅͥDžϥɅѥd ۥ8pI0 dݥ))݂))@݂)) ݂))݂}))݂h))݂S))݂>))݂)8 0 vH`2G d<))? ‚N)) ‚?)) ‚0)) ‚!80 H` 潩8pI" ˩ d˦"Jhˆ濩8pIϦ"JhφdۂH Hæ"JhÆǦ"JhdžɥقԹԷ""= Ղ{i+  ;ik ;8[iץC"zׅխ!8pI0Յӭ!dӥ8H") ?e 7H "h 諾?) IH "hIIeH"fH "h 諾78 KH "hKKeH"fH "hK"zH "hMH "h 諾@)m% GH "hGeGHHwH8H"fHHCH"hHH "=h"zH "hKԵԳ "=ĥH "hOQÆ"zH"Jhdž"h 78寅{iH@"f٥8pI0JÅ˥ŅͥHæ"JhDžϥɅѥd ۥ8pI0 dݥ))݂))@݂)) ݂))݂}))݂h))݂S))݂>))݂)8 0 H`'<Q 5)) ))  湩8pI: ˥ d˦"Jhˆ"Jh滩8pIϦ"Jhφdۂ_ ˥ Hæ"JhÆǦ"JhdžɥقԵԳ""= Ղ_{i+  ;ik ;8[ibI ,"=ĂfHH "=ĭH"Jh"Jh H"Jh"Jhۆݩ8pI0tH "hGeG HH"=Ġȗれڿڿ"Iڿڿ"Iڿڿ!8H "(5m5ʅ߆ c " "X")"*HH""=X"=ĭ_*1"=0"=0"=Ă'0"=1"=1"=Ģ*"=ĭɠ   "z" {i+;ikSpaces are undefined.One moment, please...Doubling in progress... ;8[icI +C"V X'XHVH"=ĭXHVH"=ĂeN  Ģ č  "$&(*,.02468:<>@"BD$F HJsLNPRTHH "=hVXXHVH"=Ĝ h }^`bOd ik3mHodߩPᩜhH"=hHHXHVH{iH  "=hZ\{i+k ;8[i HH"=ĠȗʅCH"`hۆHHۭH "=hȊ"zȗ HH "=Ġ 盛HH 盛HH" HH""={i+  ;ik ;8[i HH"=Ġȗ{i+;ik ;8[iHH"=hنۥߥHH"=hHH"=hVX -h XHVH"=H\HZH"=hm} mݥ-H "hGeGH"qqU"=qq:"="̇"ZH "hGeGHssH"H "hGeGH"qqU"=qq:"="̇"ZssHH "hGeGH"qqU"=qq:"="̇"ZIH "hGeGHssH"!80 j H`k( # [EQ #"jH?".G8"F1"F*"OI#80 H` ߢ,"=٢"={i+;ik ;8[iikmo8 HK"=&"=H "hGeG  %^ "H*,"=:"=="=7"=,"=   몠窧珇돋돣H8"zeۥw{iH"="= {i+  ;i k ;8[iXHVH"=6"=3ߩ8pI0[:"=O="=8*H:"=O="=i4߂,"=Hߩ8pI05:"=="=iJ߂6"=H\HZH"=h ߩ8pI0V:"=e&&"=KeH"=&&"={iHeH"Bh{iH"=<:"=eiH"=&&"={iHeiH"Bh{iH"=p:"=eiH"=&&"={iHeiH"Bh{iH"=iJ߂C6"=HHg"=hۆۢ%"="=*8C"z8pIddߩ8pI0UeH " !eiH> " !eiHr " !iJ߂ۢ$"=ۢh"=hqqV"={i+k =  =  =  undef ;8[ifߥHf:߂ff߂\f:::߂Pf߂DH\HZH"=h߂(Ɂ 8pIdߩ8pIߥf߯\HZH"=HH"=hۆݯXHVH"=hqqV"= h 8fI8pI'^^U"=""ۢ"=NHHg"=h׆^^f84"hHע~"=""עh"=ߏf{i+;ik ;8[i{iHHH"I "=ĩN  "$&(*P,}0d.2468:HH "=h<>>HHH"={i+k ;8[i  -h: XHVH"=H\HZH"=hmy m{H"e {i+k ;8[iHH"=h׆٭XHVH"=H{iHXHVH"=hH\HZH"=hf!H&Hۢ"=h႑H@ "7ht{iH"=ĥ:J"z{:4"zy{  y} %-h HH"UhHH"=hH"pI %= XHVH"=H\HZH"=hmy m{H"e h qqV"= h iqksmuowqq{HJ"hHyH4"hHK"=qqV"=ĭ{y} {i+;ik ;8[i(E  HH"=h:"=="=="=Ģ"=HH"=h:"=="=="=Ģ"=HH"=h:"=="= ="=Ģ"=HH"=h:"=="=="=Ģ"=H"=h_ac@egikm__"I%% E {i+k ;8[i[]8[pI [[d[I[]m[][["f]]"f HH[E[EHHH"t{i+;ik ;8[iH "hGGeH"(/{i+;ik ;8[i[EH"7n{i+;ik ;8[i8CpIC8 pIf㩀8pI0C: :e8: :e[E [E ソ:ႚ8pI0I㩀8pI0&: :e [E Ⴗ`C8pI0I㩀8pI0&: :e [E Ⴗ{i+;ik ;8[i8CpIC8pI0f㩀8pI0C8: :e: :e[E [E ソႚC8C8pI0I㩀8pI0&: :e [E Ⴗ`C8pI0I㩀8pI0&: :e [E Ⴗ{i+;ik ;8[iC8pI0h8 pIC: :e: 8:e[E [E :ソ႘C8pI0H8pI0&: :e [E Ⴘ{i+;ik ;8[iC8pI0f㩀8pI0C: 8:e: :e[E [E ソႚC8pI0M8㩀8pI0&: :e [E Ⴓ{i+;ik ;8[iC8pI0@8 pIg: :e[E : e:e [E : e::e [E :備t[m[[]m]][["f]]"f{i+k ;8[i婀8pI0C"z8 pIg: :e[E e: :e [E e:: :e [E :゙k{i+k ;8[i."=","={i+k ;8[i."=","={i+k ;8[ieeeeeeeeeee:"=="={i+;ik ;8[i몧e::H"=hEHH9"=*"=H"=hE9"=EH"={i+ ;i k ;8[i "=7"={iH"="=__"="={i+k ;8[i "=7"={iH"="="="={i+k ;8[i "=iϩѩ˯C͂HH"={iH "=: "z::ϥ: "z{iH"f{iH"f:"z::˥:"z{iHCH"f{iHCH"f"ߩC ,"=:"=<"=:"=<"=:"=<"=:"=<"=,"=ᯧ "h: "hi˅ۥͅ8pI02:"=<"=ۂ,"=υۥх8pI02:"=<"=i ߥۂ6"="6υۥх8pI0W˅ݥͅ8pI06: :e[E)"P7݂ۂ6"= "C8E H:"=H<"="HHۢ"=HH"=HHIH"=HHۢ"=HH"=HHIH"= " ["hi ,"=:H:"=:HC iH<"=,"="HH"=HH"=HHIH"=C ݯHHݢ"=HH"=HHIHIH"=" ]"hi,"=:"=ۯC iH<"=":"=="=;"=="=ۥiH:"=="=;"=="="={i+k ;8[i.HHH "7hI="pbV) 8pI0+V  "hHHHH"=h=/"=/=//"9"=/=/"=/=/V) 8pI  / %% HH"= /=/"p{i+k ;8[id H"Jh"zH"Jh)ۥdۥd )% ) ڥڇ HH"=hֆدJHHH"= "","= HH:"=="=֢"={i+  ;i k ;8[iHH "{i+;ik ;8[i  HH."=HH."=HH."=HH"=HH "=JHHH "=HH "=HJ h 9"="=X"=0"=0"=0"=*1"=1"= E *"={i+k ;8[i[EHH"sJHHH"=U"=:"={i+k ;8[iSH}E"|h'EH"0  "@BDFHH "=hHJ NLNâÍPRTVXZ\^`bdfhjlnprtvxz|~9/mC3mCmCHHLL "=hC=qk=ekE ֩ {iH=Wk{iHEH"Bh{iH=Uk{iH"6*E*E{iH1"INݍ*E*EC i $Pf79mfHH "=h  HHHH "=hH"=hHH9"="=HH¢H-"=hHHH-"=hHHH-"=hHH "=ĭHH "=ĭHH "=ĭ_0"=Ă 1"=ĭy2"=Ăy2"=H"=h9"=ĭHH"=ĩ C i2EH"/[E[EHH"s[E[E@"I{i+;ik , code = Character  ;8[iddϩѭC8pI0): :e窽[E)υϥт  ɀ  dϩѭC8pI0): :e窽[E)υϥт   åũѭC 8pI0) æ"JhÆťтåťǥ˥8"zϥ8)  ѭC8pI0ˢHǦ"JhÅŅӥυ8pI0zdէ) "Jh) ե "Jh"Jhӂ‰)  Ǧ"Jhdž@æ"JhÆťт[8ˇ8ˇ{i+;ik ;8[i"̇"ZH "hOQH "hQHOH"=dd٩ۭC8pI0): :e[E)م٥ۂ  ɀ    ɀ 5 d٩ۭC8pI0): :e[E)م٥ۂ   ե8Յ٥"zHHCH"hHH "=hņǰ"zŢ "=ĥH "hÝMH "hŝOǝQH "hٝKH "h]8[IH "hIIeH"fH "h8[GH "hGeGHHwH8H"fŪŅ͆ϥѥӥHHCH"hH")  )  )  "z٩ۭC8pI0բHѦ"Jhͅɥυ˩ݥم8pI0dߧ) "Jh) 0"Jh) "Jh) ߥ "Jhɦ"JhɆ˥݂6ߥ())?"Jh())"Jh‰())"Jh Ѧ"JhцӥâHͦ"Jh͆ϥۂŢ""= { H "hMH "hOQH "hKH "h]8[IH "hIIeH"fH "hG {i+;ik ;8[iCkۭC 8pI0xdݧ)"Jh) ݥ "Jh"Jhۂ{i+  ;ik ;8[iǥɥ˥{iH"fѥe멀8pI8ѥ8pIdѥ"zϥkӭC8pI0THǦ"Jh˅ͅեυ8pI0dק))ץ "Jhdק))0ץ "Jhdק)) ץ "Jhdק))ץ "Jh"JhՂ Ǧ"JhdžɥH˦"Jhˆͥӂ8pI_ӭC8pI0Hե8pI0&: :e [E Ղӂeѥ8pI_ӭC8pI0Hхթ8pI0&: :e [E Ղӂ{i+;ik ;8[i٭C 8pI0dݧ))ݥ "Jhdݧ))ݥ "Jh"Jhdݥق~{i+  ;ik ;8[i٭C 8pI0)ݧ)) ݥ "Jh)ݧ)) ݥ "Jh"Jhdݥقj{i+  ;ik ;8[iɥ˥ͥϩխC 8pI0( "JhՂӥe8pI8"zѩխC8pI0Hɦ"Jhͅυץх8pI0d٧))٥ "Jhd٧))٥ "Jh"Jhׂɦ"JhɆ@ͦ"Jh͆ϥՂ8pI9խC8pI0": i [E Ղeӥ:8pI=խC8pI0&: :e [E Ղ{i+ ;i kPd[@* s     &U"RB$&g$&$&)%&+& E}ELPLPMIYNP O~PQ2UQ"UUVUVUVVVWWWW6WWXWWBYJ[RYH[a[[g8g96hqk{Fzb>Ke2I Z+ł0%y3AHrEY#Ui_DsaJ^u˃g >f 1Uygte{)!*n Y!9JbE]d"Ii <|+nk 2Ks HWlq "1BHcp !f/38IMR^bg} #9=EJZ^cosx .BSdu Yfk}X]u r|#MSXdhmy} 0AO]ky &.; +]bn ;mr~ J[w /@\nsU,CSm}#9Jbe)ARj%Jrށ*qIjkdz9QTG8+n{4j #0k<`DHRi 3DZr|8g/C+\k}4dxM+?_z n+[o _y0t+0=H 'Bb} *FS Nku jr5JPkORo %26ADJMPru bq 8QUhy%H]`cfinq6Vfju ev{!jq *:FXox *17Fu0 L #69=JNc #&:9 &,/58;>ADGJMPSVY\_behknqtwz}  8DN^iq{ !+1;N]bms} $.AP\flv  $/:>ALR]`ku37BMQT_ehlwz2AY%KP*Q"si'+;KXer; '*06F6Pu2 5t) Xio@LTrP\d=N"3:dR'PI_9Sc2m/X3Dx ~.QYhnh?\1An~.Kp!>Yib/"lGf$3`'bE8)Ά-F@ ,@ savecharse@  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopO=====|====|====|====|====|====|====|====|====|====|====|====|====|====|====|===}  Fontasm 1.0Documentation.*Copyright (c) 1988 by Stephan HADINGER.All rights reserved.HFThis documentation and the software described in it are developed and "copyrighted by Stephan HADINGER.B@(c) 1988 TML System, Inc. Certain portions of this software are "copyrighted by TML Systems, Inc.Hardware requirements:+ - An APPLE IIGS* with at least 768K. - A 800K 3.5" disk drive. - A printer (optional).Firmware requirements:JH - ProDOS 1.5 or later and the associated tools (System Disk 3.1 or later), or any GS/OS version.DB FONTASM is compatible with GraphicWriter 2.0, MultiScribe GS, 9Medley, AppleWorks GS, DeluxePaint, PaintWorks Gold,...HF Thanks to : B. FOURNIER, S. BONAZZA, Y. KOENIG and my parents for their help.DB Apple II, Apple IIGS, Macintosh, ImageWriter, LaserWriter are #trademarks of Apple Computer Inc.1 PostScript is a trademark of Adobe Systems.: AppleWorks GS, MultiScribe are trademarks of Claris.KI Fontasm is a ShareWare software. This means that you can copy it and KIgive it to anyone freely. But when you receive it, you can use it freely GEduring two weeks. Then if it satisfied you and if you wish to use it &longer, please send a $20 check to : S. HADINGER 8 grande rue B2# 69340 FRANCHEVILLE FRANCEEC You will then registration letter and I will make you know any FDfuture enhancements or new versions of this soft. Otherwise, if you -don't want to keep Fontasm, just delete it.GE N.B. : You must never change anything on the FONTASM-disk if you give it to someone else.IG I would be glad to know your opinion about Fontasm, what you like FDin it or not, what enhancement you wish. Please tell me if you have ;discovered any bug. All known bugs have been yet removed.HF Fontasm represents a great amount of work, over 5500 PASCAL lines HFand 500 ASSEMBLY lines. I am a French 19 years old student and I have FDmade Fontasm alone so it is only with your help that I can continue writing such programs.) Thank YouJH This disk contains both French and English versions of Fontasm, the 2French version is in the file "FONTASM.F.SYS16".Introduction.IG The FONTASM program for Apple IIGS is the perfect complement for a HFGS specific word processing program. It allows you to edit, customize KIand create standard font files which are used in all GS desktop programs CAand word processors, and it offers a smart cut/paste feature for B@character managing within a font. Its only limitations are your JHcomputer's memory and the size of the character which must not exceed a GE128 * 128 dot matrix size. You will boost your word processor to its GElimits and achieve better printing quality with ImageWriter printers <because it will correct all your fonts (and they need it).JH Its unique auxiliary font feature permits you to create mixed fonts Dwhich contain characters from a font and others from another font.EC As a bonus, it also gives you the ability to easily print your IGcomplete collection of GS fonts, to repair damaged fonts. It will also Chelp you converting Macintosh fonts into the GS font file format. Chapter 1.About fonts. 1.1 The font files.KI Fonts are ProDOS files (file type $C8) which have the Font icon when ECyou are in the Finder. Each font file normally contains a complete A?character set, which includes normal ASCII characters, special JHMacintosh-style characters and international characters. It may however contain some logos or icons.KI The font file format has been defined by Apple Computer so it is now GEa standard on Apple IIGS. Nearly all GS desktop programs (especially KIword processors) use this file format, either by accessing them directly DBor by using the Font Manager (TOOL027). This avoids chaos of font 4standards as it appeared on the original Apple II.IG In order to use these fonts in any Apple IIGS program you must put FDall the fonts you will need in the SYSTEM/FONTS folder of your boot HFvolume. Then reboot so that the Font Manager recognizes them. However DBthis does not apply to FONTASM which can use any font file in any Cfolder, since it does not rely on the Font Manager to load fonts.JHThe GS font format is not very different from the Macintosh font format ECso it is quite easy to convert Macintosh's fonts to GS' fonts (see section 9.4). 1.2 Terminology.KI Fonts are divided into several categories which are called Families. JHA font family contains all fonts whose characters have the same type of Idrawing. For example : Helvetica, Times, Script, ... are font families.HFEach font family has a generic number which is unique and specific to IGthis family, it is called the family number. For example the Helvetica 2family has the family number 21 and Shaston -2.HF Different fonts of a same family must have the same family number HFand exactly the same family name (each space, capital or small letter KIand symbol counts). You must not use fonts which have same family number HFbut different family names or vice-versa, otherwise you may cause big troubles to the Font Manager.IG In a given family, fonts may have different sizes which represents JHthe size of the characters they contain. Font size is an integer number GEgiven in typographic Points. A Point is about 1/72 inch. However the CAfont size is a theoretical size that you, and the font designer, JHarbitrarily decide. It may not reflect the true size of the characters. JHSo characters of given family with a size of 9 may be bigger than other 1characters of another family with a size of 12.GE Warning : You must always keep a font family coherent. Different KIfonts of a given family must have a size that reflects their actual size GEin front of the other fonts of this family. For example Helvetica 24 JHmust always be twice as big as Helvetica 12, and Times 18 must be about 1.5 time as big as Times 12.DB A font of a given family and a given size may also have style HFmodifications. It is an alteration of the characters' drawing such as KIBold, Underline, Italic, Outline, Shadow which are the currently defined ECstyle modifications. These style modifications are cumulative. You GEshould not be too worried with style modifications since most of the KIfont files are originally Plain, that is without any style modification. ECYou may apply all modifications later in your program or in a word processor.1 1.3 ImageWriter printing, a bit of Warning.KI If you use Apple's ImageWriter* printer or any equivalent dot-matrix KIprinter (not PostScript laser printers) you should be careful about font sizes.IGWhen you ask for normal quality or draft printing there is no problem. KIBut when you print text and you choose the superior quality in the print JHdialog, the Font Manager will substitute the font you are printing with JHthe font of the same family with a double size (if a such font exists). CAIt then reduces the font image and prints in a 144 dots-per-inch KIresolution instead of a normal 72 dots-per-inch resolution. This gives a far better printing quality.JH So you must maintain a very strict correspondence between a font of GEa given size and the font with the double size. You may however have KIproblems during superior quality text printing such as bad justifying or DBunderlining being cut between words, even if it looks good on the IGscreen. This happens because the characters' width of the nominal font GEare not exactly half the width of the characters' of the double size IGfont. To repair this, use the 'Adjust a couple of fonts' option in the !utility menu (see section 9.3).HF Warning : To achieve good text quality printing with a dot matrix FDprinter, always use the vertical condensed option in the page setup CAdialog of your program or word processor. If you keep the normal IGvertical resolution, the characters will look too tall on the printer. HFBut if you choose the vertical condensed option, the printing will be -the same quality as the Macintosh printing.1 1.4 LaserWriter printing, a bit of warning.JH If you use the LaserWriter, LaserWriter Plus, LaserWriter II or any KIequivalent PostScript laser printer, you must not modify font files from Fa font family which exists in the laser printer as PostScript fonts.GE When writing characters on the screen, a word processor uses the HFfont files called bitmap fonts. In the font files, the characters are HFdrawn using a dot matrix of variable size. So when using FONTASM, you IGwill change only these dot matrix drawing. This causes no problem when JHprinting on a dot-matrix printer since it also uses these bitmap fonts. KIBut a laser printer has its own internal fonts which uses vectorial font JHdefinitions, and give it the ability of drawing these fonts at any size ECyou want. So if you change the bitmap fonts corresponding to these HFPostScript fonts, you will change the characters aspect on the screen IGbut you will absolutely not change the laser printer's fonts. You will >have differences between the screen and the actual printing.GE So please do not modify font families which have a corresponding JPostScript family. These font families and their family numbers follow : (LaserWriter fonts) - Times* (20). - Helvetica( (21). - Courier (22). - Symbol (23).. (LaserWriter Plus fonts additive fonts).$ -New Century Schoolbook* (34). -ITC Bookman( (14). -ITC Avant Garde( (33). -Helvetica Narrow (15). -Palatino( (16). -ITC Zapf Chancery( (18). -ITC Zapf Dingbats( (13). Chapter 2.A quick start-up. 2.1 Using the finder.GE Just boot the 3.5" disk containing Fontasm and the Finder should FDcome up. If the Fonts folder is not open, i.e. if you don't see any JHwindow with the 'Fonts' title, open the 'Fontasm' disk (double-click on ECthe item you want to open it when you are in the Finder), open the FD'System' folder, then open the 'Fonts' folder. You should now see a GEwindow with the 'Fonts' title, containing several file with the font icon, they are the font files. 2.2 Font editing.>< Open a font file (by double-clicking on it) and it will DBautomatically launch Fontasm. Wait a few seconds while Fontasm is HFloading. You should see a welcoming window, and then the blue desktop KIappears with a menu bar on top of it. Don't do anything, you will notice JHthat the disk drive is still working because FONTASM loads the font you KIhave opened. A window appears asks you to wait for a few seconds. A blue 7bar is growing rightward in the middle of the window.IG When the blue bar reaches the right edge of the rectangle it grows JHin, the window disappears and another window comes up showing you three IGlines of height columns. You are now into the selection window without ,doing anything, see how it is easy to use.CA You can use the vertical scroll bar at the right edge of the FDselection window to make the character you want to edit appear. The B@plain green rectangles mean that the corresponding character is IGcurrently undefined in the font you are working with (see next chapter KIfor more details). When you have found your character, just double-click 2on it and you will come in the character window.HF The big left window is the window you draw in, the 'reduced view' ECwindow shows you a reduced view of the character you are currently @>drawing, the 'clipboard' window is only used during cut/paste IGoperations. You can draw or modify the character by simply clicking in ECthe character's rectangle to draw a dot, or maintaining the button JHpressed and moving the mouse to draw freehand lines or whatever drawing JHyou want. Release the mouse button when you have finished. You can draw 3other points or lines by repeating this sequence.EC If you have made a mistake, you can come back to the character JHpreceding your last drawing operation by selecting the 'Undo' option in the 'Edit' menu.HF When the character is finished or when you want to abort editing, KIjust click into the window's close box. You will be asked if you want to JHsave back the character before leaving. Answer Yes or No by clicking in KIthe corresponding button, or click in 'Cancel' if you want to go back to B@the editing. If you leave the editing you will come back to the selection window.IG You can edit other characters as you like, or view the entire font HFat once by selecting the 'Display font' option in the 'Font' menu. To HFsave the font, use the 'Save' or 'Save as' option in the 'File' menu. HF'Save' will save the font back to the file you have opened. 'Save as' Fgives you the ability to save it in another file or on another disk.KITo edit other fonts use the 'Close font' option of the 'File' menu, then KIthe 'Open' option in the same menu and select the other font you wish to edit.FD To go back to the Finder select the 'Quit' option in the 'File' menu. 2.3 Font viewing.B@ When you are in the Finder click on a font file, it appears DBhighlighted, and choose the 'Print' option in the 'File' menu. It FDautomatically launches Fontasm. Wait a few seconds while Fontasm is KIloading. You should see a welcoming window, and the blue desktop appears ECwith a menu bar on top of it. Then Fontasm loads the font you have GEselected and displays it in a window. It is ready to be printed. The 7print command will print what you see in this window.IG Before printing select your printer with the 'Choose printer' item IGof the 'File' menu. Then select the 'Page setup' item in the same menu HFand choose the 'Vertical condensed.' option in the page setup dialog. IGYou can also select the 50% reduction mode if you like. Finally select HFthe 'Print' command in the same 'File' menu. You don't need to select ECcolor printing. Whatever printing quality you choose, Fontasm will JHreplace it by the draft mode printing which gives best performance when FDusing an ImageWriter II dot-matrix printer ; this does not apply to laser printers.HF After clicking in the 'OK' button, another windows appears asking IGyou if you want double-width printing. Select double-width printing if CAyou have chosen the 50% reduction mode in the page setup dialog, IGotherwise you should not select it. Turn your printer on, make sure it JHis connected to your computer, and click in the 'OK' button to make the printing start.HF To view or print another font, click in the close box of the font HFwindow, choose the 'Display font' command in the 'Utilities' menu and FDselect it. To go back to the Finder select the 'Quit' option in the 'File' menu. Chapter 3.Getting started. 3.1 The program.IG Fontasm is a standard ProDOS 16 (or GS/OS) application of about 80 FDkilobytes. It is not copy protected and it can be installed on 800K GEfloppy disks as well as on hard disk drives. To install it on a hard GEdisk drive, copy the 'FONTASM.SYS16' and 'FONTASM.BOOST' files which Gcontains the program from your original disk to your hard disk drive.GE N.B. : It is very important that these two files are in the same foldersFD If you use the finder you may also copy the 'ICON.FONTASM' file IGlocated in the ICONS folder of the Fontasm disk, into the ICONS folder JHof your hard drive. This file contains Fontasm's icon and it will allow KIyou to launch Fontasm by simply opening a font file. You may use Apple's 8Icon Editor to customize this auto-launching facility.KI Note : when, in this document, I refer to word processors, I mean GS CAspecific word processors which use the standard tools for screen KIdisplaying and printing. It does not apply to word processors which work IGon Apple II computers other than GS (e.g. AppleWorks GS, GraphicWriter "II, MultiScribe GS, Medley,...). 3.2 System version.IG You must use at least ProDOS 1.5 or later and its associated tools HFand drivers that you will find on the System Disk 3.1 or later (don't IGuse prototype versions). I recommend you GS/OS which is Apple's future JHoperating system and which is faster then ProDOS 16. If you have booted FDwith old tools, an alert window will appear when launching Fontasm, 5asking you to boot with the correct system version. 3.3 Always work on copies.JH Fontasm is not copy-protected so the first thing you must do before IGusing it is to copy the disk, with the Finder or whatever disk utility JHyou want. Then put the copy in a safe place. Before using Fontasm, make IGalso copies of all the fonts you plan to modify or repair. This avoids HFaccidents, and when a font is modified on disk, you cannot go back to the earlier unmodified font. 3.4 Error handling.KI Whenever an error occurs, Fontasm displays an alert window signaling KIyou this error. Disk errors such as 'Disk protected' errors, Tool errors HFsuch as 'No memory left', or Fontasm specific errors (see Appendix B) JHsuch as 'Font too large' are all displayed. Click in the 'OK' button or KIpress "Return" when you have read the error message. There are two error levels.FD - When the first line of the alert window is 'Error' or 'ProDOS ECerror', this means that the current operation has been aborted and cannot be completed.HF - When you just see the 'Warning' message, Fontasm warns you that GEsomething unnormal happened, but it could correct it and the current operation can be completed. 3.5 The auxiliary font.JH Fontasm offers you a convenient feature of copying the current font IGinto an auxiliary font (see section 6.7). This auxiliary font will not IGbe erased until you explicitly ask it or you quit Fontasm, even if you IGclose the current font and load another. Then with any other font, you GEwill have the possibility to recall characters individually from the ECauxiliary font and to copy them into the current font (see section 7.4.5.4).EC This is useful when you want to create a mixed font containing Gcharacters from a given font, and other characters from another font.! 3.6 The non-breaking space.GE Every font must contain the normal space character (ASCII code = KI32), and should contain the non-breaking space (ASCII code = 202) -which HFis not always the case-. The non-breaking space looks like the normal KIspace but if it is placed between two words, a word processor will never IGcut these two words. It is very useful to write, for example, APPLE II GEwithout having the word Apple at the end of a line and the II at the beginning of the next line.FD Whenever Fontasm detects that in a font the normal space or the KInon-breaking space are undefined, it opens a dialog window asking you to ECenter the new spaces' width. This is equivalent to the 'Spaces...' command of the 'Special' menu. 3.7 Undefined characters.FD Fontasm permits you to edit all the 255 characters which can be GEdefined in a font file. But most fonts contain undefined characters. KIThey appear as plain green rectangles in the character selection window. HFThe number of undefined characters may vary from fonts to fonts. When FDprograms try to draw undefined characters, they are replaced by the IGundefined replacement character. This replacement character is located JHat the first position in the character selection window, the equivalent Bof the Null character (ASCII code = 0), and it is named 'Undef'. 3.8 Menus.IG Fontasm's menu bar offers you several menus which are described in GEdetails in the following chapters. All menus are specific to Fontasm JHexcept the 'Edit' menu which can also be used with new desk accessories (NDA), and the Apple menu.JH The Apple menu contains the 'About Fontasm...' option which opens a JHdialog window showing you the current Fontasm version and the copyright JHnotices. The two following options '640 x 200' and '320 x 200' can only 2be used when displaying fonts (see section 9.1). 3.9 Font's height.GE All characters of a given font have the same height (in pixels), HFeven if they are not drawn using this whole height. There may be some JHblank areas on top or bottom of any character. Thus when using fonts in HFa word processor, all characters of a given font will occupy the same Bvertical distance, CAPITALS as well as small letters or symbols.HFThe height of a font is a constant that you may only change using the HF'Change height' command in the 'Font' menu. The maximum height is 128 HF(it is also the height of the maximum character matrix size), and the minimum is 2. Chapter 4.The 'File' menu.JH This menu is always accessible in Fontasm and contains all the file handling and printing. 4.1 'Open...'J This option lets you select and load the font file you want to edit.IG The standard file selection window appears, asking you to select a JHfont file. You may select it from any disk and any folder you want, not FDonly from the SYSTEM/FONTS folder. When you have found the font you KIwant, double-click on it or click on it and click in the 'OK' button. It IGis loaded into memory. A window announces you that Fontasm is working, KIand the horizontal blue growing bar shows where the process is. When the ECblue bar reaches the right side of the rectangle it grows in, this DBwindow disappears and the character selection window appears (see %section 6.3 to select a character). 4.2 'Close font'JH Choose this option when you want to stop editing a font or when you GEwant to edit another. This option can only be chosen when there is a font in memory.DB If you have modified a font but not saved it, a dialog window FDappears asking you if want to save it. Click in the 'Yes' button or IGpress the "Return" key to approve. Click in the 'No' button to abandon ECall the editing you have done on it (Warning : Fontasm will not be FDunable to undo). Click in the 'Cancel' button if you do not want to close the font. 4.3 'Save'EC Use this command to save back to disk the font currently being KIedited. It will save it back to the file Fontasm has read it from, so it KIwill overwrite the original file. If you want to save it on another disk Ior into another file select the 'Save as...' option (see next section).KIFontasm may automatically recode the font before saving it, but you must not be worried about that. 4.4 'Save as...'FD This command works like the 'Save' command, except it opens the JHstandard file saving dialog to ask you where to save the font. Click in JHthe 'SAVE' button to save the font, or in the 'Cancel' button to cancel saving. 4.5 'Choose printer...'IG This option displays the standard printer selection window, asking JHwhat printer and what port you want to use, whether to use AppleTalk or 2not, and your user's name (needed by AppleTalk).HF Always select this command before the first printing operation to GEmake sure Fontasm knows to which printer you are connected and which port you use. 4.6 'Page setup...'FD It displays the standard page setup dialog corresponding to the printer you are using.KI Always select it before any printing operation to make sure you have FDchosen the right page size and the right setup option, depending on !which window you want to print. 4.7 'Print...'KI This command displays the standard print dialog corresponding to the printer you are using.IG The only windows you can print in Fontasm are the character window HF(see chapter 7) and the font displaying window (see section 6.1). See KIthe corresponding sections for the page setup parameters you must set or not. 4.8 'Quit'IG Choose it if you want to quit Fontasm and go back to the Finder or GEwhatever program that launched Fontasm. If you have modified but not JHsaved the font or a character, Fontasm will open a dialog window asking IGyou if you want to save it (Yes) or not (No), or if you want to cancel quitting (Cancel). Chapter 5.The 'Edit' menu.KI This menu offers the cut/paste, copy, clear and undo features. These FDoptions are only effective with the character selection window (see KIsection 6.3) and the character window (see chapter 7). In the first case JHthe clipboard is not visible, but it is visible in the second case. The Hundo and the add options are only available with the character window.JH Fontasm currently uses only private clipboards and cannot therefore .exchange clipboards with other applications. 5.1 'Undo'DB When drawing a character, this option undoes the last drawing GEoperation, that means that Fontasm redraws the character like it was )just before the last drawing operation. 5.2 'Cut'EC This option copies the current character to the clipboard, and clears it. 5.3 'Copy'FD This option only copies the current character to the clipboard, leaving it unchanged. 5.4 'Paste'KI This option gets the character currently in the clipboard and copies 7it to the current character, overwriting the old one. 5.5 'Clear'DB This option clears the current character. This option is also +accessible by pressing Open-Apple-delete. 5.6 'Add'JH The Add option is only available during character drawing. It works HFlike Paste, except it does a logical Or between the current character FDand the clipboard, copying the resulting character into the current HFcharacter. This means that a pixel will be black if the same pixel in CAthe current character or in the clipboard is black ; it is white otherwise. 5.7 New desk accessories.JH New desk accessories are available in the Apple menu. They may also FDuse all items of the 'Edit' menu which are public, except the 'Add' GEcommand which is private to Fontasm. This is why this menu is always left active. Chapter 6.The 'Font' menu.JH This menu contains all font handling operations. Items of this menu >can be selected only if there is a font currently in memory. 6.1 'Display font...'EC This option opens a window showing the coded font currently in KImemory. The first line tells you the font's family name, size and family HFnumber. The following lines display all the defined characters of the FDfont (as they will appear in you word processor), except the spaces GEcharacters and blank characters. The last-displayed character is the /undefined replacement character if it exists.JH You can print this window to keep track of your collection of fonts GEfor example. To do this simply choose the 'Print' item in the 'File' menu.JH But before any printing make sure you have chosen the right printer GEand printing port in the 'Choose printer' option in the 'File' menu. GEThen select the 'Page setup' item in the same menu. Select the right GEpage size. You must choose the Vertical Condensed option in order to IGhave good looking characters on the printer. This also applies to word IGprocessors when printing with the ImageWriter and the LaserWriter. You -may or not choose the 50% reduction option.FD Finally choose the 'Print...' item in the same menu. Select the JHnumber of copies you wish, and select 'All' in the page range item. You 9do not need to choose color printing on ImageWriter II.KI If you are using an ImageWriter printer or any equivalent dot-matrix KIprinter, always choose the draft quality mode when printing this window. ECIf you select another mode, Fontasm will replace it with the draft quality.GE After the standard print dialog, Fontasm displays another dialog HFasking you whether you want or not double-width printing. This option IGwill print twice as much characters on each line than normal printing. KIYou may choose this mode only if you have selected 50% reduction mode in HFthe page setup dialog. It permits you, when in this mode, to print on JHthe full carriage width and not only half. Make sure your printer is on JHand connected, then click in the 'OK' button or press "Return" to start 5printingJ; or click in 'Cancel' to cancel printing.HF Note : make sure you have enough memory free before any printing. FDNormal width printing requires 64K, and double width printing needs 128K.JH Note for ImageWriter users : when you choose the 50% reduction mode DBin the page setup menu, the printed characters will have the same DBresolution and the same aspect as they would be printed by a word IGprocessor in superior quality mode. If you do not choose it, they will ,look as if printed in normal quality mode. 6.2 'Test font...'EC This option opens a dialog window with a editing line, and the JHviewing rectangle beneath it. You may type any sentence you wish in the FDediting line, it will be immediately drawn in the viewing rectangle +using the coded font in currently memory.DB Note : You can only enter characters which are defined in the HFcurrent font. If you type a character and nothing happens, that means Cthat this character is undefined in the font currently in memory. 6.3 Editing a character.EC This command opens the character selection window if it is not currently visible.DB This window allows you to select a character and to enter the #character window (see chapter 7).JH The selection window shows you 24 characters at a time (3 lines and IG8 columns). The large squares contain the current character drawing of CAthe font, and the horizontal rectangles on their tops tell which HFcharacter it is and what is its ASCII code. When you open it for the Ffirst time it shows the capital letters (ASCII codes from 64 to 87).KI You may see other characters by using the vertical scroll bar at the KIright edge of the window. Click in the arrow boxes to scroll one line at JHa time, click in the page scrolling areas (the grey surfaces on top and KIbottom of the white rectangle -the thumb- indicating where you presently KIare) to scroll three lines at a time, or directly click in the thumb and @put it where you want, maintaining the mouse's button pressed.KI When you click on a character it appears highlighted. At that moment ECyou can make cut/paste operations on this character for characters DBmoving/copying/deleting (see chapter 5). When a character appears KIhighlighted press the "Return" key to edit it, or simply double-click in KIthe character you want to edit. You will come up in the character window (see chapter 7). 6.4 'Modify parameters...'CA This item opens a dialog windows letting you edit the font's ECparameters. Click in the 'OK' button or press "Return" to confirm, #'Cancel' to cancel modifications. 6.4.1 Name.JH This is the font's family name. You can enter any name you want up to 25 characters.KI Note : all the fonts of a given family must have the same family ECnumber and exactly the same family name ; every character, capital -or small letters, spaces and symbols count. 6.4.2 Size.A? This is the font's size in typographic points. It is a GEtheoretical size and you may enter whatever value you want between 2 and 99.EC Note : most word processors do not handle fonts with sizes EChigher than 32 or 48. So you can change their size (it is only the CAtypographic size that it will change, not the characters' actual 7drawing) to use them in your favorite word processor.GE Warning : you must keep coherent sizes within a family. That DBmeans that if change the size of a font, you must also change the CAsize of all other fonts in its family, in order to keep constant >this will be 0 which means no special style. You must enter a Dfour-digits hexadecimal number. The currently defined values are : - $0001 : bold. - $0002 : italic. - $0004 : underline. - $0008 : outline. - $0010 : shadow.HF Other styles may be defined latter in the Font Manager. These Bvalues are cumulative if a font has several style modifications.EC This feature allows you to create pre-styled font. You can GEcreate for example pre-italicized fonts. Then if you ask italic text CAdrawing, the font manager will not italicize the normal font but ECwill directly use the pre-italicized font. This also avoids that a GEpre-italicized font from being italicized a second time. However the ECFont Manager has no way to de-style a pre-styled font. So you must "always keep the not-styled font.JH This can be an interesting feature but you normally do not need GEto use it. It is most of the case preferable to let the Font Manager 'do the style modifications by itself. 6.4.5 Type.IG This field normally contains the font's type, but is currently GEignored by QuickDraw II and the Font Manager. However we provide the ECpossibility of changing this field if this situation may change in the future. 6.4.6 Height.DB This field shows the current font's height but can not be CAmodified in this dialog window. If you want to change the font's Cheight, select the 'Change height...' command in the 'Font' menu.# 6.4.7 Ascent and Descent.JH A font has a constant height, this means that all characters in DBthe font have the same height. The font has also a base line (see >

line's and end line's locations, and asking you for their new EClocations. The locations must be between 0 and 128. The end line's ;location cannot be lower than the origin's line location.IG Note : the character's width is the difference between the end DBline's location and the origin line's location. Click in the 'OK' 8button or press "Return" to confirm the new locations. 7.4.6.2 'Grid'.JH This option turns on or off the drawing grid which can help you drawing characters.' 7.4.6.3 'Previous character'.KI This option saves the current character and brings the preceding character in the ASCII table.# 7.4.6.4 'Next character'.B@ This command saves the current character and brings the )following character in the ASCII table.# 7.4.7 The 'Special' menu.DB This menu handles all the character shifting and doubling operations.+ 7.4.7.1 The 'Shift ...' commands.IG These four commands lets you shift the character image upward, FDdownward, rightward and leftward by one pixel or more if you select more. 7.4.7.2 'Repeat...'.HF This option opens a dialog asking you to enter how many times DByou want to repeat the next shifting operation. You can enter any A?value between 1 and 127. Click in the 'OK' button or press the "Return" key to confirm.JH The next shifting operation you will use will be repeated. This GEis convenient if you want to shift a character 10 times to the right FDwithout selecting 10 times the 'Shift right' command. Only the next GEshifting will be repeated, further shifting will be normal (i.e. one pixel).& 7.4.3 'Double horizontally'.E This command doubles horizontally every character's pixels.$ 7.4.4 'Double vertically'.C This command doubles vertically every character's pixels.GE Note : if you want to double the size of a character, select &successively the two double options. Chapter 8.The 'Special' menu.B@ This menu contains font modification operations and is only IGaccessible if there is a font currently in memory. These modifications ;will never modify undefined characters (see section 3.7)." 8.1 'Shift ...' operations.IG The 'Shift right' and 'Shift left' operations open a dialog window KIasking you how many pixels you want to shift the font. The default value GEis one. You can enter any value between 1 and 127. Click in the 'OK' ECbutton or press "Return" to confirm. Fontasm will then shift every .character in the font except undefined ones. 8.2 'Shift margins...'.H This command allows you to shift each character's origin and end. IG The dialog window asks you how many pixels you want to shift those IGtwo values. These values are not absolute values but offsets, they are KIvalues to be added to the origin and the end of every character. You may 'enter any value between -128 and 128.FD Note : you change a character's width by changing its end. That HFmeans that the offset given for the character's end directly modifies ECits width. You may use this command to make fonts look extended or IGcondensed. However a width cannot be negative, so Fontasm will replace any negative value by zero.$ 8.3 'Non-proportional font...'FD This option creates fixed-width fonts. Type the new characters' DBwidth in the dialog window. Click in the 'OK' button or press the FD"Return" key to confirm. Fontasm will give the entered width to all Idefined characters in the font and thus create a non-proportional font.JH Non-proportional fonts are useful when printing program listings or documents containing arrays. 8.4 'Double horizontally'.EC This option doubles the widths and the pictures of all defined HFcharacters in the font. A window shows you where the doubling process is.HF Horizontal doubling make the characters much more readable on the IGscreen, and they have the same aspect as the characters being actually CAprinted with the unmodified font, but they produce poor printing quality. 8.5 'Spaces...'.JH This command opens a dialog window letting you directly and quickly FDmodify the normal and non-breaking spaces' width. Click in the 'OK' button to confirm.GE This dialog window can also appear when Fontasm detects that the FDspaces are undefined. If this happens, this window is preceded by a 5warning alert window saying 'Spaces are undefined.' Chapter 9.The 'Utilities' menu.EC This menu is available only when there is no font currently in memory. 9.1 'Display font'FD This is the same command as the 'Display font...' in the 'Font' GEmenu, except that you do not need to have a font currently loaded in HFmemory. Fontasm asks you to select the font through the standard file selection window.GE While your are viewing a font, you may change to 320*200 mode by JHselecting the '320 x 200' item in the Apple menu. To go back to 640*200 FDmode select the '640 x 200' item in the same menu. The 320*200 mode JHmakes characters much more readable and you can see characters' details HFyou would not in 640*200 mode. The mode switching has no influence on printing.EC The Display command is to be used for fast viewing and/or fast .printing of your entire collection of fonts. 9.2 'Modify parameters'JH This is the same command as 'Modify parameters' in the 'Font' menu, KIexcept you do not need to have the font currently in memory. It asks you JHfor the font you want to modify (see section 6.4 for details). Click in HFthe 'Save' button or press "Return" to save the modified font back to :disk, or in the 'Cancel' button to cancel modifications.% 9.3 'Adjust a couple of fonts'.A? When your are printing on an ImageWriter or any equivalent DBdot-matrix printer in the superior quality mode, the Font Manager HFreplaces the current font with a double-sized font and prints it in a HF144 dots-per-inch resolution. However problems like bad justifying or GEunderlining line cuts can appear in superior quality although normal JHquality printing works fine. This happens when the characters' width of FDthe normal font are not exactly half the width of characters in the 5double-sized font. To repair this use this command.GE Fontasm first asks you the double-sized font (size 2x), then the HFnormal-sized font. You must give two fonts belonging to the same font JHfamily otherwise Fontasm will return you an error. Fontasm displays the @>number of modifications it makes on each font and asks you to IGsuccessively save back to disk the corrected double-sized font and the IGcorrected normal-sized font. If you want to abort this operation click in the 'Cancel' button.IG Note : if you want to adjust two couples that overlap, for example KICalligraphy 12, 24 and 48, always go in the descending order. This means HFthat you must first adjust fonts with sizes 48 and 24, and the 24 and 12.* 9.4 'Convert font : Macintosh -> GS'HF This option will help you converting Macintosh fonts to GS fonts, HFbut you will need a Macintosh computer. You also need the Font Munger GEand Passport (renamed as Apple File Exchange) programs for Macintosh JH(available at APDA). These programs work on Macintosh computers, not on IGGS. Use Font Munger to change formats of all fonts you want to convert FD(select the 'Font Manager Format' and 'Create Cortland Binary Font' HFoptions in the File menu). Convert the resulting files into GS ProDOS file format using Passport.HF The resulting ProDOS files are still not compatible with the Font GEManager (they have the file type $E1 and the first 512 bytes must be KItaken out). At this moment select the conversion command, and it will do KIthe two last conversions. After selecting the Passport-ed files, Fontasm IGdisplays a window showing the font name and its size. It then asks you KIinto which file you want to save the converted -Font Manager compatible- font. Appendix A.%Keyboard equivalents to menu items.)Main menu : ("a" stands for Open-Apple)"a ? - Displays the about window.3a > - Selects the 640*200 display mode (see 9.1).3a < - Selects the 320*200 display mode (see 9.1).Ba C - Copies the current character into the clipboard (see 5.2).FDa D - Displays the font currently in memory (see 6.1) or a font you choose (see 9.1).:a E - Displays the character selection window (see 6.3).?a G - Helps converting Macintosh fonts to GS fonts (see 9.4).6a K - Closes the font currently in memory (see 4.2).KIa M - Modify parameters of the font in memory (see 6.4) or of a font you choose (see 9.2).$a O - Opens a font file (see 4.1).=a P - Prints the front window if it is printable (see 4.7). a Q - Quits Fontasm (see 4.8).5a S - Saves the font currently in memory (see 4.3).3a T - Lets you test the font in memory (see 6.2).@a V - Pastes the clipboard on the current character (see 5.4).-a X - Cuts the current character (see 5.2).4a Z - Undoes the last drawing operation (see 5.1).,a Delete - Clears the clipboard (see 5.5).&The character drawing window's menu.,a D - Shifts character down (see 7.4.7.1).=a K - Closes the current character's editing (see 7.4.5.1).,a L - Shifts character left (see 7.4.7.1).-a R - Shifts character right (see 7.4.7.1).;a S - Saves the character back to the font (see 7.4.5.2).*a U - Shifts character up (see 7.4.7.1).BPress a . (open-apple period) during printing to abort printing. Appendix B.$Fontasm's specific error messages.JHBitMap too big - the characters' drawings use too much memory, you must delete some characters.IGDifferent family - the 2x-sized font has not the same family number as the x-sized font.HFDifferent font name - the 2x-sized font has not the same font name as the x-sized font.)Empty font - the current font is empty.JHFont too big - the font in memory is too big (greater than 64K), please delete characters.JHFont > 32Kb - this is just a warning ! It tells you the current font is FDgreater than 32K. The Font Manager will not be able to scale such a Gfont. Please refer to Apple IIGS Technical Note #15 for more details.ECHeight too big - the height must be between 2 and 128, the loading process is aborted.IGIncorrect family number - the loaded font has an incorrect font family )number, the loading process is aborted.KIIt's not half size - the x-sized font is not half as big as the 2x-sized font.IGMemory low - the total memory free is below 100K. Please quit Fontasm, it may crash.KINo character is defined - there is not a single defined character in the font.FDNo window to print - there is no window currently open, and thus no window to print.HFSpaces are undefined - the normal space or the non-breaking space are undefined.FDThis window cannot be printed - the current active window cannot be printed./DBytes = 0 - you should never see this error. Appendix C. Tricks. C.1 A better underlining.A? When you print in superior quality on an ImageWriter or an IGequivalent dot-matrix printer (not on laser printers), the underlining IGline may seem too close to the character. To avoid this add one to the GEDescent of the font which is twice the size the font you selected in your word processor.IG For example if you print in Helvetica 12, add one to the Helvetica D24 font's Descent in order to have good looking underlining lines.3Note : this trick does nothing on laser printers.KIWarning : you should normally not modify such parameters, so always keep KIa copy of the font you modify and put back the original Descent value if =you want to use the font for a purpose other than printing. ,@ LKhK   ~;i8  [JJJm~~~   )^gAJ$-k h  h @ z h o h  d h  Y h  N h  C h  8 Њȷȷv 8 ć0Έȭ~m~+;i k ȷ 8&8&`$ $).3LSV[^chmzDJNQXFONTASM.ICONv/' P'-ICON.FONTASM2s$  rFINDER.DATAy('!p/rtuvwx FONTASM.SYS16  */FONTASM.SYS16*??? 0 FONTASM.BOOSTDD@DDDDOD@@DD@DDDD@DDDDDD@DDNDND@DDNDD@DDNDDD@DDNDDD@DDNDDD@DDDD@DDDD@DDNDDD@DDNDDD@DDNDDD@DDNDDD@DDNDDDD@DDNDDDD@DNDDDDD@DDDDDDDD@ dFONTASM.A.SYS16__U_UU_UU_eUUWeUvpPgguvvpUggg`UQ< Y,B ICON.FONTASM216L"  FONTASM.ICONT165 FONTASM.BOOST165B FONTASM.A.DOC16BFONTASM.A.SYS16FONT.INFO.EDv/' ^'/FONTINFO.ED.DOC| RŰ. Ű {/FONTINFO.EDITOR"Bİİ{FINDER.DATAɨ>'!p/{}~Font Information Editor (C) Copyright Tom Stechow 1988 TES Systems FontInfo.Editor will allow you to edit the font name and number of your fonts. There are some conflicts among the public domain fonts and this program is designed to help you resolve those conflicts. The program contains a chart of the font numbers and names currently recommended by Apple Computer Inc. in their ToolBox Reference Manuals. Please that FontInfo.Editor is copyrighted FreeWare and is NOT public domain. What this means that you are free to use this program without paying any fees, but I retain the rights to the program. You have my permission to upload this program to any bulletin board as you see fit or give away as many copies as you would like. The only requirement is that the copyright notice is not removed and proper credit be given in the online notice about the program. Note, however, that it is illegal to SELL this program without my permission. To use FontInfo.Editor simply double click on the FontInfo.Editor icon from Finder or open the application from Launcher. To edit a font select Get Font Info from the file menu. This will load the font of your choice (note: the font doesn't have to be the standard font directory) into memory and display a dialog window for editing the font name and number. Font names must be between 1 and 25 characters. Because I have had trouble with font names longer then 24 characters, I have limited the length to 24 to be on the save side. The font numbers must be between 1 ($1) and 65534 ($FFFE). Numbers can be entered in decimal or in hexadecimal, hex numbers must be proceeded by a $. The dialog window will also display the current full pathname to the font as well as the font filename and size. To save the new information, click on the save button and the font will be saved under the same name. To save under a new name, click on the Save as button. This will bring up the standard save dialog box, where you can enter a new filename. If you decide not to save your work, click on the Cancel button. There is a menu selection under extras that will display a window showing the currently recommended names and numbers from the Apple //gs Toolbox Reference Manual. A quick word about font names and numbers. Font Names are case sensitive. That is New York doesn't equal new york. You want to be very carefully when editing names to be sure that for a given font number all fonts have the same name. If you see the same name twice in the Choose Font dialog box or font menu in some applications you have a font name and number conflict. There is a one to one correspondence between font names and numbers. You will want to be careful that each name and number combination is unique. FontInfo.Editor was designed for this purpose. Help Mode FontInfo.Editor contains a help mode. To use this select help from the Apple menu or press the open-apple key and the ? key at the same time. When in help mode, all menu selections will display a short help window instead of doing a function. To exit help mode, click in the cancel button. Other Products from TES Systems INSTALLDA - Installs CDAs and NDAs outside of the ProDOS 16 boot process. This allows you to load the NDAs and CDAs that you want for a given session. The Desk Accessories can be on any disk and in any subdirectory. This product is FreeWare and is available on the services listed below. MASTER.NDA - Supports up to 249 NDAs in memory. This eliminates the normal 16-17 supported under the Apple menu in desktop applications. This product is ShareWare (fee $10.00, or $13.50 direct) and is available both on many services and direct from us. All products offered by TES Systems are available on the following services: GEnie, Compuserve, Bloom County (313)-582-0888, Michigan Apple Club's AppleGram (313)-292-0389. Shareware products are also available direct (please note there is a $3.50 shipping and handling fee on products ordered direct) from: Tom Stechow TES Systems P.O. Box 2615 Dearborn, Michigan 48123. !*/ ,@ hKZ \` . 1 P (  .L H"h  8  XXH,"႑ ;-;-y`?h`H "HH"h-h/- /H/H-HL"h h)$ h)H"*"`{^""H"hHH\H ";H~",Cannot get memory for QuickDraw Error was $hhbH`HZH"2H"#Cannot start QuickDraw Error was $HH\H "?H,"0Cannot get memory for Event Manager Error was $hhH@`ZH""H H:"H"H"""One moment please..."""" d0j/j0"(" {EA8>HE"/Error obtaining boot device number Error was $H<"hyL +"9H"*Error loading RAM based tools Error was $"ZHHH\H "AH/"2Cannot get memory for Control Manager Error was $hhH"ZH"9"ZHHH\H ">H"/Cannot get memory for Menu Manager Error was $hhH"ZHHH\H ";H0",Cannot get memory for Line Edit Error was $hhH"ZH"ZHHH\H "?H"0Cannot get memory for Standard File Error was $hhH" > ZHHH\H ">H""/Cannot get memory for Font Manager Error was $hhH"" "" h "` L" """"""""""""\H"ZH"""`")R8=H#".We returned from our Quit call!!! Error was $jCPlease insert diskContinueCancel    HH -" "HHb -" "HH -" "HH-" ""H"h*"`>>@\N1X==About Font Family Fixer\N256*!1==Help Mode\N262*?/V.>> File \N2==Get Font Info\N257*Oo==Close\N255V==Quit\N260*Qq.>> Edit \N3D==Undo\N250V*Zz==Cut\N251*Xx==Copy\N252*Cc==Paste\N253*Vv==Clear\N254.>> Extras \N4==Recommended Font Numbers\N261.HH| 2"hx hz z Hx H 3"H"hz Hx H "`HH| 2"hx hz z Hx H"`z Hx H "` f , @%K (c) Copyright Tom Stechow 19885,@ Version 1.00 5@" 04 Jun 88 * 5 D !Distribute freely but don't sell.V*~ --> FreeWare <--_o  % [ FONTINFO.EDITOR& Font Family Information EditorPx[ " OKHH"xBQ ""S)UW"S <-3S]kq_aec"] <-_a)c"] <- c_a"] <-H &"᭳H &""q"ks8muoHHHH\H " hh5hh_ace"]"SHH2"hh"H HH"h)lHH ")6 HH  "᭤HH }!"WHH")$!H):H $"H)H ("h6 HH "᭤HH}!"ႵUW)+"ႂHH"+ ""᭄H"w9G <- T. o . ;. ."S <-S]ke)c_a"] <-a c_a"] <-=ce_a"] <-"k"k"SHH "HH"`"S``n wX8`C& .|;D ?J@ Size: ^2 Z(> ^1 Z[ ^0 (Qx Filename:T Pathname:?JuFamily Number:0;f Family Name:=|J5 Font Family Information2S= PSave asASL pCancel"S- SaveNumer 123W UNTITLED.FONTEnter new font name...Select Font...!""H"h`$1$FFFE165534.^zEF2between ^0 and ^1.F]Font family numbers must be  + OKK ;[ ! )   + ;i k H"h`-_T F7You must supply a font name!( lOK"H"h`'e^?"F(Continue anyway?FIs NOT a Font File!F:"^0"/<:| WCancel/: vOK HH "hh`HH"HH" Recommended Font Numbers N, d 62 ;[HiH:" Font NumberS"H:" Font Name|" z;[;i HH"h h  DH HHH HL"h Ϳ ""`K ^[ H H:"HH &" "")"H"""PH:""H:""ڽHH" i H:"F+k $ Zcjqx   New YorkGenevaMonacoVeniceLondonAthens San FranciscoTorontoCairo Los AngelesTimes HelveticaCourierSymbolTaliesinShastonXH#"h*oHH"  "h"h""H"H"3"᭑"H"H#3"᭑"H"H"3"H,"H"hH"h "#OU*" *"&8 s"u""" *T"&]?#P#C$6:%)%""H,"""""""""" *))Nm))m))8)J)m)) )m)))m))i )i ))8)J8#)iF)HH"H%"h)h)H)H)H"h)J))8)J8))m))HH) "h)h))H)H)"H"H"H ")H)H))H)H ")H)H)3"H"h)H)H "NH"""h`"͏""͑"ﭝ"筑"H"H "H#"h*h`&&'X(((_0; "Cancel*"0Select the menu item you would like help with...,+#Help Mode In EffectKeyboard Equivalent - Z Allows the user to reverse the last action undertaken This item is enabled only when the front window is a New Desk Accessory Keyboard Equivalent - X Deletes the selected part of a NDA and places the selection on the Clipboard. This item is enabled only when the front window is a New Desk Accessory Keyboard Equivalent - C Puts a copy of the selected part of a NDA in the Clipboard. This item is enabled only when the front window is a New Desk Accessory Keyboard Equivalent - V Copies the contents of the Clipboard into a NDA beginning at the current cursor location This item is enabled only when the front window is a New Desk Accessory Deletes a selected part of a NDA, without affecting the Clipboard. This item is enabled only when the front window is a New Desk Accessory (Closes the front window on the desktop. mKeyboard Equivalent - ! This item displays the application's Version number, Date and Copyright notice. 0Keyboard Equivalent - O Loads a font into memory and displays a dialog box for editing the name and number. Names are case sensitive and can be no longer then 24 characters. Numbers can be entered in both decimal and hexadecimal (if preceded with a $) and must be between 1 ($1) and 65534 ($FFFE). FKeyboard Equivalent - Q This item quits the current application.@Displays the currently recommended font names and font numbers. Keyboard Equivalent - ? This item places you in help mode. Subsequent menu selections will display the help dialog for that item. You will remain in help mode until you click the Cancel button in the help mode dialog box.6PQ[ )OK* *% *)* *ȷ)**"*m*m*******-) ** **m*********`ZH*eiHڭ*H"h**z`**`HH"H%""H/+"h`\++n+Q+)Ki+"^0"C+*This item will open the New Desk Accessoryc+New Desk Accessories0; +OK,"``HH"h)-- C--- ""-"H-"h`00002U .-->-Number : $ ^0 >. ProDOS Error &?1q 8.OKhP.hR."P.`hn.hp."n.t.``" .`" .`.CDh/h/"// /"/`Z \`.1P(!.$)36AI^lqy|XX ;-;-y-/-//-3^[\r~u~b`Z \ ,#,p`Zd jj&9E<E+Z \#/&/sZZ\Z \$0'0nZyZ\> Z\""xh \ZR##fjV Y rb ub    |  |  x  z  z  x   / z 3 x D | G | R x V z Y z ] x i z m x      f  ,      " 8 D r ~   %    " BB Q#Q&):B)EHUKNWVS]<-cSf]iklqor_uxa{ec]<-_ac]<-c_a]<-qk#s'm*-u0o3;?C\Ybfinx_{ace]S)!+36:ADNRimtw UW)"%(M+P+SV\_p}w<-T.o.;..S<-S]kec_a]<-c_a#]*<-03c69e<?_BEaM]T<-^khkrSw{SwX8`C&2>O[lx DPdpUw zE&2Q]T+7`lps^?".:KWjvz},6H`ScSp||     ^,7:JMZ]|Zcj qx$*06<BHNTX*""."2"5"9"="@"J"N"R#U#_"c"g"j"w""*"s"u"" " *  " & &' ?#* ?#4 #7 #A $D $N :%Q :%[ %^ %c "h "q  " " " " " " " " " * ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )!)!)!""!)&!)-!)1!)=!)A!)D!)H!)M!)P!)T!)W!)_!)b!)v!)z!)}!)!)!)!)!"!"!"!)!)!)!)!)!)!)!)!)!)")")"""""""%""(""6""9"">""A""F""N""R""l"*o"s"&w"&'"X("("(""""#+#))**** ******.**1**4**?**B**E**H**K**N**Q**T**[**j**o**t**x**{**~*****************************"+/++/+=++A++E+n+I+Q+]+i+z+++++++,+,R--X--`--f--i--l--y--|------- .------..,.8.>.P.B.R.K.P.W.n.[.p.d.n.k.t.......././././// //L&s?BFONTINFO.EDITORFONTINFO.ED.DOC?5B SCSI.HACKER1.2KHD.FORMAT.V1.2K5 VANILLA.V1.1.2KB DISK.TIMERR1.2KFILE.UTILSv/' 'FINDER.DATAGT/p1FIXER.V1.1.1H( /CHANGE.FILE2.81q() p/FAZ.V2.6() /HD.FORMAT.V1.2v/,' `',HDFORMAT.DOC  * (HDFORMAT   FINDER.DATAɹ>(&p/ HDFORMAT v1.2 --------------------------------------------------- Generic SCSI Format Utility for the Apple SCSI card --------------------------------------------------- Copyright (c) 1989 by Tim Grams (Distribute, but do not sell) This is a simple utility that will do a low-level format of a hard drive attached to the Apple SCSI card (Rev C or better). A low-level format will erase all partitioning information and lay down new blocks on your drive. This program will only work with the Apple card and SCSI type drives. An Apple //e or better is required. *** WARNING *** Format programs of this type destroy ALL information on a volume. This is not a utility you will need to use often. Usually a regular volume partition and initialize using standard disk utility programs are all you need to do. However, if you are putting a disk together from scratch, moving over a Mac disk, or maybe fixing a bad block problem on your current hard drive, a low-level format may be required. If you are not following me by now, I'd suggest that you do NOT run this program. You could do more harm than good if you don't know what you are doing. Please backup ALL your disks before using HDFormat. The author has tested this program with the Seagate ST277N only. It will generally work with other SCSI drives, but some odd ball drives are in circulation. This version attempts to set 512 byte block size before formatting which should help converting some Mac drives. Units are numbered sequentially and are allocated to partitions starting at 1 for the device with the highest SCSI id. If you only have one drive attached to the card, use unit 1. If you already have a partitioned drive attached and are daisy chaining another drive, use a unit number one higher than the number of partitions on the first drive. To be totally safe, remove any existing drives before formatting and just use unit 1. The program is easy enough to run. Just follow the prompts for slot, unit number, and interleave. The range on interleave is 00..99 (two characters required), but I haven't been able to get the card to accept higher than 25 without generating an error. 00 will use the interleave the factory put on, and in the case of the ST277N thats 1:1. Hit ESC at any prompt if you want to leave the program. Once the format starts, you cant stop it and a reset during this time is not recommended! As far as interleave goes, any value should work, but your drive will perform better at its optimum interleave. How to find it? It depends if you are using P8 are GS/OS in most cases. As a nominal value you can use 11. To find the best interleave, I suggest using real world benchmarks like how long does it take to boot, how long to verify same size partition, or how long to load a large program like AppleWorks GS. It is a time consuming process in any case. A binary "search" type of approach is recommended where you first try 2:1, 12:1 and 24:1. Depending on your timings, you could then try 6:1 or 18:1, narrowing your range as you go. After the formatting completes, put on partitioning with either the Apple card utilities or the Advanced Disk Utilities in GSOS. If you use the Advanced Disk Utilities, it will try to reformat the drive again since it wont find any existing partitions. Be aware that this will probably change any interleave you selected to what Apple wants for their drives, which is not what you want. So if you want a different interleave, run the SCSI card partitioning first. You will have to rename the partitions to something other than the name "APPLE //", before you can then resize with ADU. Send comments, suggestions, or an interleave report on your drive to Tim Grams P.O. Box 462283 Garland, Tx 75046-2283 USA CIS - [73537,2601] Genie - TGRAMS AppleLink - Tim Grams  ! %L }% % %)18) ݢ* }% % %)18)"! P }% % %)0:) [! m[![! % %)0:)m[![! % %! }% J! e L  $! MG?91i#!"!F!Z!h!#!7!M!a!$!8!N!b!8` ^!!! E! !8` Y! !8`* Eg!`l!H }%h D %` !!!!` !!L!Ԡɠɠ􍠠㩠󍍠砪宍󮠠箠宠򮍍àɠ䮍ɠ堨󿠨ٯΩɠ箠󮮮$ L}%` `{ }% % %8` `ɛ `L,s(HDFORMAT.DOCCLSB HDFORMAT.DOCCLSVANILLA.V1.1v/-' `')SMARTPORT$DN/ &&VERIFYN/ Ch.VANILLA.MANUAL <o)|o*'VANILLAR/gi1 FINDER.DATAj(1p/+& ****************************J *** Smartport Commander ***n *** from Open-Apple 1/87 *** *** *** *** Additional bytes by *** *** John G. Thomas *** *** Ewing (NJ) Apple ***"  *** Users Group 8/89 ***F  *** ***j  ****************************p { #20992 (BUF20480:(4)"pr#3":: buf @ $5000 to $51FF -HX$"0123456789ABCDEF" 22000 4(A$,1)"$"ı 6X(A$)1:A$(A$,X):Y0:N08 7A1$(A$,XY,1):(A1$)70A1$((A1$)32)Z 8Z116:A1$(HX$,Z,1)WZ1` 9 :NNW16Y:YY1:YXA$(N): <55 >"Hexadecimal input must be preceded by a $. (E.g., $3f or $7F2e)": @"Done."; A" Press any key. ";:A$:> B"Currently selected unit: ";:SMART(0)0ĺ"(none)":Y DSLOT8SLOTLS:UNIT1y F"Slot "SLOT", Device "UNIT H JX(0):A$:X1(A$):"=";:::: LA$A$" N D9C6G" NX1(A$):511X,((A$,X,1))128: P72,0:144: RB0:(7)(7)(7);:85::4);"THIS ROUTINE IS POTENTIALLY DESTRUCTIVE! PRESS CONTROL-A TO CONTINUE OR"::22);"ANY OTHER KEY TO GO BACK! NOW!"::85:::B$ SB$(1)B1 T U:80);:: VERRĺ:"ERROR--";:1900::65 X ZA(79(A$))2:1403,A:A$:R _A$"___________________________________________________":90:i d * Slot Scanner *w i110:400 nSLOT17 x:ADR49152(SLOT256) :(ADR1)32190 :(ADR3)0190 :(ADR5)3190 :(ADR7)01902:LSSLOT:SMART(0)SMART(0)1: count smartports foundh:SMART(SLOT)ADR(ADR255)3: get DISPATCH addryB(ADR251)B128BB128:"Extended ";B2B3ĺ"SCSI ";B1B3ĺ"RAMcard ";:"Smartport found in slot "SLOT:#SMART(0)0ĺ"No smartports found.":M,UNIT0:Call goes to smartport itselfd6CMD0:Status call@SUBCMD0:We're asking for the number of unitsJSLOT17T:SMART(SLOT)0390^:1000h:ERRĺ"ERROR--";:1900:390r:NDEV(SLOT)(784)?|:"The Smartport in slot "SLOT" has "NDEV(SLOT)" devices."Es:"Press to continue...";A$::ySLOT17:SMART(SLOT)0699:UNIT1NDEV(SLOT)::CMD0:SUBCMD3::1000::ERRĺ"ERROR--";:1900:698 ::DEVST(784)8::NBLKS(785)(786)256(787)65536m::NAME$"":I1(788):NAME$NAME$((788I)):::TYPE(805):SBTYPE(806)::VERS(807)(808)256::"Device "UNIT" in slot "SLOT" is a "NAME$".":"(Device status = "DEVST")":9::" It has "NBLKS" blocks of storage capacity."M::DDEVST:1500::B(7)0ĺ" It is a character-oriented device."::B(7)1ĺ" It is a block-oriented device."::B(6)0ĺ" You can't write to this device."::B(6)1ĺ" Writes to this device are allowed."M ::B(5)0ĺ" You can't read this device."y!::B(5)1ĺ" This device is readable.""::B(4)0ĺ" This device is offline."#::B(4)1ĺ" This device is online."$::B(3)0ĺ" You can't format this device."5%::B(3)1ĺ" Formatting this device is allowed."j&::B(2)0ĺ" The device isn't write-protected."'::B(2)1ĺ" The disk is write-protected."(::B(1)0ĺ" This device is not interrupting.")::B(1)1ĺ" This device is the interrupt culprit."D*::B(7)1560:line 555-6 are for character devices onlyz+::B(0)0ĺ" This device is closed (available).",::B(0)1ĺ" This device is open (busy)."0:::" The TYPE byte of this device ("TYPE") indicates it is a "; :::TYPE0ĺ"RAMdisk."1;::TYPE1SBTYPE0ĺ"UniDisk 3.5."X<::TYPE1SBTYPE192ĺ"Apple 3.5."{=::TYPE7TYPE2ĺ"hard disk.">::TYPE3ĺ"SCSI device."?::TYPE5ĺ"CD-ROM."@::TYPE6ĺ"Direct-access tape drive."A::TYPE8ĺ"Scanner."B::TYPE8ĺ"Printer."bD::TYPE2ĺ:" Subtype byte is "SBTYPE".":600:see text about subtype byteE:::" The SUBTYPE byte ("SBTYPE") of this device may indicate that it:"IDSBTYPE:1500N::B(7)1ĺ" Supports extended Smartport calls."/O::B(6)1ĺ" Supports disk-switched errors."^P::B(5)0ĺ" Supports removable media."Q::B(5)1ĺ" Does not support removable media."X:::" The version number of this device is "VERS"."b::TYPE1698: all 3.5 drives (so far) have TYPE=1l::CMD4:SUBCMD4Mv::784,0:785,0:# of items in control listY::1000::ERRĺ"ERROR--;:gosub 1900:goto 698"Please open the write-protect hole on this disk,"" then reinsert it. Press when ready...";A$<66,0: for ProDOS status command, put a zero at $42xS1SLOT:UNIT2S1S14: convert to ProDOS unit numberS1S116:UNIT2UNIT4S1S112867,S1: put ProDOS unit number at $43 (dsss0000)809,32: JSR DRIVER 811,(SMART(SLOT)3)256.810,(SMART(SLOT)3)(811)256L812,176:813,2: BCS 816i814,169:815,0: LDA #0816,141:817,52:818,3: STA 820819,96: RTS809(820)0690"This Smartport has the UniDisk 3.5 write-protect bug."{" Eject this disk, cover the write-protecthole, and don't ever put a write- protected disk in this Smartport again."698" You can safely use write-protected disks on this Smartport."::"Press to continue...";A$::::8"No more devices in this system. "::65:2000e Here's Tom's original Smartport caller * Set up parameter list *779,3780,UNIT781,16: Status control list is @ $310 (784)782,3783,SUBCMDLV768,32: JSR DISPATCH'`770,SMART(SLOT)256Gj769,SMART(SLOT)(770)256Tt771,CMD}~772,11:Parmlist addr is $30B (779)773,3774,141: STA 778775,10: Error code addr is $30A (778)776,3777,96: RTS768ERR(778)3 * Turn a byte's bits into an array *^ * D=byte to analyze * * B(7)=array with bit values *N701:BN2N:B(N)0:DBN1DDBN:B(N)1l * Smartport error msgs * mERR1ĺ"$01. No such command."6 pERR4ĺ"$04. Bad parameter list."^ rERR6ĺ"$06. Smartport bus error." }ERR17ĺ"$11. This device can't respond to this command." ERR31ĺ"$1F. Interrupts not supported by this Smartport.!ERR33ĺ"$21. This device can't respond to this subcommand."D!ERR34ĺ"$22. Bad control list."c!ERR39ĺ"$27. I/O Error."!ERR40ĺ"$28. No such unit number."!ERR43ĺ"$2B. Disk is write protected."!ERR45ĺ"$2D. No such block number on this device."*"ERR47ĺ"$2F. No disk in drive/Device is offline."f"ERR47ERR64ĺ"$30-$3F. Device specific fatal error.""ERR63ERR80ĺ"$40-$4F. The future has arrived.""ERR79ĺ"$50-$5F. Device specific non-fatal error.""C#:95::A$"***** The Smartport Commander *****":90::A$"Originally printed in Open-Apple":90:#A$"New lines by John G. Thomas, Ewing (NJ) Apple Users":90:95::#A$"Main Menu":74#" Quit to BASIC":#"Run om's original poll of the Smartports":"$"Execute a 'onitor' command":A$"martport Exerciser":Z$\:"Pick one: ";:A$j$fA$(17)Ār$pA$$zA$"T"A$"t"ė:100$A$"M"A$"m"9000$A$"S"A$"s"3000$(7):2000$ :A$"Smartport Exerciser":74:66 % ::" Go back"2% "Select a nit to work with":J% "<0> Status ($00)"f% "<1> Read Block ($01)"% "<2> Write Block ($02)"% "<3> Format ($03) -- BE VERY CAREFUL!!!"% "<4> Control ($04) (with subcommand)"% "<5> Init ($05)" & "<6> Open ($06)" && "<7> Close ($07)"6&0 "<8> Read ($08)"M&: "<9> Write ($09)"f&D :"Pick one: ";:A$y&N A$(27)2000&X A$&b A$"U"A$"u"10000&v A$"0"A$"9"ĺ(7):3000& A(A$):A13210,4500,4600,4400,3300,4700,9900,9900,9900,9900"' :A$"Smartport Status ($00)":74b' SMART(0)ĺ"You MUST select a unit FIRST!!!"::65:3000j' 66' ::"Enter '0' to go back or"' :"press for default List Pointer ($310) or enter new address: ";A$:A$""A$(784)' A$"0"3000( 52:N(A$):LOC781:9280M( :"Enter status code: ";A$:52:SUBCMD(A$)( :779,3:780,UNIT:783,SUBCMD:1110:86:ERR3210( ::"Done. Here's the Status list (code "SUBCMD") at "N":":LOC58:9280:415:::65:3210) :"Smartport Control Command ($04)"S) SMART(0)ĺ::"You MUST select a unit FIRST!!!"::65:3000) "=============================="::"Control codes (Subcommands):") " 0 DeviceReset 23 ReceiveDiagnostic"* " 4 Eject 24 StartUnit"P* " 5 TestUnitReady 25 StopUnit"* " 6 RequestSense 26 PreventRemoval"* " 7 ReassignBlock 27 AllowRemoval"+ " 8 ModeSelect 28 Verify">+* " 9 ModeSense 29 RezeroUnit"y+4 " 10 Reserve 31 SetNewSDAT"+> " 11 Release 32 AudioSearch"+H " 12 ReadDefectData 33 AudioPlay"*,R " 13 ReadCapacity 34 AudioPause"d,\ " 14 SendDiagnostic 35 AudioStop",f " 15 Inquiry 36 AudioStatus",p " 18 HardReset 37 AudioScan"-z " 19 SetBlockSize 39 ReadTOC"O- " 20 SetTimeout 40 ReadQSubcode"- " 21 FormatUnit 41 ReadHeader"- " 22 ExtendedSeek 42 SetInterleave":5. "Press to go back or enter Subcommand number ";::"CAREFULLY!";::": ";:"";A$:A$""3000P. A(A$):A0A423300d. CMD4:780,UNIT. A0A4A5A14A21(A23A30)3600: PU0C. A6A7(A9A14)A15A18A23A403700: PUBPC. A8A93800: PUBPCT / A193900: SetBlockSize%/ A204000: SetTimeoutA/ A304100: Patch1Call]/ A314200: SetNewSDAT/ A384300: ReadTOC, ReadHeader, SetInterleave/ :"Sorry, subcommand "A" not supported yet."::65:3300/:SUBCMDA:A0A$"DeviceReset":740A4A$"Eject":7400A5A$"TestUnitReady":74R0A14A$"SendDiagnostic":74|0A21A$"FormatUnit":74:82:B33000A24A$"StartUnit":74:82:B33000A25A$"StopUnit":74:82:B33000A26A$"PreventRemoval":741 A27A$"AllowRemoval":7451"A28A$"Verify":74:82:B3300S1$A29A$"RezeroUnit":74]1&:661)779,3:781,0:782,0:783,SUBCMD:1110:86:ERR33001.::64:33001t:SUBCMDA:A6A$"RequestSense":741vA7A$"ReassignBlock":74:82:B3300%2xA10A$"Reserve":74:82:B3300@2zA11A$"Release":74b2|A12A$"ReadDefectData":742~A13A$"ReadCapacity":742A15A$"Inquiry":742A18A$"HardReset":742A23A$"ReceiveDiagnostic":742A40A$"ReadQSubcode":7431010:86:ERR33003:"Done. Here's the Control list (code "SUBCMD") at $310:":N784:LOC58:9280:415:::65:33003:SUBCMDA:A8A$"ModeSelect":74:82:B33003A9A$"ModeSense":743:664779,4:781,17:782,3:783,SUBCMD:784,100:1110:86:ERR3300t4:"Done. Here's the data (code "SUBCMD") at $311:"::A$"311.376":76::65:3300~4<358043580435804h:SUBCMDA:A$"SetNewSDAT":744rA$"5000:0":76:A$"5001<5000.51ffm":765|779,3:781,0:782,80:783,31:1110:86:ERR3000"545705:SUBCMDA:A39A$"ReadTOC":74:"Enter track number, allocation length, and type: ";X,Y,Z:784,X:NY:LOC785:9280:787,Z6A41A$"ReadHeader":74:"Enter block address as 3 (space-separated) hex bytes: ";A$:A$"310:"A$:76<6A42A$"SetInterleave":74:82:B33006A42Ą"New interleave: ";X:779,3:781,X:782,0:783,42:1110:432061000686:ERR33006:"Done. Here's the data (code "SUBCMD") at $310:"::A$"310.376":76::65:330070:A$"Format Unit ($03)":74Z75SMART(0)ĺ"You MUST select a unit FIRST!!!"::65:3000p7:66::82:B30007?779,1:780,UNIT:CMD3:1110:86:30007:A$"Read Block ($01) to buffer at $5000":74:CMD18SMART(0)ĺ"You MUST select a unit FIRST!!!"::65:3000"866:::O8"Enter block to ";:CMD1ĺ"read":4535_8"write to"8"as 3 hex numbers (lsb first) separated by spaces: ";A$:8779,3:780,UNIT:NBUF:LOC781:9280:A$"30f:"A$:7681110:86:ERR3000964:CMD23000!9:A$"5000.507f":76:65<9A$"5080.50ff":76:65W9A$"5100.517f":76:65x9A$"5180.51ff":76:64:30009:A$"Write Block ($02) from buffer at $5000":74::82:B30009CMD2:45109\:A$"Init ($05)":74::66::0:aSMART(0)ĺ"You MUST select a unit FIRST!!!"::65:3000:f"The Init command forces the Smartport firmware to reinitialize the SCSI bus.":"All the devices on the SCSI bus are hard reset, the partition offsets"c;p"for each of the devices online are reinitialized, and new unit numbers are":"assigned where necessary. Press any key to continue.";:A$:::;zCMD5:779,1:780,0:1110:86:ERR3000;64:3000;'#;(#:A$"'Monitor' Command":74;7#" Go back":;<#"<1> Disassembler": Memory move":K Enter monitor (and say goodbye to this program)": Execute any monitor command using the Lam method":<\#"<5> Write all '$FF's from $300 to $376":<^#"<6> See SCSI SDATs":<`#"<7> See SCSI DIBTABs":#58,DS(DS256)256:59,(DS256):415X>#:"Press to continue disassembling, for a new start location,">#"or for a different monitor command: ";:A$>#A$(27)9000>#A$>#A$"L"A$"l"Č415:9140>#A$"N"A$"n"9115>#(7):9140?#:A$"Memory move"?#74:62:h?$"Enter address (in decimal) of the start of block to move: ";A$:52:OS(A$)?$"Enter address of the end of the block to move: ";A$:52:OE(A$)?"$"Enter target address (new start location): ";A$:52:NS(A$),@,$NOS:LOC60:9280:NOE:LOC62:9280:NNS:LOC66:9280j@6$513,160:514,0:515,76:516,44:517,254:513::64:9000@@$LOC,N(N256)256:LOC1,(N256):@T$::"Quit now and go to the monitor??? (y/[n]) ";:A$:A$"Y"A$"y"ĺ:151@^$9000A$:A$"Just About Any Monitor Command":74lA$"This routine uses the Lam method and CALL -144 to execute practically "A$"any monitor command. Just pretend you are in the monitor, and enter"A$"your command line carefully. I will do the rest!":::B$"*";:A$""#B$B$:B$;:B$(13)94806B$A$A$B$:9452LB%76:::64:9000B%:A$"Fill $300 to $376 with FFs":74:A$"300:ff n 301<300.376m":9480BN%:A$"See SCSI SDATs":74:110::CS%"Press to go back or enter slot number: ";:A$:A$(27)9000&CU%A$"1"A$"7"ĺ(7):95506CX%A(A$):Y0iCZ%ADR49152(A256):B(ADR251):B128BB128C[%(B2B3)ĺ::"No SCSI card in slot "A"."::65:9000C]%:(17);(21):X(53247):X(A25649152)Cb%YY1:Y1Y$"31.c842m" Dd%Y2Y$"42.c853m" Df%Y3Y$"53.c864m"7Dh%Y4Y$"64.c875m"NDi%Y5Y$"75.c886m"eDj%Y6Y$"86.c897m"Dl%A$"331 to go back or enter slot number: ";:A$:A$(27)9000_G%A$"1"A$"7"ĺ(7):9650oG%A(A$):Y0G%ADR49152(A256):B(ADR251):B128BB128G%(B2B3)ĺ::"No SCSI card in slot "A"."::65:9000H%:(17);(21):X(53247):X(A25649152)+H%YY1:Y1Y$"31.c94cm"BH%Y2Y$"4C.c967m"YH%Y3Y$"67.c982m"pH%Y4Y$"82.c99dm"H%Y5Y$"9D.c9B8m"H%Y6Y$"B8.c9D3m"H%A$"331 to go back: ";:A$:A$(27)3000K8'A$"1"A$"7"ĺ(7):10000KB'A$:SLOT(A$):3LL'"Press the number of the device you want: ";:A$:UNIT(A$):UNIT1UNITNDEV(SLOT)ĺ::10060JLV'A$:UNIT(A$)::L`'"Currently selected unit: Slot "SLOT", Device "UNITLe':"Is this correct? (y/[n]) ";:A$:A$:A$"Y"A$"y"10000Lj':65:3000KCIC G BD   K BD   pM aM^NV LQCGG..GG`'   ` BD  =D =D =D =D LC`$% "`JD mDLD !`JD mD E E FQDȌaD F`D FJD`D) `D F`D FLDKD EJDLD E) JD EJD E  ELDKD ELD FQDȌaDRD aDRDQDi QDȌaDRD aDRDQDJJDC`D) `DQDȌaDRD aDRDQD QDȌaDRD aDRDQD0PD `JD NDʅMDOD` MDNDȑ`0PD `JD `DODJJJJ `D`D`RD aDL!FSDRDQDL/FRDQDaD` QF`G  cF`G  `NGnGnG`G`GK O====|================|==========|============|============|=========|==========  9 ____________________________________________: | |: | Plain Vanilla Hard Drive |: | |: | Formatting and Partitioning Utility |: | |: | by John G. Thomas |: | |: | Ewing (New Jersey) Apple Users Group |: | |: | Instruction Manual |: | |: | Version 1.1 |: | |: |____________________________________________|; Plain Vanilla Manual---page Shareware;9The Plain Vanilla Hard Disk Utility is sophisticated and <:powerful. It is designed to let you format and partition 53hard drives connected to an Apple SCSI card in any 64Apple //gs, Apple //e, or 64K Apple II Plus. It is ;9distributed as shareware. Please try it for 2 weeks and ?=pass it around to others. If you care to continue using it, please send $5 to the author: John G. Thomas 38 Sunnybrae Blvd. Trenton, NJ 08620=;If not, please destroy your copy or give it someone else. 20Please copy this disk and give it to others for ;9demonstration. Thank you for sending your payment. You =;will receive a letter of thanks from me and information on =;updated versions if any occur. Your honesty will allow me :to distribute future programs in this same low-cost way.Requirements>< 2. Quit to ProDOS - In case you're all done AND you're using a program selector.>< 3. Quit to BASIC - In case you want to use the monitor 75or my SMARTPORT program to snoop around in memory or whatever.Format and Partition a Drive============================86When you see this title on the screen, the program is ;9scanning the slots for Apple II SCSI Cards. If it finds 86any, it displays the card's slot number, and the unit =;number, ID string, and capacity in megs of each hard drive connected to each card.#Select Slot, Unit, and Interleave#=================================You have some input here...>Unit: - Type the unit number displayed in the above section.97Enter Interleave: (default=5) - Press for the =;default or type any other interleave value you want to use >. I'm afraid I can't help you much here, :8except to say that I always use 5, as advised to by Ken <Buchholz and which works very nicely on my system so far, ><"reassigned." This means that a new home will be found for ;9this numbered area on the disk surface, not far from the ;9original location. Refer to the Seagate manual for more ;9information. If 384 or more defective blocks are found, <:something is wrong and you should start over. In testing :8this program, I must have formatted my drives 50 or 100 ?=times. Once, I had to reformat the ST277N four times before it would verify correctly.Setting Partitions==================:8When this title appears, everything is ready for you to =;input the number and size of the partitions you want. You =;must set at least one partition. There doesn't seem to be =;any inherent limit to the number of partitions a drive can ?have. However, each partition will be "seen" by ProDOS as a > | | | | | |> | Apple //e | | ST225N | | ST277N |> | with SCSI | | 20-meg hd | | 65-meg hd |> | card in slot 5 | | SCSI ID#=0| | SCSI ID#=6|> | SCSI ID#=7 | |___________| |___________|8 |________________| | |8 |_________________|__________________|) SCSI cable=;Note that the SCSI card itself has a SCSI ID number of 7. 86The ST277N, of the two drives, has the higher SCSI ID :8number. Because of this, if I have 1 partition on this =;drive, it appears as slot 5, drive 1 and any partitions on ?=the other drive appear as slot 5, drive 2, then the next (if <:there is another) would be slot 2, drive 1, then the next ?=partition (again, if one exists) on the ST225N would be slot 2, drive 2.?=If there were 2 partitions on the ST277N, they would be slot =;5, drive 1 and slot 5, drive 2. Then, only two partitions =;could be seen on the other drive: slot 2, drive 1 and slot ?=2, drive 2. Partitions with less priority may disappear and =reappear as the situation in higher priority units changes.>ape out of this program and launch ?=ADU if they intend using GS/OS with the new partitions. Now =;I'm not a licensed developer, so I can't just give you the =;ProDOS Bootstrap Loader. This is the little program found ?=on most ProDOS disks that gets ProDOS going or says, "UNABLE 86TO LOAD PRODOS" when you try to boot a data disk. My ;9program just copies the bootstrap loader from a disk you :8have onto any of your new partitions which happen to be > keys in case you goof. Press when each name looks right.>If you call GEnie, you can message me there. My address is: JOHN.THOMASRevision List=============861.1: Thanks to Jeff Pelosi of Howell, New Jersey for 75alerting me to the fact that the original version of <:VANILLA, originally written on an Apple //e for Apple //e ;9users, in fact bombed when run from a //gs. Version 1.1 ?=fully supports the Apple //gs. Additionally, it creates the >13:1:A$"Start Screen Options":74R" <1> Format/partition a drive":5\" <2> Quit to ProDOS":Sf" <3> Quit to BASIC":l:"Pick one: ";:B$B$"3"ė:A$"Quit to BASIC":74:::2260B$"1"2400B$"2"ė:A$"Quit to ProDOS":74:::2260(7):2000 "Quit now??? (y/[n]) ";:A$'A$"y"A$"Y"20005B$"3"ĀD(4)"bye"p` :A$"Format and Partition a Drive":74j "First, a scan of the slots...":t SLOT17~ AD49152SLOT256 (AD1)322600 (AD3)02600 (AD5)32600 (AD7)02600& SCSI(0)SCSI(0)1D SCSI(SLOT)AD(AD255)3T B(AD251)d B1282600p BB128 B2B32600 SCSI(0)SCSI(0)1 SCSI(SLOT)AD(AD255)3 "Your card in slot "SLOT" has ":! CMD0:779,3:780,0:781,16:782,3:783,0:1100:86:ERR2000I ND(SLOT)(784):XND(SLOT):X4X4V 17483,Xk UNIT1ND(SLOT) CMD0:780,UNIT:781,16:782,3:783,3:1110:86:ERR2000 X(53247):X(SLOT25649152):SN(UNIT)(51245UNIT17):SN(UNIT)SN(UNIT1)2595? N$" Unit "(UNIT)": ":I1(788):N$N$((788I)):IK N$" "; CMD4:N786:LOC781:90:783,13:1110:86:ERR2000 CAP(787)65536(788)256(789):MEGSCAP2048:MEGS(MEGS)MEG$(MEGS):2594! MEG$((MEGS))"+"" "("MEG$" megs)"# UNIT$ ( SLOTQ2 :A$"Select Slot, Unit, and Interleave":74wF "Slot: ";:A$:A$:A$(27)2000P SLOT(A$):(SLOT0)(SCSI(SLOT))ĺ:"No card there."::65:2000Z "Unit: ";:A$:A$:A$(27)2000+d UNIT(A$):UNIT1UNITND(SLOT)ĺ:"Bad unit number."::65:2000fn "Enter interleave: (default=5) ";A$:A$""IL5:2690x IL(A$):IL0IL255ĺ:"Bad interleave (0-255)."::65:2000 :"Slot "SLOT", Unit "UNIT", Interleave "IL"..." "Is this correct? (y/[n]) ";:A$:A$:A$"Y"A$"y"2000L :"Selected: Slot "SLOT", Unit "UNIT:7 (7):84::(4):"YOU ARE ABOUT TO LOSE ALL PROGRAMS":(3):"AND DATA STORED ON THE SELECTED UNIT."::(4):"PRESS CONTROL-A TO CONTINUE OR ANY" (7):"OTHER KEY TO GO BACK! NOW!":::84::::A$/ A$(1)2000H :"Formatting...":T Z1UNIT CMD4:779,3:780,UNIT:781,IL:782,0:783,42:1110:86:ERR2000 (7)(7)(7)"Getting drive's capacity...": CMD4:N786:LOC781:90:783,13:1110:86:ERR2000L "Want to verify the drive? (y/[n]) ";:A$:A$:A$"Y"A$"y"2900 :"Verifying...":12:3:"Blocks, this unit: " 13:7:"Current block: " 14:1:"Total defects found: 0000" 17152:16:1:86:ERR2000: (7)(7)(7);:DF((790)(791)256)4:DFĺ"No defects found. ":65:2900f "Reassigning "DF" defective blocks..." NDBUF:LOC781:90:783,7:1110:86:ERR2000 64T :A$"Setting Partitions":74Y X07:PT(X)0:Q^ "Your newly formatted drive has ";:CAP(787)65536(788)256(789):MEGSCAP2048:MEGS(MEGS)MEG$(MEGS):2930ih MEG$((MEGS))"+"}r MEG$" megs.":w "You must have at least one partition.":y "Maximum number of partitions is 7,":"of which only 4 at most will ever be":"formattable by ProDOS 8.":a| "How many shall I create? ";:A$:A$:A$"1"A$"7"ĺ(7):2940q PT(0)(A$) :"Each should be at least 1 meg long." "None may be longer than 32 megs." :"Enter the length in megs of each.": X1 "Partition "X;:": ";PT(X)e PT(X)1PT(X)32ĺ(7):"Partition length out of range."::65:2900 PT(X)8(PT(X)8)ĺ(7):"X.125, X.25, X.375, X.5, X.625,":"X.75, X.875 ONLY!!!"::65:2900 XX1:XPT(0)29703! :N0:X1PT(0):NNPT(X)::NMEGSĺ(7)"Something's wrong! ";:65:2900T! "Creating partitions";:FL0Z! :! F3:D2,69:D21,82:D22,2: $4B00:45 52 2! X03:19204X,(786X):! 19209,1:19211,1:BLK0:3035:3040: Driver Descriptor Map! :H" CMD2:779,3:780,UNIT:ND2:LOC781:90:783,BLK:784,0:785,0:1110: Write a block]" 86:ERRġ:2000i" ".";:o" :" 3045:3050" F3:D2,80:D21,77:D27,PT(0)1:" 19211,1:19215,31" A$"Vanilla":LOC19215:3065:3070 # X1(A$):LOCX,((A$,X,1))::9# A$"Apple_Partition_Map":LOC19247:3065}# 19287,31:19291,55:BLK1:3035: Device Partition Map (PDM #0)# :# 3045: clear & do top line#0 19211,32:P1PT(1)2048:NP1:LOC19213:92:LOC19285:92$: A$"Vanilla_1":LOC19215:3065$D 3145:3150;$I A$"Apple_PRODOS":LOC19247:3065:^$N 19291,63:BLK2:3035: PDM #1d$S :u$X PT(2)3380$] 3045$b N32P1:LOC19209:92:P2PT(2)2048:NP2:LOC19213:92:LOC19285:92$l A$"Vanilla_2":LOC19215:3065$v 3145% PT(2)Ĺ19291,63:3220% 19291,557% BLK3:3035: PDM #2=% :N% PT(3)3380X% 3045% PT(3)N32P1P2:LOC19209:92:P3PT(3)2048:NP3:LOC19213:92:LOC19285:92% A$"Vanilla_3":LOC19215:3065% 3145% PT(3)Ĺ19291,63:3290& 19291,55& BLK4:3035: PDM #3 & :1& PT(4)3380;& 3045& PT(4)N32P1P2P3:LOC19209:92:P4PT(4)2048:NP4:LOC19213:92:LOC19285:92& A$"Vanilla_4":LOC19215:3065& 3145& PT(4)Ĺ19291,63:3360& 19291,55' BLK5:3035: PDM #4'* :!'/ 5000: for PDMs 5 - 7''4 :S'> CMD5:779,1:780,0:1110:86:ERR2000'H CMD0:779,3:780,0:781,16:782,3:783,0:1100:86:ERR2000'M Y0'R ND(SLOT)(784)'\ UNIT1ND(SLOT) (f X(53247):X(SLOT25649152):GOOD(51244UNIT17):GOODY1(z UNIT2( YFLUNITZ1:FL1:3010c( :"A scan of your partitions shows that";:( Yĺ::"your new partitions are ready to format."::65:3480( ::"something is wrong."::"You should try again."::65:2000.) :A$"ProDOS Formatting":74:17482,SLOT:XND(SLOT):X4X4) "The following units will be formatted":"for use with ProDOS. If the unit is":"drive 1, it will be made bootable.":) 17484,X: new number of units* Y(17483):XY3530: no change in number of units.* XYČ17506:3530: fewer units nowJ* 17603: more units now^* 17994: onlinef* Z1z* SSLOT16:3620* SS128:3620* SLOT53700* S32:3620* S160:3620*3700*:*$X18176*.S(X)3670+8(X1)823670+BST(Z)S:ZZ1(+VXX16:X18432ı2+`3630>+tZZ1:I+~X1Zc+S$(X)"Slot ":YST(X)v+Y128YY128+YY16:S$(X)S$(X)(Y)", Drive ":ST(X)128S$(X)S$(X)"2":3760+S$(X)S$(X)"1"+" "S$(X):::,:"Press to abort, or any other key":"to continue. ";:A$:A$(27)2000[,:A$"ProDOS Formatting":74,"Make sure a bootable diskette is in":"slot 6, drive 1 and press .":--"If this is impossible, make sure":"a bootable disk is in any drive 1":"and press the slot number of the drive. ";:A$K-::A$(13)BU96:3835c-A$"1"A$"7"3780s-BU(A$)16y-:-X1Z: LOOP THRU HDs-"Formatting "S$(X)::ST(X)1284000-:-UT,BU: Make unit bootable-CD,RB. BK,0: block number.RW: read_blk0.UT,ST(X):CD,WBL.2RW: Write blk 0 to hdd.<UT,BU:CD,RB:BK,1z.FRW: Read Blk #1.PUT,ST(X):CD,WB.ZRW: blk #1, device now bootable.d:. Vol directory: P8 blk 2.F1:YDBUF2:Y,3:YY2#/:"Enter volume name (15 chars max.):":2/B$"":Z10f/A$:A$"A"(A$"Z"A$"a")A$"z"ĺ(7);:4040/A$"`"A$"{"A$((A$)32)/A$;:B$B$A$:Z11/A$:A$(13)4140/A$(8)A$(127)4078/Z11ĺ(8);:868:40300Z1Z11:(8);:868:B$(B$,Z1):4070-0A$"."4110G0A$"0"A$"9"4110a0A$"A"A$"Z"41100A$"`"A$"{"A$((A$)32):41100 (7);:40700A$;:B$B$A$:Z1Z11:Z1154140040700,:06Y,240Z11@I1Z1:YI,((B$,I,1)):IC1J(4)"flush":YY24:I03:YI,(49040I):I: get date/time]1TYY6:Y,195: accessu1^Y1,39: entry len1hY2,13: entries per blk1rY5,6: bit map pntr1|YY7:NPT(X)2048:N65536NN11LOCY:90:BTN2UT,ST(X):CD,WB:BK,2:RW 2:)2 Vol dir cont., blks 3-542YDBUF?2I35G2F1g2Y,I1:Y2,I1:I5ĹY2,0u2BK,I:RW|2I2:2 Bit map--Blks 6, 7, etc...2:2FL0:BMPT(X)2:BM(BM)BM(BM1): number of bit map blks#3BM1FL1:4400: in case only need 1 bit map blk03F2:Y,3C3J1BM:BB:JQ3BK,6:RW3BTBT4096:BMBM1:BM1I7:4400: in case only need 2 bit map blks3&F2:I7:JIIBM2:BK,J:RW:BTBT4096:J:IJ3+ last or only bit map blk40ZBT8:Z14415 4:F1:JYYZ1:J,255:J-4?Z4425]4DZ18((Z(Z))8):N255:J0Z11:NN2J:h4GYZ,Nu4IFLĹY,14NBK,I:RW4XX4b:64:20004l:4PT(5)3380430455PT(5)N32P1P2P3P4:LOC19209:92:P5PT(5)2048:NP5:LOC19213:92:LOC19285:92=5A$"Vanilla_5":LOC19215:3065:3145X5PT(5)Ĺ19291,63:5060f519291,555BLK6:3035: PDM #55:5PT(6)3380530455PT(6)N32P1P2P3P4P5:LOC19209:92:P6PT(6)2048:NP6:LOC19213:92:LOC19285:92%6A$"Vanilla_6":LOC19215:3065:3145@6PT(6)Ĺ19291,63:5140N6 19291,55g6BLK7:3035: PDM #6m6:w6(304562PT(7)N32P1P2P3P4P5P6:LOC19209:92:P7PT(7)2048:NP7:LOC19213:92:LOC19285:926<A$"Vanilla_7":LOC19215:3065:31457FPT(7)Ĺ19291,63:5210(7P19291,55A7ZBLK8:3035: PDM #7G7d:Q7n3380L.*BVANILLA.MANUALSVANILLA.MANUALS5VERIFYORT.NOTES5B SMARTPORT.NOTESSCSI.HACKERv/.' `'*HACKER.DOC)&HACKER3 l;  ; FINDER.DATA<>':p/ !"#$%&'()*+,-./012 THE SCSI HACKER A Format/Uitility Program for Apple's SCSI Card And ANY Hard Drive !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!! WARNING !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! THE SCSI HACKER IS A "NO FRILLS" PROGRAM DESIGNED FOR THOSE WHO UNDERSTAND HARD DISK LOW-LEVEL FORMATTING (AND ITS IMPLICATIONS). THE PROGRAM HAS LIMITED WARNING MESSAGES AND NO HELP MENUS. IT IS CAPABLE OF TOTALLY DESTROYING ALL DATA ON ANY HARD DISK CONNECTED TO AN APPLE SCSI CARD, WITHOUT ANY CHANCE OF RECOVERY VIA "UNDELETE" TYPE PROGRAMS, ETC. THEREFORE, IF YOU DO NOT WHAT YOUR DOING, DO NOT USE THIS PROGRAM! (C) 1988 Joe Jaworski 18405 Tamarind Street Fountain Valley, CA 92708 GEnie: JVJAWORSKI CompuServe: [73307,310] THE SCSI HACKER is FREEWARE. It is copyright material but you may use it and/or distribute it free of charge to anyone for personal, non-commercial use. To get the most out of SCSI HACKER, you will need the following: 1) Apple SCSI Card (Rev C. EPROMs) 2) A SCSI Integrated Hard Drive or ST506/SCSI Controller 3) HDSCPartition program (included on the SCSI.TOOLS diskette) 4) ADV.DISK.UTIL (from the GS System Tools diskette) 5) DiskTimerGS (FREEWARE program, available on most BBSs) INTRODUCTION THE SCSI HACKER allows you to low-level format any hard disk drive in your choice of interleaves. This will allow you to optimize your hard drive for the fastest possible speed. It also provides an extended ("overnight") test program that will verify proper operation of a disk after formatting. In addition, you can selectively park the heads on any drive connected to the SCSI Bus. Needless to say, you should have adequate backup before experimenting with this program. MAIN MENU After launching, THE SCSI HACKER provides the following options in its Main Menu. If you get an error message, it means that either a SCSI Card was not found in any of your slots, or their are no devices currently active on the SCSI Bus. NOTE: The Apple SCSI Card only issues a SCSI HARD RESET on power-up. Among other things, this forces you to power-up your drive before your system (unless the drive your using can respond to UNIT READYs before the motor is up to speed). If things aren't working properly, power-down for 10 seconds and power back up again- Drive first, then CPU second. Test Unit: This option performs a READ test of every block on a formatted disk. It uses what is a called a "butterfly" test, in which blocks are tested from the lowest to the highest and then are incrementally changed, which excersizes the stepper motor and most of the electronics on the hard drive. This test is non-destructive (only does READs) to the data on the drive. Select Unit: This option allows you to select any unit currently active on the SCSI bus. The currently selected volume (if any) is listed at the bottom of the screen. Also included is the current slot. If you have two SCSI cards, only the one in the upper-most physical slot can be used with SCSI HACKER. Low-Level Format: This option allows you to perform a low-level format of any drive. You will also have the opportunity to select an interleave value for the low-level format. This test is destructive, destroying all data, partitions, and directories on the drive selected. For the last time, don't play games with your data. Do a full back-up before using this program. Park Heads: This test will allow you to park the heads of any and/or all unit currently active on the SCSI Bus. Quit: This exits you from THE SCSI HACKER, getting you back to more friendly territory. OPTIMIZING YOUR HARD DRIVE A Proper Interleave setting of your hard disk can make a tremendous difference in performance. Most manufacturers who sell hard drives (especially those who do in different markets) optimize the interleave factor for either the IBM-XT or the Mac. These systems are faster that IIGS's and use interleave factors that are completely different. The object here is to maximize the interleave for the IIGS and ProDOS 16. Once done properly, you will truly notice a speed-up in Disk I/O when using your everyday applications. A few notes that will save you headaches: 1) Low-level Format your drive when it is cold. I've worked on these things long enough to know that most drives suffer from temperature differential problems, aggrevated at the high end. Leave your system power off for a half-hour before starting. 2) Make sure the drive is terminated. Look near the connector on the Drive's printed circuit board for termination packs. Make sure they're firmly in their sockets. Also set the SCSI ID to 6 (for single drive setups) and if you have a choice of LUN settings (see the manual), set the drive for LUN 0. FINDING THE BEST INTERLEAVE The first step is to find the best interleave for your setup. This is a trial and error period that will take some time, but once done, you'll never have to do it again. Step by Step Procedure: 1) Low-level format the drive using the low-level format option in the Main Menu. As a starting point, set the interleave value to 5. 2) After formatting is completed, Run the HDSCPartition program that came on the SCSI.TOOLS diskette included with your Apple SCSI Card. It doesn't matter what partitions you set at this point, as long as you set one that is at least 10 megabytes in size. NOTE: If you're launching these programs from the FINDER, be sure to answer EJECT from the Finder's request to initialize the volume. DO NOT use the Advanced Disk Utility (ADU) at this point. The two programs do two different things. HDSCPartition creates a DPM (Device Partition Map), while ADU will only allow you to modify the DPM. If ADU doesn't find a valid partition map, it will low-level format your drive at a 1:1 interleave, something you do not want. 3) After running HDSC partition and then quitting, answer "Initialize" to the Finder's prompts this time, instead of EJECT. This will high-level format your drive, allowing you to name the volumes. If you're not using the FINDER, run Copy II Plus or the FILER or any other program that does high-level formatting. Name the disk(s) anything you want. At this point, don't worry about capacity, even if your 64 Magabyte drive only shows up as 20 Megabytes. We'll be fixing that shortly. The High-Level Format should take only a few seconds. If it takes longer, (indicating that a low-level format has been forced), you messed up somewhere, so go back and start over. 4) Put a Copy of DiskTimerGS on the new volume and launch it from there. Write down the test results. 5) Now try an interleave factor of 10 ($0A), going through each step again. Now do it again with 15($0F). What we're doing at this point is finding the best interleave factor. For example, suppose you get the following results from DiskTimerGS: InterLeave: 5($05) 10($0A) 15($0F) 20($14) READ Timing: 90 61 69 78 In this example, the READ numbers from DiskTimerGS got dramatically better when going from an interleave of 5 to 10. This means that the optimum interleave factor is somewhere between 5 and 10. (Don't concern yourself with the SEEK or ADAPTER numbers from DiskTimerGS). Also, you might want to run DiskTimerGS twice each time to make sure your numbers are stable. Now go back and do the interleave one at time, from 5 through 10. Your results might look like this: InterLeave: 5($05) 6($06) 7($07) 8($08) 9($09) READ Timing: 90 95 96 58 59 Bingo! An interleave of 8 is best. This is where the READ timing drops off dramatically. However, as a rule of thumb always add 1 or 2 to get best overall performance when using real applications. Therefore, the best interleave for your drive is 9 or 10. Now do the following: 1) Reformat at an interleave of 10 (if needed). 2) Run HDSCPartition as described above. 3) Run ADU. 4) Select your drive and set up your partitions exactly the way you want them. You should now get your full capacity. The partitions will be named "Apple //" from HDSCPartition. Name them to whatever you want to use as the volume names, adjusting partition size accordingly. 5) You're Done! Your hard drive will now work at peak performance. USING TEST It's a good idea to run the TEST option at least two passes on each partition before using your drive. TEST will run continuously until stopped by the ESC key, so if you want, you can run it overnight or all day while you're at work. Be patient. Even two passes can take over an hour, depending upon the capacity of your drive. You'll have to high-level format the drive before running test. PROBLEMS, TROUBLESHOOTING, CAVEATS 1) It has been reported that PARK doesn't work right on Chinook drives. The park routine simply issues a SCSI STOP UNIT command to the unit selected. Seagate, Quantum, and Rodime drives do support this command, as it is part of the Common Command Set and Apple's SCSI variation. 2) If your subsystem uses an ST-506 drive and a separate SCSI controller (in addition to Apple's SCSI card), make sure the drive's defects are recorded in the Primary List. The low-level format routine will map out primary list defects, but not grown defects. You may have to use an IBM or Mac with appropriate software to access the Mode Select pages to do this. Check the manual of the Controller. An alternative to fixing defects is to run a bad block mapping program (ala Mr.Fixit), but this is a less reliable method of finding all the media defects. 3) If your low-level format operation takes a horrendous amount of time, your controller is probably doing media Certifies. This is good, since all defects are being mapped out for you. Be patient. 4) SCSI HACKER won't run if it doesn't find an Apple SCSI card and at least one Unit on the SCSI Bus that will respond to a UNIT READY command. Therefore, the program won't work if you try to use it with anyone elses Apple Disk Controller card. 5) The permissable Interleave Factors are governed by the physical number of sectors on your drive. For standard RLL 26 sector units, you can use from 0 to 25 (0 or 1 will both format out to an interleave factor of 1). For 13 sector MFM drives, expect a range of 0 through 12. SCSI HACKER won't format if you specify a number out of range and will report an error message. 6) All error numbers reported are from the SCSI Card. See APDA's SCSI reference manual for more details. Most of all, have Fun! And I hope I took a little mystery out of this Hard disk game. -Joe 456789:;ة   ȱȱȱɂ<: : X % $Zȅ" Ȁz ~( e%ic(j(q(x(d(k(r(y( J$"" b( '%''- : X % $Z" Ȁz ~(Lx '"""""" i( '%% %)'9%)''% ''%'%''"#"%'#2 XZ# ȀzZ# Ȁz% $ZL$ Ȁz'ZU$ ȀzZ' Ȁz"# ( 'ɍTɊ*ɋ (: ( ( (˭ ( ( ( (L)LM.L*L-Lx %%*ϠɠӠġɠĠԠġԠ٠ϠŠԠàϠԠŠɠҍéŠɠֱԠԍԠԍ׭̠ԍˠԍԺźέՠԠנΠŠà΍͠ΠҠɮӠˠōǠҠŬΠƠՠϠԍԠϠŠӮԠŠΠ٠ŠĠΠӭĠԮI%U% c% v%%ԠԠԠԠ׭̠ԠˠӠԠ,` Ȁ`1 XH% $Z( Ȁzh ~(hhLx `ЯӠҺ XH% $Z( Ȁzh ~(hhLm!%%%%` "` "` "` "`% $Z" Ȁz '`: 5%% $5%5%?2 '2`: 5%% $5%5%2 '?2` X''% $Z$ Ȁz ~(Lm!% $Z* Ȁz% $Z# Ȁz% $Z' Ȁz% $'i' '! % $Z΅* Ȁz'''''''"'" i() L('"'" i( L(9,ɛ2 ~(Lm!H % $Z* Ȁzh ~(Lm!'i'''ͥ' 'ͤ'L)'8'Υ''ͥ' 'ͤ'L)L)ǠźӺԠĭҺԠĠ X :% $Ze- Ȁz'#% $ZE$ Ȁz!% $Z' Ȁz % $ Lm! X% $Z܅, Ȁz "% $" 'ɍɊ ɋୠ":"׭"" X% $Z, Ȁz% $" % $ Lm! X% $2Z- Ȁz2% $Z- Ȁz p( ( X% $ZC- Ȁz ~( X% $Z`$ Ȁz ~(Lx ԠȠŠؿŠҺŠЯΠӬҠΠӠΠŠРϠԠΠӠΠ̠٠̠ΠŠŠ΍Ϡՠ٠ԠϠϠӿ٠Ҡκ X w( (% $Z. Ȁz ~(Lm!ՠ٠נҭΠҍĠŠ'͟''""""L!L.s+HACKER.DOCACCLSB HACKER.DOCACCLSDISK.TIMERv//' `'FINDER.DATA>T( p/=)DISKTIMER?$7 ='DT.LISTR[7 =-DISKTIMER.DOCU 7 =L.s DISKTIMER.DOCLSDT.LISTERANUALSB DISKTIMERANUALS@ABCDEFGHIJKLMNOPQ ,@ FK ]HH "hh" 9,H6"GS/OS not present Error is $=BHH"᭽HH". "x   MX,"U"N:""᭿H &"d:"""H &"p:"""H &"|:""":"""H "hL 2 `9z8yKKN$ K!?1/LFRunning READ Test...Running SEEK Test...Running ADAPTER Test...DISKTIMER RESULTS: READ Timing: SEEK Timing:Adapter Speed:Click the mouse to QuitZ:"L"HHHH "hhhh""B1H5""ProDOS 16 Read Failure Error is $H дHHHH "hhhhf)HHHH< " "h)m)HHHH< " "h)m8`n:"a"BHHHH "hDhhhH""B4HD"%P16 Read Error @ Seek low Error is $KH""B3H"$P16 Read Error @ Seek hi Error is $BBfHHHH "hFhhhDFD)HHHH< " "hHD)mHHF)HHHH< " "hJF)mJJJ8H``:"v"R HHHHH "hThhh""B4H"%P16 Read Error Block 0000 Error is $RRдHHHH "hVhhhTV`T)HHHH< " "hXT)mXXV)HHHH< " "hZV)mZZZ8X``" H" h" HH H " hhHH" "" :" " "QE " A 64H2 "%Wrong Version(s) of Tools Error is $8 " iHH" HiH" H" 9"᭹HiH" " ``( "One moment please .....Initialization Error -->" " H "h8``Please insert the disk ProceedCancel  */ """"""""᭹H"᭷H"""), wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww+wwwwwwwwwwwwwwwwww wwww ?wwww????wwww???wwww?<????wwww?????????wwww????????wwww ??????????wwww?????? 53 of 55 Sub =>CMS Info/ABRAMOWITZ From =>ELLIOT ABRAMOWITZ (#41) Date =>12/29/87 15:27:48 For those of you who were interested in how to configure a CMS hard drive to service both a Mac and a GS, the following information (obtained on Genie) should be of interest to you: Topic 29 Sun Dec 13, 1987 AUG2 [Doug] at 16:42 EST Sub: Chaining CMS SCSI devices Here's how to hook a Mac and and GS to one CMS drive andhave them work both at the same time. Category 3, Topic 29 Message 1 Sun Dec 13, 1987 AUG2 [Doug] at 16:59 EST OK guys..I finally got the never to hook my GS and my Mac on the SCSI bus at the same time and it works fine!....My GS is doing some d/ling while I'm using my Mac to type this...So hear how its done... First, You need a CMS drive with ATLEAST 60 MB...(40MB is stretching it). Second, CMS suport will tell you this can't be done, and when you say you are doing it, then they will say, they dont recommend it. Use this at you own risk! [This was given to me by Charles McConathy].. Since I want the drive to be configured best for my Mac since its moving alot bigger applications, I assigned the following SCSI adreeses: Mac SCSI ID 7 [cant be changed] CMS drive #6 CMS SCSI // card ID #5 [FYI internal SCSI Maqc drives have ID of 0]. [This means the GS has the lowest prioirty in accessing the drive]. Second Backup EVERYthing with straight copies since you are gonna reformat the drive. Second you are gonna have a 38.5 Mac parition and a 20 MB GS parition.. [the extra space is based on how Mac configures the drive]. Order the CMS Mac SCSI Ultities from CMS (less than 100MB version).. Format your drive using the SD60 option...than initialize it using the SD40 option and 5:1 interleaving. Then install the Mac drivers. Set up your ScSi // card so that the first volume starts at 40MB and has a size of 20. Set the second drive with 0MB. [You have to define a second drive on the card to make everything work nice]. Format the drive and you be set. {this is with switching cables back and forth]. To hook both the GS and the Mac, you ned to buy a 25-pin straight through twisted pair cable with 25-pin D connectors. Remove JP 2 and you should be OK... Doug Acker [AUG2] Hope that you can use the info and have a happy new year!!!! Elliot [2] Options: A)uto reply, R)e-Read, Q)uit, N)ext or (Return)=Next => L(sBSHARE.HARD.DISKHD.TAPE.INFOv/8' `'+HD.W.BACKUP'JkkFINDER.DATA((9p/. O=====|====|====|====|====|====|====|====|====|====|====|====|====|====|====|=== 5 -----------------------------------5 BUILD A HARD DRIVE WITH TAPE BACKUP5 -----------------------------------* By Jim Smith5 -----------------------------------DB For a long time I've wanted a hard drive, but looking at the IGprices I didn't think I could afford one. Then add the fact that there ECwas never any information on how they work, and I just let it be a Edream. I want to know how it works even if I can't understand why!!HF One day I read an article in A+ magazine describing how to build Gyour own Hard Drive and I thought "This is easy, no mystery in this".DBSo after downloading everything I could find from GEnie I finally decided " Let's do it!".D I started by ordering a Seagate ST277N-1 (60 MEG) hard drive. Then a CMS SCSI card.CA Then I contacted someone I knew at a local RS store for the DBenclosure. (It seems that sometimes in order to repair their hard IGdrives they purchase external units and remove the drive to install in )their computers leaving an empty case.)IG I saved $50+ on the enclosure but it was designed for a RLL drive FDso none of the connectors matched. Which means you have to be handy with a nibbling tool.DB I made the internal cable myself and when I was finished the 3whole thing worked flawlessly. (I was amazed!!!)FD It didn't take long, however, to realize that the CMS card was Gnot the one I wanted. (There were a couple of MEG that I couldn't useHFand no room for expansion.) I ended up with the Apple SCSI card which <allowed me two full 31 MEG volumes and room for expansion.EC Having a hard drive was great but one little problem came up. ?Several times I did an "OOPs" and the drive was scrambled!!!!CAOh well, wipe it clean and start over. This was getting old!!! I ECdecided life would be a lot easier if I had a tape backup. Back to HFGEnie I went and sure enough there was information on that too. (More downloads,more reading.)?= Back to the phone with credit card in hand to order the FDrecommended tape drive. While I was at it I decided to order a full A?height case with a 60 watt power supply (Enough power for both =drives). Last of all, two DC-2000 tapes for the tape drive.IG The case did not come with an internal cable but it did come with GEgenuine Apple connector holes and being bold (or crazy) I decided to IGmake my own. I would recommend that you don't do this even if you know IGwhat you're doing. It took me over three hours and when finished I had HFsome wires crossed which I overlooked even though I double checked my GEwork. You can purchase a cable for around $20.00 and this is the way HFto go. If you insist on doing it yourself, pinouts for the cables are FDlisted. I purchased the cable and connectors locally and unless you Fcan get a substantial discount it's cheaper to buy assembled cables.H------------------Let's put this thing together!----------------------E The power supply is not shielded but this will have to be doneGbefore the Tape drive will work properly. Cover the drive side of theAheat sink with two or three layers of Duct Tape making sure theCventilation slot at the bottom is open. This has to be done sinceIGthere is high voltage on it which I found out the hard way (a shocking experince!).FD The shield must be capable of magnetically isolating the power HFsupply from the drives and still allow complete ventillation.The only HFthing I could think of that would do this, of all things, is ordinary DBMETALLIC window screen. You will need a piece of this at least 10 ECinches by 7 inches. We'll install this later so keep the Duct Tape handy and have patience.DB The Tape drive won't fit on the bottom and it needs the most DBventillation so you will have to modify the bezel on the cover. I IGdrilled a row of one-eighth inch holes one-eighth inch apart above the ECdata cartridge opening. (Sixteen holes in all.) At the same time I HFtook a piece of duct tape and covered all but one row of holes on the FDbottom of the base. DO NOT DRILL HOLES IN THE TAPE DRIVE FACEPLATE, %DOING SO WILL VOID YOUR WARRANTY!!!GE You won't need the internal terminators on the drives so let's FDremove them. Grab the manuals that came with the drives, find their (locations and take them out CAREFULLY.IG On the tape drive there are a set of DIP switches, they will have HFto be set for a SCSI ID of 0 and a "Transfer data block size" of 8192 ECbytes. With the drive upside-down, eject button up, it should look like this:- _________________. OPEN | = = = = = = |6 | = = | CLOSED. | 1 2 3 4 5 6 7 8 |H ________________________|_________________|__________________________H _____________________________PC board________________________________( FIGURE 1EC You have two options on how to set the hard drive SCSI ID and parity check enable.GE One is to use the jumpers provided with the drive and the other HFis to bring out a DIP switch so you can change it at any time. If you FDuse the jumpers you will have to open the case every time to change HFthe ID or parity. (If you want to hook your drive to a someone elses Fcomputer setup this can be a real hassle!!) I doubt if you will wantECto hook to another setup so let's proceed. Once again the drive is upside down.HFNOTE: The ST277N-1 is a 5.25 drive and the PARITY/SCSI ID pinout used IGwas for the 3.5 drive. Be advised that you have to go by the number of 4PINS and not the SIZE of the drive when jumpering.CA It appears that Apples need parity checking so let's enable parity checking (jumper P).? Now we need a SCSI ID, let's make that 6 (jumper 2 & 4).0 When we're done it should look like this:G P 4 2 1H______________________________________________________________________H_____________________________PC board_________________________________G | |.| . |.| |.| .G SCSI CONNECTOR | |.| . |.| |.| .D_______________________________________________| |_| |_| |_|( FIGURE 2HF Now take the cable you bought (if you were smart) and lay it out HFon a piece of board. With a VERY DULL razor blade CAREFULLY split the ><50 conductor cable into 5 wire groups between the two drive FDconnectors. This is not necessary but it makes life a little easier @when you have to twist the cable to plug it in to both drives.DB Now mount the Apple type connectors to the base in the holes ECprovided, if the cable came without mounting hardware, 4-40 by 1/2 screws and nuts should work.IG Tip the base on it's side and CAREFULLY slide the hard drive into Gthe mounting bracket with the PC board facing the bottom of the base.HFThe hard drive has to be mounted on the bottom because the tape drive (is too long!! Align the holes like so:H ____________________________________________________________________H | TOP |H | |H | O <----SCREWS----> O |H | |H | o TAPE DRIVE o |H | |H | SIDE VIEW |H | |H | |H | o HARD DRIVE o |H | |H | O <----SCREWS----> O |H | |H |____________________________BOTTOM_________________________________|( FIGURE 3DB Start the screws in the bottom holes on both sides, all four IGholes on both sides should be lined up. Set the case upright,make sure Dthe faceplate is tight against the bracket and tighten the screws.FD Plug the power connector into the hard drive, it will only fit IGone way. Then plug in the internal cable connector, make sure pin 1 on 7the cable is aligned with pin 1 on the drive like so.D ____________________________________________________________E |\ / |E | \/ <----CABLE CONNECTOR PIN 1 |E |____________________________________________________________|F ______________________________ _______________________________G | \ / | | |G | \/ |_| |G |___________DRIVE CONNECTOR______________________________________|( FIGURE 4$ THAT WASN'T SO HARD, WAS IT? . Now let's install the the tape drive...GE Slide the drive into the mounting bracket with the eject button GEtowards the hard drive. With the drive 1/2 way in, plug in the power 7connector. This will be difficult but not impossible.GE Finish inserting the drive and start the mounting screws. (See FIGURE 3)IG Now set the base upright and insert a 5 1/4 disk jacket (with the A?disk in it) between the drive faceplates. This will give you a HFone-sixteenth inch gap (more ventilation). Make sure the faceplate is <tight against the mounting bracket and tighten the screws.IG Twist the internal cable 180 degrees, align pin 1 and plug in the Econnector (See FIGURE 4). Tuck any excess cable between the drives.DB Make sure the SCSI cable does not touch the heat sink on the FDpower supply and that it is routed away from the AC wires. The heat GEsink gets very warm, let's not take any chances! Also, it has a high <voltage on it. Remember my shocking experience? (I do!!!!)FD Route the power supply cables down to the base and back to the power board.FD Time for the shield (window screen). I taped mine to the drive ECmount but it would have been just as easy to have made it a little 2wider and used the mounting screws to secure it.FD Take the screen and unravel about one-quarter inch all the way A?around then bend the edges over, we don't need any loose wires IGfloating around. The 7 inch sides are the top and bottom, pick one for HFthe top and make a lazy (not sharp) 45 degree bend about 2 1/2 inches FDfrom the edge. Slide the screen in under the internal cable, behind IGthe mount and in front of the heat sink, center it so that there is an HFequal amount of screen on either side. Bend the screen sharply around IGthe edges of the mount, use duct tape and tape it to the sides. Try to HFkeep the screen away from the heat sink. Now straighten the 45 degree bend as best you can.IG Install the cover most of the way and plug in the power LED, then FDfinish installing the cover. Take care to make sure the face plates CAline up with the opening in the front of the case, they will fit A?through the opening but it's a tight fit. Now plug in the SCSI -terminator, the SCSI cable, and power cord.CANOTE: The hard drive will have to be powered up 15 to 30 seconds before the computer!EC I put the SCSI card in slot 5 so I could use the full 4 drive DBoption since the hard drive is divided into 2 partitions, each of GEwhich is seen as 1 drive. The tape drive is seen as another drive in GEslot 2 and this leaves me room for 1 more 32 meg drive which uses up the 4 drives available to me. Some food for thought:HF A 90 meg drive with tape backup would give you three 30 meg FDvolumes with backup, all in one package. However, if the drive dies you're dead in the water!! IG I am considering installing on/off switches on the case so I 8can choose which devices are active at any given time.HF I wonder if there is a way to hard wire the Apple SCSI card DBfor a reset without powering down and starting over. (Can that be programed?)GE Now you're ready to format, there are several programs on GEnie ?=for doing this and I have listed the ones I used. Follow the 9instructions CAREFULLY and there should be no problems., CABLE PINOUTS: APPLE CABLE CASE TO DRIVE; / \ / \H DB-25 MALE BR-50 MALE IDC-50 FEMALECGND 14 1,2,3 1,3,5DGND 16 4,5,6 7,9,11GGND 18 7,8,9,11 13,15,17,21FGND 7 16,18,19 31,35,37FGND 9 20,21,22 39,41,43FGND 24 23,24,25 45,47,49?DB0 8 26 2?DB1 21 27 4?DB2 22 28 6?DB3 10 29 8@DB4 23 30 10@DB5 11 31 12@DB6 12 32 14@DB7 13 33 16@DBP 20 34 18@TERMPWR 25 38 terminator power 26@ATN 17 41 32@BSY 6 43 36@ACK 5 44 38@RST 4 45 40@MSG 2 46 42@SEL 19 47 44@C/D 15 48 46@REQ 1 49 48@I/O 3 50 50IG The following is a list of vendors, the ones I used are marked by an asterisk.E The hard drive was a Seagate ST 277N-1 28 millisecond 60 meg:% * Hard Drives International 1812 West Fourth St. Tempe, AZ. 85281< 1-800-234-DISK Cost: $478.00 delivered Treasure Chest No Address2 1-800-245-3040 Cost: $391.00H Taken from the October '89 issue of5 Computer Shopper. The tape drive was a 3M MCD-40 DM/SCSI: * Hardtimes 1070 Commercial St. San Jose, CA. 95112< 1-408-452-5700 Cost: $304.80 delivered The tapes are 3M DC-2000:* * Distec Buisiness Products Inc., 16842 Von Karman Ave., Suite 225 Irvine, CA. 92714? 1-714-474-8735 Cost: $16.00 plus shippingC NOTE: Total cost for 2 was $42.28 and I could have= purchased them locally for $21.00 each.HF The case was a standard full height, with a 60 watt power supply part number WX 2866:, * Wetex International U.S.A. Corp.( 1122 W. Washington Blvd. # D! Montebello, CA. 90640; 1-213-728-3119 Cost: $88.60 deliveredB NOTE: It never occured to me to ask if they had aD internal SCSI cable to go with it (a thought).0 Apple cables, connectors,and terminators:" Altex Electronics Inc. 300 Breesport" San Antonio, TX. 78216: 1-800-531-5369 Cables and connectors Connect-It P.O. Box 14337 Arlington, TX. 76094; 1-817-461-9400 Cables and terminators- The SCSI I/F card was a genuine Apple: * Programs Plus 75 Research Drive Stratford, CT. 06497@ 1-800-832-3201 Cost: $109.00 plus shipping< All the programs and INFO were downloaded from GEnie:' 6711 BUILD.YOUR.OWN.SCSI.HD 7061 HDFORMAT.BNY( 6432 SCSI.DRIVE.ASSEMBLY.BQY 6169 SCSI.HOW.TO.BQY@ 8415 TAPE.BACKUP.BXY Will not recognize the secondF partition on a 60 meg drive on my IIe. 6613 VANILLA! 7642 VANILLA.TAPE.TXT 6155 DISKTIMER.BQYH 8665 VANILLA.1.0.BXY I Haven't tried this one but it looksF like the solution for formating a hard . drive on a IIe.IG I highly recommend purchasing a copy of Prosel by Glen Bredon for IGmanaging your files. I have also ordered a copy of HDTAPE by Tim Grams /which I haven't recieved as of this printing.' The addresses for both are: Glen Bredon 521 State Rd.C Princeton, NJ 08540 When ordering specify theC computer being used and the@ size disk. Price: $40.00= Check or money order. Tim Grams P.O. Box 462283C Garland, TX 75046 When ordering specify theC computer being used and the@ size disk. Price: $50.00= Check or money order.EC The prices for these programs may seem high but consider %what you have invested in hardware.L.sB HD.W.BACKUPDISKBUILD.HARD.DISKv/8' `'*HARD.DRIVE?|TT FINDER.DATA(( p/. Dr. Ken's Roll-Your-Own Vanilla SCSI Hard Disk Drive by Dr. Kenneth Buchholz The Washington Towne Crier BBS 1-201-689-3649 300/1200/2400 Introduction With the advent of cheaper memory, larger software and especially the Apple //gs, Apple // computer users are using their systems for more complex and larger tasks resulting in greater demands for high capacity disk storage systems. Since the birth of the Apple ][, we have seen changes in disk storage from the original 13-sectored 5.25 inch floppy drive, to the 16-sectored 5.25 inch floppy drive (160K maximum capacity), to 3.5 inch micro floppy (800K maximum capacity) to the rise in popularity of hard disk drives from 5 megabytes capacity on up. These changing demands are not Apple //-specific but are common throughout the industry, and the advances in hard disk drive technology have been coupled with ever-decreasing costs. Where once a hard drive was the property of the wealthy few, more and more "home users" are finding hard drives are no longer dreams of their futures but realities in their dens and living rooms. When I purchased my Sider 10 meg SASI hard drive in April 1986, I paid $695 "mail order". When I purchased my 60 meg CMS SD60 A2S SCSI hard drive in January 1988, the mail order price was $950. As you can see, the price per megabyte storage decreased from 69.50/meg to $15.83/meg - quite a price decrease! And although the price of commercial hard drives has not decreased very much in the year since I purchased the CMS drive, you can easily assemble your own SCSI hard drive at a cost of about $10.93/meg for a 64 meg SCSI drive! I'll explain how (and how easy) it is in this document. Why a SCSI Drive? For Apple // owners, there are basically two types of hard disk drives which are popular: SASI and SCSI. And example of a SASI drive is the Sider series by XEBEC (formerly First Class Peripherals), and examples of the SCSI drive are the CMS, Chinook and Apple hard drives. The SCSI (Small Computer Systems Interface) hard drives are by far the most popular devices these days, especially in light of Apple's committment to the SCSI interface (also used on the Mac line). The SCSI interface allows you to chain several SCSI devices on the same "chain", and both ProDOS and GS/OS were designed with the SCSI interface in mind. To keep pace with future design advances in CPU and software, it is highly recommended that you choose the SCSI interface type hard drives for your system. Which Brand SCSI Hard Drive Do I Choose? There are several manufacturers of SCSI hard drives of excellent quality: Seagate and MiniScribe are, in my opinion, two of the best around. Both manufacturers market a wide array of drive types (SCSI, MFM, RLL), capacities (10-345 megs) and speeds (65-19 milliseconds) and provide very high quality products backed by a 1-year manufacturer's warranty. The CMS drives, for example, use the Seagate SCSI series of drives in their products. When searching for a SCSI hard drive, the first thing you need to know is how to identify a SCSI drive from another interface type (such as MFM or RLL). Seagate's SCSI hard drives are identified by numbers beginning with "ST" and ending in "N"; for example, the Seagate 20 meg SCSI drive is identified by ST255N, their 40 meg SCSI drive by ST251N and their 65 meg drive by ST277N. MiniScibe identifies their SCSI hard drives by a 4-digit number followed by "S"; their 20 meg drive is identified by 8425S and their 40 meg drive by 8051S. Which Size Drive Do I Choose? Which drive you choose depends upon several personal factors, such as total storage capacity you need and the types of applications you'll be running at present, what you think your future needs will be, and how much money you can afford to spend right now. Your present needs and applications are the easiest thing to determine. Consider how many 800K micro floppies and 160K 5.25 inch floppies you have as "work disks" (vs backups) and calculate the total storage capacity that all of these collectively take to get a rough idea as to what your present hard drive useage would be. Consider how fast you accumulate disks - 10 per month, 50 per month? Most of your disk accumulations should be for data, since most folks do not accumulate program disks anywhere near as fast as they do data disks. Next, consider which of all your programs you would actually be running off the hard drive. Note that many games are copy-protected and thus can not readily be moved to hard disk unless (a) you can remove the copy protection (or in rare cases, the copy protection only applies to floppy copies and the copy protected program can be moved to high capacity storage devices) and (b) the program was written such that it is not dependent upon a specific volume name "hard coded" into the program itself (if it does require a specific volume name, even when run off the hard drive, it will require the floppy to be in the drive and will most likely use that version rather than your hard drive version). All of these considerations are guidelines for getting some rough idea as to your current hard drive needs; the bottom line is that you will have to give serious thought to exactly what it is you'll be putting on your hard drive. The hardest thing to determine is what your future hard drive needs will be. This is especially difficult because, in many regards, the requirements of future software applications is not only out of your hands but remains unknown to even the developers themselves! If you are using an Apple //gs, about all that can be said is that software is growing at an unbelievable rate and even now many //gs-specific products come on multiple 800K microfloppies. Look to the Mac and MS-DOS and OS/2 worlds to get a taste in the trends: single applications requiring a dozen or more high density floppies are not uncommon by any stretch of the imagination. Just like buying a new car, determining what you can afford on a new hard drive is extremely difficult in large part because the cost per megabyte of storage decreases dramatically as the overall capacity of the drive increases. For example, ComputAbility's prices for Seagate SCSI hard drives in February 1989 were $319 for 20 megs and $419 for 65 megs: $15.95 per meg vs $6.45 per meg. Considering the per meg cost, it really does pay to stretch your wallet to the max and get the largest hard drive you can possibly afford if you're looking for both the best dollar value and the maximum expandability for the future. Finally, consider the sizes of the data files with which you'll be working, and their number. Many database programs, for example, use "virtual memory" - using the disk in lieu of RAM memory. An example of such an application is Managing Your Money. Applications which use virtual memory require not only disk space for the file but more (which can be double the size of the disk file itself) for virtual memory. Again, there is no global rule-of-thumb for this - it varies from user to user based on specific software applications running and the amounts of data being maintained and manipulated. What Speed Drive Do I Need? To the greatest majority of folks, Speed Is King. In addition to large storage capacity (and the concomitant elimination of constant swapping of floppy disks during your application), hard disk drives offer great improvements over floppies in I/O (input/output) times. Several factors play a role in the effective I/O speed of the device: seek time (how fast the drive itself can find specific blocks on the disk surface), transfer rates (how fast the data can be moved between drive and computer), and CPU speed (how fast your computer can handle data movememts within itself). "Slow" hard drives have a speed of approximately 60 msec or greater. "Fast" hard drives have speeds in the range of 18-28 msec. The most common "average" SCSI hard drives operate in the 40-42 msec range. Of course, you pay for increased speed (nothing is free in life), and to give you a rough idea of how much you pay for the speed increase, consider these prices from Hard Drives International on identical type (non-SCSI) and sized drives which differ ONLY in access speeds: the Seagate ST251 40 meg drive at 40 msec runs $329 whereas the exact same drive running at 28 msec is $399. That's $1.75/meg added to the cost for increased speed alone. The most popular speed today on the Apple // series is 40 msec since neither the CPU nor the host adapter cards (plugged into the Apple's slots and connected to the hard drive itself) can handle drives much faster than this. Of course, this will change in the future, but for now spending more money on drives faster than 40 msec does not give you any direct benefit. If today is your main concern, you are better off spending the extra dollars to get a larger capacity drive; if you are concerned with tomorrow as well, and speed is your main concern, getting the faster drive today may pay off in the near future. About the only other suggestion I can offer is to NOT get a drive slower than 40 msec (i.e., an access time whose number is greater than 40, e.g., 65 msec). Rolling My Own - A Short History Last year, when my BBS needed to expand its hard drive storage beyond the 10 megs it had, I was faced with again spending $950 for another commercially-available 60 meg hard disk drive. And my pockets just weren't that deep, especially after having blown $950 several months earlier. I was also somewhat green with envy at all my MS-DOS friends (yes, I admit it - I do have MS-DOS friends!) constantly bragging about just how cheap their hardware was. These were the circumstances which lead me to buy my first copy of Computer Shopper and thus began my journey into the unknown world of assembling my own vanilla SCSI hard disk drive. Having a CMS drive already, I popped open the hood and looked inside. I found that the CMS hard drive - once mysterious and magical - was nothing more than a Seagate ST277N SCSI drive and power supply unit inside a metal box. It appeared that CMS did no alterations whatsoever to the Seagate drive itself; that is, all of the interfacing to my Apple //gs was done via their SCSI Host Adapter card which plugs into a slot inside the Apple itself. Time to call in my chips with all my contacts in the industry, so off I went through CompuServe, GEnie, a series of telephone calls and numerous letters. To my surprise, no-one seemed to know if my assumptions about the CMS were correct. I was on my own, with a lot of "Best wishes and let me know how you make out!" I obtained a loaner Seagate ST277N in plain, no-frills case with power supply. I replaced my CMS drive with this generic drive and booted the system. After several attempts, I got it to work flawlessly off the CMS SCSI Host Adapter. My suspicions were indeed true! Out came the Computer Shopper and in went my orders to vendors. Here's the hardware I went with and highly recommend: Hardware Required - Seagate STxxxN SCSI hard drive. I used the exactly same 65 meg drive that CMS uses in their 60 meg SD60 A2S model (the difference in size is explained below; the drive itself is indeed 65 megs unformatted capacity). - The Tulin Apple Hive case with 30 meg power supply, fan and all internal cables and hardware. - The CMS SCSI Host Adapter Card with external cable and formatting software. As of the February 1989 advertised prices in Computer Shopper, this same drive subsystem will run approximately $653 without shipping if you use the ST277N model (65 megs). I supply a list of vendors and February 1989 advertised prices at the end of this document; you can bargain hunt through Computer Shopper and local computer faires and flea markets and save a few extra dollars if Lady Luck is on your side. The Roll Assembly is truly a piece of cake if you have mastered the fine art of using a Phillipshead screwdriver, and total hardware assembly time is less than 5 minutes (taking your time). Since all cases are basically identical in terms of assembly of the unit, I will be relying upon my personal experience using the Tulin Apple Hive here. Secure the Seagate drive to the base of the case using the supplied 4 screws and tighten securely but be careful not to exert too much torque (if this is at all possible). Take one of the two power cables coming from the power supply and plug it into the back of the drive itself. The power line terminates in a D-shaped male connector which plugs into a D-shaped female socket on the back of the drive; the D-shape prevents you from plugging the power cable into the drive in the wrong orientation, so this is fool-proof. Next, plug the cable coming from the twin DB-25 pin connectors on the back of the case into the drive. This cable terminates in a 50-pin connector. Examine this connector closely and you will note that there is a guide on it which will allow you to insert it onto the connected on the back of the drive ONLY in the proper orientation, so you can't possibly install this cable wrong. Next, examine the 4 sets of pins on the lower left back side of the drive itself. If any of these pairs have jumpers (small black plastic tabs which slide over a pair of pins), remove them. Without too much discussion on their function, suffice it to say that without any of these pin sets "jumped", the drive will have a device number of 0 (zero). Next, connect the two single-stranded lines running from the power supply to the green LED light on the front of the case. This light is the power ON/OFF indicator. Finally, replace the top of the case, securing to the base with the 3 screws provided, and insert the external power cord into the back of the case (but don't plug it into the wall just yet). Assembly of your hard drive system is now complete and ready for attachment to your Apple //. How you interface your SCSI to your Apple depends upon the specific host adapter card you are using. In this example, I'm using the CMS SCSI Host Adapter card; if you are using another brand card, follow the manufacturer's directions for setting up the card. You will need to know that your hard drive has a device number of 0 (zero). The CMS card is configured using jumpers (exactly like those which may have been on the back of your Seagate drive that you removed). These jumpers control such things as capacity of the drive, volume partitions (start locations and size), device number, etc. Note that GS/OS will allow you to access volumes greater than 32 megabytes but if you are using any ProDOS-8 or ProDOS-16 applications, you must partition your drive so that no single volume exceeds the ProDOS limitation of 32 meg maximum volume size. Thus, in this example, we'll be partitioning the drive into 2 30 meg volumes. The CMS card has 6 banks of 8 pairs of jumpers to control Device ID (DID), Host ID (HID), Partition Starting Point and Size (PS1 and SZ1) for the first partition and Partition Starting Point and Size (PS2 and SZ2) for the second partition. Since we set our drive to a device ID (DID) of zero, none of the pin pairs should be jumped. To select a host ID (HID) of 7, the first 4 pin pairs (1-4) should be jumped and the last 4 pin pairs (5-8) should be open. Our first partition will start at a location of zero and be 30 meg in size, so the jumper settings for PS1 should be all open (none jumped) and SZ1 should have jumpers ONLY on pin pairs 1, 3, 4 and 5 (pin pairs 2, 6, 7 and 8 should be open). The second partition will begin at location 30 and be 30 megs in size, so the jumper settings to accomplish this are PS2 should have a jumper ONLY on pin pair 4 (all others are open) and SZ2 should have jumpers on pin pairs 1, 3, 4 and 5 ONLY (2, 6, 7 and 8 are open). Having set the card for the correct configuration, insert the card into an open slot in your Apple // (6 or 7 is preferred), connect the short ribbon cable coming from the card to the back of the // at an open panel in the back plate. Connect one end of the heavy- shielded cable supplied with the host adapter card to the DB-25 connector at the back of the Apple and the other end to one of the two (either one) DB-25 connectors on the back of the Apple Hive case. Make sure all connections are secure. Plug the hard drive power cord into a wall socket and turn the hard drive ON using the ON/OFF switch on the front of the Apple Hive case. Put the utilities disk supplied with the host adapter card into your floppy drive and boot your computer. Before you can use your hard drive, you must perform two tasks. One is the "low level" formatting of the disk surface itself. The software to do this is supplied on the CMS utilities disk that comes with the Host Adapter card. The other task is the ProDOS formatting of the drive, which is done after the low level formatting. Use the CMS Utilities Disk to low-level format the new drive surface. This will take several minutes to perform. When done, it is an excellent idea (not really an option in my opinion) to run the test procedure. This test procedure performs read/write activity on each and every block on the disk surface repeatedly until you stop the test. It takes quite a bit of time to do one "pass" - that is, to read/write/verify every block on the disk - and it is recommended you let this procedure do several passes. Take the time to do this, since the procedure will mark as "unavailable" those bad blocks it finds and this will prevent you from loosing valuable data in the future. Don't worry if your system turns up several bad blocks - hard drives all have bad blocks, and thus the manufacturers allow extra tracks on the disk for replacement blocks. After the test for bad blocks has been performed, you can exit the utilities and you're ready for the last step in preparing your hard drive for use: the ProDOS formatting. I use Prosel's CAT.DOCTOR utility exclusively (more on this later) but any utility which allows you to ProDOS format a disk will do. Run your ProDOS format utility and select S6D1 (assuming your hard drive host adapter card is plugged into slot 6) for formatting. You will see that this takes less than 2 seconds to perform! Next, select S6D2 for formatting. Remember, we had to partition the drive into 2 30 meg volumes, and these are mapped as Drive 1 and Drive 2 in the slot in which your host adapter card is plugged into. You can name each of these volumes with any valid ProDOS volume name, such as /HARD1 and /HARD2. Congratulations! Your hard drive is now fully ready to use. Where Do I Order From? In addition to the vendors that I have purchased from, there are several others advertising in Computer Shopper. Here is a list, by no means exhaustive, of some of the dozens of vendors selling various hardware you'll need: Hard Drives International (1-800-234-DISK) is an extremely reputable firm dealing ONLY in hard drives. HDI provides near rock bottom prices, usually delivers quickly (if item is not out of stock), and provides a full technical support team. Here are prices for some of the more popular Seagate and MiniScribe drives, as advertised in Computer Shopper February 1989: - MiniScribe 8425S 20 meg 65 msec $299 - MiniScribe 8051S 40 meg 28 msec $449 - Seagate ST225N 20 meg 65 msec $299 - Seagate ST251N 40 meg 40 msec $399 - Seagate ST277N 65 meg 40 msec $449 - Seagate ST296N 80 meg 28 msec $699 ComputAbility (1-800-558-0003) offers rock bottom prices: - Seagate ST225N $279 - Seagate ST251N $375 - Seagate ST277N $419 - Seagate ST296N $699 Tulin Corporation (1-408-432-9025) provides an excellent case - sturdy and quite attractive - in the Apple Hive. The Apple Hive cases come complete with power supply, fan and ALL internal hardware and cables necessary - you only need to buy a drive. They also now provide "kits" including everything (except the SCSI host adapter card) needed: - Apple Hive with 30 watts power + fan $119 - Apple Hive with 60 watts power + fan $169 - 30 meg SCSI Drive System w/ Formatting Software $425 - 40 meg SCSI Drive System w/ Formatting Software $489 - 61 meg SCSI Drive System w/ Formatting Software $529 * SCSI Drive Systems do NOT include host adapter card * Each Seagate SCSI drive (STxxxN) requires 12.5 watts power so the 30 watts Apple Hive will sufficiently power two hard drives. HardTimes (1-408-452-1929) offers an inexpensive alternative to the Apple Hive case by Tulin. The HardTimes case ($79) features a fan, 50 watts power supply, brackets, room for 2 half-height or 1 full height drive and room for a controller. (*Note: the Seagate STxxxN drives contain a SCSI controller embedded within the drive and do NOT require an external controller board.) CDA Computer Sales (1-800-526-5313) is an excellent source of SCSI host adapter cards, both CMS and Apple. Both brands run approximately $115. CDA provides excellent service and is reliable and priced competitively. Alternative Life Styles You do NOT absolutely need to get a hard drive mechanism with SCSI embedded. Adaptec markets controller cards which allow you to use MFM or RLL hard drives off an Apple SCSI host adapter. The basis for this card (Adaptec 4000 series) is that the card is positioned between the drive mechanism itself and the host adapter card in the link. The non-SCSI drives generally can be had for about $80 less than their SCSI counterparts, but then you need to shell out approximately $100 for the Adaptec card; its therefore usually cheaper, and a whole lot neater, to simply obtain a SCSI drive. But if you're lucky enough to obtain a non-SCSI drive for free, you can indeed use it with the proper Adaptec card. Hard Drives International is the best source of information on the Adaptec cards, so give them a call. Warren T. One of the most important questions (after "What is the price?") is "What kind of warranty do I get?" Most people are afraid to assemble their own vanilla hard drive for fear that, unless they purchase a designer name brand drive, they will be left out in the cold in terms of warranty. Not so. Seagate warranties all their drives for a period of 1 year; other manufacturers offer similar warranties on their hard drives. If you don't particularly like dealing directly with the manufacturer, some vendors, such as Hard Drives International, will provide a limited coverage in addition to that offered by the manufacturer - simply return the defective drive to them within a certain period of time and they will replace it. After that, you must go directly to the manufacturer. What about the case? Well, the case is a non-mechanical item and short of having an elephant stand on it or backing your pickup truck over it, there is little that can go wrong with the case itself. The internal power supply and fan are something else, though: they are electronic components subject to wear, tear and failure. Tulin, for example, warranties their power supply and fan for a period of 6 months. If you decide to go with the HardTimes or other brand case/power/fan, ask about the warranty BEFORE you purchase. Should your fan and/or power supply unit go out after the warranty expires, you can always purchase a brand new replacement part inexpensively. For example, replacement power supplies run $35-$50, and since you are saving approximately $300 by building your own hard drive to begin with, that savings can purchase a lot of new replacement parts before you "break even". Miss A. Laney If you opt for the HardTimes or other brand case, other than the Tulin Apple Hive, you may be faced with needing to order a cable or some other internal hardware. Before you ask, tell the vendor exactly what you'll be using the case for and ask what internal hardware (cables, brackets, etc.) is provided and what is not provided (and thus what you will need to secure elsewhere). In this sense, the Tulin Apple Hive is the easiest, most hassle-free case to get. In case you find the need to make your own cable, I provide the pinouts below. Seagate provides a short 50 line ribbon cable, terminating at both ends in a 50-pin connector. Thus, you may need to make (or otherwise obtain) a heavy-shielded cable going from 50-pin at one end (drive end) down to DB-25 pin at the other end (computer host adapter end). If you're not good at soldering, or simply faint-of-heart, Mytech (1-800-527-7435) might be able to provide you with exactly the cable you need at extremely reasonable prices. The Home Brewed External SCSI Cable The pinout needed for the SCSI external cable (host adapter to drive) is as follows: Actual Pin Views From To ____________________________________________ DB-25 male 50-pin connector \ / ---------- ---------------- \ 1 2 3 4 5 6 7 8 9 10 11 12 13 / 1 48 \ 14 15 16 17 18 19 20 21 22 23 24 25 / 2 42 \____________________________________/ 3 50 ______ 4 40 | | 5 38 |1 2| NOTE: all odd pins are 6 36 |3 4| grounded on a SCSI 7 1* |5 6| 50-pin connection 8 2 |7 8| 9 1* |9 10| 10 8 |11 12| 11 12 |13 14| 12 14 |15 16| 13 16 |17 18| 14 1* |19 20| 15 46 |21 22| 16 1* |23 24| 17 32 |25 26| 18 1* |27 28| 19 44 |29 30| 20 18 |31 32| 21 4 |33 34| 22 6 |35 36| 23 10 |37 38| 24 1* |39 40| 25 NC |41 42| |43 44| NOTE: 1* implies a connection to |45 46| 1 or any other ODD pin/wire |47 48| (which is GRND) |49 50| |______| Apple II SCSI Card: Spec Sheet [ I believe this spec sheet is directly from Apple Corporation, but can not state that for sure. It is something I pulled from one telecommunications services but long forgot which one. ] I. Technical Specifications A. Hardware: -- Provides an electrical interface between external SCSI devices and the CPU. -- Provides the address and control lines required by the Apple II's microprocessor for accessing and controlling the SCSI chip and Smartport firmware. 1. NCR 5380 SCSI IC a. Implements SCSI bus b. 5380 data sheet in Chapter 2 of the hardware technical reference manual 2. Other circuitry to interface the 5380 IC with the Apple II CPU control signals 3. RAM: -- 8 banks of 1K -- Accessed with special logic circuits -- Used for status of devices at SCSI bus initialization (including the status of the Apple II SCSI card itself) 4. ROM: -- 8 banks of 1K -- Accessed with special logic circuits -- Used for storing Smartport firmware 5. Interface: 25-pin SCSI connector B. Input/Output: -- Parallel transmission 1. Two modes for data i/o operations: a. PDMA (pseudo-DMA) -- default b. Block Move -- only supported by 65816 CPUs -- must be enabled by the application 2. Maximum storage area under ProDOS: 32 megabytes C. Firmware: Smartport program -- converts the microprocessor commands or calls issued by CPU to format compatible with external SCSI devices -- issues calls to the microprocessor to give it the status of the external SCSI devices and allow the CPU to control their operation 1. Commands supported: STATUS, READ BLOCK, WRITE BLOCK, FORMAT, CONTROL, INIT, OPEN, CLOSE, READ, WRITE 2. Boot capablility with Autostart ROM when you install the card in the slot with highest priority, which may depend on the operating environment -- When Smartport does not find the SCSI device capable of booting the system, Smartport returns control to the environment of the Apple II and the boot search continues through lower-priority slots. D. Electrical 1. Voltage requirement: 4.75 to 5.25 volts DC 2. Power consumption in milliamps (ma) a. Standby: 340 ma b. Operating: 390 ma E. Environmental Degrees Celsius Fahrenheit 1. Ambient temperature: 10 to 40 50 to 104 2. Relative humidity: 20 to 95 percent (noncondensing) II. System Configuration A. Cable: Apple SCSI System Cable B. One or more SCSI-compatible peripherals -- Can be a high-speed printer interface 1. Daisy chaining -- Apple II with the card in slot 5 and no card in slot 2, except a card for a serial printer or modem: a. Running ProDOS 1.2: 4 external devices b. Running ProDOS 16: 7 external devices C. Additional SCSI system components as required: 1. Cable Terminator 2. Peripheral Cables 3. Cable Extenders -- Maximum total length of cables: 20 feet (6.5 meters) Important: Read the manual for the Apple SCSI Cable System before trying to connect any devices D. Computer with disk drive -- Apple IIGS -- Apple IIe -- Apple II Plus -- Card fits into standard slot to connect to Apple II Internal bus for Apple II standard I/O and control (Slot 3 reserved for 80 column capability) ____________________________________________________________________________ Contributed by: K. Buchholz & The Washington Towne Crier BBS 201-689-3649 ____________________________________________________________________________ L(sB HARD.DRIVE.DISKUTILITIESv/ '  'FONT.UTILS^//6HARD.DISK.UTILS`/"Ϲ/+HARD.DISK.NOTES`/6Ϲ/8FINDER.DATA/p2 TEXT.UTILS//FILE.UTILS//DESK.ACCS.UTILS/Ϲ/MISC.DISK.UTILS/Ϲ/GRAPHIC.UTILSl/</VIRUS.UTILS/,//2T( VIRUS.UTILSLSLS5B GRAPHIC.UTILSLSTBMISC.DISK.UTILSBDESK.ACCS.UTILS FILE.UTILSAOTEST TEXT.UTILSAOTES5HARD.DISK.NOTES5(HARD.DISK.UTILS( FONT.UTILSITORSTEXT.UTILSv/' 'FINDER.DATA>/p1HTE(/TEXT.DISPLAY5(/?f TEXT.DISPLAYLUSBHTECK.DISK.PLUSHTEv/' '#HTE-X::FINDER.DATA4(('p/  !"#$%&'()*+,-./0123,+E@ ,@  "H0")"");8< [Hu{iH")H"(2H2H:"-{iH"-H"("- "-"-""HH"-")")H""e("h(HH")HHH "-hh")")H""e("h(")HH""-"),")"")H""e("h("-hiHhh?HHڗhhHHH"-h"4"T-*8  H`"8pI0ʊH1"-H1"-HH"-hheH1"-H1"-H1"-H1"-H1"-(H1"-)H1"-pH0"-HHH"-L"-h(H0"-)H0"-(H1"-)H1"-|fI ""-H"-"-"e("h(+;i<kHold on!! We're loading up!!;8 [HH*-"-H "-HH-"-H "-HH4-"-H "-H"-H"-h*"-+;ik>> Edit \N3 --Undo\DVN250*Zz --Cut\DN251*Xx --Copy\DN252*Cc --Paste\DN253*Vv --Clear\DN254 . >> File \N2 --New\N271*Nn --Open\N272*Oo --Save\N296*Ss --Save as...\N297 --Close\DVN255*Kk --Choose Font\DVN292 --Page Setup\DN293 --Print\DVN294*Pp --Quit\N275*Qq . >>@\XN1 --About HTE\VN261*?/ . ;8  [H"H"[ H"""" " "X""%I"X"{x 800 H`>>>>>~>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>HH,"-+;i k;8 [   +;i k;8 [ H",  hh   +;i k;8 [|+;ik;8  [HH"- hh hh5H HL"-h" H "-"8pI0ʊH0"-H0"-+;i k;8 [ hhhh~ hhhh" hhhh& hhhhH H"-h+;ik;8 [H H4"-h  +;ikn. / mH -(0xw ^| kHTE - Herb's Text Editor-by: Herbert F. Hrowal and Palace ProductionsHTE is a simple text editor written entirely in C using the TextEdit toolset. It is my first attempt at writing anything in C so it still might be a little buggy at the moment, but all the bugs will be fixed in the future. Hopefully I will be able to convert this to an NDA so people can edit text from the desktop without running a word processor. OK "H0")"");8 ["T  "-0i8HhiH") "-0i8HhiHhiHhhhhHhiHhhhhHHH "- "-0i8HhhhhH0"- "-0:8H"-"!H "-0i8HhiHhhhh "-0PNHhh "-0:8H "- "-0:8H"-+;ikUntitled;8 ["T$nH2H|HH "-/hi:HhhhhhiH "-0i8HhiH")Hhh "-0i8HhiHhiHhhhhHhiHhhhhhiH"k(H "-0i8HhiHhiH")Hhh "-0i8HhiH "-0i8HhiHhiH"4)HHH "- "-0i8Hhhhh "-0:8H"-H"  "-0:8H "-8H0"-H0"-H0"-H0"-+;ikPick a file, any file;8  [HHR"-  hhʠ  ȘBH HL"-hHH H*"-  hh+;i k;8 [!H}{iH"({iHhi Hhhhh$hhhh(hhhh,hhhhHH"-h! +;ik$%4X;8 [HO{iH"({iHhi Hhhhhvhhhhhhhh hhhhHH"-h+;ik$%4X;8 [ʊ9 "-0:8Hhh+;ik;8 [HHHH"-)"-h "-0i8HhhHHڗhh+;ik;8f [j "-0iMi{iHhiHhhHHڗhh#%{iHhi&HhhHHڗhh{iH H"-")")H":{iHhiHHHEGH")HH "-hh")(")H"{iH H"-H "-U{iUHhiHHH{iUHhiHhhhhEGH{iUHhiHhhhh{iUH H"-")8")H"{iH H"-H"-{iH H"-")!")H"H"-EGHH"!EGHH"!Hj "-0i8HhiHhhhhH"-j "-0PNHhhhjgi+;ihk;8 [HH"-"-+;ik;8  [ "-0iM i  +;ikP8 [P ]%%& & Ngl (V_!(V_! qAn error has occured while trying to call the Tool Box. Please make sure everything is OK.A GS/OS error has occured while trying to read the file. Please make sure everything is OK.  OK  OK  "H0'")"");8  [r'hi8HhhHHڗhhr'hi<HhhHHڗhhHHr'H" "-  hh")")H"  +;ik;8  [{iHhhhh> ))  )ii +;ik;8| [HHHH"-)"-h H% "-0i8HhiH"X)I "%+HHH{iHH "-0PNH" "-hh") ")H"H "- "-0i8HhiH{iHhiHhhhh{iH H"-")")F ")H"? "-0i8HhiH{iHhiHhhhh!{iHhi HhhHHڗhh'{iH H"-") ")H"1 "-0i8HhiH{i1HhiHhhhh{i1H H"-") ")H". {i HhiH3k{ikHhiH3HH{ikHhiHhhhh{ikHhiHhhHHڗhh{ikH H"-")3")H"{i H H"-H"-M{i H H"-")")H"H"-H"-+;i|kUntitled;8 [HHHH"-)"-hnH2HY' "-0i8HhiHH'H "-''hiH "-0i8HhiH")'hiH"k(H "-0i8HhiHhiH") "-0i8HhiH "-0i8HhiHhiH"4) "-0i8HhiH "-0:8H "-+;ikEnter Filename to savex ; Lz+L,;8 [K05505  +;ikKzh(h(Zګ(2(28hzHګ(ڮ( ;[)+hhK((kLV-L/HH; [    +;i k; [  +hhk; [ 0  Ȁ    +;i kHH; [ 0  Ȁȗ +;ik-k-kH W,h\4-KzZڭ,H,H; [v+x+Vi # " Ȁ " Ȁ  t+Z8czHHH-H "$ Out of memoryz* "\4-h h  p+r+mt+  Ȁ  r+ p+ )s  "   i  ")0"!)    r+ p+ +hhkK"""""""""""" """-)0H0H0H "1H1H1H "-kK ""-)0H0H0H "1H1H1H "-kKx+Hv+H ;[$,hHHhk֯666H6H"+hh`; [ & dd  !F f+hhk,--H"%A-H"h")P-T-{;8[:ڋK@ɀ "53-/i -;-"53"@""/HJJ)H-H" @"/iHH-H"-H"9"-H/iH"-H/iH"-H/iH"-H"-H/iH"""-H/iH"7"HHH.","""-RHHH "h0h0h0HHH "h1h1h1; "; "-{i+k{;8[:ڋK@ɀ "53-Hi-;-"53"@JJ)H-H"" "7"HHH.","""-\HHH "h0h0h0HHH "h1h1h1; "; " "-{i+kH ;[Fe+kK -5,, H-H "K;[-c:zZګ-Hi- " -,,&-(-"-$-- ---kInsufficient bank zero memory0 ":K ;[2)%H"2  +hh2k 22222 2222 1 22). 2 22)l2 Lh  ) <\2 S1|\2)-2,02"+ 2+2 #2 8``Z2)* Z2 _AZ2`)0:)HZ2Z2 mZ2cZ2 %%9n;s;p;c9X=9x59o!;u9d9i9f6e6E6g8G82\QH"X4\@3K&-Error occurred at line L3 "&-H"C in procedure 3 "'-"D":A"- $- " " Line Name3 " ---- ----3 ""- $-<&-H"C )4 "'-"D":A 4;[ 8)e "+hkSubrange exceededFile is not openRead while at end of file I/O error Out of memoryEOLN while at end of file Set overflow&Jump to undefined case statement labelInteger math errorReal math error UnderflowOverflowDivide by zeroInexactStack overflow) 68832 38 I-22 83233{i H3 "332 "3022e2220202 M88022eE202) ν2P22T36210220 :2]2.22 蘼2202Υ22)82I220 A2H"22020 0"2Υ22)2Z)H"2z _A02.2#2 2e20 88. 80`2 22ν2`!9!92 22233{i H3 "᭣2I223)m3:#9ͯ2ί22!982#9Υ2 A%"2 992 2Q22T22 2 220RN2n2n2n2jJJJJ 0:i 922 2 2 2˭2 X 92020vΥ2 A H"2 _A42 !8  I -222 H H H2S2 '" &"᭱2223 0$ 3 R2 022 82222Υ22Υ2Υ2R ٽ2 82I2 A2H"22 H"22H"22 0"2ί2ȹ2) SZ2)H"2zȀ묩2 _A2 2  _A`2 2Q22T22 2 20R2 2 2 2!N2n2n2n2jJJJJJ 02R20202 ȷ )  2ͯ2228222 A2Z )H"2zη2 _AKHZ)H<)"<<<< <<< :? > ?#ʹ?? ? ? ɍ? :?? ? ? ?ɾɮ ? :?ɼɬd :?ʹ??Hd :? >h :?Ud :?1 ? ?:?Iȹ??:?Hd :? >h: :?@@H@ }?.ʹ???@ ?Hd :? >h :?h? ? ?-`L ?0H ""h0)@ a `0ZH@@8?"8?H "hz0`08 00"ʹ?? ? ?(  ?(`ʹ?!??ș???δ?`0;i +k n@"` 2`220 "2Υ2`KAA&AkK$-"-"-HH"Ak   h{[`; [8"B"A+hhkHHH8H; [  "=C % Q8  0 "hC "hC "=Ce i @< "hC "hC   "=CZ "hC"B+;i kHH8H; [AȷAȷ HH"+hhhhkH; ["CAȿAAA+hhkHHHHH; ["CAA  ȷݠAȷA ȷ+;i k:JJJJk; [pD "YDpDHHH"D +hhhhk; [  )8 I"E H HI i " +;i kHD( &"LD(Qi ;[ ߚD 8(I Dȗ(  @+hhkHi H ;[ "+hhkH0{ ))*u-u9)A(T-g-n(y----))e(h()-)) e( h().-1);)V)[_e(ch(n-qt-T- -,-X-f-t------------"|F-V-`-ce(gh(**----44-----]`ekns[  X"%X">>>>>~>>>>>>>>>  > >>>>>>>>>!>#>%>'>)>+>->/>1>3>5>7>9;=>N-,|-&-9J-Mw--  ~~  " " & &   --T-. . H H w w    H0 { )  ) T   -0' 8* 84 )= -0D 8G 8Q T v y    - -0 8 8 - -0 : 8 - ! -0 8 8= -0B PE Nn -0s :v 8 - -0 : 8 - T   | |   -     3 6 D -0K 8N 8X )e -0l 8o 8y |      k( -0 8 8 ) -088-088.4)BEQ-Y-0`8c8-0:8--0:8-----1-k--}}($$((58;,>,UXj-OO(vv    '*<-z-0:8---088%-0,M1M-)))-)) 8-P--))--1-4)>)CT-o!!-088--0PN&-0-H-0OMTM8 8       !!4!6!!H0 !q'!)!!)%!r'(!r'H!r'K!r'm!r'p!r'|!-!)!)!l"-v"-"%"%"-0"8"8"X)"%"-0"P"N"-#)#)#'#-4#-0;#8>#8~#-#)#)#)##-0#8#85$-8$)B$)G$X$-0_$8b$8$-$)$)$\%-_%)i%)n%%-%-%-%)%)%%-%-&-&-'&Y'*&Y'2&-09&8<&8J&'M&'Y&-\&'d&'g&'u&-0|&8&8&)&'&'&k(&-0&8&8&)&-0&8&8&-0&8&8&4) '-0'8'8$'-0)':,'89'-f(z+i(,~(5(5(5(5(((((((2(((2(((((((((V-(/)-)-)W,)4-),*,*v+ *x+U*t+c*-*z**z**4-*p+*r+*t+*r+*p+b+r+g+p++-+0+0+0+1,1,1,-(,--,01,05,0@,1D,1H,1S,-[,x+_,v+l,,o,,,6,6,6,6,,,---6-%A:--L-P-P-T-t-53}---/-----53-@-/---@-/---- .-./.-"./0.-5./C.-N.-S./o.-t./.-.0.0.0.1.1.1.;.;.;.;/-;/53D/-L/-P/-X/53_/@n/-/-/0/0/0/1/1/1/;/;0;0;0-N0-Q05U0,X0,g0-0-0-0-0-0,0,0&-0(-0"-0$-0-0 -0-0-0000 1212512@12C12F12I12L12R12U12X12[12^11c1 2f12y12|1 212121\2111\21212121222 2Z2"2Z2(2_A+2Z2B2Z2E2Z2J2Z2P2Z2^2%9b2;f2;j2;n29r2=9v259z2!;~29292926262628282293X4=3@3C3&-e3L3h3L3r3&-3C33333'-3'-3D3:A3"-3$-333343434"-4$-4&-$4C-4)404)4:4'-=4'-I4DM4:AZ44]4466686863626368626263727373 737373&73)73,73/73272572B73I72L72S72V72Y72^72c72h7M8m78t72w7272727272727272737272727272727272727272727272727 A8282 828282!82&82282;82H8_AR82Z82a82f82p82w8888828282828!98!982828282838383838382828283838#98292 92 9!9929#9&92)9 A/92999>99A92G92M92P92S92T92V92Y92`92e92h92s92v92y92|9299929292929292999292929 A929_A929292:2:2:2:21:29:2<:2A:3L:3V:2_:2h:2n:2q:2t:2w:2|:2:2:2:2:2:2:2: A:2:2:2:2:2:2:2:2:2:2:2:2:2;_A ;2;2;_A";2(;2.;21;24;25;27;2:;2A;2F;2M;2P;2S;2V;2_;2b;2e;2h;2v;2;2;2;2;2;2;2;2;2;2;2; A;2;2;2;_A<<<<<<<<<<<<"<<%<<(<<+<<O<<R<<]<<`<<d<<g<<j<<n<<{<<~<<<<<<<<<<<<<<<<<<<<<<=@$=@'=@,=-6=@==@@=@I=@L=?O=>R=:?U=>b= ?w=?~=?=?= ?=?=:?=?=?= ?= ?=?=:?=:?=?=?=:?=>=:?>:?>?#>?->?>>?B>?O>?W>:?Z>>a>:?u>@|>@>@>}?>?>?>?>@> ?>:?>>>:?>?>?> ?>-> ?>@?@?@?8?$?8?N??U??\??a? ?o? ???????????????@@@@A2 A2A2A2 A2)AA,AA2AA>A$-CA"-MA"-ZAAABAAB=CABhCKBhCeB=CBhCBhCB=CBhCBBBABADCCKCASCA[CAaCAvCCzCACACACACpDCpDCYDCpDCpDDD.DE[DD^DDnDDDDDDL&sBHTET.DISPLAYTESTEXT.DISPLAYv/' '(TEXTDSPY6, 5FINDER.DATAF(()p/5789:;<=>?@ABCDE ,@ c "  -" "z -" "@ -" " -" ""H"h*"{-""hhH/"hߩ ) |  S-l5 2"hChEH"hEHCH " hx(Ic "c 8"MSYg"MQHOHW H "hh +hh]"h []O_Qa"S"Y"g"HH  "h h }HH H HE"ᭅHH H HG"i ii  H H "1"0" HH7H5H"h9h;M9099"95;7=7H5H"M 0͝  k H H?""}HH H HE"ᭅHH H HG" H H H HA"9"᭹HH" "M5055"=75M 0͝  k H H?""}HH H HE"ᭅHH H HG" H H H HA"9"᭹HH"   I0 ͝  H H "" L HH"hh]"h?8 kH,"`K -[ "==7H5H"ᭁ/ZZ) /m//͹ zO+kzZ/H:"z) OZeiHڭH" 1)"zO m1+k ;[)ɰ +;ik1)"1mH:"`K""H"hW HH W H "hhHW H""""22:"_ "iHW H"w "E z hL$ "W HiH"W H"9"W HiH"W HiH"W H"W HiH"W HiH"" ""`"( H2 "h` Insert the volume:OKAbort" """""""""""W H"""")Y Loading RAM-based tools Nݡ f  P f> @\N1X ##About this program....\N256V ##Help using Textdisplay\N261V > File \N2 ##Open\N257*Oo ##Close\N255V ##Quit\N258*Qq > Edit \N3 ##Reset High Bits\N262VD*Rr ##Undo\N250V*Zz ##Cut\N251*Xx ##Copy\N252*Cc ##Paste\N253*Vv ##Clear\N254 > Fonts \N4 ##Choose new font\N259*Ff ##Return to system font\N260 . W % c { STextdisplay V1.3S + (C) 1988 Chuck McGavern8C Based on examples fromG R Exploring the Apple IIGSW b= Written by Gary B. Littleozo Assembled using ORCA/M GS$ End of Credits v>c  Help using STextdisplayS"#,YTo display a file: Select the SOpenS item from the SFileS category(3#XTo use different fonts: Select SChoose New FontS item from SFontsS category?Jq UIf a file you display shows up as inverse question marks (non-displayable characters)OZk{\and/or garbage, try using the SReset High BitsS option under the SEditS category_j#OThe other items under the SEditS category are for use by desk accessoriesw7 V Done F%~[w*  Continue ES:Out of memory/cannot allocate memory for the selected file?Data too large for QuickDraw - will display as much as possibleSelect a file to display: i   ;8[:IȅIFejf0I{ih[k{ih[@k   1z 4z N@ Q@ k n -S  -l5 5 )C-E?ECCNZI]I`clcocyc~MSYgMQOW ]][ ] O_QaS(Y2g7= @ K O R}VZ ^ imq u iii  759;99 9#9&5);,72=5795J R W h l w{}        555=75  ( - ; ? JN}RV Z eim q |             =4 7 BCFEXE\Cgq-uOyyyy{   qsiimiqoks Su}S!w%q(u+/s2w58 M PS V[bOglp sz }}S  ]] -==75/./14/7/:AOO/[^koOv|11O1111 .W 9W `W _ _ W w w z $ W W  W $ W 6 W A W S W           3 W Q Y    C G W K % O S W [ c o {    1 = c o   >  c      , o{JVkowi L*sBTEXTDSPYALAYTES?fFAZ.V2.6ILE2.81BCHANGE.FILE2.81 FIXER.V1.1.1SLSFIXER.V1.1.1v/' '%FIXERI1(ǰ)ǰ*H)FIXER.DOC_۰%Ű2HFINDER.DATAp>(( p/!HJKLMNOPQRSTUVWXYZ[\]^! ,@ main H\ ;8[i"EHii2"h?=H?=H"hCACAH",]] "]"]")"{i+k ;8[iH"{i+k ;8[iH"h{i+k ;8[i>>LL]]""H"hE G"""HGH "h"" zHEH""" zH@EH"" ""HH"h8"zH8HP:"""$$"EH(||"hII""EH""EH" zH""EH" zH""EH""EH" zH""4  )) H4h H@ "h"HH"h8"zH8HH"h8"zH8d H "hH" H"hHeH H"hHeH:"" H"hHeH H"hHeH:""8pI0{i+k ;8[i"""""""4 ""GH"EH""{i+k ;8[i?=H","7"E:"$=","7"":"$="2:"$="{i+k ;8[i?=H/-H"/- 8 8)82pI8)89`pI0V/-  8 ?=H/-H ","8  {i+k ;8[i?=H""H"hI<7I"?("K !""X  L?=H"IH55 "h;9;9HQQ3";9H";9H""  "H?=H."hKH?=H."hMH?=H."hOH?=H."hQH?=H ."hSH?=H ."hUH?=H ."hWH?=H ."hYH?=H ."h[""<:"""R;9H "{i+k ;8[idI;9H?=HIJJJJJJJJHI H."hH?=HIH."h?=HIH/"I 8HeH8"CAH"{i+k ;8[iII" ;i{i+k ;8[i_Q_E_ɰ9NNIIEE$$" ;iII{i+k ;8[iHhHhHhH hH/h-5""H"h{i+k ;8[iccrri HihH "","II" ;i{i+k ;8[i{i+k ;8[i"H"h 8     H HGH "h H" zH "zzH"hm Hm h(&H(&"h*"8`[H"zziHih,.,H,H""h"zz5,H"zz.H."XheiC==S""s&"NL " z* W"""*-"*$II" ;i{i+k ;8[iccHh""e$"-II" ;i**"{i+k ;8[iH1h///"G//"׭&Hh"2"{i+k ;8[iccHh"Hh"ccHBh@[@@""cc{iH"Tzzzz{iHFhD@@"WaNNII" ;i **nDD""Q GL ;LiHBh@ccHFhD@@""{i+k ;8[i)iHh ԧ)8 #pIi Hih 3Hh H h{i+k ;8[iH" z**{i+k ;8[id,8)80H(h&H "zzH,h*42M 1 K 0 "@,"7"?iH=iH:"$$" "@(& 0.H8.00h&.H="4m.4, Hi  h )8 "pI)H""z,!)2UT2LJH"h<2He2 ""zd ""zQO ""zS ""zk$H"82e2euY)H""z( { V L6{i+k ;8[i21)H0)H %H$"Hi"$$hh :8i8H::h"&$("@662r1)H0)H)%H$"Hi"$$hh :8i8H::h"&$("@{i+k ;8[iH6h4$":8j22"X 7"4IH;"4H="7"H:h8{i+k ;8[i2""No<Ho>h8Hh$"8"$$pI0C$")28Hh "$"8"$$pIH:h88  8HhH"h ""222""d""{i+kcck H;[ jI I f  8 F F  I I zz+k" H;[3II I I &&ff !  8  FfFf0II I I   zzzzzz+k"8k H;[IIʩ FeIz+k H;[2IIIIʀFf ee&IIzzzz+khhhhh"Hk ,FE]h~X@d5(oʁ,O^ ?FYh|Qf5Y]yCG4'4Ic.~"&>BUYvz5Z}{BYlAYz$9R~. %5Xh| 6I_u!&LQcs#Ou;[{1M@ ',6;Y^n~j|ԁ%;o  # #(AF %16uz =BLQ[_fw|  TYch 7=,1 9 ;>CF`cil &)252 #IaCl .ADILUX[iqy ^c'*-0]aJ+09=\amp+FI{(7 p/!qstuvwxyz{|}~L*! ÿһԽ бӱ̺Fp 0!F     `GFL.ŭŠ֮Įé庠آB!I E X / éBG AG 0+G6G:GBG0F ' U' [ B$ [ z-bC,?,+, >, +YpWx+:-$ [! z--?bC,+, >, +p-?@0LB!x+ _G _GL" G GLR"GKL"LL#EO$ [w" -L!䮠뮠H " hL 0EH "hL 0 " -" z-- +0LB!H{h [ U L AG 0+G6G:GBG E eDG 0 /GLR"4G+G6G:GBGFP;GG 9G 0 FF0SP;GG 9G LL$ 0P)ʬ$ P$лFX7 6% _%FL#P;GG 9G LL$ 0L# AG 0+G6G:GBGFQ " -X$ z-- +0L"( XFFF $FFF /L$L 'hhLB!F- G %L%(G % % J ~&L& 0F 6%L$FFFLB!FL CL.3L8L 7LQ9L>L?LQ@ >,F^%]%]%.^%m]% m^%`P)ȹPPȽP!ȽP%PPPȽP`8FG0$mGG [ 6% z-8)GGLJ8FG0$mGGLw 8FG0$mGGȱFL-F)GGH - GhL-LJ8FG0$mGGG GȱL-GHȱȱhL.GHȱh .G$ L, L$ %$ &$ &$ ?&($ K&.$ ?&9$ K&?$ &I$L&A,G-GF+G *G 0A)@A@` {Z (L _  {Z ={_ 橘 {( - { [ z- %{Ƞ z- {Р z- { z-L($(( $ ɍ,ɛ+ɕ )ߍ(( ɛɈɍ(`8`,l(` (( в F*L( tF-F F$Fi [ ) *FFFF xF$Fi [ )$0 Eɡ,ɋEɊTɍ)ߍFx+$ar~tk~@s57^TЏ )FFʎFL( )FFFL(L)L)L)  WCpC$`Lh)x+$`x+$`L#   [ $ [F+ z-2 %(p)  Д$`$`L$ *LF* `F a+`+Lz-%!&РԠ РԠРР Р*****+,+6+'*M*b** ,̣,eL+ ,̣, ȱɯɯȩ,L+Ly+,X`LW,L+i@ ,,,? z-,, , , z- ,,,ɉɍ9Ɉ5ɕɛ ,̞,,, 1ɯ , ,̣,,ȑL+ ,,, ,L+,,  B`? , z-Hh`Hh`,${,L[ɮEɺ );ې8`ɤɰɺ)ې`ɰɺ)ǐ8`nFJ /- ɠ ( B-{J /-)? B-nF0b03 Eɡ,`xUT(HTh(`xHUTh(T(` C:bC ?@0 ?@hh`)-ȱ ̘-Ȑ`--G---------ɰ-,-0G ` d'\FH)d.Ff.hNf.jJJJJe.GGd. - g.e.c.  Gf.L-Y. ` FHHF .h .h .ȹ.ɰG0 G L. . L.`H) .hJJJJ ɺi.`FtF $ 00 Eɡ,Ɉ?ɕɋVɊjɍ ɛɠwL$L$FiF H 0hFL /iLS/8F0 H 0hFL /iFLS/ 0FFʎF 0L / 0FFF 0L / 8FG0$mGG [I0 0В D $L3f0 03 3 0s0 0, d0GXGYG WG 0LB!ɠ03II3L0 `ɠ%'ɯϠ(+.@BCDEFGHIJKLMNPQRӠSU VWXGG G 0 G GL`LB! D 0 ' 3tF$ [ 6$ [ p$ [ &,,,,, +p>ɤ*oF YF :L3 L3 ?G$ [ $ [ *$ [6 6GqkeI$ [GGG .I$ [,,,J,, +p8 >G?GL5GI$ 6Gȹ 6G .LK4LB!${FF ,FFɍɛɕɈ"ɠ`hhL5L4hhLs5 ʈL4hhL>5$ [ $ [86 76 5 5$ [ 4%GI) G)=G G G 5' 4GMG6MGG96,  5FΩG G :L3L$$ [GI),L'$G96,  $`$ [L@ @ 堠(ˠӠΠՠ֠ԠLB! â#8 ' â$ [8 0΢2 %(p̰ ע 67 D X ' [GG G 0 /G 04G+G6G:GBG,7JbC7cC La8 c6P;GG 9G 0[P,88 ^D DL7 8 0 ɛ&ɍ AG 0+G6G:GBG 9 L$ AG 0+G6G:GBGLB!ꎼ7%,78,ɍɛɠɊ .D .Du .D[) ^88 ^8 .DF)L78 .D +' E p88ܭF0,80E p8L7 .D8 .D8L7E p8L7E8 p88`8L)EL@DΠ 0 '8"a8,7dbCCcC׍ E E AGGL7XY,=XT |XT` : AG 0+G6G:GBG ̈G 0rG}GGGL$ 0 '&bC:cCԍ E E AGЦGС 8OX [XXGG,GG ˀG 0 ^D D8 .D) ; 9@!8 .D8) ʎʊ L :ʎʎ 9L9ЍFE8 @D8F`8 9 9 :L}C $ [ [ {Z L _ {Z 3{_ 橘 { $ [+< ,$ > [@ J ,G-G+G *G 01FF>@-F v< <0 Eɠ,ɋɊ)ɍBɛɉL:LB!FF8F>>L;FFF8F>>L;a0QFL != /G 04G+G6G:GBG Z= AG 0+G6G:GBGF%FF>L; $ [ % ` >88莫8 $!$8 [- ,% z- > >Fѩ$$ [8F> < ` `堭!$ [ J ` !${8F>i [ 3% z-L@/@)Fȱ@F@-+$ > [@Lz-FP;GG 9G 0 FF0AP;GG 9G LL= 0P)ʮFX2 =FL=P;GG 9G LL= 0L~=` 3%P)PP` [ 8FG0$mGG [ [ AG 0+G6G:GBG ̈G 0rG}GGGXGYG WG 0L$ 0 'ҎbC?cC؍ E E AP;GG 9G 0] 0PL > 8PXZPXPXXGG,GG ˀG 0 ^D D .DL?F .Dz .D`) .D)8 E .D 62 E E8՘, Ȍ :L&? .D8 .D8L&?ؐHFE @DhE @DL&?E @DE @DL}C c6 ^D DL!@ AG 0+G6G:GBGLB!LJ7$@Iƍ$@ ,$@,ɍɛɠɊ .D ɠɍ) @ L!@ 0 'ҎbC?cCō E E AP;GG 9G 0 8OX[XXGG,GG ˀG 0 ^D D EF EO E .Dа ɀH LA8h AL@ؐHFE @DhE @D LAL@8 .D8 ɀFʎʊ,F FFL : E&* E  : E` DFȭ EGG G 0 G GLALMB :L$L)BGZ$ [ $B 0 :΢5 %(9L$忠E XhhEL 0XGYG WG 0XGYG WG 0GOGGGPGQG&G'GSGTG(G)GUGVG KGLAGG G 0 /GLA4G+G6G:GBG7G8G 5G 0XGYG WG 0 vGLA{GrG}GGG` 0 'Í E EdCbCcC A E ^D D, E .D)  E E .D) @DL4ClbCE) EE D D AG 0+G6G:GBG qG 0 qG 0 ̈G 0rG}GGGXGYG WG 0G bG EcGGGdGeGGfG iGjGkGlG_G _GLAL$EE D NDE`EE DLDE?G<E@G4EEPP;GG 9G LL_C 0`EE`E=G7 E>G/XGGE EGG ˀG 0E EX`E E` 6%)F@FȐ`PȅQQ0" P PQkF lFPwF`x ?F ?F ?FPxx ?Fxx ?F ?F E(`kF8( 8L?FwF x ?FX`wFvFIvF ` F EsF)ɀ tF-sF) $qFoF%+`x ?FkFoFpF8qF8rFsF(`HmFnFPkFQPkFlFiFjF hFmFnFh`LX$ [ ` F - GG - G - LFFF FF`ܭ@@@ @@H LO=====|====|====|====|====|====|====|====|====|====|====|====|====|====|====|===CHANGE-A-FILE"byHarold D. PortnoyIG CHANGE-A-FILE is a utility for batch processing to change file or FDauxiliary type codes, read AppleWorks Word Processor files, convert GEAWP files to text files and text files to AWP files, convert AWP 3.0 CAfiles to AWP 2.x files and strip line feeds. Up to 88 files in a HFdirectory or subdirectory can be altered. The utility uses the Bredon IGProSel Cat Doctor type format. CHANGE-A-FILE is particularly useful to ?prepare files for uploading or alter files after downloading.IG CHANGE-A-FILE is a system file. When run, the appropriate utility DBcan be selected from the main menu with the light bar selector by IGentering the appropriate letter or by using the mouse. Pressing RETURN -or the mouse button accepts the selection. DB The default source directory or destination directory can be GEaccepted by pressing RETURN or mouse button. The TAB key tabs to the B@next slash in the directory pathname and then to the end of the DBpathname. Alternately, the prefix can be selected by pressing the ECClosed Apple (Option) key. A list of directories is presented from FDwhich one can be selected in a manner similar to that in AppleWorks HF3.0. The up and down arrows or the mouse move the light bar selector, =;RETURN or the mouse button selects a subdirectory and Open DBApple-RETURN accepts the completed directory name. If an error is 4made, pressing TAB lets you restart the selection.CA Files are selected or deselected with the spacebar or mouse DBbutton. A check mark is placed in front of the selected file. The GElight bar can be positioned using the four arrow keys or mouse. When HFusing the spacebar or mouse button to select a file, the selection is ECmade in the direction first initiated. After selecting the desired Bfiles, press RETURN. ESCape always returns you to the main menu.IG Alter file or auxiliary type codes: Any file type can be altered. CAYou are responsible for the alteration. No checking is done. The GEprevious file type is presented at the cursor and can be accepted as GEthe default by pressing RETURN. Alteration can be accomplished using HFthe designated file type abbreviations displayed (e.g. BIN, TXT). Or, FDif the abbreviation is not listed, by entering the hexadecimal code CA(e.g. $04, $06). If you have a favorite abbreviation that is not &listed then the list can be altered.IG Using a block editor such as ProSel Block Warden the abbreviation FDlist can be altered to suit yourself. The file type table begins at @>byte $07 with A0 A0 A0 20. There ia another similar four byte FDcombination that can be changed to a three byte ASCII abbreviation, GEwhich replaces the three A0's, followed by the file type code, which FDreplaces the 20. Alternately, one of the other abbreviations can be @>changed along with its following file code byte. (Note: To my ;knowledge, there is no assigned abbreviation to code 20.)HF After the file type code is accepted, the auxiliary type code is GEpresented and can be altered by entering the appropriate code at the IGcursor. When the auxiliary type code is governed by the file type code CA(e.g. SYS always loads at $2000), the appropriate default can be 2accepted by pressing RETURN or the mouse button.IG The file access code can then be altered. The file can be toggled HFlocked or unlocked, or each of the recognized bits in the byte can be 97separately toggled. The bits are 7 (Destroy-enable), 6 FD(ReName-enable), 5 (BacKUp-needed), 2 (INVisibility, GS/OS only), 1 GE(WRiTe enable), 0 (ReaD-enable). If the bit is set (1), then the bit GEis enabled. If cleared (0), then the bit is disabled. If bits DES,RN HFand WRT (7,6,1) are all set, then the file is considered unlocked. If HFany of these bits are cleared then the file is considered locked. The DBright and left arrows and the mouse move the cursor. The spacebar FDtoggles whether the file is locked or not as well as the individual Hbits. Hitting RETURN or the mouse button accepts the displayed values.EC NOTE: The changes in this section are not written to the file Huntil the final RETURN. ESCape always sends you back to the main menu.FD Read AWP: This function accepts only AppleWorks word processor DB(AWP) files (AW 3.0 and lower versions). It allows you to rapidly HFreview AWP files in order to determine if you want to convert them to IGtext files for uploading. For convenience, the file may be output to a ECprinter. The spacebar allows you to step through the file. Restart IGscrolling with the down arrow key. The RETURN key can be used to abort HFthe file. The left margin is automatically set. The printer output is HFset to slot 1. If you use a different slot then change the low nibble DBof byte $05 (C1) to the slot number. Read AWP works best when the IGcharacters per inch is 10. If word wrap appears defeated, try pressing =Open Apple at the beginning of the conversion (see below). EC Convert AWP to TXT file: This utility converts AWP files into GEtext files. In preparation for uploading, each line is followed by a FDcarriage return. If you want a carriage return only at the end of a FDparagraph, press the Open Apple key at the start of the conversion. @Pressing the Open Apple key also sets the left margin to zero.GE The text file created is designated by the suffix ".W" added to B@the original file name. If the original name is greater than 13 FDcharacters, the last two are replaced with the suffix. The original Afile is preserved. The auxiliary file code is changed to 0000. IG Convert TXT to AWP file: This utility converts TXT files into AWP IGfiles. The conversion, particularly of multiple files, is considerably ?=faster than using the AppleWorks from text file option. Only GEsequential text files are accepted (auxiliary file code = 0000). The HFnew file is designated by the suffix ".T" added to the original name. FDThe original file is left undisturbed. When loaded into AppleWorks, CAthe file may not properly word wrap. This is easily corrected by %changing any margin justification. CA Convert AWP 3.0 to 2.x file: Usually AWP files generated by IGAppleworks 3.0 cannot be read by versions 2.1 and below. If you do not CAhave version 3.0, an AWP 3.0 file can be read by your version of FDAppleworks by converting the AWP 3.0 to an AWP 2.x file. The suffix HF".X" is added to the file name. This is particularly useful for those HFAWKS 3.0 users who would like to upload AWP files that can be read by all versions of AWKS.EC The AWP 3.0 file is not converted if it is already compatible IGwith the AWP 2.x format and the source and destination directories are DBthe same. This is indicated by a bell and a diamond replacing the check mark.EC Exhume an AWP file: When an AWP file is damaged, it cannot be HFloaded into AppleWorks instead the 'Getting error trying to read ...' FDmessage is displayed. Exhume AWP restores the AWP file by searching CAfor AWP command ($D0 - $FE) and text characters ($20 - $7F). The ECrestored file contains all characters in the text character range. GEThus characters in that range but not part of the original text will HFbe added, frequently an additional character at the beginning and end HFof a text line. Characters outside the above ranges are replaced with HFan asterisk but only if more than four characters are removed. If the GEnumber of characters exceeds 79 only one line of asterisks is added. ?The repaired file has the suffix ".E" added to the file name.IG This file when loaded into AWKS must be edited to remove spurious HFcharacters and add any text that may have been corrupted. This is the HFhard part of the repair, but usually not as hard as having to rewrite FDthe whole file from scratch. This utility will not help if the file FDcannot be accessed, that is, if the volume directory is damaged. If Ethis is the problem, I suggest using the ProSel utility, Mr. Fixit.GE View file: This function will read any file. It works best with IGtext files. Control characters are presented in uppercase inverse. The spacebar stop/starts the file.HF Line feed stripper: This utility strips line feeds that follow a IGcarriage return. Only text files are accepted. The resulting text file @is denoted by the suffix ".C". The original file is preserved.IG Three other control character strippers are available. One strips B@line feeds anywhere in the file. The second removes all control IGcharacters, and the third will remove any specified control character. 6All designate the altered file with the ".X" suffix.HF When converting files or stripping a control character with only Fone disk drive, the source and destination volumes must be the same.G This program is free and may be distributed only without charge.- Suggestions, bugs and other trivia to: Harold D. Portnoy! Compuserve [75156,2436] GEnie [H.PORTNOY]Version updates:3 1.95- Add output to printer for Read AWP.& 2.0 - Add Convert TXT to AWP 2.05- Minor bug; 2.1 - Add ability to Change Access Code. Cosmetic/ alteration to Change File Type.5 2.15- Clear backup bit now works correctly.5 2.20- Fix bug in alter auxiliary type code.4 2.30- Add mouse to menu and file selector.0 2.35- Add mouse to pathname selection.! 2.37- A smoother mouse.# 2.40- Corrects input bug.? 2.41- Add mouse to file type, auxiliary type, and aux code.: 2.46- Corrects bug when used with IIe and single" drive. Adds clock.8 2.48- Corrects bug in quit when used with IIe.> 2.61- Update to AW 3.0 format in read AWP and AWP to TXT.< 2.63- Eradication of small AWP to TXT infestation., 2.64- Eases AW version conversion.. 2.66- Adds AWP 3.0 to 2.x converter.= 2.68- Adds View File (by request of several users).' 2.69- A few cosmetic changes.E 2.71- Corrects bug that prevented proper launching directly. from P8 and certain selectors.D 2.73- Update of AWP 3.0 format and a few cosmetic changes.- 2.75- Adds directory name selector.1 2.76- Bug correction in AWP 3.0 to 2.x.4 2.77- Bug correction, View file, IIc only.B 2.78- Corrects bug in TXT to AWP and AWP 3.0 to 2.x. AWPF header byte +004 must be $4F (ruler length) otherwise A the new file cannot be saved properly when using A AWKS 3.0 (does not effect AWKS 2.x). This is not F documented in published file format for AWP 3.0 files.G 2.81- Adds Exhume AWP which repairs corrupted AWP files. Also$ corrects a few bugs.L.s* CHG.FIL.DOCOCNEB CHANGE.FILEOCNEFAZ.V2.6v/' '&FAZ.II =<- Ӳ+FAZ.II.DOCS7,ϲӲFINDER.DATA>(8 p/! y3"%IXʩXύX+ ]2 U, ]2  e/ *%L2  Ǫ/, ]2\ 1\@ /L2  1 %2\ 2 ƭ/ %L2 L2 /- ]2\// Ǫ/ [$\8\\\\ 2 4 EL # 9`詌! P6`@\// Ǫ/\ʽ\/L #\\// ƭ/ 9`L 5a)aaa// ƭ/L 9L `u"( 2 2` 5( !`a)aa( 2 2$aa 9$a " ]22 ) ؄٠Hȱ؅hؠ ؤ ]2 a !$!a"a "#a$a "aa "aa " a a a  J a a `҆ӄ/JjJJJJ {9 )8 {9 J8 {9 J`͠" ]2L"҄ц {9 8 {9 J`# ]2L" /]// /]!) iн]]JJJJ 8#/ ]2 H 8hɍL #ɛ8`H- ]2Ѡ# P6 /])]]m/Ƚ]]ʈ/]]/ ƭ/ 9Ls#L Њ ѨȽ])$]( h$ ѽ])pJJJJi $ ])**i `HxUTh`HxUTh`H )$ 9 $(h` ɍɛ8`` Li ` j*^. ]2  w%ɛ ' ,( =& j*/ ]2٠% P6`h* J* / / %`/aȱ/aȱ/ a/ / %`$h* J* $ ȱHȱ h $Hȱh( e2 ]2$Hȱh( e2 ]2` j* && '`& & ' '& @&#' '& &=' '& &Z' '& &s' '& & / / %`&/a/ / %` ]2  ' ]2`  ' ]2`ɛ8` j* ( ]2a (`+( / / %`+(/a/ / %`庠 j*( ]2a a (`(( / / %`((//a a/ / %`庠 ( `)) / +) )` )` ( `)) / +) )` )`H (h (`)H)JJJJiɺ0i))h)iɺ0i))`))*)!)).*)8 08 ))))ڭ))*)`H8)9)u8)9h` )ɠ0ɰ0ɺ000 00`LH)8)9h`d*e*f*g*g*:f*[mf*jih* J*a h*g*խh*:f*̠h*i* J*a!ȱaȱ ah*8d*e*`i*h* J*HHd*e*hz`:=mh*`. ]2 [ ! ) S+ ]22ЄѠaȱ af++ ]2HȱШh ]2 ө+ ]2a)+ =+a)@+ =+a) + =+a)+ =+a)Ơ+ =+a)̠+ =+a)֠+ =+a)ܠ+ =+ `H h ]2`宍庠ԠԠɍ荍" ɀ$ΠՍOݠ󍍀ݠݠӍ亠ɀ$Ԡ؀>庠O뺀#Ԡŀ>庠"Ӡ󍍀$4BLO Oɀ"Ԡŀ6庠!󍍀十O Oɀ!ŠӀ<庠ݠ󍍠ݠ堨㩍ݠ卍ݠ卍à亠O O宠󮍍ΠŠ\\\]] a U3q3%r3$s3q3 W1 }1v3ȱ v3v3v3 1 b1 1 L1ɠ0,q3Hv3v3w3w3hv3 L40ɍH b1q38 J b3hɎ`ɛɈq 1  L?0ɕv3v3P 1L?0ɘ }1q3 W1 }1L40ɒ }1L 0əv3v3q38v3 W1 1v3L?0L?0v3v3w3v3w3 1 b1 L?0H h`HHx3x3  x3hh`Hr3 [s3$h`H%t3$u3h`Ht3 [u3$h` U3v3ȱ)v3 b3` U3v3ȱ v3 b3` U3v3ȱ v3 b3` U3 v3ȱv3 b3` U3%v3ȱɠ w3H芨hw3v3 b3`22 28n22H22h2;ɀ $L2Ɂ-2 -2 222` U3v3ȱ v3 b3` U3v3ȱ) v3 b3` U3T3R3S3T3S3R3T3T3R3R3 b3`Ho3p3h`Ho3p3h`HQV  "P!# K4hH637849h`H444)ɀ24)4I@4$JU4(T$$!44h(`4ɍ$%i# [L3ɊɈ$ѥ!8$%%"" [L3Ɍ K4L3ɇЬ0𝩠wT h4U h4T$L[`44 40 444 ,`(0 NO`56667646 86 ;6 H6676h`@6B6J6L6@E6F6 A6H I66676h8`#aE606$a16%a26.6F636e.6N6M6 K6/6 A6a)$ 06Ȉam064636/63626/616к.6.6L`5 I646065H6676h`5HH66765m5iiea56676hh`aa]a 8   [$ h7 8 $O J  [j8 1j88L6 [8$ Ha b)Ih%ɋ:L6ԥ m7L6 7 [$ h7 h7L6Ɋ<L6  m7L68 7 [$ h7 h7L6ɛ8`ɍ L6`L6li [$ h7 8i [ h7`hjj J e!JT$ 7U 7L7 '8U '8T$ [$! J`((((((((PP`PP((((((((`!ΠH  [ ՠ8 ]2  2 J ۠8 ]2 0! [$h`2ߠ2 HHH P! [ $4 J hhh`H 8hS: r:q: ]2 L9 ]2 ɍɛ 8` 88`ΠŠHhjjh8 H$0i hi `H䩰: : :ɰ $0 $$P $Ph` d'HH,ɠ8 H eheh8hh`hh`%'(+.@BCDEFGHIJKLMNPQRSUVWZ::::;;3;D;f;;;;;;; <zIIUIIUIJVJJVJ?JWiJjJXJJYJJYJJZJJZJK[5K6K`OKSKkyK}KmKKoKKKK L L)L-LHLLLgLkLLLLLLLLLMMM!MM=MM^MMMMMMMMMMM MN M@N MXN MuNMNNNNNNN OO3O7O[O_OOOOOOO PP-P1P-PJP-PdP-PP-PPPPPPPP QQ'Q+Q'Q\Q'QQ'QQQQQR4R8RRRVRnRoRnRRnRRnRRnR(SnRcSSSSSSSSST TTTTNT~TT~TT~TTTTTUT1UPUQUeUfUeUUeUUeUUUUV VV3VVkVVVVVVWV@WkWoWWWWWWWWWXXXX3X4X[X\XXXXXXXXXXXXYX>YX_YXYXYXYXY!X,Z"XKZ#XfZ$XZ%XZ&XZ'XZ[[;[?[o[s[[[[[[[[[堯堯ɠ堯堯ӠӠɠɠӠӠӠӠ堯Ӡ堯Ӡ堯堯堯堯ӠӠ堨ӺӠ堨ӺӠ堨ӺӠ堨ӺӠ堨堯堯堯堯堯堯堯堯堯堯Ӡɠ堨ɠ堨ɠ堨ɠ堨堨堨堨ө堨堨堨ө堨堨ө堨Ӡ堨堨ө堨堨ө堨堨堨堨堨堨堨堨堨ө堨堨ө堨àӠàӠààӭӠӠӠӠנ堨נ堨נ堨נ堨נ堨נ堨נ堨נ堨éנ堨éנ堨נ堨נéנ堨ננ堨ננ堨̠ננӱӯӠӠӯӠӠӯӠӠӯӠӠӯӠӠɠӯӠӠӯӠӠӠ堨󠱮堨堨堨ԩɠꮩꮩŭ堳堳Ӡ堳Ӡ堨堨堨堨堨堨ɠ堨堨堨Ʃ堨ů堨ƩĮ͠堨堨堨堨堨堨堨ұį͠Ӡ堣堣堣堣Š堣Р堣堣堣ӠӠӠӠӠӠӠӠӠӠӠӠӠӠӯӠӠ堯Ӡ O=====|====|====|====|====|====|====|====|====|====|====|====|====|====|====|===  File Attribute Zapper II Version 2.6( Public-Domain Software by Bruce A. MahJune 15, 1989Introduction<: This program allows you to easily change the primary =;type, auxiliary type, and access bits of any ProDOS file. A?It's useful if, say, you accidentally downloaded a binary file ;9from a telecommunications service as a text file or some such thing as that.>< FAZ II differs from other "filetype changing" programs ?=in that it allows you to also change the auxiliary types and access bits of files.?= If you're already familiar with FAZ II and just want to <:know what's new in this version, skip all the way down to >the bottom of this document and read the "Revision History.";9 If you're having a bad day (or even if you're not), 9read the quote at the bottom of this file and smile. >)A Little Background=; For interested parties, here's the scoop on filetypes =;and access bits. Each ProDOS file possesses a primary and >< FAZ II requires an enhanced Apple //e, an Apple //c or ;9//c Plus, or an Apple IIgs. If you don't have either of <these, get FAZ 1.2 (the previous version of this program).Running FAZ II>< This is pretty simple...just launch the program FAZ.II <:from a program selector or AppleSoft Basic (in the latter case, type "-FAZ.II").=; After a title page, you'll be presented with FAZ II's main menu.<: Housekeeping stuff: "Q" does a ProDOS Quit call and 8will return you to a program selector if you used one.>< "P" allows you to set a new ProDOS prefix. If you try =to do something fishy, FAZ II will, of course, yell at you.<: "C" to change a file's attributes is (hopefully) why 97you ran this program in the first place. The next few >sections describe what happens when you choose this command.!File Selection and Operations<: While selecting a file to work with, you can use the <:arrow keys and Return to select a file. The display will 20scroll to show additional files. You can enter ?=subdirectories by selecting them, and "pop out" by selecting >< Once you've chosen a file, you'll see some analysis of <:the primary and auxiliary filetypes, and a listing of the activated access bits.[A] Change Access Bits>< Allows you to modify the kinds of ways in which ProDOS >< Unlike FAZ I, FAZ II is _not_ user-customizeable. For <:various reasons, mostly arising from the fact that FAZ is ?=now written in assembly language, adding filetypes to FAZ II <:is a more complex process, impractical without the source code.>< On the other hand, I'm quite open to suggestions as to <:filetypes to add. If you run across new ProDOS filetypes >< This is a useful little program, but, like any utility =;program can cause havoc if used carelessly or improperly. Let's be careful out there...?= FAZ II is sort of a kludge. It was thrown together out ?=of parts of other programs (anyone here used my Three-Column <:Printer?) in the first three days of my winter vacation. ><"invisible" bit for GS/OS. This has been added...effect of :8this bit upon ProDOS 8 and ProDOS 16 is unknown. It is ?=believed that these operating systems and existing utilities (will ignore this bit, but caveat user.>< This version wasn't released for general distribution, :but there may be a few copies floating around out there.>< "Solo GS" on ALPE suggested that the $FE entry include ?=the notation that files of this type may be a "packed disk", 5such as those produced by DDD--this has been added.>< My only excuse is that I was trying to get version 2.5 ?=out the door in a hurry...apologies for any inconveniences I may have caused. -----------This Version's Quote42Q. Dear Uncle Louie--I've noticed that computers 0.in magazine ads never have that big tangle of +)cords coming out of the back. How can I accomplish this? A. First you buy an airbrush. = --From the "Beagle Bros. Bulletin", Winter/Spring 1987L(s& FAZ.II.DOCSOCNEBFAZ.II..DOCOCNEDESK.ACCS.UTILSv/Ϲ' 'FINDER.DATA>/p1CARPET.BAG/"`/INSTALL.DA(4 /?f INSTALL.DAALSLSB CARPET.BAGALSLSCARPET.BAGv/' ',CARPET.SETUP 5#+CARPET.DOCS(7(7CARPET2.0.BUG.2.2FINDER.DATAT/'p/? ,@CARPET.SETCARPET.SET?K"""""""""፸ ፺ ᭱ kn2c=\{&d\Du ##0123456789012345678901\H**,2##0123456789012345678901\H**Kp##0123456789012345678901\H**j##0123456789012345678901\H**##0123456789012345678901\H***##0123456789012345678901\H**h##0123456789012345678901\H**##0123456789012345678901\H**zhhZګkKh h  " H HkKh h  " H HkKh h  " H HkKh h  " H HkKh h  " H HkKh h  " H HkKh h  " H HkKh h  " H Hka)`a)`hKh h  hhhڊJiH"=H"ڽkl"ک>H" H Hk \ \ \ \ \ \ \ \K "kK "kK "kK "kK "kK "kK "kK "k\\\\\\\\) 0 ##Carpet Bag\H**Kh h hh L  H H""h h H HM" :"< " :"K " :"c " H H" 1 . K  " H H"K  H Hk,"Pa  "h&h h hh H H"ፙh h К H HM )ɸL hh  ȷȮȷȮȷȮ ȷ ȮȮ.Șei )\H,"L ȭJi&> PHNH=H"JiH3"=H"" L \"L `kk& 0  "h h H HK"& `L K iH+ ( ( H "hhHHh* h, "h+k" ( H H" +kK " ", H* H"&  H H "& kLoad what desk accessory?Nd  Carpet Bag 2.0A desk accessory loader(c) 1989 by William Gulstad Ego Trip Time "hNu)>6 ""h h ` "< `<Z0 (k"dK"ᭌ H H" "N :" ) U" "" "h(k N u\ \Kh h h=H" HH"h -ڊ PHNH=H"hHJiH3"=H"᭭ H Hkm!.;HUbo}  "$&(*,.02468:<&#'15;BFPTZaeosy!%HUX_etwz/ !$+.69LPSWZeitx| -EHNX]gjmpw}+6<@LOUd",IOZ`m)48  j W )         ;a K . 1 c K < 0    )]e'k|]>hok*gc>:62  jpK2,zvrn c2nl_RE8+Docs for Carpet Bag 2.0 To begin with, let me explain that this version of Carpet Bag is only compatably with GS/OS 5.0.2. It may not crash immediately with other versions, but unless you like Russian Roulette, steer clear. What's new with 2.0? Well, for one thing, it works with the new system! Also, it allows you to remove NDAs that you have previously loaded with Carpet Bag! How do you use it? Easy. Install Carpet.Setup in your System.Setup folder and reboot. Now, any time you choose the Carpet Bag NDA, a standard file dialog will appear to let you select the DA you want (either NDA or CDA). When you find what you want, Carpet Bag will load it and add it to the apple menu. How do you delete an NDA? Carpet Bag indicates the NDAs it controls by putting a diamond mark beside them. If the NDA is currently open, shut it while holding down the open-apple/command key. If the NDA is not open, open it holding down the oa/c key. Now the NDA is gone and the memory used by it freed up. What are the limitations? CB currently supports unlimitted CDA loads, but only 8 NDAs can be loaded by it before its tables become full. When this happens, it will beep rather than give you the dialog box. Simply delete an NDA to load another. Any other limitations? Yes, CDAs cannot be removed currently. Also, NDAs which are loaded are not really added to the system NDA lists. Instead I cheat. This is because Apple didn't have the sense to hire programmers that know there *** from a hole in the ground. Translation--the current version of the toolbox InstallNDA doesn't work. My methods do. In any case, this difference should be entirely transparent to the user. How do you pay? Mail circa $20 (a shareware fee, based on your honesty and depending on the degree to which this software satisfies your needs) to William Gulstad 1110 W. Stoughton #202 Urbana IL 61801. How do you complain or give constructive critisism/bug reports? Send them to the above address or email me at wogg0743@uxa.cso.uiuc.edu. Thank you for your support and feedback in the past. Sorry for the delay in providing you with this usefull software. CS-ID: #343.netnews/apple-2@pro-novapple 7073 chars Date Sent: 9 Jan 90 10:38:11 GMT Date Rcvd: Thu, 11 Jan 90 01:39:19 EST From: wogg0743@uxa.cso.uiuc.edu (Unknown User) Subject: CarpetBag2.0 This is a version of Carpet Bag (a CDA/NDA loader) that will work with the current operating system. Note that I have already had a bug report concerning the routines to remove NDAs by closing them with the command/open-apple key held down. Updates will follow, correcting this. william gulstad L&s CARPET2.0.BUGES CARPET.DOCSPCESB CARPET.SETUPCESINSTALL.DAv/' ')INSTALLDA0f#f#-INSTALLDA.DOC  efFINDER.DATA>(p/ '% ,@ cKJ )" [ (    P" L[HH-" "HH7-" "HH-" "HH-" ""H"h*"`>>@\N1X==About Install DA\N256==Help Mode\N281V*?/.>> File \N2==Load a Desk Accessory\N280*Ll==Close\N255==Quit\N262*Qq.>> Edit \N3D==Undo\N250V*Zz==Cut\N251*Xx==Copy\N252*Cc==Paste\N253*Vv==Clear\N254.>> Goodies \N4==Switch Graphic Modes\N279*MmH "HH"hh HHHL"h h)! h)H"*"H"H"h h^Y^  h )HMh 2: 8  |"H,"""""""""""$`h`?HH2"h{h}}H{HJ3"H"h}H{H "` 3tRyP f%q(c) Copyright Tom Stechow 1988 [f  06 Mar 88 N Y .!Distribute freely but don't sell.CVNh--> FreeWare <--[,fz Version 1.06 A having to reboot your computer!+6%from any disk or subdirectory without+ +&Install New & Classic Desk Accessoriesgj INSTALLDA7Install Desk Accessoryx OK|M| f <,wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwDODDDDDDODDDDOODOOOOOODODDDDDDDODDDDDDODODOOOOODDOOOODDODOOOOOODODODOODDOOOODDDDDDDDDODODODDODDDODOOODOOOODDDDDDDOOODOODODDOOOODODODOOODDOOODODDDDDODODDODDDDDDDDDOOOOODDOOOODOODOODODDDOODDDDDDDDDDODDDODDDDODDDDDDODDODDODDDDDDDDDDDOOOOOODDDDOOOOOOOOOOOOOOOODODDODODODODODDDODODDOH"h`KzU4y1999qLNumber :8m ProDOS Error;)| OKH"h`$~o8 <GThe CDA was not installed./-:#accessories allowed.$ /Pmaximum number of classic desk$You may have exceeded the<Install CDA ErrorM`X OKH"h`[yC J5 Out of memory%[Cannot install desk accessory'Z2  OK HH""HHTH"(C`c """c9HHHHHPi "-H6"Error during load Error was $hhhhhHHHH"hhHHeɸ" "-H"Installing a NDA Error was $HH""."HH-" ""H"h*""""`Select Desk Acc to install :" `" `C""H"7H"(Cannot start Memory Manager Error was $hHHH HH "7H"(Cannot get memory for Tools Error was $P+"AH,"2Cannot Dereference Direct Page Handle Error was $PLHiPJHNHHH"4H"%Error starting QuickDraw Error was $PHiP@JHH"8H")Error starting Event Manager Error was $"H H:"H"H"""$Loading Tools. One moment please...`""""(8H")Error getting boot disk name Error was $" EL8IH":Unexpected error obtaining boot device number Error was $H<"hLBk "0H"!Error Loading tools Error was $HHPHiP"HH"9"HHPHiP"HHPHiP"HH"""PTiP"` L[\CPlease insert diskContinueCancel\"""""""""HH"""`")8=Hv".We returned from our Quit call!!! Error was $HHJ5-  "hhHH\3"HH3"HH=3"`$*e$e0; UCancel*t0Select the menu item you would like help with...,Help Mode In EffectH#'"h0#(% 'HH "8` 8 ڽ  0m8Jm m@J8Jmmmi i 8J8#iFHHH%"hhHHH"hJ 8J8  mHH"HH "hhHHHH "HH3"HHHH "H"hHH "HH"`6B)This item quits the current application.eThis item switchs between 320 and 640 modes. Allowing testing of New Desk Accessories in both modes.This item will install the selected Classic or New Desk Accessory. Note: A maximum of 11 Classic Desk Accs. can be installed. Also, only the first 15 - 17 New Desk Accs. can be selected from the Apple MenuThis item places you in help mode. Subsequent menu selections will display the help dialog for that item. You will remain in help mode until you push the Cancel button in the help mode dialog box.=This item displays the application's Version number and Date.PQ[ OK % )  ȷ) " m m -)    m  `ZH eiHڭ H"h  z`  ` "`x"z"_" \ `x"z"`K0 " P" L[HH"h"h"" "."H"HH"H"HL"h  ""`HJ"#"h`N#*#V# `+ '#OKFB#Currently AvailableFn#This feature is not&K###2#Currently Available1#This feature is notS*| $OKJ J""JIJLHJHHH" "@JH"""%")"""W I JJJHIH" JJJHH"*"hhПhh9" "` J )"[( P"!$[.1J7M7fi03ADQdgm)|"""""""""""$#&1{5}8}<{@JEHMPl}p{tRyP ".\h+^jf z U 4%1@Lamo8 #DP{ yC)5O[HTCC``cccii*6-6X\fjvz}ex{HH P P ,#,`PcLkPnJrNvHPPJH``NQTWZ]`csBy |HPPHHPPHP PH.P1T8PCF[X\\BHajvmvJ55--\\  =#=IUht##''#%' <KNQ TW^ahlpsz}J    !%58LPTX_bhl0tx|     ( + . 9 < ? B E H K N U d i n r u x { ~              ."x"5"z"8"_"?"_"Q"x"X"z"p"P"s"v"["""""""""""""""""J"""""#"#"##*##V##'#6#B#b#n###########$$$J$J4$J:$J=$LA$JH$H`$J$J$J InstallDA Documentation (C) Copyright Tom Stechow 1988 TES Systems InstallDA will allow you to install both new and classic desk accessories when you would like to, rather then having to reboot. This can be especially handy if you like to use different desk accessories with different applications or are using a 3.5 inch drive as your boot device and have a lot of desk accessories and fonts. InstallDA is copyrighted FreeWare. You have my permission to upload this program to any bulletin board as you see fit or give away as many copies as you would like. The only requirement is that the copyright notice is not removed and proper credit be given in the online notice about the program. To use InstallDA simply double click on the InstallDA icon from Finder or open the application from Launcher. After you have launched InstallDA all you need to do is use the Load Desk Accessory menu selection under the File menu or press open-apple L. Selecting this will bring up the standard file open dialog box. This box works the same as it does for other desktop applications. Only Classic Desk Accessories, New Desk Accessories and Folders (subdirectories) can be opened. Double click on the desk accessory that you would like to install or highlight your selection and click on the open button. Please be aware that there is a limit of 11 Classic Desk Accessories and 249 New Desk Accessories, of course if you run out of memory first these numbers may be less. If you need more than 11 Classic Desk Accessories, I suggest you check out Glen Bredon's Master CDA. Normally, only the first 16-17 desk accessories are visible under the Apple menu. If you find yourself needing more, check out Two Apples by Tim Swihart or wait for Master NDA due out in April from your's truly. If you need it, help is available under the Apple menu for each menu item. This selection will place you in help mode. After you are in help mode most menu selections will bring up a dialog box explaining it's function. When you want to exit help mode press (click) the cancel button in the help mode dialog box. Possible future enhancements may or may not include. Installation of Desk Accessories directly from Finder. On screen viewing of the events pending in the event queue. Tool status for all tools. Mouse tracking relative to the front window. These enhancements if added will mainly be for debugging purposes in developing New Desk Accessories and will most likely turn this into a shareware product. Notes to programmers. InstallDA can be used as a test desktop for your development of a New Desk Accessory. It provides a minimum desktop with no additional tools. This desktop includes the following tools: QuickDraw, Event Manager, Window Manager, Control Manager, Menu Manager, LineEdit, Dialog Manager, Scrap Manager, and the Desk Manager. If you need any other tools it is your NDA's responsibility for loading them. This is not a bug in InstallDA, rather it is in keeping with the Apple guidelines for NDA's to insure maximum compatibility with other desktop programs. I hope to be uploading some code in about a month showing how to handle the loading of tools from inside an NDA and handling of the AppleWorks bug affecting new desk accessories. You can switch between 320 and 640 mode to make sure you DA works in both modes. Unfortunately many NDA's available do not work correctly in both modes, I hope this will help you test your NDA in both modes. APW and Orca/M users can change the filetype back to EXE and install InstallDA in you command table. I have patched the Control-Y vector to attempt to regain control if the NDA you are testing crashes. If you have a crash press control-Y (do not press control reset) and if all goes well you should end back in the APW shell. If not you will have to reboot, which you would have to do in the first place. Future programs from TES Systems Watch for Master NDA coming soon (late April,88). InstallDA as a NDA itself. A desktop environment Control Panel. Several New desk accessories to be known as the Information Series to include: 1. Mouse tracker (global,local,and content) 2. Font manager tracker 3. Memory usage 4. Window manager tracker 5. Prefix tracker L,s( INSTALLDA.DOCESB INSTALLDAGTSESMISC.DISK.UTILSv/Ϲ'  'DISK.TEST(/UNI.VERSION(/INTERLEAVE"'*/DIRMAP.V1.0)'3/CHECK.DISK.PLUSX(/FINDER.DATAk/p1DISK.TESTv/' ')DISK.TEST 6 =FINDER.DATA((#p( L ),  /߭)%0)* X b%ˠŠĠԍ8 *,*0= \) ɰɶ ɰɺ@  ** ' '* L)d <+`hhH )h+ b%ŠġL*' b%ɯϠҡL*( b%ϠŠġL*/ b%ϠˠΠšL*- b%ϠȠˣL*ɀ b%ĠˡL*ɛH b%ңh b%ٯΩ : %L6 e*`p++?fB DISK.TESTONPLUSUNI.VERSIONv/' 'UNIVER.OBJ ZO0-FINDER.DATA!((%p( ō i U#> Lq r DVL`ԠŠңZ?fB UNIVER.OBJASLUSINTERLEAVEv/' 'INTERLEAVE# 0 0",INTERLEAVE.S$00"FINDER.DATA(>'p( "r !Ӡ 렳  Z1)i !  ! 뿠ٯ )_N< e ! 򮮮L  !,`h !h ! ! ! !H !H`%&' 捠砤㰰㰱屰泱츰㳰ᠤ捠㍠㍠㍠쫱ᠣ츰㠢 䍠㠢 㵰捠獠䠣捠㠣Ⰽ䍠㠢 㠢鍠䍠㠢 ٯ 䠣𠣧Χ𠣲氰⠤䍠㠢򮮮䮢占፠㍠𫱍፠𫲍𫱍𫲍፠𫱍፠?f INTERLEAVE.SLUSB INTERLEAVEAPLUSDIRMAP.V1.0v/' ',DIRMAP.ICONS*h²)*DIRMAP.DOC/ ² )&DIRMAP=13² )FINDER.DATAWT²/)+,-.&DIRMAP@ wwwuUUUUUU]wwwuUUUUUU]wwwuUUUUUU]wwwuUUUUUU]wwwuUUUUUU]""/fo""/fo""/fo""/fl""/f`wuwuwuwuwu wU]wU" &/WORK/UTIL/DIRMAP/DIRMAPDIRMAP.*@ wwwuUUUUUU]wwwuUUUUUU]wwwuUUUUUU]wwwuUUUUUU]wwwuUUUUUU]""/fo""/fo""/fo""/fo""/fowuwuwuwuwu wU]wU]""0123456789:;< -=[ DirMap v1.0 Copyright 1989 Jason Harper CompuServe 76703,4222 ]=- STATUS: Freeware: distribute but do not sell. PURPOSE: To show the directory structure of any GS/OS-readable disk in a graphical format in which the displayed width of each directory is proportional to the amount of disk space taken by files in that directory, including all files in subdirectories. This makes it easy to locate any directories that are taking up more disk space than expected, perhaps due to some large files that were placed there and forgotten. REQUIREMENTS: Apple IIgs. 512K memory should be sufficient for handling any reasonable disk structure. GS/OS (System Disk 4.0 or higher). Optional (needed only for alternate methods of use): APW or Orca/GS command shell (text based, not Orca/Desktop). LIMITATIONS: The amount of disk space taken by the directories themselves isn't included in the displayed directory sizes, since GS/OS doesn't support any file system independant way of determining it (some file systems don't store directories as separate entities, therefore the size of a directory on such a file system isn't a meaningful concept). The effects of this should be negligible. Any directories that contain less than 1/320th of the total disk space used on the volume probably will not appear in the display at all. Disks or directories with a name longer than 32 characters will cause DirMap to abort. This can't happen with any current or expected GS/OS File System Translators, but may be a problem in the future. DirMap probably won't work on a network file server volume unless you have at least read access to every directory on the volume. It would be possible for the program to skip over directories it can't access, but I don't think that the display resulting from such an incomplete mapping would be useful. When used normally, you can only select from the first 21 GS/OS disk volumes. If this becomes a problem for you, let me know and I can produce a version of DirMap that has a higher limit for no more than a few thousand dollars (which should be pocket change to anybody who can afford to put more than 21 devices on one IIgs). You can easily capture the generated directory map screen with any of the various screen grabber desk accessories available, but it is unlikely to do you any good since the program uses 640 multi-palette mode graphics. Not all screen grabbers can properly capture such an image, no currently available programs can edit them, few programs can even view them, and nothing that I'm aware of (other than perhaps the Fingerprint card) can print them. USAGE FROM A PROGRAM SELECTOR: Just run DIRMAP like you would any other program. You'll get a screen with a button for each GS/OS-readable disk you have online: click on the one for the disk you want to map. After the mapping is complete, you'll be returned to this screen. There will also be buttons to reread all disk volumes (in case you forgot to put the desired disk in a drive, or have to remove the disk containing DirMap to do so), and to quit the program. You can also perform these functions from the keyboard by pressing 'R' or 'Q', respectively. After you've selected a disk to be mapped, there will be a short delay while the disk's directory structure is being read into memory. When the map is displayed, there will be a box across the top which represents the disk's volume directory and all the files on the disk. Underneath it will be a row of boxes representing the directories contained in the disk's volume directory: underneath each of them will be the directories they contain, and so on. The width of each directory's box is proportional to its size: a box that is 1/4th of the width of the screen represents a directory that contains files that total to 1/4th of the total space used on the disk (NOT 1/4th of the total space available for use on the disk). Any white space under a directory box, not filled by boxes representing subdirectories, represents the space taken by individual, non-directory files in that directory. If you map a disk containing no subdirectories at all, the entire screen will be filled with a single box representing its volume directory. Each directory box contains the name of the directory it represents, if it will fit. If not, just point the mouse cursor at the box and its full name and exact size in disk blocks will appear at the bottom of the screen. Clicking the mouse or pressing any key will return you to the list of online disks, from which you can choose another disk to map or quit back to your program selector. If you click in a directory box and then immediately quit, the prefix will be set to the directory you clicked in: this has no effect with most program selectors, but with those that do make use of the prefix (such as the APW or Orca/GS command shell) this feature can be used to quickly examine directories that seem to be taking up more disk space than they should. If you're using such a program selector, and don't want to change the prefix from what it was on entry to DirMap, make sure you always exit the map view mode by pressing a key or clicking the mouse outside of any directory. USAGE FROM THE APW OR ORCA/GS COMMAND SHELL: If you use APW or Orca, you can still use DirMap as described above, but it will be more convenient to use if you install it as a shell command. Just follow these steps: 1. Copy DIRMAP into your Utilities (prefix 6) directory: PREFIX (wherever dirmap currently is) COPY DIRMAP 6/ 2. Change its filetype to EXE so the shell doesn't have to reload after use: FILETYPE 6/DIRMAP EXE 3. Add an entry for it in your commands table: EDIT 4/SYSCMND insert the line (in alphabetical order): DIRMAP U ;disk directory mapper Save the file back to disk, then exit and reenter the shell. You can now call up DirMap by typing DIRMAP, no matter what the current prefix is. You can also tell DirMap to immediately map one or more disks by typing their names (or the name of the device containing the disk, or the name of a file or directory on the disk) after the DIRMAP command. Each requested disk will be mapped in turn: press the mouse button or any key to go on to the next. When all have been mapped, you'll be at DirMap's disk listing screen and can click on Quit to return to the shell. An example: DIRMAP /HARD1 .APPLEDISK3.5A */ 6 will map the following four disks: 1. the one named /HARD1, 2. whatever disk is in the device named .APPLEDISK3.5A, 3. the boot disk, and 4. whatever disk contains prefix 6 (the APW/Orca utilities directory). >?@ABCDEFGHIJKLMNOPQRSTUV](% ,@ main %H H h ;8[iH"hHH "h " "H"zz"@z "zz HH"zzzH" z H"8H"BzzH*h(, H(("=$zzz{i+k ;8[i G H"Tzzzz"zzzziH"zzzziH"!zzzz{i+k ;8[i   HhHh "Tzzzz "gzz  " H"."z "a( "H"."zH;H "h H"."z誧 HhHhHh i iH"zzzzzHi"h "zzH"hHhToHohHh )%o?HoAhHhA "{i+k ;8[i H "hH e$"H"h"zz$"HH"h"h"zz HUU"h) H"0" HUU"hHhiHڢT"HiHڢ"h88dpI]H888"eH JHeiH:"iHڢ"9"`zzzzꪠH"hꪧꀽ{i+k ;8[iIH"szzH"szzH""{i+k ;8[i8pI 8pI0 8pI ld8pISK2"zzzzꪧĢ{i+k ;8[i"""""d܀'ܭ H"5z) H"ܥɴr r "`zzzzH"h"ddH {iH "h.r r {i;8ZH"#zzzzz"zzzz8ކCCU"ކ:" "Tzzzz ":"ުH '"  "SS"E; "Tzzzz "gzz KK ""x v H"szzHx hv {i+k ;8[i"""""h:""[[ " H"."za, " H"."z " H"."zH "zzzzzH "h Ht hr H| hz ~ r r "zz$"iH"5z "{i+k ;8[ix v H"szzi"""""$H"@zzz&iHihH ""H"h:"cꂺH"H"hH}"5z :"H"H"hH""# :"?H"hH {iH "hݢ""""""(&H"{i+k ;8[i@HH "h(& H"."z(&**iHH" H"."z*iHdH" H"."z" "zz.." H"."zH" H"."zH*iH" H"."zHUU "h.,H"{i+k ;8[i"{iH*")"."z8MpIFiHhH "!zzzz "gzz "x HH "h" "쪧iHih)U)HiHihH "zzzzz) "x )iH"h耤"""N"."z{i+k ;8[iH.,H H" H"H "h{i+k ;8[i9"""z"z"""< :"% % " J8pI: , " H hdH$"hH"hH h    "H$"hH"hH H"hh H$"hH"hiH H"hiHihH"zzzzz"z.,H"H{iH "hH{iH{i;8ZH"#zzzzz.,H"h]H{i;8ZH"#zzzzzܢ"hHܢ#"h1,$)d.,H "PKD"H$"hH"hiH "zzzzz"x t{i+k ;8[id 0$iHih  ""zzzzz0 0 H H "h"."z)^)"'))")"w8iH""."ziHH몧"hh zu8iH""."ziHH몧"hh ) )) x8iH""."ziHH몧"hh ^8iH""."ziH몧"h ) ) 䂕H" "iʆ & &H"L"zz 몧H hHh몧Q)DiHihHʆ & &H "hhHh8pIʆ & &H "hHh{i+k ;8[iA)Hh ٦H"5h8 {i+kcck8j Jk ;8[i8pI(Hh ɦ{i+k H;[ jI I f  8 F F  I I zz+k" H;[3II I I &&ff !  8  FfFf0II I I   zzzzzz+k" ;8[i)Hh )Ӧ{i+k ;[ȗȗ+k8k ;8[i)H))өʨ{i+k H;[IIʩ FeIz+k ;8[i  e5H"#Hh:i  (eH"#pI0{i+k ;8[iiHih)H"5h{i+k H;[2IIIIʀFf ee&IIzzzz+k ;8[i$H  hHh0R{iH/h-'--"!/-)H/-"h)/8 pIť8  RH/-"hHH"h8Hhh 8pI0H  hHh  H"$zz    "  H h {i+k ;8[i  $e9H"#"&"z88   pI0  "&"{i+kh!h!h!h!h!"!H!k ;8[iHh )Ӧ{i+k:Hk ;8[i)H" z{i+k ;8[iH H "h {i+k ;8[i)H)|)8apI)8zpI) )iA8aH)8apI)8zpI) )iA8a5)3)){i+kH  8zzzz(k ;8[i$"iiե {i+k ;8[i "V$zzz{i+kQ$S$")k;[[HH Z;[ȷȷ hhhz+k ;8[iQ)&Hh ө {i+kf O$iLD)7c z4Y9Ry6gVZMt#/DQl'`[m`p 2EPF,_Mf N + ":@/@F,Rv*/6=Vhx/HD%N%Hp ";KOThm #'@gyK[n$`x(8HXh DbCiAt59?x}n#= A4H05TY  `e}NV^rwz 9X[}  "%3:Z_ Ղ/ DIkpdg lo4HMWZDQZ]x{Ucv$ELlo|mo^UgA&4Di6.SdSa ).UރuQX #j,?%X,Ud>#1A|f31VaP^&+R~ۃrTU m/<([)2 D,@ ~globals 288s D,@ ~arrays Can't allocate SANE direct pageAborting due to error $xxxx.w w   _  _UUUUUUUUUUUUUUUUffffffffffffffffN : " blocks $c$eWorking...DirMap works only under GS/OS.6Jl &&&v- :-:-:vA NANANvU bUbUbvi vivivv} }}v vQuitReread volume names$$$$$$$$$$$$$$$$$$$$$$$$  DirMap v1.0 Copyright 1989 Jason Harper CompuServe: 76703,4222?8HS BYTEWRKS O ] ce    F ,@ DIRECT L(sBDIRMAP.DOCNSERS DIRMAP.DOCNSERS DIRMAP.ICONSERSCHECK.DISK.PLUSv/' '.STATUS.CHECKERYEȲ5 Ȳ6 X*SMART.TEST^ )Ȳ6 Ȳ6 XFINDER.DATAj>(!p/XZ[\] $ * STATUS BUG CHECKER *; BY TOM VIERU( Distribute freely[-t21000: SHOW MESSAGE<2000: SET UP MLIF:"CONTINUE? Y/N: ";A$PA$"Y"A$"y"ĺ:"ABORTED.":Zd"INTERFACE SLOT: ";SLOT n" DRIVE: ";DRIVE x% UNITSLOT16@ DRIVE2UNITUNIT128N 769,UNITa CSLOT192SLOT| ENTRY(CSLOT256255) ENTRY0210 "APPLE'S FLOPPY DRIVER RETURNS THE " "STATUS CORRECTLY. NO NEED TO TEST IT. ":70 785,ENTRY:786,CSLOT( 768: DO STATUS CALL8 CODE(791)I CODE0285x "EITHER YOU HAVE A DEVICE THAT DOES NOT " "RETURN THE WRITE-PROTECT STATUS ON THE " "PRODOS STATUS CALL OR YOU HAVE SELECTED" "A VOLUME THAT IS NOT WRITE-PROTECTED. ":70( CODE39ĺ"I/O ERROR!":70T "CODE43ĺ"YOUR DEVICE IS CORRECT!":70~ ,CODE40ĺ"DEVICE NOT CONNECTED!":70 1CODE47ĺ"NO DISK OR NO VOLUME MOUNTED!":70 6"UNRECOGNIZED ERROR! THAT'S A BUG TOO!":70   GREETINGS  (21) :A " -STATUS BUG CHECKER- "G $v ." THIS PROGRAM WILL CHECK THE PRODOS " 8" DEVICE OF YOUR CHOICE FOR FAILURE TO " B" RETURN THE WRITE-PROTECT STATUS ON THE" L" STATUS CALL. PLEASE CONFIRM THAT YOU "2 V" HAVE SELECTED A LOCKED VOLUME. "8 `> V  DRIVER INTERFACE\  768,169:769,112: LDA #$70 770,133:771,67: STA #$43 772,169:773,0: LDA #$00 774,133:775,66: STA $42;776,133:777,68: STA $44g 778,133:779,69: STA $45*780,133:781,70: STA $464782,133:783,71: STA $47>784,32:785,10:786,199: JSR $C70AH787,141:788,23:789,3: STA $0317>R790,96: RTSD\_`abcdefghi< LISTING FROM JAN 87 OPEN-APPLE ARTICLE ON SMARTPORTSr MODIFIED WITH NEW DEVICE LIST FROM 9/87 ARTICLE(4)"PR#3"( SLOT SCANNER2SLOT17<ADR49152(SLOT256)F(ADR1)32180P(ADR3)0180Z(ADR5)3180 d(ADR7)0180B nSMART(0)SMART(0)1: COUNT SMARTPORTS FOUNDz xSMART(SLOT)ADR(ADR255)3: get dispatch address B(ADR251) B128BB128:"Extended "; B2B3ĺ"SCSI "; B1B3ĺ"RAMcard "; "Smartport found in slot ";SLOT :5 SMART(0)0ĺ"No smartports found.":` UNIT0: CALL GOES TO SMARTPORT ITSELFx CMD0: STATUS CALL SUBCMD0: WE'RE ASKING FOR THE NUMBER OF UNITS SLOT17 SMART(SLOT)0290 1130 ERRĺ"ERROR--";:1400:290 NDEV(SLOT)(784)S "The Smartport in slot ";SLOT;" has ";NDEV(SLOT);" devices."[ ":i ,SLOT17 6SMART(SLOT)01110 @UNIT1NDEV(SLOT) JCMD0:SUBCMD3 T1130 ^ERRĺ"ERROR--";:1400:1100 hDEVST(784) rNBLKS(785)(786)256(787)65536F |NAMES$"":I1(788):NAMES$NAMES$((788I)):d TYPE(805):SBTYPE(806) VERS(807)(808)256 "Device ";UNIT;" in slot ";SLOT;" is a ";NAME$ " It has ";NBLKS;" blocks of storage capacity." DDEVST:1330/ B(7)0ĺ" It is a character-oriented device."_ B(7)1ĺ" It is a block-oriented device." B(6)0ĺ" You can't write to this device." B(6)1ĺ" Writes to this device are allowed." B(5)0ĺ" You can't read this device."B(5)1ĺ" This device is readable."SB(4)0ĺ" This device is offline (disk ejected)."B(4)1ĺ" This device is online (disk inserted)."B(3)0ĺ" You can't format this device."B(3)1ĺ" Formatting this device is allowed."!B(2)0ĺ" The device isn't write protected."O&B(2)1ĺ" The disk is write protected."0B(1)0ĺ" This device is not interrupting.":B(1)1ĺ" This device is the interrupt culprit."DB(7)1610: lines 555-6 are for character devices only.*NB(0)0ĺ" This device is closed (available)."WXB(0)1ĺ" This device is open (busy)."b" The TYPE byte of this device indicates it is a ";lTYPE0ĺ"memory expansion card."vTYPE1SBTYPE0ĺ"UniDisk 3.5."TYPE1SBTYPE192ĺ"Apple 3.5 disk." TYPE2ĺ"hard disk."<TYPE3ĺ"SCSI device."TTYPE4ĺ"ROMdisk."pTYPE5ĺ"SCSI CD-ROM."TYPE6ĺ"SCSI tape."TYPE7ĺ"SCSI hard disk."TYPE8ĺ"SCSI sequential device."TYPE9ĺ"SCSI printer."TYPE10ĺ"5.25 disk."/TYPE11ĺ"New Device (reserved)."]TYPE2810: see text about subtype byte" The SUBTYPE byte of this device indicates that it: "DSBTYPE:1330 B(7)1ĺ" Supports extended Smartport calls."B(6)1ĺ" Supports disk-switched errors."? B(5)1ĺ" Supports removable media."w*" The version number of this device is ";VERS;"."4TYPE1İ1570:1100: ALL 3.5 DRIVES (SO FAR) HAVE TYPE =1>CMD4:SUBCMD4H784,0:785,0: # OF ITEMS IN CONTROL LISTR1130$\ERRĺ"ERROR--";:1400:1100*fbp"Please open the write-protect hole on this disk,"z" then reinsert it. Press when ready.";A$66,0: FOR PRODOS STATUS COMMAND, PUT A ZERO AT $42S1SLOT:UNIT2S1S14: CONVERT TO ProDOS UNIT #7S1S116:UNIT2UNIT4S1S1128h67,S1: put prodos unit # at $43 (dsss0000)809,32: JSR DRIVER811,(SMART(SLOT)3)256810,(SMART(SLOT)3)(811)256812,176:813,2: BCS 816814,169:815,0: LDA #0#816,141:817,52:818,3: STA 8205819,96: RTS>809R(820)01090"This Smartport has the UniDisk 3.5 write-protect bug."" Eject this disk, cover the write-protect hole, and don't"$" ever put a write-protected disk in this Smartport again.".1570'81100tB" You can safely use write-protected disks on this Smartport."::1570|L:V`(4);"BYE"j SET UP PARAMETER LISTt779,3~780,UNIT781,16: STATUS/CONTROL LIST ADDRESS IS $310 (784) 782,3783,SUBCMD/ CALL SMARTPORTJ768,32: JSR DISPATCHc770,SMART(SLOT)256769,SMART(SLOT)(770)256771,CMD772,11: PARMLIST ADDRESS IS $30B (779)773,3774,141: STA 778 775,10: ERROR CODE ADDRESS IS $30A(778)776,3* 777,96: RTS3768BERR(778)H(o2 TURN A BYTE'S BITS INTO AN ARRAY< D=BYTE TO ANALYZEF B(7)=ARRAY WITH BIT VALUESPN701ZBN2N:B(N)0:DBN1DDBN:B(N)1dn x SMARTPORT ERROR MESSAGES-ERR1ĺ"$01. No such command."TERR4ĺ"$04. Bad parameter list."|ERR6ĺ"$06. Smartport Bus error."ERR17ĺ"$11. This device can't respond to this command."ERR31ĺ"$1F. Interrupts not supported by this Smartport."=ERR33ĺ"$21. This device can't respond to this subcommand."cERR34ĺ"$22. Bad Control List."ERR39ĺ"$27. I/O error."ERR40ĺ"$28. No such unit number."ERR43ĺ"$2B. Disk is write protected." ERR45ĺ"$2D. No such block number on device."DERR47ĺ"$2F. No disk in drive/device is offline."ERR47ERR64ĺ"$30-3F. Device-specific fatal error."ERR63ERR80ĺ"$40-4F. The future has arrived."ERR79ĺ"$50-5F. Device-specific non-fatal error."(":" Press any key to continue....";:A$:::L&s# SMART.TESTCKERSBSTATUS.CHECKERS? DISK.TESTRR1.2K5B INTERLEAVEN1.2K5 UNI.VERSION1.2K DIRMAP.V1.01.2KBCHECK.DISK.PLUSGRAPHIC.UTILSv/<'  'FINDER.DATAmj/p1lPWG.PATCHn' /lPSGS.CONVERTx(* /lSLIDE.SHOW(+ /lPS.UPGRADER' /l?5 SLIDE.SHOWRT.81 PS.UPGRADERT.81B PSGS.CONVERT.815B PWG.PATCHERT.81PWG.PATCHv/' l'-PWG.PATCH.TXTo''nFINDER.DATAw('p/npqrstuv __ ,^, |_) _. o ._ _,_ _ ._ | _ _ /| | | | (_| | | | |_ |^| (_) | ' |<_ '_, | | | | | | _ | | _,- _ _ |/ /-`\/ _____------ / // `|-| /( /`-___---- A PATCH / | (/ / \_/ `-' ( /| /-__/ by Jason Harper \__/ |/ / CompuServe 76703,4222 /| / | ( / -' PURPOSE: To allow Activision's Paintworks Gold paint program to function properly under more recent System versions (such as 4.0 and 5.0) than the program came with. REQUIREMENTS: Only works with the original (V1.0 as shown in its About dialog) version of Paintworks Gold. 1.5MB RAM (built-in plus expansion card minus RAMdisk) is require: the greater memory usage of GS/OS as compared to earlier IIgs operating systems makes the program's stated memory requirement of 1.25MB insufficient. WARNING: As with all patches, do not even think about applying this patch to your original disk or to your only backup copy of it. It is very easy to misapply a patch and completely destroy a copy of a program, or in some cases even destroy the whole disk containing the program. PATCH, VERSION 1: Requires a ProDOS disk block editor that is capable of searching individual files for specific byte sequences. Run your block editor and tell it to follow (or open or display, different editors use different terminology) the program file. It's named PAINTWORKS.GOLD on the original disk, you may have renamed your working copy. Tell it to search for the following hexadecimal data: $C9 08 00 D0 CE This should be found at relative byte $1FFDF (byte $1DF in relative block 256) within the file. If the block editor doesn't find these bytes, you probably told it to do a text search rather than a hexadecimal byte search. Now, change the $08 (second byte of the searched-for data) to a $7F, and write the modified block back to disk. This allows Paintworks Gold to find the 640K of memory space it needs to allocate anywhere in your IIgs's RAM, rather than only in the first 1.125MB of it. PATCH, VERSION 2: Requires no special utilities. Enter Applesoft Basic, probably by launching BASIC.SYSTEM from the Finder or other program selector. Use the PREFIX command to specify the location of the copy of Paintworks Gold you wish to apply the patch to. You can use either slot/drive numbers or the ProDOS pathname of the directory containing the program. Some examples: PREFIX,S5,D1 PREFIX /HARD/APPS/PWGOLD/ Do a CAT to make sure the prefix is set to the right location. Now, carefully enter the following commands. Replace "PAINTWORKS.GOLD" with the actual name of the program file if you have renamed it. POKE 768,127 BSAVE PAINTWORKS.GOLD,T$B3,A$300,L1,B$1FFE0 The patch is now applied. L*sB PWG.PATCH.TXTXTPSGS.CONVERTv/' l',PSGS.CONVERTy:x-PSGS.CONV.DOCX#9xFINDER.DATAɚ>(9 p/xz{|}~#d * Print Shop IIGS ConverterNn * Original by Brad Martin, Dec. 1987x * Slightly enhanced by Ken Franklin, Apr. 1988 * Totally rewritten by Bob L. Allen, Nov. - Dec. 1988163841230FILE$(200): Alter DIM as needed2 C81403:CL868:CS958:PFX$"":LINE$"":L0:SND1Q D$(4):::D$;"PR#3"::j D$;"PREFIX":"";PX$ 1:1:"Print Shop IIGS Converter";:C8,55:"Menu-Driven Version 1.0" "Original By Brad Martin";:C8,58:"Conceived, Directed,"8 "Enhanced By Ken Franklin";:C8,53:"& Written By Bob L. Allen" I13:"==========================";::22::I13:"__________________________";:: 5::34,5:35,22:1460:440 ZX114:ZY(49200)::: Sound! * Menu selectionT Enter w/ VS (vert. menu spaces), V (vtab), H1 & H2 (htab), T$ (title), C1 (# of menu items)] VS2t T$""ĖH1:V:T$ NZN(C1)::I1N:410::I1 "IV1:410 ,KB(49152)128:KB0300 649168,0:KB19SNDSND @SNDİ230 JKB8KB11İ410:II1) TKB10KB21KB32İ410:II1: ^KB27A0:K hKB13AI:o rKCKB48:KC0KCN1İ410:IKC| |INI1 I0IN 290 H2:VIVS(VS1):I;". ";:IV1Ğ:IV0 " ";ZI$(C1,I);" "::   * Main MenuR LL$"Type number, or use arrows, then press Return ":1220 :AN$"This program converts graphics from The Print Shop":1180:AN$"into the format used by The Print Shop IIGS.":1180AN$"-=> Two disk drives are required <=-":1180:KT$"Please choose your next action.":V10:H126:H222:C11:240gA0480:A500,770,780 * Time to convert!:T$"What is the SOURCE location of the Print Shop graphics to be converted?":H14:H225:C12:240A0460:A530,550640:A0510@L$",S"(S)",D"(D):790:SD$PFX$:560d&700:PFX$""510:SD$PFX$:5600:T$"Where is the TARGET disk for converted graphics?":H114:H225:C12:240:A0510:A580,600D640:A0560NL$",S"(S)",D"(D):790:DD$PFX$:620-X700:PFX$""560:DD$PFX$:bA0560LlDD$SD$810v:10:AN$"Your SOURCE and TARGET drives cannot be the same!":1180:AN$"Press a key to start over... \":1180:RT$::440 * Get Slot & Drive:S0:D0:C14:ND(48945)1:I1ND:690AZI$(4,I)"Disk "(D)" (Slot "(S)")":bZN(4)ND:VS1:270:A0İ690hZ(48945I):BZ127:D1B:S((Z(128B))16): * Get Pathname from userLL$"Carefully type the legal pathname of a volume that is currently online.":1220DPFX$""::10:15)"Enter ProDOS pathname:"b15:"";PFX$:PFX$""760(PFX$,1)"/"PFX$"/"PFX$(PFX$,1)"/"PFX$PFX$"/"LL$"Type number, or use arrows, then press Return ":1220:772 ::D$;"PREFIX";PX$A216,0::"Type RUN to restart.":: Quit to BASICd (4);"BYE":: Quit to ProDOS * Get prefix from disk D$;"PREFIX";L$:D$;"PREFIX":PFX$:* * Begin conversion process434,4::"Source: ";SD$;40);"Target: ";DD$:34,6> * Read DirectorybHLL$"Searching source directory for Print Shop graphics.":1220::Q0~RD$;"OPEN ";SD$;",TDIR"\D$;"READ ";SD$fLINE$:LINE$:LINE$: Prefix, Title, Blank linepLINE$: Read a line of filesz(LINE$,8,5)"FREE:"940e(LINE$,18,3)"BIN"(LINE$,28,1)"3"(LINE$,68,4)" 576"880: Test for ps graphicsQQ1:F$(LINE$,2,15): Get filename(F$,1)" "F$(F$,(F$)1):920: Remove trailing spaces from filenameFILE$(Q)F$:880: Read PS files into array & get more(D$;"CLOSE"Q0ė::"Sorry, there are no Print Shop graphics on":SD$;"!"::"Press a key to restart... ";:1090 * ConvertLL$"Converting "(Q)" graphics to IIGS format. Please be patient.":1220:QQ1Q""Processing: ";FILE$(QQ);ID$"bload";SD$;FILE$(QQ);",A24576"pD$"bload";SD$;FILE$(QQ);",A25148"D$"bload";SD$;FILE$(QQ);",A25720"1110D$"BSAVE";PS$;",T$F8,A24576,L1716"40);"--> Done!"$. * Finished!K8LL$"Conversion completed.":1220::AN$"All finished! Press a key... \":1180iBRT$::34,4::34,5:440L: Should never get here!V PS$ = DD$ + FILE$(QQ)`(FILE$(QQ),1)" "FILE$(QQ)(FILE$(QQ),(FILE$(QQ))1):1120jPS$DD$FILE$(QQ)t18944,(PS$)9~I1(PS$):18944I,((PS$,I,1)):D18432J] * Center AN$C8,(((33)(AN$))2):(AN$,1)"\"ĺ(AN$,(AN$)1);:1210AN$35,24:24:1:CL:LL$;:20::35,22: * Error RoutinesER(222):EL(218)(219)256216,0ER1450,1450,1320,1330,1340,1350,1360,1360,1370,1380,1450,1390,1400,1450,1450,1410,1450,1450,1450,1420,1450,1430,1430,1440ER10Ħ::E$:1230 :"Press a key... ";:RT$:ER4ER9ER10ER20ER22ER23EK1:: not too serious7ER6770: no disk!X34,4::34,5:440: restart(E$"That device is not connected.":: 32E$"Unable to write at "DD$". Please remove the write-protect tab and try again.":: 4*<E$"There are no Print Shop files on this disk!":D$;"CLOSE":: 5gFE$"Unable to locate Disk, Subdirectory, or Path.":: 6PE$"Disk error.":: 7, 8ZE$"The disk "DD$" is full. Delete unneeded files or use another disk.":: 9dD$;"UNLOCK";PS$:: 104nE$"Not enough memory. Please reboot your system.":: 12YxE$"File type incorrect.":: 13E$DD$" is a bad ProDOS directory name.":: 16E$"File was 'busy'. Please try again.":D$;"CLOSE":: 20E$"Done.":: 22, 23$E$"File too large. Unable to complete action.":: 24=E$"Error #"(ER):a * Menu Items, TM, ZN(), ZI$():TM:ZI$(TM,10):I1TM:ZN(I):J1ZN(I):ZI$(I,J):: * PRINT TM: FOR I = 1 TO TM: PRINT ZN(I): FOR J = 1 TO ZN(I): PRINT ZI$(I,J): NEXT : NEXT : END& 4: TM = total # of menus 3,"Convert Graphics to IIGS Format","Quit to BASIC","Quit to ProDOS": Menu #1 ZN=3 2,"Slot and Drive","ProDOS Directory" 2,"No","Yes" : Menu #3 ZN=2 1,xI1843218464:X:I,X:0  8,72,138,72,152,72,162,4,189,143,191,157,7,73,202t  208,247,32,0,191,192,0,73,141,0,75,104,168,104,170,104,40,96 "I1868818699:X:I,X: , 7,0,74,195,248,35,195,1,0,0,0,0 6B O===|=||===|====|====|====|====|====|====|====|====|====|====|====|====|====|===L"Print Shop Graphics Upgrader" "Print Shop IIGS Converter"D File: PS.UPGRADER File: PSGS.CONVERTE Docs: PS.UPGRADER.DOC Docs: PSGS.CONV.DOCI Original By Brad Martin, 16 Dec. 87 Menu-Driven Version 1.0M Enhanced By Ken Franklin, Apr. 88(?) By Bob L. Allen, Nov-Dec 88I. Introduction.DB"Print Shop IIGS Converter" is a rewritten version of the program JHoriginally written by Brad Martin, enhanced by Ken Franklin, & entitled KI"Print Shop Graphics Upgrader". I (Bob) made two major changes to their LJeffort. First, I added a catalog-reading routine so that it is no longer MKnecessary to run "Cat.Text" and create a text file. Second, I added menus JHto make it easier to use. It is still not completely error-trapped. I ;also edited Brad's original documentation, which follows.2Print Shop Graphics Upgrader -- 16 December 19875Print Shop IIGS Converter -- November-December 1988KIThis Applesoft program is a quick and dirty method of moving all of your OMDOS 3.3 Print Shop graphics to ProDOS disks for use by The Print Shop IIGS. NLAlthough The Print Shop IIGS can use those DOS 3.3 style graphics directly, KIit is helpful to convert them to ProDOS format and store lots of them on MK3.5" disks. The real advantage of this program is that it will convert an HFentire disk of graphics quickly. Any improvements or suggestions are welcome.II. Requirements:L1. A program to convert DOS 3.3 files to ProDOS (such as Copy II+). SorryM but Beagle Bros' FileMaster cannot do this. Go out & buy Copy II+, it's quite worth it!J2. At least two ProDOS disks (or subdirectories) online -- a source diskM that contains the graphics to be converted and a target disk on which toI save the converted graphics. These disks can be physically separateH disks, different directories on a 3.5" disk, or one on a RAM or ROM+ disk, or parts of your hard disk, etc.(3. The Applesoft program PSGS.CONVERT.?III. Procedure: ?1. Create the source and destination disks or subdirectories.K Since ProDOS root directories are limited in file size, and most PrintI Shop disks have 100+ files, you must store them in a subdirectory. IK (Brad) usually make a /TEMP on my RAM disk, and an appropriate name onJ my final disk (such as /PS.GRAPH/VOL1). Once converted, the graphics, can be copied onto another ProDOS disk.@2. Move and convert the DOS 3.3 files to the source directory.M Copy II+ comes in handy here since it reads DOS 3.3 files, converts themL to ProDOS, and saves them on a ProDOS disk. The files will be type BIN,M but will NOT be recognized by The Print Shop IIGS. (However the programE Print Shop Slide Show by Bob L. Allen can read and display theseJ converted graphics; look for the DOS 3.3 and ProDOS versions of it in the public domain.)J3. Backup your source and destination disks if there is anything besidesM these graphics on them. I don't >think< there are any major bugs in thisG program, but I don't want to risk trashing 15MB of your hard work, either.4. Run 'PSGS.CONV'.G Before specifying the location of your disks, insert them into theH appropriate drives. The program will try to read the prefix of theK disks you select and becomes unhappy if the drives are empty. Once itM is satisfied, the conversion begins automatically. Upon completion, you? are told of its success and are returned to the Main Menu.EIV. Bob's Quick 'n' Dirty Methods for the less technically minded.H A. Boot Copy II+ or another file-copying utility. Remember, BeagleM Bros' FileMaster can't do everything we'll need so don't use it here!L 1) Format two -blank- disks for ProDOS. Name them something short &; simple like PS1 and PS2. Put PS2 aside for now.H 2) On the ProDOS disk PS1, create one subdirectory for every 100F Print Shop graphics. For instance, The Print Shop GraphicsK Library Disk #1 has 100 graphics on the first side and 20 on theF second. Create -two- subdirectories on your ProDOS disk toI contain them. Name them something short that you'll remember,K like LIB1.1 and LIB1.2 for "Library disk #1 side 1" and "Library> disk #1 side 2". Let's continue with this example.L 3) Now use the -copy files- (NOT copy disk) option to copy the firstJ 100 graphics -from- your normal Print Shop disk -to- the ProDOSJ subdirectory "LIB1.1". Copy II+ will load the DOS 3.3 graphic,M convert it to ProDOS, and store it within the subdirectory on yourH ProDOS disk. These graphics cannot be read by The Print ShopM 'cause they're in the wrong format. The Print Shop IIGS Converter> & The Print Shop SlideShow -can- read them however.H 4) Once Copy II+ has converted the files and they are all safely< snuggled on your ProDOS disk, quit from Copy II+.L B. Boot the disk that contains the converter program 'PSGS.Convert' and run the program.M 1) When the program asks you for the location of the source graphics,I choose by 'ProDOS Directory' and type the full pathname of theJ graphics' location. If you followed the suggestions above, theK first 100 graphics are located within the pathname "PS1/LIB1.1".H This says that the graphics are within the subdirectory named, 'LIB1.1' on the disk named 'PS1'.K 2) Put that disk in a drive, type this name in precisely, and pressH Return. Your disk drives will (probably) spin as the program locates your disk.J 3) Once satisfied, it will ask you for the target disk on which itK will place the IIGS-converted version of those graphics. InsertL the disk 'PS2' in a drive and tell the program where that disk isG by selecting either 'Slot & Drive' or 'ProDOS Directory' and" typing the disk's name.J 4) The program will start the conversion automatically and display& its progress on the screen.L 5) Once finished, a message is displayed and you can get back to the: main menu and convert another load of graphics.D 6) Right now, LABEL the disk ('PS2') that contains the newly converted graphics!J 7) After the conversion, the disk ('PS1') that contains the ProDOSG graphics that were converted is no longer needed and you may8 delete the files from it and re-use the disk.L 8) The program will report any unusual occurences or errors. If youJ really get stuck, write down the error message and what/how youM were converting and send money, er... send the -notes- to me (Bob)K or any other AppleSoft programmer you know. Hopefully one of us& can figure out the problem.K 9) If you get an error such as "Redimensioned Array...", re-run theJ program completely and try again. This might happen if you runI the program repeatedly, though I've not encountered it in this program... yet.K C. Remember, this is a non-commercial product and as such no one makesF any guarantees that it will work, nor is any technical support, provided. Ya gets what ya pays for!V. Technical Explanation.JHThe Print Shop IIGS files are not BIN files, but a user-defined file of KIType $F8 and Auxtype $C323. To allow for color graphics, they consist of LJthree graphics planes, representing red, blue, and yellow. If a bit is 0 KIin all three planes, the pixel is white; if they are all 1, the pixel is MKblack. This program loads the BIN file in three times, end-to-end, creates LJa file of the appropriate type and auxtype, then BSAVEs the triple-length image.VI. Final Notes.MKBob Bishop would not be proud of this program. It uses 33 bytes at $4800, KI12 bytes at $4900, 16 bytes at $4A00, and 1716 bytes at $6000. In other NLwords, it walks all over bank 00. However, as I said at the start, this is MKa quick and dirty program. There are many ways that this program could be FDsped up, but since you only need to use it once per graphic library /conversion, it should not be a major problem.#Brad Martin 5Bob L. Allen L"s PSGS.CONV.DOCXTB PSGS.CONVERTTXTSLIDE.SHOWv/' l'*START.SHOWв x"/AUTO.SS.DIR.TXTв5 в5 FINDER.DATAɦ>( p/' MODIFICATION OF DISPLAY.PICTUREK ROUTINE DOWNLOADED FROM GENIEQ( DISPLAYS SHR PIC NAMED IN TEXT FILE CREATED BY SLIDE.DAT.MAKER2 FOR A DELAY SET IN LINE 145 FOR TYPE $C1 FILES<F MODIFIED BY DAVE WORD IN JULY 1987 P& Z COPYRIGHT 1986 ANTIC PUBLISHING, d2 n8 x Modified by Gary Hayman to permit automatic search of directory to pick out the $C1 files and display then all continuously ( You now can have your pictures on a hard disk or a floppy and use this program to display them If you want to see them from another disk then just CONTROL/BREAK the operation and type RUN, then type the PREFIX of the new location and you will have the new pictures displayed.  D$(4):AR$(205) 350 D$;"PR#3"' : "Please enter the PREFIX where your $C1 pictures are located.":"(Example: /HARD1/SLIDE.SHOW)";:" ";SS$ D$;"PREFIX";SS$ 360 GET DIRECTORY D$"OPEN"SS$",TDIR" D$"READ"SS$ Y13:TA$(Y):: THROW AWAY THE FIRST 3- C12009 AR$(C)n "(AR$(C),18,3)"$C1"AR$(C)(AR$(C),2,15):310x ,CC1 6C @D$"CLOSE" J380 T ERROR CATCHES ^216,0::"Bad Prefix - Try Again":PAUSE15000::190 h216,0:CC1:320 r ; |::"There are "C" great pictures to show you."m "Where do you want to start (usually 1) 1-"Cu K% K%Cĺ(7):380  CREAT PROGRAM AT 768 A045 B A768,B 49205,0: fix for rom ver 1.0 A LET'S LOOK AT PICTURES JK%C(M$AR$(J)749193,193@790l(4);"BLOAD ";M$;",T$C1,A$2000,L$4000"|67,32:768&(4);"BLOAD ";M$;",T$C1,A$2000,B$4000"067,96:768:DU15000:DU: PAUSEDJN GO TO FIRST PICTURE XK%1:490Vb 169,0,133,60,133,66,169,32,133,61,169,255,133,62,169,95,133,63,56,76,17,195l 169,0,160,32,141,5,192,153,0,158,136,16,250,168,153,0,157,200,208,250,141,4,192,96AUTOMATIC SLIDE SHOW DIRECTIONS: by Gary Hayman Place your $C1 (65 blocks) graphic collection either on a disk or a hard drive in a sub-directory. Ex. /HARD1/C1.GRAPHICS. If you are using a 3.5" disk then you will only have room for some 20+ graphics. On a hard drive you can have quite a lengthy show. Place the BAS program START.SHOW anywhere you want. Go into BASIC and then run the program START.SHOW. Remember, of course that you must have a complete pathname. Ex. -/HARD1/GRAPHICS/START.SHOW Follow the on screen directions typing in the location of the graphics and with which graphic you want the show to start. And away you go. The program START.SHOW, when run, will automatically include all the $C1 graphics as long as they are in the same designated sub-directory. I have designed the program so that you may add or subtract graphics to that sub-directory at any time and you will NOT have to change the program START.SHOW in any way. A second way you could use the program is to prepare a disk with only $C1 pictures on it. You will be able to get about 24 on the disk. Run (from basic) START.SHOW from your hard, 5.25 or 3.5 disk and just tell the program where your pictures are. A third way would be to place PRODOS, BASIC.SYSTEM, START.SHOW, about 23 $C1 pictures, and write a STARTUP program which will RUN /Disk Name/START.SHOW. This would be desirable for individuals who do not have a hard drive or would like a portable self-contained slide show to carry around from Apple II to Apple II. Have fun with your Slide Shows. Gary Hayman June 16, 1989 L&s"AUTO.SS.DIR.TXTB START.SHOWAXTXTPS.UPGRADERv/' l'+PS.UPGRADERq 9 FINDER.DATAɭ('p/ 16384 : D$(4))400<(4);"pr#3":s"Print Shop Convertor Utility -- by Ken Franklin"(:"Make sure you are using BACKUPS ONLY!!"2:"Y)es, I'm using backups":"N)o, quit the program"<A$FA$"N"A$"n"BYE PA$"Y"A$"y"ī60t Z:"OK, we've got that settled..."::"Make sure that all of the following are in drives:" d:"-->The disk with the textfile created with CAT.TEXT" n"-->The disks with the old-style graphics converted to ProDOS" x"-->The destination disk"@ :"Enter pathname for textfile:";:TF$x "Enter prefix for destination subdirectory:";:DD$ (DD$,1)"/"DD$DD$"/" 300 D$"open"TF$ D$"read"TF$ PT$:FL$:TY$:BK$:MD$ (PT$,1)"/"PT$"/"PT$ (PT$,1)"/"PT$PT$"/"Y TY$"BIN"ĺ"Skipped ";PT$;FL$;" -- Wrong type.":170 (BK$)3ĺ"Skipped ";PT$;FL$;" -- Wrong size.":170 "Processing ";PT$;FL$;"." D$"bload"PT$;FL$;",A24576" D$"bload"PT$;FL$;",A25148" D$"bload"PT$;FL$;",A25720" 500l (19200)0ĺD$;"close":"EEK: MLI error ";(19200);" in file creation":: D$"bsave"DD$;FL$;",T$F8,A24576,L1716" 170 ,A(222):EL(218)((219)256) 6A5Ĺ216,0:1000 @"EEK! Error code ";A;" in line ";EL" JD$"CLOSE" T216,0$ ^A I1843218464:X:I,X:y  8,72,138,72,152,72,162,4,189,143,191,157,7,73,202  208,247,32,0,191,192,0,73,141,0,75,104,168,104,170,104,40,96 I1868818699:X:I,X:  7,0,74,195,248,35,195,1,0,0,0,0PS$DD$FL$@(PS$,1)" "PS$(PS$,(PS$)1):510R18944,(PS$){I1(PS$):18944I,((PS$,I,1)):18432&D$"close"::"All done!"::L(sB PS.UPGRADEROCXTVIRUS.UTILSv/,'  'FINDER.DATAɯj/-p1VIRUS.DETECTOR( //VIRUS.CHECK( //WOP.FOG.VACCINE( ?//VACCINE2.V1.1( //?)B VACCINE2.V1.1NE5WOP.FOG.VACCINE VIRUS.CHECKTORE5BVIRUS.DETECTOREVIRUS.DETECTORv//' '"VD]]&VD.DOC9 }]&FINDER.DATAɾ>( p/1I ,@ K"(" *5?""*4I0""*3k0)0 " " " " " " " ""h) " " ""#5 " "Q WARNING! The boot block on this disk, block 0, has been modified. You may have caught a virus! You should check all the programs you have been using lately to see if any of them are infected. Press return to fix your boot block and reboot: 0)0 " " " " " " " ""h) " "3"#?k WARNING! The last byte of the key block (block 2) on this disk has been modified. You probably have a virus called "CyberAIDS" or "Festering Hate"! Both of these infect SYS files, so you should check ALL the SYS files on this disk for the virus. Press return to reset the virus counter: G4 I48L xC)pJJJJ IH(ȱH:=IH[H`@H^H 2 9 @   I/H`JLNGȄBȄF aK ' faaFF  RJm# KKJ qJ )J ۈJJm  JFȱJGJKaȄM ' 5aaNNJFLGJ`aa8aa XL LG &PRODOS`DaElH$?EGvѶK+`L XX LU ŠϠĠӥS)*+,+`F)) (*=GJFjJJA QE'+ '== `@ STSP8QSS8 m P o R(8R*5 ?(*043I?0G*L35nq3?,47IA4Virus Detector, by Guy T. Rice *** This is version 1.2 of Virus Detector. See "Version 1.2 Notes" below. Virus Detector is basically a new version of BLK0SAVE. If you have BLK0SAVE, delete it before installing Virus Detector. Virus Detector fixes the bug in BLK0SAVE that caused it to sometimes incorrectly identify which volume was the boot volume. It also adds some new checks. Bob Garth recently pointed out that one of the most likely places to hide a virus, or at least to patch one in, is block 0, the bootup code, on your ProDOS disks. To my knowledge, no virus has yet been developed that uses this method to patch itself in, but this program will protect you from such a virus if it is ever developed. (If enough people use this program, it may even discourage anyone from developing such a virus in the first place!) Virus Detector also adds a check on the last byte of your volume key block. The two currently known ProDOS viruses, "CyberAIDS" and "Festering Hate", both use this byte as a counter. Virus Detector will warn you if this byte is ever changed, and thus will detect any infection of CyberAIDS or Festering Hate on your system, automatically! Put the file VD into your SYSTEM/SYSTEM.SETUP directory. Now, everytime you boot up, it will make the two checks described above. If it finds something, it will tell you so and then fix it. It will not tell WHICH file caused the infection, but it will let you know that you have an infection, so that you can use other programs to determine which files are infected. Some good CyberAIDS and Festering Hate detectors are already in the GEnie software libraries, and will probably be uploaded to other online services as well. It would probably be wisest to rename this program to something unique. That way, a virus install program can't delete or modify this file. (For example, you could rename VD to something like ZSDFSLKJHERSUR.) *** Version 1.2 Notes GS/OS was introduced at AppleFest in September, and one of the changes that is made with GS/OS is that the boot code is now slightly different, and can handle a sparse PRODOS file. This is nice, but it made the previous version of Virus Detector report any disks formatted with GS/OS as infected, and "fixed" them by putting the old boot code back. Version 1.2 of Virus Detector now checks for the new boot code. So it will not flag disks formatted under GS/OS, but it WILL flag disks formatted under previous OS's. So, the first time you boot after you install the new version of Virus Detector, it may report an infection. Go ahead and ignore this the first time you boot. From then on, Virus Detector will work normally. A side benefit of this is that your disk will now have the new and improved boot block on it, without you having to reformat to get it. Good deal, eh? Any comments about this program are welcome. GEnie mail: GUYRICE AppleLink mail: Guy Rice Snail mail: Guy T. Rice P.O. Box 13036 Dinkytown Station Minneapolis, MN 55414 L(s$VD.DOC.VACCINETBVDNFOG.VACCINETVIRUS.CHECKv//' '.VIRUSCHECK.SHK:''FINDER.DATA(( p/1NFlޮ Y Y NF[i@/@ Y W 93K Ѣ!IA `R٦d@`$hh6uZ+!̀F L ,` @HOd _@ ^st&@^|:t&O wcEHN 4JZv,up&7l0# 6$`h+#_ pY,@ 0!}^P^#Z70&Z[Ʈ\y@s]=P+'p[d@7X @Q @;p'aBG4P`"G"(B&p"* ;! џTh! *#T<@@8!E'ԉ Yx ͬV2T & RyW$TNN;㜳;3WF o@J*SK-`DL0;"P~Q4 #4u@TSQUU?^UUVQKTd^TFvV@hA@"0@X  TWSetu{ȮA"A"a@NpAD®=?{Rf{?b&X`ZymnW`Yn5⎘:w` x"!]?(X"H@ 2lob~ܽ=w0q߽X;!1sʌ+?gE yǏ*e3p?C J4r$3ג[btDZϘf] g ;>oN]@J63].!T\weYt'HN3= aZ tT6Gͪigܹuu<`W]03x]ڕ1kmdw:w7ڨ@ԭq+vbRΝs# "*l ďm`$ҋ-#QTM){87 H'lw d2ܻIFʏ?jř@I!ѿ*3S#),  $#/K0#ɤ31;<%D;˳M=B⬮Sԥ4( MRt<= cH ڮUѠ3Ν4ԣ#R#,p-t8bfafAn}a`D׷GA"D`:sFrI|g9iwY[ZuAU/(hݟ]o5"flJ`nM0{V zj;Msޟ'=sO2H蟺{~@z=׿=,*w9tPWDzGr)z=( ^9i+a΂~yJGOIQX&"BH0 &"Vt 9RP'NbJh{ #3Q:a3h{#c}E) K>2|x sl 8Qf?paxPG &)=l X ?) \ +3@.HN+ ' $GXэX?AGSy'G? UZ* V4CPTûB Ub2 j]̢\ef;޻w̨>UVZvQD"H A>!ڵKC$@` 2* 8B, @KB@E4rS.X&"ҥ0 `kʡTr `X%Zdqw`hal /!-4bS ثX 9Y84ѽ2 aȧdyǮgs6 @ XO.!B @Dt@;˽cϮ 2DhAY^"yh \3@@L ~{ϣ`(/% . YBB f ^$ %01G !["ƢΌ؅KPs29r*邝GCO4NJ*gsO@NzOT9˅ @W: 춺"B#U0UP/$j XXH.]XQ%Upe"b]Wf!ʹpc dX@ِtiFgch:҇&sDÐ X#BfmjT [FTrA; vP@_Q+mZ%ye އ"w4yD!dUu`E故KV{S59R^ u VT]YXif[:5S9jиCXV9֧3? ZZu`I֭[#A@`u fF줿oGMrN,e'4GēEtRGUމg9 DQVq TܥRxH Y% $ݕ_y,9]Iʅ'e^c׿E0"=c S2fB!i9CA F$!Z[;*9`3"B͋. @^p!\hh {4$`7hUDڠ!`(AHQ [cl0!o$UqȖ*vf!0T VB`xa}P.VdPf3A H*ꊑH`D$E> @dfd !,NA$yR؅!B܅% H &|". ف*B=8ԡ2WĿE&Q ch0``=ALX/ȭ}09`NtΠA O.'3 _!)wsUA )U*WAYdx1@d"T1m9R恅B2TJ^ҟ0E:/NsH GM*EeI.rbi3g ҨsD 4hI($A7S5a=XYV "4 ׽Ğ0H $*1 Q]s6KUO5xU(e_IZB$#F"/J\&䁝cCRJ$E7u]4lvˌ]tF`GZTa nU[e$vMqURbi.qJ )UF;RX֖ }1".?ˊ`$HLKxh,b P M4/\[Օ Wgԝ4)*-) 51XP,:lk@"q% VM>f?^+ U@p@!t7'}*rnֽ)R f:V&N>͋fr]FE2Ak*CH:5OXvBE3 C^Fqw =b/~ч,X!q]*< ꭉzr!R;/u,yZ ]M}gw=c_+rfȧ-Hl `#Iz1dV J!Ijq)@ґ#kePa"ghYD1l^`ǫ"9UA_<lRmcJ@{w<{ؿCKCw 3?o뫿9;Xw xp+qwp ts@  |@?@t@x@t? @w <s@ xALA@`@?x@;lt`ATBTt@( |$ >%(w(s04A%T ;Ps5̾ +$A.lCCBAAwB8t>LJ>,DD ,AwP@w  Ct@7A,L -DC|B E 9ݿBap?/ftHs;`@w@"Ɓ-߹s2?%i6,i͚.P>[<0̋z#*3H'S`ƙ?2/q ږBǚ7&%{g/Ft @;S$C9UƩ4Mfx-׀ + 05P%B11REGL ȪP@cP MrukĉnDkxÿZ)U {QDIg# `HxoxG`A$@dA%B  # lEDOdxc rM1CtEaLIK[⛯@5rD '*PI—FMFZ% qtPp!-  %RY\(`R ~@J@ E0^E,'풑^"AWfgW)! ZF)7X( @@Ý-8R~~E@kyYA~Qt AA8ؽT4 @a/!L.\Ƞ (8d`T9eM*Ag%7ugܥ `X8@V#qāv" 7(  !@P>gܤ]`d,Z%^ Ex@&ckHDNwd6Z 6laWp\%׸dN NY a{"h%wx6xIV_wACo% eV`-28pk O% 7r3\Cģ@w?i@8 H70p C$LQAf;\8v`Aъ8<9cV08ȗ;1TЬxj cEA*BkQV" (±Ԧ  VW*|`'-?+XKEkӁˠ#AFLe (FAX `Hqh Mk$IA4b>*+TC腺a!]@"  ͨ<: hDk*lU0!vkW@ Ɉ<x0v`'{Yf5QX"P@ ^,70`/,>$`;ۊ&Ј  ؎`8 @ha5Aӂ6TYThЇPǴ  7bBT10  @zfG `BU (mxs#7K@'@dhmѓLYz +e?}: j!$x BC`@6@q(4 gϐ(đPC`4ZAdz+djcHA@юr5QqL[&(Qpc9Z=gG{&G:汎y;Mk#n7( oi7 t>wmw|ƶo?\v3@atȣh5L $@@5  PPxyX]pd(ǯ͡mP̣)oGݡ}Ch[ _Bx8 RlECQuӣLufGAs]t i@,;!brnL/ܸuG5uwS@alorP3\,\aP#^QL+7N+w cy(Rܾ%Q0q]>Pq{V<#H(Ƭfq&j&%Pvŝry g;PGyvsu)Qʕj\ƕe\aq4rIMb\Z0A( d9PT2P8( ( (+!P ED]Q0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \B0 8P \BPCō2 dJdLdNdGdDBF a - eP0H "hzh) $0BdF a - F - Q Q8LS BȄF aK - eaaFFJi' KKJ BJJ4 JFȱJGdJKaȄM - aaNNJFLGJL X 0۪ŠϠĠӠ۪aEL &PRODOS0H "zz$TOፊM\K8 ڋ T\ [ H "hzh))Q |))84)B)B48b   ABPCdDadFdG - (8!aB - aaF - 0 0+(\8x6<"A4 X da  ,0::;PB ;Z(C 0C z X "  %  )c  ';      A 4)4Eaa`+ \ c,Gz2R`1 Tl rbfr dk4Qrqg qr  ! QURmbhqRQh mkknn``ccqqttmddqq r ledHM B0C`L2C)pJ IH(ȱH:=IH[H`@HcH  $ +   I/H`JLNGȄBȄF aK  haaFF  mJm# KKJ UJ )J ) ;J3ȱJFȱJGJKaȄM  aaNNJFLGJL L? &PRODOS `DaElH$?EGvѶK+`L HHLy XP LM ۪ŠϠĠӠ۪S)*+,+`F)) (*=GJFjJJA QE'+ '== `@ STSP8QSS8 m P o R(8RLnSOS BOOT 1.1 SOS.KERNEL SOS KRNLI/O ERRORFILE 'SOS.KERNEL' NOT FOUND%INVALID KERNEL FILE: xةw,@  ȱlmi8#)!) >dLԡm#i㰼m#iЕOLԡȱfg hi !dLԡ憦  Ljmkm l y`2 Lԡ8(Je稽)ʈ@L L*sBVIRUSCHECK.SHKTWOP.FOG.VACCINEv//' '.WOPFOG.VACCINE..FINDER.DATA((! p/0+d ***********************************Un * *x * [WOP] "Festering Hate" [FOG] * * Vaccination Utility * * by Morgan Davis * * *' * This will detect and remove the *Q * virus from SYS files. It will *{ * also fix byte $1FF of Block 2. * * * *********************************** : F$(52):D$(4):BUF768:ADR8192  "*** NOTE ***":D "This program will detect and disinfect"r "only a certain strain of virus. If it" "doesn't detect a virus, it does not" "mean that one does not exist in a file!" " ,"Check a (F)ile or (V)olume: ";:750 6FILA$"F":VOLA$"V"* @(FILVOL)ĺ:N J:"Pathname: ";P$:F$(1)P$:F1[ TP$""Āo ^D$"VERIFY"P$:| hFIL450 rD$"OPEN"P$",TDIR":D$"READ"P$ |A$:A$:A$:F0 A$:A$""420 (A$,18,3)"SYS"FF1:F$(F)(A$,2,15) 390 D$"CLOSE"; Fĺ"Volume "P$" contains no SYS files.":A :L I1Fh "Checking "F$(I)"..."; D$"BLOAD"F$(I)",TSYS,A"BUF",L3" (BUF)76640 OFF((BUF1)(BUF2)256)ADR6 XBUF6 D$"BLOAD"F$(I)",TSYS,A"BUF",L114,b"OFF (X107)199640 6 N:N(X)XX1:540D &N0640s 0198:"INFECTED! Kill the virus? ";:750 :A$"Y"650 D"Working hard..."; ND$"BLOAD"F$(I)",TSYS,A"ADR XX05:ADRX,(BUFX):bD$"DELETE"F$(I):D$"CREATE"F$(I)",TSYS"-lD$"BSAVE"F$(I)",TSYS,A"ADR",L"OFFFvF$(I)" cured!":650["not infected."ag:OP128:790: READ_BLOCKI(ADR511):IĀ:P$" has a fuse! (counter = "I"/30)""Extinguish it? ";:750A$"Y"ĀADR511,0:OP129:790: WRITE_BLOCK+"Done.":1:EA$:A$(27)Ā`A$"_"A$((A$)32)jA$:p :768,32:769,0:770,191: JSR $BF00 771,OP:772,9:773,3: DB OP / DW $0309*774,133:775,0:776,96: STA $00 / RTS 4777,3:778,(48944)9>779,ADR(ADR256)256:780,(ADR256)KH781,2:782,0vR768:I(0):Iĺ"MLI Err #"I" OP="OP:|\f:p 32,88,255,186,189,0,1,141,1,3,202,189,0,1,141,0,3,238,0,3,-1L,sBWOPFOG.VACCINETVACCINE2.V1.1v//' ''VACCINEJ FINDER.DATA2(( p/0  !"#$%&'()*+,-./01IV| ,@ K h0   #" #Hg"h >w) 1HH"h]h_]_H]H "wyH,"DL#')_F" H" h<"  < >H " h4h6H>H" "" :"""E " 28 " iH>H" >HiH" >H" 9">HiH" >HiH" >H" >HiH" iH"  F#>HiH" iH " "  " " ``" One moment please .....%Loading VACCINE II- Please Wait ....Initialization Error -->" " x"h8``Please insert the disk ProceedCancel*/-" "[-" "-" "-" "-" ""H"h*"DF JH2"`>>@\N1X##About VACCINE II ...\N256##Help\N257*?/V.>> File \N2## Open\N258*Oo## Close\N255## Print\N259##-\N300D## Quit\N260*Qq.>> Edit \N3##Cut\N251*Xx##Copy\N252*Cc##Paste\N253*Vv##Clear\N254.>> Analyze \N4## Time Checks\N261## Format Checks\N262## Block Checks\N263## Tool Calls\N264V## Inspect All\N265.>> Checksum \N5## Generate\N266## Check\N267.R! Sorry, not enough memory available. File is too large." "" """"""""""""">H"<H""")#x(NHLHJ  "` "J HH L L  )J8 Z H L L"fHH~H|Hh&h( &.((H&Hhh (H&H< @H "$h*h,.6 &VHTH "`h*h,,H*Hhh""""H%ZHe Lh H L LZ HHZZH )hF p "  : ,H*H"VHTH "`& !n" @ o #Analyzing Time Checks on the File: .Analyzing Format/Firmware Access on the File: &Analyzing Block Bypasses on the File: *Analyzing Illegal Tool Calls on the File: (Running all VACCINE Checks on the File: "fHH~H|Hh&h( &.((H&Hhh (H&H< @H "h4h6.6 &`h*h,,H*Hhh F#"""HH< H "'.6 &h4h6,H*H" #`h8h::H8Hhh"ȩD3Ȣii    p)T) ) p i p ).VpACp #"- p  " :H8H",H*H"`""2"""[  &z  &|Can't Create the Checksum FileCan't Write the Checksum FileEnter Checksum File name:&Calculating Checksum. Please Wait ...  FIFHH2"`D`JH2"JH2"hLhN`Select File for Time Check:JH2"JH2"AhLhN`Select File for Format Check:JH2"JH2"hLhN`Select File for Block Check:JH2"JH2"hLhN` Select File for Tool Call Check:JH2" JH2"'hLhN`Select File to Run All Checks:JH2" JH2"thLhN`$Select File for Checksum Generation:JH2" JH2"hLhN` Select VACCINE II Checksum File:w``HH "hThV`HH"hhVHTHM"U"S"Ax:" ="2="="2;"Z="ᩪH|:"i@Hz:"H<","i:"<","X"X","}:"2}<"2i:"2<"6" "HH"`xAyAxh{VHTHM"H,"7"."HH:"HH<"m6"`HHH "hh`hXhKKh)HH"hhVHTHM"0U" HH:"HH")"#"HH"F$ p "HH " XH`HH:"~"#"- " "` " "`hh (6DR`N$K?hXhhh"HW"hXH`d_ q-: K7OK""""D3  &`""Q  &`HHiHgHh&h( &.((H&Hh{h}(H&H< @H " .6 &`h*h,,H*Hhhwy1 F#"kku"u"kHH< H ".6 &,H*H" #`h8h::H8Hhh w0y2e04e26     # &" &:H8H",H*H" #`Not a VACCINE II Checksum FileCan't Find the File '^0''^0' HAS CHANGED! Checksum failure.'^0' has not changed. Checksum OK.Analyzing "^0". Please Wait ...a """%"   * 4L F""T"#^ h z"$  "% " ""*"4 x,CQ+B]x_v Toolbox READ Toolbox WRITEASCII Toolbox READTick Counter AccessP8 System Time CallP8 Direct Clock READP8 Indexed(X) Clock READP8 Indexed(Y) Clock READClock Pointer(X) SetupClock Pointer(Y) Setup P8 Clock Call P8 Clock JumpP16 Read Block RoutineP16 Write Block RoutineP8 Read Block RoutineP8 Write Block RoutineP16 Format RoutineDirect Hardware R/WIndirect(X) Hardware R/WIndirect(Y) Hardware R/WDirect(X) Hardware R/WDirect(Y) Hardware R/WSmartPort Signature AccessSmartPort Signature AccessSmartPort Firmware CallController ROM AccessP16 Erase Disk RoutineTool BootInit CallTool RESET CallDisk Util Toolset CallBad P16 Call ParametersBad P8 Call Parameters86 1:@>`  n+:: 88>@:>2::::@: :::> 002ۢ" L88H L L082HH] #"\ L E+`SYSTEM CLOCK ACCESS:  At $04268`0H0i02h`02"e04$e26`"HH  "h h H H  "H"h H H "`T 5Done8 1l:@l>`  n+:: 88>@:>2::::@: :::> 2!002ۢ"! L8PH L! L082HH] #"\ L E+`FORMAT ROUTINE:  At $8j 18:@8>`  n+:: 88>@:>2::::@: :::> "002ۢ"X" L8pH Lh" L082HH] #"\ L E+`BLOCK BYPASS:  At $86 1:@>`  n+:: 88>@:>2::::@: :::> "002ۢ"+# L8fH L@# L082HH] #"\ L E+`ILLEGAL TOOL CALL:  At $hXh#h#HH# "h#h##H#H##H#H "#H#H"XH`#H#H "`PdHH%2"h'h'HH"hPhR'H'HM"v'S"A:" ="2="="2;"Z="ᩪ'H:","s:"<","'X"'X",":"2<"2s:"2<"6"":"'""RHPH"H Hz%H"h'H'H "`K ;[''H7"~'T"+ ;i k2&%%ds %OK p&d A Virus Analyzer/Detector for the Apple IIGS. This program is FREEWARE. Distribute freely for private, non- commercial use. Licensing required for bundling with any other hardware or software product. (C)1988 Joe Jaworski CIS 73307,310 Ver 1.1 18405 Tamarind Street Fountain Valley, CA 92708 A@rV A C C I N E I I\K) \i \?\i\??\iQ\) ii i iii??i??||]i) |i ||i|??|HH{ "hR|hT|HHh "hYih[iHH[ "hM\hO\`K 0[) ")ZKZ) )i ))͉) z?+kzZ)H:"z))K) )?Z))iKiHڭ)H" i)))"z? )i ͗)+k))")i H:"`K 0[\* "h*ZQ\Z) h*i h*h*\* z +kzZh*H:"zd*f*Q\) f* Zf*d*iQ\iHڭf*H" i)j*)"z `*i j*+kK 0[/+ ";+Z]iZ) ;+i ;+;+/+ z+kzZ;+H:"z7+9+]i) 9+Z9+7+i]iiHڭ9+H" i)=+)"z 3+i =++k+"H"h"`+"դ+ M+d V-Mzih}kVSbc-ErohzoYS]n/AqqfwrZS\{z3BRlͻxjqvoy|ql^6!+49HZv°}kk}rvrkxrL,&-4>IgǷrgvsyvhrc;%""+23=V|ɾygq}zvhovN4%"+006Hg²lj}yxlkucD,$+-,09R|Żohz||rhnyW:--/0,0EgǿzlrsgjxeH4-0/()6PzllxjhoyZ>460)&+Ac¹rlzqggxjL@:6,$%3Rvyn|vgdnxZGA:/&!(BcuyykghxhSE>7)!3Ov®yxqdeoy`OH>-"(>døzvkdjylWPE7+3Rs}negoxdYL>2"+@`ðskggvraUK;($0OxǸyqgcl}j^UA0&&@dǾvjcguuk^K;+!!/Syô|ogckvgWE4%$Akƹvk`eyq`P@,3\yþoadlyjYI7!&Kj|¸vh`exrcVD(:\ryû}nc`kyleP3-Ogqyve]ezvo]A%%DYhs|k^^nylR-!6L`jqra\d}za;!+DW^j|zgZ`unI-$:LWaql]`l|z]:!"3DPZh}sd^dslH+$/;HR]s}nacnyY7),7AIUjsedgqhE/,4=BL`uzneah}zW:049=GVh|vk`dsgH999:BL^rocakvUB;77;EVgvug`dxgOA;77@N\n}l``ovZKB74;DReuud^jzhYH;77=I\ky|hadsxdRB;79DSaqqd`lq\LA97@LZhs|h`jzzhWG;7:GU^j}ncessaOA99BNV^rvgdo}}n\K>7@INWj}lcly|z}ygUA9>DGO`rrekvzyzu^H>>ADIVjxjksvvx}jRE>@BBNarqlquusxs]KBDA@IYhxuoqusrv|hRHEA>EP^o}rsusruvs]RIA@BKYgsxvuqrqq||gZOGA@ER^kzysusonxucULD@DLWdrzvvsonr}l^SHABHP]juyxsqlnyvgZNDBELWal}}yxsllxrcUKDDISYdv||ulls|zj]RGDILR]l|xolqx}sgYKGHIOWduzroquzr`RKHILR^nxuqosvxyhYOKKILWgnvzrqsss|rcUOLGHU`go}uuurrv}kZUNGHOYcjuyvurrrxre\RHGLU]ck|yusros|ncWLGHPW\dvzxvrnqxvk^PHHOUV`n}zyuqnrreVIHOPSZdu}zxrlnyzo]NLNORV]l}zskku}xdVPNORRWevvlkqxl]RORPOR\lyolns}veWSRPOPUdz}unnrxn^YURPNO\qyonqqyvg]VURLIUg||rqoluoc\YUNIO]s}vuokr}yj`]WRIIWj|}xqlnvqga\UKGPas|ulkrxlec\NGLYjyxojozskh`RHIRcsz}rjlu}yqndWKGL]ku}ullqyyrj`OGIVcoxzoknu}xqgVIHP]hqysllrx}|xl\NHLWdkrxnoqu|}sdUKKU^dnz}sonsyzzl\LKRY^guzqnsuv}vcSORVZanzsrrsux}kYRRUW]huxsrrsuzsaWSSVWcqy|xsssrv|j\VVSU^js}zvusor}rc\WSSYcnx}yxsqoxykaZUSU^hqz|yuqor|sj^WRS\dkv|vsnnyznd\URY`grzzunlsuk`WUWZcnv|xqloz|sdZWVW^hry|ullvyjaZUV\clv||xnjr}qg]WVY]grx|}}okoxylc\YWZenrx|}ulnuujaZWY`hqvvzzoks|yog]WWZdlruyrlsy|}vna\WYajosvzvosvy|}rh^YV]glqrvzssuyzzyodZW\cknos}xssxyyvj`YY`hknry|uvxxx|}odZW^ejlou}yxxvyy|xk]Y]cgklqz|yvxxxzqcZ\`ejhnv}zyxxxy|xj`\`eggkryyxxxxy}}qc\^cdejlu|xyxvvyxh``aceghrzyyyvvx|ncaacedgov}}||zxvvysjd`ceddksz}z}}zyxuv}}qedeecchoxzy||xuuzvjgeedcdluyxzyvuv}|qjggdaajrvxv}zxus|vnjhgaahouuu|}zurz|qnkhcadlqrry|vsx}vrnje`ckoqrv}xsvz|uqng`ajlnqsyzuuyyuqjaahknooxxuy||yukdcgjlnns|yvxz|}}xohcejkkkqv}|xxyz|||ukdejjhkns|yxyzzy}yoeehjjjkoy|xzzyzy}rhgjhjjglu|zzzzyx|vnjhjkjgjqy}}zzzyuxzskjkkjghlu}|}|}}yuvxnjkkkhgjrzz}}zvsy|rlnlljehnv|z|xrvvonnnkggjq||y}yrs|roqnkhghnx|y||sszvrqonkggks}xz}urx}yvroolgeho||yy}xru|xsrqnjeeky|yx||ssy}|vsrqlgchuzzzxy}vux|yurrohdgqyzzxx}zuvz}xsvrjeelvzyxvz}vvyzyvyulgdjsyxxvxxvyz}|xzxojdgovxxvv}|xyy|}zzzukeelsvxvuzzyzzz}}|}xngejrvxvsx|zzyyz}|rkegnuxvsv}||yxz}}vngelruvsu|}yzzzzrhejquusuz}zzzz}unghouuruy}}}}|zzyzyqhgnssrsv|}}||zzy|}ukhnrrrruz|||}||zvyynhlqrrqsyz||||xv||rkkorqorvyzzy}}xuyvlloqooruxzzx|zuv}zqloqooqsxyyxz|uvzsoooqqnqxxxxx}vvxxsqorqnquxxvv}zvuz}vqrronouvxvu|}xuyxsrrqoosxvuuyyuv|vusronrvuuux||vuzyvusqnrvuuuv|ysx|xvuqnquvusuyzuvzzuroqsussux|}vu|}|xsqosvssuvyyvz}yuqorvssusx}}|vx|vrorsrssruz}}xx|ysqrssssrrx}}}zxzyurqssssrru|}}}xy}|vurrssurqsy}||zx}}}yvsrssusorx|}|}|y}}||yursuusqruy}||z|}||vrsuuurqsx} What's a Computer Virus? The term Virus is a colorful way to describe a a computer program that is "hidden" within another computer program. The Virus element is usually a small segment of machine language code that is activated by some event. This event could be related to a particular time on your system clock or a particular keyboard entry or disk access operation. Viruses are written by programmers who, for one reason or another, want to cause havoc in your computer. There are destructive and non-destructive Viruses. A non- destructive Virus simply displays some sort of message when the Virus is invoked. Although this is certainly annoying, it is nothing to get overly concerned about. A destructive Virus will erase or corrupt data on floppies and/or hard disks. For example, a paint program may have Virus code that causes an erase operation to your hard disk when your system clock reaches a certain time. VACCINE II was developed to deal with these sort of Viruses. Fortunately (At least in the Apple II), a Virus cannot destroy the computer's hardware. Similarly, a floppy must be inserted in an active disk drive to be a potential target for a Virus. A hard disk is the most susceptable- if it is powered on, its data can be destroyed. Where do Viruses Come From? Viruses are spread in several ways. There are recent cases (in the Macintosh world) where a non-destructive Virus got into a commercial software package. Such Viruses are rare, and have NEVER occured in the Apple II market. A more likely place to get a Virus-infected program is via your modem when you download programs from bulletin boards. The so called "pirate boards" have the highest risks. These BBS's typically have no access charges and have available de-protected copies of commercial software. This is not to say that you cannot get a Virus from CompuServe, GEnie, The Source, or any other commercial network. Likewise, not all 'free' BBS's have infected programs. The point here is that Viruses can spread in a variety of ways, and it is up to you to take necessary action and screen your newly acquired programs. This is exactly what VACCINE II helps you to do. With the advent of the IIGS and the growing number of hard disks, it is worth a little extra time to screen a program for potential problems. Losing all of your data just once (as well as invalidating your backups) is reason enough to take this precaution. How to Minimize Virus Infection 1) Limit your downloads to a commercial network and one or two local BBS's that you are familiar with. Call your SysOp (by voice) and get to know him or her. Avoid pirate boards altogether. They are illegal, immoral, and raise the cost of software for all of us. 2) Avoid those area code based BBS lists available on most networks. Most BBS's come and go on a weekly basis, so most of the phone numbers will be obsolete before you even try them. Anyone with a telephone number can start a BBS for a month, dump some bad software, and change their phone number. 3) Avoid downloading disk utility software from ANY network, commercial or otherwise. If you use the FINDER, PROSEL, Copy II Plus, etc., stick with it. Ask yourself, do you really need another disk utility program? More often than not, these programs are written by inexperienced programmers who UNINTENTIONALLY have bugs in their code that can and will destroy your data WITHOUT a Virus. Stay away from any unproven software that performs disk manipulation, especially WRITE's. 4) Download to a floppy, and run the program the first few times from there. Switch your hard disk power off. Run VACCINE II's CHECK function. 5) Screen EVERY new program with VACCINE II. You'll learn more about the program and you'll be able to spot potential problems before disaster strikes. 6) Most of All, Don't Get Paranoid! In this author's opinion, the computer Virus craze is not as widespread as the media will lead you to believe. In fact, computer Viruses have been around as long as computers have, so this issue is certainly not new. If you use common sense and VACCINE II from time to time, you will probably never experience a computer Virus. ND\` cP((K Tutorial Using VACCINE II VACCINE II provides two ways to combat viruses. In the ANALYZE mode, VACCINE II will read and analyze any file, looking for particular virus characteristics. In the CHECKSUM mode, VACCINE II generates a special file in order to determine whether or not a file is modifying itself over time. Checksum Mode When you download a new program, you should run a CHECKSUM GENERATION before executing the new program for the first time. VACCINE II will then create a small file with the suffix '.VAC'. After using your new program a a few times, you run VACCINE II's CHECKSUM CHECK option. This tells you whether the file has changed itself since you originally created the '.VAC' file. In other words, CHECKSUM allows you to check any file for changes whenever you want to. You select either GENERATE or CHECK from the CHECKSUM item in the menu bar. NOTE: The '.VAC' file must remain in the same folder or subdirectory as the original program. Programs that change themselves are somewhat uncommon, and demonstrate either poor programming practice or a potential source of a Virus. VACCINE II uses a long form (256 bytes) of checksum generation which will catch ANY changes at the byte or bit level, comparable to a 16-Bit CRC check. Analyze Mode ANALYZE mode is used to scan each and every byte of any new program for possible viruses. Since there are an infinite number of ways to write a program (and a Virus), VACCINE II reports an 'Occurance' for each suspicious section of code found within the program. The Analysis instructions help you determine whether or not the program may contain a virus depending upon the TYPE of Occurance reported. There are four options in the ANALYZE Mode: TIME CHECK- This option scans a program for accesses to your system clock, either directly or indirectly. FORMAT CHECK- This option searches a program for direct format calls as well as machine code that is trying to access your disk controller's firmware directly. BLOCK CHECK- This option checks for block-level READs and WRITEs (i.e., ProDOS file-level bypass code). Tool Calls- This option checks for certain illegal IIGS Toolbox calls and ProDOS 8/16 parameter anomalies. Analyze All- This is quick way to run all four of the above checks in sequence. Obviously, the more detail I go into here concerning the actual Occurance checks could possibly 'tip off' a virus writer who could create ways to bypass VACCINE II. In fact, I have encoded each of the specific checks and internal compare tables to avoid this. If you ANALYZE VACCINE II itself, you should get NO Occurances. If ANY Ocurrances are detected, then this copy may very well be virus-infected. Other Menu Items OPEN- Select OPEN after you have selected an ANALYZE or CHECKSUM option. The option selected is designated by a small check mark to the left of the item. CLOSE- This is the standard Close window function, the same as clicking in a window's Close box. PRINT- This is a check mark option that allows you to print the results of any of the ANALYZE functions. Your printer must be connected to the internal printer port of the IIGS. QUIT- Quits the program. EDIT MENU- Not used in VACCINE II. Provided for NDA (New Desk Accessory) support only. NLi` cP)72 Instructions Analyzing Results As stated previously, A CHECKSUM should be run on any new program. If after a re-check you find that a program HAS changed, it doesn't necessarily indicate a virus. For example, a game program may maintain its highest scores by storing the value within itself and re-saving. Certain SYSTEM (ProDOS 8) programs need a STARTUP file name, which may be re-saved in the original program. If no suspicious Occurances have been detected but the program has changed as indicated by a checksum failure, it is probably safe to assume that the program is not virus-infected. Reading the results of Occurances is where you will gain the most information about possible viruses. Don't Panic! Most legitimate, non-virul programs will report at least one Occurance. This is normal. It is a combination of certain Occurances that mark a real virus-infected program. Think of it as a Police Radar Detector. Sometimes you get a false alarm, and you eventually learn through experience to distiguish real from false radar activity. The same holds true for VACCINE II. If you are familiar with ProDOS 8 and ProDOS 16 then you will better understand some of the calls detected in the ANALYZE mode. VACCINE II reports two pieces of information for each Occurance: The type of machine language or code detected and the byte location of the offending code as an offset from the beginning of the file. You DO NOT have to understand either of these parameters to use VACCINE II. They are provided only for the experienced programmer who may wish to disassemble the program's code for further study using a block editor and disassembler. There are four possible ways to ANALYZE a program: TIME CHECK- Any Occurance here means that the program is trying to read or write to your system clock. If the program you are analyzing is a clock desk accessory, this is obviously a legitimate access. Also, some programs may read the clock to determine a certain time interval, but this is somewhat rare. If you see a 'Tick Counter Access' Occurance the program has some sort of delay loop or keyboard/joystick time-out and is nothing to get concerned about. However, if the program does not support time functions or does not display a clock, mark this one suspicious and go on to the next check. FORMAT CHECK- Any P8 copy or file utility program will fail miserably on this check. This is because copy programs make extensive use of disk I/O and ROM calls related to your disk Controller. VACCINE II cannot effectively analyze any type of disk utility program because a legitimate FORMAT looks very much like an illegal one. NOTE: those programs that load and save their own files (such as a word processors) are not considered a file utility, and VACCINE II will detect and analyze viruses correctly. If the program you are analyzing does not support FORMAT or other file utilities and you get an Occurance, be suspicious. If you get both a TIME Occurance and a FORMAT Occurance, the program may be using a common virus approach called a Time/Crash loop. This is a virus that will erase or damage a hard disk when the system clock reaches a particular time. BLOCK CHECK- This check will detect programs that bypass ProDOS completely- those that try to read or write at the Block or sector level. Only 'Disk-Zap', Backup programs, or Block Editor programs should use this. There is no other useful purpose for Block-level I/O in a legitimate program. Programs that load and save their own files do not normally use Block-level I/O calls, but their are exceptions. TOOL CALL- Certain routines within your IIGS ROMs should never by called by an applications program. Occurances here mean that the program is doing this. The end result can range from disk crashes to simple system crashes. Although not necessarily a Virus, a program that makes these calls should be avoided. Another check that this function performs is ProDOS 8 and 16 parameter checks. If you are familiar with either of these operating systems, you know that a command word or byte is required by the P8/16 Call. VACCINE II has detected an illegal, non-existent command (most likely zero) along with the call. Most likely, the program itself 'fills-in' this value during execution and hence, VACCINE II cannot determine whether the Call poses any threat. You will have to look at other Occurances to determine this. Analyzing File Types The most potential programs for viruses are Desk Accessories, INIT files (those that go in your SYSTEM.SETUP folder), applications programs (VACCINE II Checks both SYS and S16 types), and BIN files. You do not have to check picture files, sound files, text Files, or any other non-executable file. There is no way for these file types to gain access to your machine. NI|` cPr*FAnalysis0 ##"g%gBwJY]]_b]g_k]xwyD#')_F<<>46>!EHRUm2t>>>>> >>/CFILF#O>dx8BPxSxVY\_be[[9<mDpFyJf><#0N4L>JFITWanJyH~H )JZ LLf~|&(&((& (&<@ * , . .% &( V, T9 *= ,@ ,D *P X ` e h p z  H Z e L   L  L Z  H H Z Z ) F p  :  , * V T &  ! n"   @  o    f ~ | & ( & ( ( & " % () &- <3 @J 4N 6Q .T .Z &_ *c ,f ,j *v ~    F#      < . . & 4 6 , * # 8 : : 8+ H K N S V [ ^ pa g ph j u ~ p p  p p #   p p    : 8 , *      $ , 8 ? [ B [ H &M z P z V &  FFDJJLNJ(J3A6A:L>NcJtJLNJJLNJJ'' L$NJJ[JftitmLqNJJLN "T&V48;V?TJMWZ!$.1VT $'BFINXR[^korVvTFp X#'27:=@V\(X,04?WBWSXeqi}& Q& i$g)&-(3&8(>(B&G{K}N(R&V<\@r.u.{&*,,*wy11F#kkuuk<..&,* #8::803w8y=EL QT Y^sv|&&:8,*#Qm    **48FFTT^^hlzz  **48x:<>@BDFHJ,LCNQPRTVXZ+\B^]`xbdfhjlnp_rvtv,6/129D GJn+Q t L8LL]]\LE+! & + "3 $D G [ _ b f m p v y     1 l l   n+ ! #!2!:!!@!LE!PL!LO!!U!L[!a!g!]j!]w!\}!L!E+!j!1!8!8! !!n+! ! !""X""L"p!"L$"h"*"L0"6"<"]?"]L"\R"LU"E+t"6w"1z""" ""n+" " """+#"L"f"L"@#"L# ##]#]#\%#L(#E+H#XL##P##U##X##l##p##s##w##~#############X#####%#%#'#'#P$R$' $'$v'$v's$'$'$'$'$'4%'7%'H%RL%PX%z%_%z%k%'o%'%'%'%~'%~'%%%%%%&&'\'K'\'\'\'\'\'i'Q\(i(i(i(i#(i.(|1(|7(]iC(|I(|S(|Y(|d(|i({l({w(R|{(T|(h(h(Yi([i([([(M\(O\(0()()()(K()()()()())) )))K))$))*))-)K1)K9))D)i)G))J))[))b))j))m)){)))0)\*)\*)h*)Q\)h*)h*)h*)\*)h*)d*)f**Q\ *f**f**d* *Q\$*Q\,*f*7*i):*j*=*j*N*`*U*j*w*0{*/+~*/+*;+*]i*;+*;+*;+*/+*;+*7+*9+*]i*9+*9+*7+*]i*]i*9+ +i) +=++=+!+3+(+=+I++L++r++u++++++[D\0\(iLi8i){I|5|r*L&sBVACCINETILSCINE */Utilities/Font.Utils/Font.View */Utilities* 567898DD? 6fo" 3333?0>0>100>=0307G>04t>033333=dn=333300004pp030`0ff`30ff`33330ff`b"  4003"?"?003OOOOO_____0?_>?_>???43333333003033333333333333333333333333303333333333>30333333033030303303333304333333330>  M D4^UUnUVfUVfnUfnꪮNC0DD30DDN30D"`"`"`"`"`"`433333313131?13134333: 3333033330 33330 000000L̬̬00000000000000:AWGS.Utilities:Dictionaries:*1qpH APPLEWORKS.GSON AWGS.CONFIGGSON