2IMGSHEP@@@ 8L2C)pJJJJ 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(8RWAP2013J' @&PRODOS }<J DESK.ACCS'J s('STARTUP)w [ ,BASIC.SYSTEM0(J! \GAMESJ s(UTILJ s)GRAPHICS\J  cSOURCEJ$ J GSBASIC.STUFFJ* s(SYSBEEP(J4 J6STARTPIC)J4 s)STARTUPSOUND*J4 J:SHRCONVERTJ s.TYPE.CMDJ! -DOCUMENTATION 6[[SOUNDSJ J"FINDER.DATA5rbs*FINDER.ROOT6b"sL !Cb" %n"o" (#M8( % ) L'"p"q" (\4, )7(P0  ( @p 8  x"!b"i"0 ~&i"0 %r"s" (,) &Սt"u" ( %L'")0I0hx H( + %Щ ߩx"L! )L! 8'  )ɀ)4,- U JNT) x"Lv"w" ( !` a"M)Fi/ e"3 k"  !"#$%&l"m" h" iL X%;"L8"ΠΠҠ`y""""""*$ Fk%YeQP!/RB}QBiBB}\ ĉFEL/#> ț6 . ) ɘ"    L=#=#&ŠϠĠԠŠ ԩ m# m# J Qڨ)̰m] нȱ ̀𩠙 i F > S ɘL   V7 L ' 0% '8 Jm ʈ0  0ŠϠĠ͢Š͠͠ϠŠŠϠĠخ͠ ͍B B(8`%YYZLYLYLY뿭` 8!@8` %MNЩUMߩ  L 5   8 0 8  `0 / X& & +&&7&P^&0`ŠӠֱҭԠŠҬî̠ӠĮʎ1|&… (n}&Dž (\%Tz&Lc()8= (J 8'z&'{& 3((ʎ1|&|&|&3223 ')L&18|&"m11 2H22h2舌|&|&12H)M0 h10200I20h2 (`LE%12 `_'"L  <8# ȱ)ɀ  )( ` (Xp< @( )m((.(( M(i  ``) |'(j21 z& {&!` ({&z&(i({&(( CBDFGE (r&$ 3(,}&r& … 3(ŅL&JJJJ`Ϡ'8`r&h)hrȱȱȱȱ0]cȱeem*ȱ*ȱ**ȱ**ȱ* )* * )L(`L?* *Ll) ) L( )Ll)8e` ,$`ee` `* G** c*` v* G* c*`hh8`8`***`}*`e`H)hJJ*0JJ)` (< ( < *? ( < (? ( < (? ( <*? * **? *? *? ( < *? ( <.<ʆ>,=?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@)@Yvȱ@Hȱ@Ah@y@cYe J) LL LJiB LJ) >xhHHHHL(  ްƠx@BEOD  ް(`( C)CJJJlB O-`J,~@~@}J@` ߩ%S @ ~`E hhhߺ0 h ߐ( ߐ ߐ ߐ  0 HϭߍLпllllhh8` Qx")T'P) ɺiL; )?     ~ `l@Hȱ@IױHXATȱH ɯȩ׍̒5H)/@a)_ .0 :A[8@`,뎒׮Б` L` @>S)I38Mdeם`K8`@Nȱ@O@ rIiNȽבN)/ȩ/N`@[ WHJjjjhA ,'KI؍0JHi 뎅`C8` @ r3N@) G莱 ⭮i`0 Y; 뮅ٝ٘ 0 W,0 .H hȑNWȮّNW8`ٍّNά0NN` G8`F@ 0 > LK8`: ;I8`FHGH hGhF܌ բFܽܕF芝ܝ 밶:; <܅I m=IHHyHȘI Lܝ` @c@ k@Ю׍S)mיSʈ@qȱ@cȱ@mopfNxOyS)5SI0ܢܽ iP'E* 7deFG (GH Lv܅IR mEIH` tq qM0PQ ESHNFOG 밳NO 밨G%܈D" T)Ii)܍R*܍E'ܮ( 4 䭐 $H %HFFHGHG 됬`R8`)` EHS` #Q'܅IHHSSЍS@`8 ` ͍% ΍Q8`܅I `P܍QR d8D`F` ]lH)HFȍNHGO $%܍&܍!ܢ8* J8` L ܝ>)I 'ܝ:`F8iRFPGQ`F܅IH3H ( )ȱHά`Ύ8EeHI |SB:0M ٙKٙIFNGʈ d献`8m0`,0H hi PȽάhٍ0GF8yאFG  $0 G01 E8`1ݾ00 Y 0ʩ 谼 谷`12)1`0`Ȏi 0U`)8`ά` W xG 0A)H ܝʈh٭0٭)ܝ٭*ܝ٥F٥G٭'ܝ٭(ܝ`)َ 8ʈ` 0ٝ)i `8`R ꍐz{ vNمFمG < ΐ0 FGL鮅0 ٭{٭zٽ8`H8`  ,z { 8` z{ `ٽJJJJ`H͐hn)NjNjNjN. CH͐ v;٭ *Nۙ۰ڙک `Z8` C# (`{ .{ .{ .{8۰*Jz۩ ٰz{`JJJJ;i v묅͚ vٍ0  `H8` `ٍyٍiB0H0FG h0`FG `ϩBxED0C ް(`(8`ؑ@`M8`8@ؐʈI묆)z8zz Ly LةC8`؍)@ i)z8zyJ ^ ؅F Lo) +%J(a *FإGؐ.` *JHIH IL/FHGI ҭJjHIHB>IؙJJ W: ELyHIHI`JKJK`FHIG ( Ȣ؝؈JL)eKM`)` J zJ͟ $0 ΎJFJL8`JGBJ P FإG`BH PFإG`,H hHB؅F  ؅GxDE؍00C ް(`(8` vL'J  6"L vH  6 9ؙ` @ P8`K8`B8` L؈SJJJJحq) ) )Ю ЪGdF $ ᭔ع+ؠ 2H  :h8` 䮅ٽ ٬ؠ@` ( L )8`)i п` H h)N$% LL L r L 2 "pJ덣 )@፦NJOK 2iKK΢΢ IJΣ JФ̭JjHFIH HIGxKE ް((H hH h8`8@ȭ@L2쬆8NNO 8 ؍JL`R΢ʱLN1MOMEKP/MEK΢L7L-M O,p莡eNNO(`JNKOL 2/ "P L8 y WؑJ`L@ȱ@ `@Nȱ@O`؝}zIzؐ` f~ؽ؝z f % f؝~z؈` ` H  Ph)N@ 1; L  2$ )bJ Y ) H 4hL )  )حJjI{HIzH؊ PLE΢ʱNLMOMEKP%MEK΢L$ O, PeNNO 2(` C  7 2JzHI{HI؊ }LE  *` A Hz ع H{ ؙ؊ؠIhHIhH } iع `  عiعi` )؍0CGHFHBFG ުhFhG`@4͔ L @Ai ׭2` . :#ع؍0 Y讅)`.@+ i 8` L )߹0 )p )@ ) ȩ ؝L0NO 방 PQNOFG 嬆؍f؍g؝h ؝c zS) zS )حM͚ v`H@h`h``N8`  ) 1⬆Ȣ؝~@~ݞ@ʈL2 KIJHȢݞ)Jn 8 θ ؍ ؍ DH8 ع)ꭵJJJJ Ȣ؝I؈ 2h(8H ( h(8Hh(`ؑ@`@ȱ@ ` B@8ZS d鮅ٍٍٍsHٍr8fhgSJJJJS)S@` %I -q) 0@S)N8` @LL =@ ȹP8` i` %ם0 B %)( ȹ`8m8m@8` G8`F Pq)@N8`S)@J טyרםSS)׍Sde 밑 LȹL@ȅH@IL,0` G וֹ= YH.q)N 0 >deS)@LP8` D᮴ ֩SGHG v L䬅yٙ٭yٙ٩`K CEdFeG 6%&N    ܮ `J HH hh` 0 @ L/L Z`̸Yܝ ݝ0̸ȩFG   0` ܅F݅G ` c Zͬ 밽܅F݅G ` c* Z% L`L뮴HH hFhG܍ݍ 8 `FHGH  hGhF`ݹܙ݊`@Bɼ>K@J5 c9X(K cXXK تKo`V8`no` , on cI9XX`)HJJJh`OeNeO࿰ c9XАO`@ȭ@` ON INJKO`HхhꭋILhH),Nx8 (8` ԍ`@ABe 2U,,CnZ1IJK,-NOPQRSuHUSTON!' @   !"#$Ԡ͠ˠĠԠҠ(c)1983-1987 AppleLKL`BLL ެެެެެެެެެެެެެެެ(C)APPLE'83xLLM Mh@8nЍLޭ 0J @,,LNP׽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&MIKEDESK.ACCSuHUSTON!J' '(PUNC.NDAEJ"'CPUJ s'')GRASS.NDAtJ:'BREATHEJ  J 'FINDER.DATA:s's('TBX.CMDa JJ-'-AREA.CODES.DAg"J'&MELTUPyJ#'(ANACLOCK(J/7'BGMUSICUNDJ) s'DPIIHELPJ) s&'t WAP HELLO BY DAVE WEIKERT & TOM WARRICK WITH MODIFICATIONS BY TOM DEMAY SLIGHT MODS FOR GS BY DAT ::9:12)"WELCOME TO /WAP2013":12:"PRESS (4) FOR FORTY COLUMN DISPLAY, OR (8) FOR EIGHTY COLUMN DISPLAY: ";:W$:W$:W$"4"W$"8"15/ W$"8"EIGHTY1::(4)"PR#3"m ::D$(4):C(J)21J2:KS16368:KS,0: KS=$C010 D$;"PREFIX":"";PREFIX$ (D$"-TYPE.CMD": 2100 < SUBROUTINES FHT21:EIGHTY1HT41 KJ1K:HT(S$(J))2:S$(J):::(*+,-. PHT6:EIGHTY1HT26Z U22:HT)"PRESS ANY KEY ('ESC' TO EXIT) ";:K$:(K$)27725` Zw d GENERAL LABELS nWAP$"WASHINGTON APPLE PI, LTD." xADDR$"7910 WOODMONT AVE., SUITE 910" CITY$"BETHESDA, MARYLAND 20814" PHNE$"(301) 654-8060"> CURRENT$""` G1$"PRESS 'M' FOR MENU, OR " G2$"SELECT ONE OF THE FOLLOWING:" G3$"PRESS THE RETURN KEY TO EXIT TO BASIC: " G4$"To rerun this description, type" G5$"-STARTUP" G6$"And press the RETURN key"$ G7$""? VARIABLE LABELS M Y$"1988"` T1$"/WAP2013"v T2$"Odd Bits II"  COPYRIGHT NOTICE S$(1)"IF YOU HAVE NOT ALREADY DONE SO" S$(2)"IT IS SUGGESTED THAT YOU MAKE" "S$(3)"A BACKUP COPY OF THIS DISK"! 'S$(4)"--------"L ,S$(5)"THE COLLECTION AND ARRANGEMENT"u 1S$(6)"OF THE PROGRAMS ON THIS DISK" 6S$(7)"ARE COPYRIGHTED, "Y$", BY" ;S$(8)WAP$ @4:K8:70:80 J PRINT RECTANGLE T:EIGHTY1ĺ:360Y::41);:J18:40:2);::40:41):/^ PRINT TEXT kh3:S$(1)T1$:S$(2)T2$:S$(3)" FROM":S$(4)WAP$:K4:70xr MENU |C$"S8RQE":C2$"s8rqe":commandsS$(1)"SEE THE DISK CATALOG"S$(2)"USE 80 COLUMN DISPLAY"S$(3)"READ ABOUT THESE PROGRAMS"#S$(4)"PRODOS QUIT CODE"=S$(5)"EXIT TO BASIC"NS$(6)" "q13:C((G2$))(HT22):G2$:J15:HT20:" ";(C$,J,1);" - ";S$(J)::7(HT22):"PLEASE ENTER YOUR SELECTION: "; GET CHOICE K$&K0:J15:(K$(C$,J,1))(K$(C2$,J,1))KJ:K$H:K530,515,580,680,725:490dD$"PR#3":EIGHTY1:340t CATALOG :EIGHTY1ĺD$"CATALOG":540D$"CAT":G1$;:EIGHTYĺ!G3$;&K$:K$"M"K$"m"340+K$(13)5500725: DISK DESCRIPTION D:"TO START/STOP SCROLL, PRESS THE "(34)"S"(34)" KEY WHILE HOLDING DOWN THE "(34)"CONTROL"(34)" KEY..."ILN39:EIGHTY1LN79NX1LN:"-";::34,3:EIGHTY1Ĺ34,2SS$XD$"TYPE /WAP2013/DOCUMENTATION"!l:"PRESS ANY KEY...";:S$:S$::340< START MENU PROGRAM ID$"BYE"] EXIT PROGRAM vHT0:EIGHTY1HT21:4:HTC((WAP$)));WAP$:HTC((ADDR$)));ADDR$:HTC((CITY$)));CITY$:HTC((PHNE$)));PHNE$Q:HTC((CURRENT$)));CURRENT$:13:HTC((G4$)));G4$:15:HTC((G5$)));G5$:18:HTC((G6$)));G6$v20:HTC((G7$)));G7$:KS,0:LG ASTARTUP$#   / XXύX?klmnÍoL) "6L'?"(0`6708" = ***)<JJH !h穖tp% ;"Z/݀>">"' 1" 7"5).莀/ ;" " 6" >" 1"6"$ "g"" !"""""IzL/123456789:;<=>?@ABCYL 8!9 詍` "  à4"/pŠϠŠà͠ӠàԠŬH06172839h` v97L75v^a ?/( va?LLLɍ$?`?a ɍɥAH93827160hH46576879h`,C bL ɍ b w,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 E$݅3`(l8L3LX>(Ƀ,`3,G0]ɾ g` H`پ_پ p _پ׾`>( p۾m׾) W)ʩ@`ɾ>(O puȾ ɾ-O ]c־Jjjj `O>0O l POپھ p H־Ǿh۰8L־Jjjjɾ)Ⱦ8 ѱ OLӜ ĤLLX>(F`־ؾپھ׾` bɄ KDEF vLl v lL bKɍKL?` w  vLl@3 @LtJ)s@J b  l`a?sa?,E30ɍФ3 E3HD F3 Ʉ%h3 bM E  lLthɍLL3`3,A0s0% Ipn DpnI:L ؅303L8933LΞAAJL ةޘг uv $ 8LƞaЌ>?@`>?@`B8` K  춼LK ҟ ҟ ( KK`HJJJJ8`HK)` #hhLJپھ pHJh` D!hgt}~p `~t}p8n~ni}tpi~~tso8pinii>j?k̈́>~|p|Ii||̈́ l - `>i>?Ek?!>Q>>>̀ `` \> ̀ `e>>?́?>?Emn(>e>ȱ>e?>Q>ؠ> ie>>?`|;}=:<~:<=;`||m};>:8o>oȑ>ppȑ>> :op`G DKpnG @p;G=po:i>?Ek?>Q>> L> \/ e>>?́?ޱ>ȥj>>m>` _m8injkiljo풼S 鸍긍$I2 U)VJ зT)`l8`a HbIJhjǾȾɾ p٭b=aIe f`8` P־ǾҾ,G0C f=W)_``\"׾پӾؾھ pD`־ǾY׾ؾOW)ݩȾɾʾ pD`8`W)CB) 5W) =)W)@! pZ}ȾȾ󰹩 p` ־ǾҾ,G 8`׾ؾ f p vۥs׾tؾE`  ( 8о(־Ǿ,G 8`_`W)H־Jjjjh p̭ fLᶢǾ ת..8 ۭ (8mȾȾmɾɾʾiʾ` Lpl8l:/,s̝sƬƀ#(ZZV4G_0=( A P FjL\5p-e9ABSAVERIFYBLOADELETEBYECATALOGOPENWRITEXECREATEFRESTORENAMEBRUNLOCKCHAIN#FLUSHREADPOSITIONOMONPR#PREFIXCLOSEAPPEND6D(!쫂8ֵ#ح#׮2}q :IC@@ -!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ؾHW)@hLM W)p@)0پȾھɾ p pW)@ ٷL8`LLwLLL) `8` ԠŬLL ,@ main # Puncture\H** ;8[iI{iHN"N {iHJ"۩ddHH{iH "hHHK"  "{i+k ;8[iHH "  {i+k ;8[iHH"{i+;ik ;8[i / "  {i+;ik ;8[im"DFGH:"Z <"A<"d(<"*<"2<"!<" <"<"HHg"h߆ߢn"߅{i+k ;8[iHH"h߆H{iH "h H{iHɢ"h)HH"hۆɢo"HH."h׆עs"HH/"h׆עs"9"fa ߢ"{i+k ;8[i{i+kHZ"!kH"Xk ;[0   +  ;ik# 0Nx .3?t /@Q^s ;Liz!X ,@ ~global Finder Desktop Color Change By Lycanthropy Background about Desktop : Actually I found out about the ability to change finders (Should be called Flounder) desktop color, the color that the disk icon appear on. My desktop turned black and I checked on the finder files (Using Copy II) and started to playing with the FINDER.DEF file. I found 16 bytes that looked familier, (16 Hmm, formated?) so I played with the values and found that they are the pattern bytes for the desktop. Information AbouIKLMNOt FINDER.DEF : Fun with the FINDER.DEF file. 3A 00 DD DD DD DD DD DD DD DD DD DD DD DD DD DD :.]]]]]]]]]]]]]] DD DD 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ]].............. The "3A" byte is a bit map for the Finder Prefernces. The next byte "00" seems to be a seperator byte. The next 16 bytes are the desktop pattern bytes, so the pattern block seems to be : ROW 1 DD DD DD DD (Each nibble is one bit and can be 1 of 16 colors) ROW 2 DD DD DD DD (So this pattern table can yield a 8 * 4 pattern ) ROW 3 DD DD DD DD (Don't be too dissapointed with trying to create ) ROW 4 DD DD DD DD (a new pattern for the desktop. Its hard to get ) (anything out of FINDER. ) Now About DSKTOP.FIX : So in a blinding flash of brain-storming, I made a utility that will change the entire desktop solid color. You must run DSKTOP.FIX with in the boot volume prefix, where the FINDER.DEF file is. (If it is not there, open the preferances, under Special menu item, and change an item. Or just run DSKTOP.FIX it will create the file for you, with my favorite preferences.) When running DSKTOP.FIX program, use the number for the solid color that you want displayed on the desktop. The program will resave the FINDER.DEF file and return you to the BASIC prompt. At this point you will need to reboot finder to display the new color. Items for Programers Intrest : Programers hear me, ;)= . This is the time for you to create a NDA for modifications to the Finder files, Especialy for the FINDER.DATA files, I need a new method to reorganize the small ICON window to make it more compact other than draging each icon to the small compressed window. Or a desktop pattern creation program (just a little fancier than my program). Also, I would like to work with the programer that takes on these chalenges, If you take the chalange, drop me a GE-Mail at "GOFOR" Last thought in this doc file, How about a "TRUE" finder for the GS that operates just like the Mac, including a comments section in the info funtion. :)= Jay A Long (aka Lycanthropy) GE-Mail : GOFOR 101 Pennsylvania Lawson Mo, 64062 (816) 296-7767 5d:"Finder Desktop Color Fix":"By Lycanthropy"]n4:1:"Desktop Colors available :"x" 0 Black":" 1 Dark Blue":" 2 Gold":" 3 Gray.1":" 4 Red":" 5 Purple":" 6 Orange":" 7 Pink"Q " 8 Green":" 9 Dark Green":"10 Bright Green":"11 Light Green":"12 Gray.2":"13 Light Blue":"14 Yellow":"15 White"] D$(4) D$;"BLOAD FINDER.DEF,T$C9,A16384" P(16386) C(P16)k A$"Black Dark Blue Gold Gray.1 Red Purple Orange PinkPRS Green Dark Green Bright GreenLight Green Gray.2 Light Blue Yellow White " C$(A$,C121,12) "Finder Desktop color is currently ";C;" or ";C$;"." "Change color to (Use above color number table) : ";NC PCNC16NCI T116:T16385,PC::D$;"Bsave FINDER.DEF,T$C9,A16384,L82" "Finder.Def file saved, reboot finder to display new desktop color."  EP(222):EP6Ĺ16384,58:T1511:T16384,0:T T116:T16385,221::D$;"Bsave FINDER.DEF,T$C9,A16384,L82"  #-H- 0! 0 %!d0D,ɠɠ2,ɛɪ1ɘɉ  %! c! %!0 " Q# "d c!)K+8h-lK05 )C!K! S!@[!`0ژ  hm Hi}ߨh0Hȩcǝ0ddȩT0d d dd`+0 B#0`p3p1 Y ) eY * ]"Y ) ee"Y ʼ ]"Y ) ee"Y ʼ]"Y )TVWX ee"Y ʼ]"Y ) ee"Y 0L!  `Y i`Y `K!!!!!"":"`%6 "=,6 6(` ;#3=,i`=,`   `-I K"#?#`Iɍ)_SE`) # )`:)LB#` X&&  #`,`Diversi-Scope(tm) By Bill Basham Copr. 1987 DSR, Inc. **** For 2-Week Demonstration Only **** Requires Apple //gs with SuperSonic Digitizer Card To continue using Diversi-Scope, please send $20 to: DSR, Inc. / 34880 Bunker Hill / Farmington, MI 48018 / 815-553-9460 You will receive the latest Diversi-Scope update, and a user support number. We will notify you of updates, and our future music programs as soon as they are released. *** Diversi-Scope Options *** -Freeze display (Re-start with any other key) -Hold current display / -Clear screen -Fill Mode On:Off / -View this message / *-Exit S-Sync On:Off / 1,2,3,4,5,6,7-Card Slot # (Default Slot #3) -Change color / NOTE: PRESS '2' FOR CARD IN SLOT #2 PRESS ANY KEY TO CONTINUE#/ ******************************************!* Loan Calculator* (* by Bob Raisner2*,<* placed in Public Domain Jan 25, 1988F*/P****************************************** dgg$=)n x $6#&.2# 78c/߃;"DIRECT REDUCTION LOAN CALCULATIONS."^:߃;"1 Present value (PV)":߃;"2 Payment (PMT)":߃;"3 Number of payments (N)"L߃;"4 Accrued intrest (I(C-K))":߃;"5 Remaining balance (PV(K))"'߃Y[\]^_;"CHOOSE DESIRED UNKNOWN:";:A7A<߉A>"ONLY TYPE A NUMBER BETWEEN 1 AND 5":A,X,, ,@getintr:getn:getpmtPV#=PMT#*((-(+II)^-N)/II)c=:k=n:accum:remainXgetintr:getpv:getnbPMT#=PV#*(II/(-(+II)^-N))lc=:k=n:accum:remainvgetintr:getpv:getpmt#N=-((ߣ-II*PV#/PMT#))/ߣ+II))c=:k=n:accum:remain @: XN*߃;"For accumulated interest paid by payments C thru K, enter C,K":C,K4C>Kgg$;:*>accum:remain:kACCUM H͈accum RJ=C-6\ICK#=PMT#*(K-J-((+II)^(K-N))/II*(-(+II)^(J-K))) fވaccum k:= Rp=:"Accumulated interest paid by payments ";C;" thru ";K;" = ";:߃x;ick#z$a$:::XK߃;"for remaining balance after payment K, Enter K ";:K:remain: REMAIN ͈remain"PK#=(PMT#/II)*(-(+II)^(K-N)) ވremain := LP$="Remaining principle after payment "+߻K)+" = ":=:p$;:߃x;PK#$a$:::GETPV ͈getpv= :=*߃"25a";"Enter Principle (PV) ";:PV#PV#<=gg$:getpv ވgetpvGETN ͈getn  = :=& ߃"25A";"Number of payments ";:N N<=gg$:getn ވgetnGETPMT ͈getpmt= :=$߃"25A";"Enter payment ";:PMT# PMT#<=gg$:getpmt ވgetpmtGETINTR ͈getintr= :=8߃"27A";"Enter Annual interest rate (PERCENT)";:IIII<߉II>dgg$;: II=II/ ވgetintr@ PRINT OUT STUFFJ#T"[S]creen or [P]rinter ? ";a$^a$="P"߉a$="p"toptrh:printitrPRINTIT '͈printit'=0$'=:߃"21A";"Principle";:"= ";:߃x;PV#9.'=:߃"21A";"Number of payments";:"= ";:߃"8#";n>8'=:߃"21A";"Interest";:"= ";:߃"8#.1z";(ii*);:"%"7B'=:߃"21A";"Monthly payment";:"= ";:߃x;PMT#6L'=:߃"21A";"Total interest";:"= ";:߃x;ick#:V'=:߃"21A";"Total payments";:"= ";:߃x;PV#+ICK# `'= j'ވprintitt'TOPTR *͈toptr+".printer",ߓ#6 +=:#߃"21A";"Principle";:#"= ";:#߃x;PV#?+=:#߃"21A";"Number of payments";:#"= ";:#߃"8#";NG +=:#߃"21A";"Interest";:#"= ";:#߃"8#.1z";(ii*);:#" %"=*+=:#߃"21A";"Monthly payment";:#"= ";:#߃x;PMT#<4+=:#߃"21A";"Total interest";:#"= ";:#߃x;ick#@>+=:#߃"21A";"Total payments";:#"= ";:#߃x;PV#+ICK# H+ވtoptrR+ @ ,@ +<HW--Background Music\H** "dk"kHZ"kH"[k;8  [I>H"K hHHH" N^`dbʎhfjlnptrvxz|~ʎ22?IʎʎHH^H "K hhHK"K `bcdeH"K H H:"K HHH" H"K H"K HHHHH "K hhH"K hHH"r H"K HH"K H"K hHHH"r iH"K HHH"   :  :  H "K (H(H HHHH "K  HHHH" " XVT" K TFT" NLHHH"$ "r HHHHH "K hhJHF" T" HH"r  HH"K +;i kBackground MusicVersion 1.1 - by Guy T. RiceSelect music file to play:;8 [\H "K H"K H"K H"K  "K "K H"K +;ik;8 [!tbH"K H H:"K HH?H" H"K H"K ! +;i kVersion 1.1 - by Guy T. Rice;8 ["+;ik;8 [+;ik H" hhhk{;8[:ڥ H H H h h h  I  $J        {i+k;8  [ " ["" && & 8   *8e 8 +;ik "K k ;[I4" )d9    ")   +`- 3 ; H"M H"h") H"\ KY Error occurred at line "Y H"} in procedure "Z ""U W  " " Line Name, " ---- ----H "U W  Quit: MaineFrame Software,'87 Z_ */SYSTEM/DESK.ACCS/AREA.CODES.DABoot disk wasn't found!Insert it, and then/Press any key to try again, or to cancel.Sorry, can't do it whenrunning ProDOS 8!K [   z +k ""h)`Ss !) e   fhijklmnopqrstuvw# v% # A - - k-%%##  "  ~ k-%- < 4%.+++ A### - - k-%%%  "  ~ k-%- "("""`  " " ~ " ~  " "" h)hhb  k` " " " " " " " "HhHh !  ~5 " " " "MکH "0ڀ " "O ~ "- A "Mک_H "0ڀ "O "`0 N!"#0`0 P!"#0`+H+hHh` ~HH# khh:H` " "-%) % "+ X - " '  - " O  "`H{)+h8++ X`HeH "`e HzZ ) H "H "z`: All locations+HJ$"zh((`:0Z% 0 "0h{0` ~ " ~` "'4)"4) 4 ` '")4 ` ~%`,w201New Jersey: Hackensack/NewarkIe202District of Columbia]203Connecticutw 204Canada: Manitoba )205Alabama206Washington: Olympia/Seattle207Maine208Idaho 209California: Fresno/Sonora  212New York: New York City-213California: L.A./Long BeachM214Texas: Dallas/TexarkanatK 215Pennsylvania: Allentown/Phila.9216Ohio: Akron/Cleveland/Youngstown@ 217Illinois: Decatur/Springfield7218Minnesota: Bemidji/Duluth t 219Indiana: Gary/South Bend #301Maryland( -302Delaware9 ]303ColoradoO 304West Virginiax 305Florida: Ft. Lauderdale/Key West 306Canada: Saskatchewan u307Wyoming x 308Nebraska: Scottsbluff 309Illinois: Bloomington/Peoria 312Illinois: Chicago/Waukegan/ 313Michigan: Ann Arbor/DetroitT 314Missouri: Hannibal/St. Louisv ( 315New York: Syracuse/Utica I316Kansas: Dodge City/Wichita  317Indiana: Indianapolis/Kokomo ,318Louisiana: Lk.Charles/Shreveport 319Iowa: Cedar Rapids/Dubuque O 401Rhode Island@ 402Nebraska: Lincoln/OmahaX X 403Canada: Albertaq t404Georgia: Atlanta 405Oklahoma: Enid/Oklahoma City 406Montana 408California: Monterey 409Texas: Beaumont/Galveston 412Pennsylvania: Pittsburg$ 413Massachusetts: WesternK )414Wisconsin: Green Bay/Milwaukeet 415California:San Francisco/Oakland 416Canada: Hamilton, Ontario 417Missouri: Joplin/Springfield M418Canada: Sept Iles, Quebec 419Ohio: Bowling Green/Toledo 501Arkansas: v 502Kentucky: Bowling Green/Lou'villI 503Oregonr  504Louisiana: Bat. Rouge/N. Orleans m505New Mexico I 506Canada: New Brunswick 507Minnesota: Albert Lea/Rochester 509Washington: Walla Walla  512Texas: Austin/San Antonio-513Ohio: Cincinnati/DaytonM 514Canada: Lachine, Quebeck 515Iowa: Ames/Des Moines516New York: Eastern Long Island517Michigan: Lansing/SaginawC518New York: Albany/Schenect'y/Troy 519Canada: Windsor, Ontario601Mississippi!602Arizona7603New HampshireX/ 604Canada: British Columbiam 605South DakotaD606Kentucky: Lexington 607New York: B'hamton/Elmira/Ithaca 608Wisconsin: Madison/Dodgeville 609New Jersey: Camden/Trenton#6612Minnesota: Minneapolis/St. PaulE!613Canada: Kingston, Ontariog614Ohio: Columbus/Mt. Vernon615Tennessee: Knoxville/Nashviller 616Michigan: Battle Creek/Gr.Rapids617Massachusetts: Eastern618Illinois: Alton/Mt. Vernon !k619California: La Jolla/San Diego6k701North DakotaE702Nevadai703Virginia: Arlington/RoanokeT 704No. Carolina:Asheville/Charlotte705Canada: Sudbury, Ontarioi707California: Ft. Bragg/Santa Rosa=709Canada: Newfoundland!712Iowa: Sioux City)t713Texas: HoustonQ 714California: Anaheim, Costa Mesak 715Wisconsin: WausauE716New York: Buffalo/Rochesterq 717Pennsyslvania: Harrisburg/Lanc.718New York: Western Long Island: 801UtahM802Vermont803South Carolina9 804Va: Ch'ville/Norfolk/Richmond U805California: Venturau806Texas: Amarillo/Lubbock 807Canada: Port Arthur, Ontario808HawaiiX809Puerto Rico/Virgin Islands812Indiana: Evansvilleg813Florida: Winter Haven)U814Pennsylvania: Altoona/ErieD 815Illinois: Kankakeej 816Missouri: Kansas City/Sedalia-817Texas: Fort Worth/Temple818California: Pasadena/Van Nuysj819Canada: Val D'Or, Quebec 901Tennessee: Jackson/Memphis902Canada: Nova Scotia/P.E.I. C904Florida: Daytona Beach/Jax'villeeE906Michigan: Upper Peninsulat907Alaska912Georgia: Savannah/Macon 913Kansas: Kansas City/Topeka9 914New York: Poughkeepsie/Wh.Plains$ 915Texas: El Paso916California: Sacramento/Tahoe=Q918Oklahoma: Muskogee/Tulsa 919North Carolina: Durham/Raleighk  "9 " ~Q " "" hhhcdlorzu!e##A--k-%%# # $~'k*-6-9PW+di+p+uxA~###--k-%%% ~k-- !'47G~JM]~` c zk%16!C~F5I5SV~-AOO"%+,1+>H~[#^klo-%+X+++Xw:H=Hh+~~')')~%,w,I.eI]K]w_ wy)    - -M/MtOK tv9@ 7 t    # (  -( 9 * ]9 O ; O x Q x z   u  x      /  / T 1 T v V ( v x I     ,    O  @ " @ X B X X q Z tq s           $  $ K & )K t M t v     M      :  v : I < I r K  r t m  I         --M/ MkO kmC !!7#7X9/ XmZ moD   #6#E%!EgGgir !k!6#k6E8EiGikT i=!)t)Q+ QkS kmEq : M9 9U;UuWuw Xg)U)D+ DjF jl-jCCeEEetgtv 9 $ =Q=? fs9v9~QQ  ,@ main  Meltup\H** ;8[iI{iHN"N өթש٩۩ddHH{iH "hHHK" "{i+k ;8[iHH " {i+k ;8[iHH"{i+;ik ;8[i / " {i+;ik ;8[i"H"h8xz{|}~pI0Ad٩HH"hHH"hH"H"h"hH"h"hߥ8pI{iH~"H {iH"h"*"9""{i+k ;8[i{i+kHZ"kH"k"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 ;[HH "h h +k ;[HH "h h +k ;[;8 ")) )))));i+k ;[ H HHHHH "+k ;[;8")) ;i+k ;[;8" ;i+k ;[;8+" ;i+k;8 ;[.0*, & ( "$ ;iH"+;ik ;[;8 " ;i+k ;[;8 " ;i+k ;[;8 " ;i+k}xsn i d _ZUPKFA<72-(# "#'( )*";i(k! .LY %1fs{ *1 cwJ1Q7R  N  N j     n t jj ;[ ïů):  +;ik;8 ;[     : -!/! ie H  HH H"+ H) H1 H" :    A+;ik;8" ;[(@**d(*)ȷȷ)ȷ)Ȅe2 4  )  )HHH ,@ ~global  ;[ ïů):  +;ik;8 ;[     : -!/! ie H  HH H"+ H) H1 H" :    A+;ik;8" ;[(@**d(*)ȷȷ)ȷ)Ȅe2 4  ) ,@ main < Analog Clock\H** ;8[iHH"0N  2 "$&(*,.02468:<F>2@BDFHJLHH "hHHK" {i+k Analog Clock ;8[iHH " {i+k ;8[i.HH""HH"wHH"h݆߯HH""ݢ"963+8" 0 H`1oruuuuu {i+;ik ;8[i" {i+;ik ;8[i{iH{iH{iH{iH{iH{iH{iH"H"թ8pI0(ժՆ)) Ղ(:"H" :" <":" <":" <"0p:"f:""3:""3:""kY:""o-:"o-<"o-:"|#<"%(<"-<"2<"|7<"o<<"b7<"U2<"H-<"U(<"qb#<"]o<"I8@08 H`-AUi}-AUi} 7":H":H":;"7"""{i+k69312 ;8[in8 pI "hio8pI8 i:::o-:"<"9800( 4H` z8pI8 i.:::8pI!8 "h88Po-:"<"78.0& H`ZZZZZZZZZZZZZZZ z8&pI8 "ho8P%8pI 8% P8:::o-:"<"78.0& H` y85pI 8-"h-848pI84 "hio-:"<"78..0& ] H` {i+;ik ;8[i{i+kHZ"kH"k"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 ;[HH "h h +k ;[HH "h h +k ;[;8 ")) )))));i+k ;[ H HHHHH "+k ;[;8")) ;i+k ;[;8" ;i+k ;[;8+" ;i+k;8 ;[.0*, & ( "$ ;iH"+;ik ;[;8 " ;i+k ;[;8 " ;i+k ;[;8 " ;i+k}xsn i d _ZUPKFA<72-(# "#'( )*";i(k'  4@QEOQh[bfilqx |  !#%')+-/135 79;=#?*A1C8E?GFIMKQMWZdhjOoQsQxOhOQQOhQOh Q O,h<hFQKOWh[ jh1oruuuuuVlZS]SihSShSShhhhh!h2hChThX[ehvhz}hhhhhhhhh(h<hPhdhxhhhhhhh -AUi}!#%')+--/A1U3i5}79;=LhT\n|h hh/4468:<>@BDFHJLNPR hhZZZZZZZZZZZZZZ Z- xhh  / h> hX ] ] _ a c e g i k m o q s u w y    h   #  $    <c@cF<<h ;[ ):  +;ik;8 ;[     : !! ie H  HH H"+ H) H1 H" : p ,@ ~global p ;[ ):  +;ik;8 ;[     : !! ie H  HH H"+ H) H1 H" :    A+;ik;8" ;[(@**d(*)ȷȷ)ȷ)Ȅe2 4  )GAMESuHUSTON!J' '*FOURINAROW>zJ!4,FOUR.ROW.DOC%J%FINDER.DATAɮ>bs(UTILuHUSTON!J' ''MACDOWNu'J@+MACDOWN.DOCJ8(FONTVIEW J,,P8CDA.SYSTEM# J ')P8CDA.DOC,0J,FINDER.FIXERF J-/FF.INSTRUCTIONSO UJ'FF.ICONYJ1.DESKTOPFIX.DOCJ J-E+DSKTOP.FIX2QJ-E;-DIVERSI.SCOPEUJ-$PLAYJ<6Y ,@ main 6Y """") ;8[i8pI0H8pI0%: :e ジ{i+k ;8[i{iHHH@"ݩ8 pI+: :e  :݂ : :e   ݅{i+;ik ;8[i8pI0P:i     ហ  8pI % : :   8pI % : :  {i+;ik ;8[i{iHHH@"٩8pI0: : قթ8pI0}ש8pI0Z٩8pI0/:: e::e몵 ق "ׂՂթ8pI0}ש8pI0Z٩8pI0/:e:: :e몵 ق "ׂՂթ8pI0ש8pI0^٩8pI03:e:: e::e몵 ق "ׂՂթ8pI0ש8pI0^٩8pI03:e:: 8:e몵 ق "ׂՂH"hH"hH"hH"hH"hH"hH"hH"hH"hH"hH"hH"hH"hH"hH"h͆ϭͦ"h͆ϥͅυ{i+;ik ;8[i{iHHH@"p*H{iH"h: :e骭 'H{iH"h: :e骭 HH{iH"h8pI % H{iH"h: :e骭 HH{iH"h͆ϩ8pI ͅυ8 թ8pI02H{iH"h8 pI ՂHH{iH"hͩϥͅѥυөթ8pI0H: H{iH"h8 pIDHH: H{iHH"hцͥѦ"pIхͥӅѦ"pI Ղq ͅυ 8pI %q H{iH"h: :e骭 HH{iH"h͆ϩ8pI ͅυ թ8pI02H{iH"h8 pI ՂHH{iH"hͩϩթ8pI0vH: H{iH"h8 pIDHH: H{iHH"hцѥͦ"pIхͥӅϥՂͅυ {i+ ;i k ;8[iHHM")",""" ," 8"hi5"hir"hi5"hiY"{i+;ik ;8[iHHM"","㩹8pI0,:"l<"8pI0F5"hilH:"5"hilH<"ズ8pI0K8pI0(: :eH"サ{i+k ;8[il"H"h"HHH "hHH"iHH"((:"""" moqsuwy{d}ddd{imH"H"9"HiH"HiH""iHH"H""{i+k*Formatting System Disk.............Gotcha! ;8[i0"dd"BB{iH"{iH""HHH-"hH "HHH-"hH "HHH-"hH ""H"h*"{i+k.==Options...\N502*Oo==Eval parms...\N503*Ee.!>> Game \N3==New Game\N501*Gg>> File \N1==Quit\N402*Qq./>>@\N0X==About...\N400*Aa==Help...\N401V*?/. ;8[iN   l "$&((*,. 02468:< >@B{DFHJLHH "h"{i+kmain ;8[i """""""""""H""{i+k ;8[iۥ8pI0>ۢ/"ۢ/"ۂ{i+  ;i k ;8[i{iH rJ"HH{iH "hۆ{iHS"{iHEJ"{iH{iH "{iHS"{iHRJ"{iH{iH "{iHCCN"{iH9J" {iH{iH "{iH--"{iHq|J" {iH{iH "{iHT"{iHgErJ" {iH{iH "{iHO"{iH]'hJ" {iH{iH "{iH55U"{iHSX^J" {iH{iH "{iH<"{iHEPJ"{iH{iH "{iH"{iH;]FJ"{iH{iH "{iH@"{iH*5J"{iH{iH "{iHSSX"{iH c+J"{iH{iH "{iHU"{iHU!J"{iH{iH "{iHO"{iH %J"{iH{iH "{iHZZU"{iHX J"{iH{iH "{iHSS"{iHOJ"{iH {iH "H"hۢ "{i+k Okay TFour In A Row is a strategy game played against the computer. The object of the gameNis to get four of your pieces in a row horizontally, vertically or diagonally.TYou play by dropping the pieces into a vertical rack with 8 columns. The pieces willWslide to the bottom of the rack, or to the top of the last piece played in that column.?The game continues until a player has won or the board is full. The Game Menu;The New Game option clears the board and starts a new game.TThe Options dialog box allows you to change the color of your pieces, who goes firstNand the type of game to play. If you play GiveAway you are trying to force theScomputer to get four in a row before you do. You can change colors or game type inthe middle of a game.MThe Eval Parms dialog box lets you adjust how the computer thinks. The searchRdepth determines how far ahead the computer looks at the game. The weights adjustRthe value the computer gives to certain features. Read the DOC file for more info. ;8[i{iHJ"HH{iH "hۆ{iH!!"{iH$`kJ" {iH{iH "{iH!!"{iH WbJ"{iH{iH "{iH!!"{iH*@KJ"{iH{iH "{iH!!"{iH*6AJ"{iH{iH "{iH!!"{iH,7J"{iH{iH "{iH!!"{iHNv#J"{iH{iH "{iH}!}! "{iH; J"{iH{iH "{iHo!o!"{iH3 J"{iH{iH "{iHj!j!"{iHIxyJ"{iH {iH "H"hۢ "HHM"{i+kOkay Four In A Row Version 1.012/87By: Bill Fortenberry2906 36th AvenueMeridian, MS 39305For source code send $10to above address. ;8[i{iHJ"HH{iH "hۆ{iH//"{iH0 J"{iH{iH "{iH// "{iHRJ"{iH{iH "{iH//"{iH2,7J"{iH{iH "{iH// "{iH6AJ"{iH{iH "{iH//"{iH66_AJ"{iH{iH "/{iHmxJ"{iH{iH "/{iH_jJ"{iH{iH "/{iHQ\J"{iH{iH "/{iHCNJ"{iH{iH "/{iHmxJ"{iH{iH "/{iH_jJ"{iH{iH "/{iHQ\J"{iH{iH "/{iHCNJ"{iH{iH "{iHHH"h{iH{iH"{iHlyJ"{iH{iH  "{iHHH"h{iH{iH"{iH^kJ" {iH{iH  "{iHHH"h{iH{iH"{iHP]J" {iH{iH  "{iHHH"h{iH{iH"{iHBOJ" {iH{iH  "{iHHH"h{iH{iH"{iH$ltyJ" {iH{iH  "{iHHH"h{iH{iH"{iH$^tkJ" {iH{iH  "{iHHH"h{iH{iH"{iH$Pt]J"{iH{iH  "{iHHH"h{iH{iH"{iH$BtOJ"{iH{iH  "/{iH +J"{iH {iH "/{iH +J"{iH {iH "/{iHl +J"{iH {iH "~/{iHA g+J"{iH {iH "|/{iH ;+J"{iH {iH "ۭH/"{iHw/w/"{iHiJ"{iH {iH "H"h٥ق":#80 -H`----- {iH"HH{iH"h{iH"HH{iH"h {iH"HH{iH"h {iH"HH{iH"h {iH"HH{iH"h {iH"HH{iH"h {iH"HH{iH"h{iH"HH{iH"hۢ "{i+kOkay1234543214321HumanComputer------ Weights ------ Search DepthEvaluation Parameters ;8[i{iHJ"HH{iH "hۆ{iH66 "{iHDR]J" {iH{iH "{iH66"{iH45@J" {iH{iH "{iH66 "{iHAJ" {iH{iH "{iH66 "{iH: J"{iH{iH "{iH66 "{iHm\gJ"{iH {iH "{iH66"{iH[_fJ"{iH {iH "/"/"{iH66 "{iHl?JJ"{iH {iH "6}6{iH>FIJ"{iH {iH "/"/"{iHx6x6"{iHn)J"{iH {iH "v6t6{iHF)J"{iH {iH "  /"  /" {iHo6o6"{iHMv}J"{iH {iH "H"h٥ق" " " v" Z" A" %80 /6H`n555555 ۢ "HHM"{i+kOkayRedBlueYouApple GSNormalGiveAway Game Options Your ColorWho Goes First Game Type ;8[i{iHHH"H{iH"hi۩{iH{iH "{iH{iH "{iH{iH "{iH"ݩ-{iH{iH "{iH{iH "{iH{iH "{iH"ݢ"hѩd{iH{iH "{iH{iH "{iH{iH "{iH"ݢ"hե8Ѣ{iH{iH "{iH{iH "{iH{iH "{iH"HH{iH "h߆ߢ"#ϥ8ѩ2ӥi""{iH ::H "ߢ8" :"{iH"H"h٥ߢ "{i+;ik Okay ;8[iH" H"  {i+k ;8[i""  " {i+k ;8[iߥt߂."W"P E">"7"0ɐɑɒ ,"{i+;ik ;8[i=HH"hʍ  BB"HHH"hHH"HH"h: :e HH"h8pI % AA" ^ 8pI % AA"   8pI0JH"hʍ "pI ザAA" 8pI0(: : 8pI0oH"h8 pIG: HH"h8pIゑ8 pI8pI0: : HH"pI: ʍ: : : : : : : <:8pI0H: H"h8 pI[HH: HHH"hHH"pI: vHH"hʍ8pI0NHHH"<8pI0 HH"ゲHHH": :e HH"h8pI % AA" 8pI % AA"  8pI0JH"hʍ "pI ザAA" {i+k The game is a draw. You win!  Computer wins!  The game is a draw.  Computer Wins! You win!  Illegal Move ;8[i8{iH{iH "5{iH{iH "{iH{iH "{iH""h{i+;ik ;8[i "H{iH"hͥ͂.+(%""HHM"{iH"l8pI  8pI % 8pI % 8pI % "" c`]ZWTQ8H0@ CH`BBBB&DCC&DC C C&D&D&D&D&DCC&DCCCCCC&D&DC {i+k ;8[i  `y '{i+k ;8[i""""""{i+kH;i{HH ;[ H "H"hHHH "hhH "HHHH "hhe: "k ;[HH"HH"""k"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 ;[HH "h h +k ;[HH "h h +k ;[;8 ")) )))));i+k ;[ H HHHHH "+k ;[;8")) ;i+k ;[;8" ;i+k ;[;8+" ;i+k;8 ;[.0*, & ( "$ ;iH"+;ik ;[;8 " ;i+k ;[;8 " ;i+k ;[;8 " ;i+k}xsn i d _ZUPKFA<72-(# "#'( )*";i(kDD Epa*F bh*FR;;~;;2@CF3MP^a d3MpMz3MM  3MM3MM  3MM"0363MBMLZ]`3MlMv3M*F1ER(>zNN K ] q       4 A [ p  N W U  Q Q Q1 E LN YV L_ [g Lp ]x L _ Y Y  W U  Q   B LV _ Ls  a     $ 8 = @ C F V a d g         /7BRUY\qtx{"*F&),d/d5*F9B<B?BQ HUXg*Fuz}    !#%')+ -&/,12385>7A9D;G=J?M P SAVC\EbGhInKtMzO}QSUW !+.9C $*FDw*FCC*FGS-V-\*F|*F#&,*FL55*F*FO[^d*F*F+S.S4*FT*F*F$WcZfZl*FSS*F'8I`~!!*F!!*F!T`!c!i*F!!*F$0!3!9*FY!!*F }! }! *F) \ h o!k o!q *F   j! j! *F ,!=!N!Q!WU!U`!";"M"/P"/V"*Fv"""/"/"*F"##/ #/&#*FF#y##/#/#*F###/#/#*F$I$L$/q$$$/$$%/'%Z%]%/%%%/%&&/8&k&n&/&&&/&!'-'1'5'RP'*Fp'''''R'*F'%(1(5(9(RT(*Ft(((((R(*F())5)9)=)RX)*Fx)))))R)*F)-*9* =* A*R\**F|*** **R**F*1+4+/Y+++/+++/,B,E,~/j,,,|/,,---w/-w/#-*FC-v---M---------------S.. ".0.S6. 9. S.a.Sg.j...S....S....S../%/S+/./H/V/S\/_/m/0%0706:06@0*F`0006060*F0016 161*F01c1o16r16x1*F1116161*F232?26B26H2*Fh2222226262*F393<36A3}6p333333x63x63*F4A4D4v6I4t6x444444o64o65*F!5T5e5}5M555M555M55M55M56M6*6/6/6n5165365565765965S6V6WZ6Ue66*F6v7tO7tO7(Mo8tO8M8tO929Y9f9|9:9:999999#:4:8: <:A:aO:S: W:\:du:!y: :::::7:::h::/:!-;R;a;e;ah;ak;y;|;;;;B;B;6;;;a;a;;; ;;a;a;;;;a;a;a;;;;<(?>E>I>N>Na>m>p>>>>>>>>>>>>>>>>>> ????6?:?a=?a@?Z?^?aa?ag?k?o?u?x?{?????N????????a?a??????? #@'@.@ >@B@F@J@ N@Q@Z@d@i@ap@as@av@|@@@@@A@A@6@@@@AAAA6 AA7Aa:Aa=AKANAWAZA]ANmA~AAAAAA6ABtOBMBBBh:BC: CW$CU/CBCCBCE;CCCBCBCBCBC&DCCCCC&DCCD CD CD&DD&D D&D D&D D&DDCDCD&DDCDCDCDCDCDC!D&D#D&D%DC*DNDQDTDWD_DdDlDrDxD~DD D DD DDDDDDDDD DDD to select, to execute.Extract MacBinaryADe-compress PackIt BMacPaint => hires8] View fileZProDOS commands IQuitA eALA B ILQ B IL Y`HB& bC`The resulting files will be placed in the current prefix directory. If you aren't sure what the current prefix is or want to change it, press now and select the "ProDOS commands", otherwisePress -> ((((PPPP QTWCii0 E\CXC FLC_CYC^C GE^C^CZC_Czia DLC`CaC PD[C0 PDii `CaC`8ei`LCɍ7ɛ>ɠ<ɈYɕ?ɋQɊ7 Dש H .E0$ .E0h8`WCZ`8`ILC DLC DLDLCHHHH +EhhhhLvCl#C8Hh`XC(`^C E\CXCWC!C C C_C\C F[C0+_Cɀ PDLE E\CXC Fii_C _C#C`?C'C`]C]C#`@) M\C(]Cݩ(` List:  Prefix is: Prefix directoryOnline volumes Select volume: Location:  [reread volumes] Directory: @  Type & other info: Select file or [set prefix here] [select this dir.] [enter filename] LockOUnlockORename0ODelete&O  File does not exist. Options:Try different nameCreate subdirectory Make new fileyF    `H I H O H O @yFyF@yFFB bCí#C0L6J H OF<фЩ өҠL J)~HъiȩЊȩЈȑЈ8eЅХiѠȩӑhJJJJ) ȩȩđȊ**iТȑi ХiѥiLsIТ bCL>I#CLOIІѠШЙ H OHH H O/GЩѭ x"Gș H H O8HHHHHHMHQN!HVNȭH8VNHHQNHLJM M ) ș@# M$ M% M& M MLLMʎM ӭMiҠLTLЊ)ҨȑЈАiЊ)ȩРieЅХiѠР <ЩȑРРЩР ЩЩ̠ РҠТNNȽ)NȽ=N M Ҡ MҠ MҠР MҠР MҠР MiХiѭMMMM M0MmMҥiLNK H OMM өLNK HТ bC ɯL6J8`#C$C %C&CZӄҮmҝ#C L6J` IH bC ML6JLL HL6J?Cѽ'CЩ(?Cѽ'CРSWBS XS 4V -R gV -R ̔Q`pp$R,RQRR2 R ORm0VRRm1VRRm2VR R R O`2V 1V 0V +R R O R R O`2V1V@@LR1V0V R(RR'R80VR0V1V R1V2V2V R O #R OLpRR)R)iRRR`Not a MacBinary file. Press T; UFS0:A [ `)_LS.FSADGSSFTf U>SeUT UBSeUT UVSWST bC`>S ?S @ST bCڭ#CVSBS CS DSU( bC#CWS` Macintosh filename: ProDOS name to use:Filetype: BLAH Creator: BLAH Data size: 12345678 Rsrc size: 87654321  Press  Data fork:Save as TXT fileSave as BIN file Don't saveResource fork: Don't saveSave as BIN file@d B' iUgUzU4fUrU*eUjU 8eUjUeUfUrUfUgUzUgULUiUiU `VVV`FSFS FSFSV>S0VVS8` V VGLO VV`LVBS0VRSF WWS8` V VGLO VV`SFWD UW3 bCl#C8`NSF WLVFSVOV W +V OLV V O VGLO VV`LV  ȩ.Ȋ` The file:already exists. Cancel saveVRename this fileVRename existing fileVDelete existing fileV`HaHHWW W Oahha`h`X W*X`ii&&` X Wȑ Xȩ`^ȭ_ X^ȭ_ XHH &XhhL&X^_`XX X W LX XȱXX`li Xl`HHWX X Ohhl`d^ W OWXYW X OhidP eM#Efngd W`Z bCLQYfag4gLYia^`_ &X X^LYh Y Ob@TDTL>SPBS XS 4V Z gV Z X XL YmmYYWY+0V 1V 2V` X80V0V1V1V2V2VLZ2V 1V 0V Y`0V1V 2VYYi XmL{Z Y O Y O80VY0V1V1V2V2VL9ZAn invalid PackIt IIheader was found. Press pMH I`\ bC#CZZZZZZ)\ bCͭ#CZ$CZ Z OZZZ / XZ  Z3LH XhLO Zɍɛ `pZ5)  L[ \ \8ZZZZ ZLm[Z ZZ A Z Z HL\ ZZ Z L9\ \Z \ ZmZZZiZZiZmZi8ZZZZZ0 ZL[Lm[0`ɛ ɛ` ZhhL[ ɠ \ \`L View file as:Text Hexadecimal 80 column 40 columnH I` #] O(]*],]1] s_ȑ  ]L] ^ʭА ]_ bC )]`0i`&^'^(^)^(^(^)^0'&^'^ Z^S`)^&^'^ Z^&^'^ ^S`^p^ n^ n^^.^^.^m^m^pɿ` s_/]-]ȱ.]8-]4]ȱ.]5] 5]P4] +] 0]H PchLO0r_dH"r_0Ir_r_dHr_0ɠqȑiȑ@d S_ S_H S_ S_ S_` V_ Y_I Hj Jȩ@h`&ii`    MacPaint picturehas been loaded.  When using either of the 'View' commands, use the or to movearound the picture. Hold down either theOpen or Solid Apple key to move faster. View page (1/4 size)Wc View screendSave screen to diskPe((((((((((((((((((((((((((((((((PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP $(,048< $(,048"&*.26:>#'+/37;?#'+/37;? $(,048< $(,048"&*.26:>#'+/37;?#'+/37;? $(,048< $(,048"&*.26:>#'+/37;?#'+/37;?Ha ,%c'c!b%c(&c'c %c&c'chɍɛ8`Ɉ$ɕ-Ɋ6ɋH)$6 DL7b8%cLcm%cLcm&cm'cLb8&c'c0 ``0 ++``PRW^) ) `Q_` (c`}ac ] )cJJJ) cc转 ) ccJJ) cc转 ) ccJ) cc转 )@ cTiicരLcc ]`za`{a dsa3bra2b ddJndJnddi/d`}a d d0ഐǢ 7bLc Pc`JiJii di d d d @` (c`wa+e ](+e ] 7b Pc`HIRES.A,e ,e  e bC 4eG&LO` @e OEeGeOe Fe O Ne`3ei[A3eLYe    -=[SAVING SCREENS]=- What you're about tosave is the the lastdisplay generated by the 'View' commands.  The screens that you save will go in the prefix directory andbe named as HIRES.A,HIRES.B, .C, etc. You can then rename them as desired withthe ProDOS commands.Press  Press  Press  Press  Press  Press  Press -=[ MacDown 1.0 Copyright 1988 Jason Harper ]=- MacDown is a utility for converting some downloaded Macintosh files into formats usable on Apple II-series computers. It will run on any Apple II that supports ProDOS (in other words, at least 64K memory), but the screen displays will probably not be readable on an Apple ][ or ][+, even with a lower-case adapter. The program is freeware, meaning that it is a copyrighted work but I give users the right to freely distribute it and upload it to computer  services. => Why Mac files are a bit difficult to work with. The Macintosh has a very unusual file system: its files, instead of being a single sequence of bytes as most computer's files are, consist of two completely separate sequences of bytes plus a substantial amount of information about the file, such as the format of data it contains and the program that created it. The two components of a Mac file are referred to as the 'data fork' and the 'resource fork': the data fork contains arbitrary data much as other computer's files do, and the resource fork contains a series of discrete data items ("resources") such as icons. A Mac file may be missing one or both forks: document files tend to be mainly data, while program files tend to be mainly resources. This file arrangement makes it impossible to simply send a Mac file via modem: there must be some way to recreate the two forks and the file's directory information. Early Mac communication programs actually transmitted files in three pieces which were glued back together at the receiving end: this works when connected directly to another Mac, but non-Mac host computer systems generally are not prepared to handle such files. So, a standard was developed to allow all the parts of a Mac file to be appended into a single data stream, with imbedded information to allow the original file to be recovered unchanged... => The MacBinary standard. All current Mac communication programs now automatically convert transmitted files into MacBinary format, and rebuild received MacBinary files into an exact copy of the original file. The format is quite similar to the Binary II format used for transfer of files between Apple II computers (which was based on MacBinary): the transmitted data starts with a 128-byte header containing the file's directory information and the length of the two forks, followed by the data fork (if any) rounded up to a multiple of 128 bytes, followed by the resource fork (if any) also rounded up. There are provisions for tacking on additional information at the end, but this is seldom (if ever) implemented. Using MacBinary files downloaded on an Apple II isn't very difficult: since most Mac files that are meaningful on other computers contain only data and no resources, just stripping off the first 128 bytes of the file is sufficient. This can be done (on files at most 32K long) from ProDOS Basic with the commands: BLOAD mac.file,Ttxt,A$1000 BSAVE mac.file,Ttxt,A$1080 replacing 'mac.file' and 'txt' with the downloaded file's actual name and filetype. The process gets much more complicated with longer files, and there are other problems to worry about... => Compressed files. Mac files tend to be pretty large, so it is a common practice to apply some sort of compression to them. There are two compression methods in current use: PackIt and StuffIt. Such files can be easily identified because their names will end with .PIT or .SIT, respectively. Another advantage of using these schemes is that related files (a program and its documentation, for example) can be packed into one file for transmission: unlike Binary II, the current implementation of MacBinary does not allow for multiple files. StuffIt is the more recent and more efficient of the two formats: unfortunately, its author has not seen fit to release enough information on the format to allow decoders to be developed for other computers. PackIt is, however, publicly defined and MacDown will allow you to decompress such files for use on an Apple II. => Mac file formats. Mac files are identified by a 4-character filetype code and a 4-character creator code: for example, a MacPaint picture has filetype=PNTG and creator=MPNT. A MacPaint-format picture generated by some other program will still have a filetype of PNTG but will have a different creator. Some common types: * PNTG: MacPaint picture. MacDown will allow you to view these in HiRes graphics. If you have an Apple IIgs, see my SHRConvert utility which will convert these files directly into several IIgs SuperHiRes formats. * TEXT: plain text. Usable with any Apple II program that deals with text, although some Mac characters (accented vowels, for example) will not translate properly. * APPL: application program. Totally useless on a II. * PIT : PackIt-format compressed file. * SIT!: StuffIt-format compressed file: currently unusable. There are numerous other Mac file formats, such as word processor documents, that could be used on an Apple II if someone would write a converter for them (hint hint). => Using MacDown. MacDown is a ProDOS SYStem program, so you can run it from Basic by typing "-MACDOWN" (without the quotes, of course). The program should be fairly easy to use: it is controlled entirely with the arrow keys (to move the hilighted selection up or down), Return (to accept the current selection), and Escape (to go back to the previous menu). The trickiest part is the file selector routine used in various parts of the program: I'd suggest that you put an unimportant disk in a drive, select 'ProDOS commands' from MacDown's main menu, and play with it for a while. Pay close attention to the [set prefix here] option at the top of each directory listing: you must use that command at some point to select where you want converted Mac files to go. If you're trying to put converted files on a different disk, both disks must be online at the same time: disk swapping is not allowed. All downloaded Mac files should first be processed with the 'Extract MacBinary' command. If the file is PackIt-compressed, you should then use 'De-compress PackIt' on the extracted file. You can then use 'MacPaint => hires' to display any picture files. For each file produced by the conversion process, you will be presented with some info about the file, and given options to save or not save each fork. You generally won't want to save the resource fork of any file, since it is not meaningful on an Apple II. Data forks will be saved with the closest ProDOS equivalent to the original Mac filename: resource forks will be saved with the same name with '.R' appended. If a name conflict arises, you will be given options to cancel, save with a different name ('.N' will be added to the name), rename the existing file ('.O' will be added), or delete the existing file. Note that PackIt files will take a long time to process, even if you aren't saving either fork. => The end. Thanks to George Photakis for beta-testing this program. Please send any questions, comments, bug reports, gripes, or suggestions (or large sums of money, for that matter) to: Jason Harper CompuServe: 76703,4222 (preferred) GEnie: JR.HARPER 1480 Michelle Ct. #A Colorado Springs, CO 80916  ,@ K  N  h")) 9H,"`NgggG`2"hh"hHH "`%  "hh""HH"h"""`HH"aH"HH"k  "hh?:""`HH "` ! "hh`HH"H "᭤HH"kHH "`>>@\N1X --About this program...\N256 --Help\N257*Hh .>> File \N2 --Choose Printer\N258D --Page Setup\N259D --Print\N260DV --Quit\N261*Qq .>> Choose Font \N3 --Select\N262*Ff . OK6 FONT VIEW Copyright (c) 1987 James R. Frison Preliminary version for use by Washington Apple Pi members only. Not for distribution (yet) or sale. Please send comments/suggestions to: James R. Frison 3813 Washington Blvd. Arlington, VA 22201 or leave a message on the TCS. Shareware version available Jan. 1988 See the Help menu item for further info. 2FPlease wait while fonts are loaded...NW!l Font ViewABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz5XN# xHelpFONT VIEW provides an easy way to look at the variety of fonts that are available for the //gs. As you obtain fonts, load them into the SYSTEM/FONTS folder of a system disk and boot from that disk. Launch this program and you can then see what the fonts look like in various sizes and styles. This is a shareware program. If you find this program to be useful, send $15 to: James R. Frison 3813 Washington Blvd. Arlington, VA 22201 Please indicate what version of the program that you have. Your $15 entitles you to a free upgrade of any future versions. USING FONT VIEW Select Choose Font from the menu bar. A dialog box will appear which lets you select a font and its size and style. The Fonts window displays the fonts that are available. If you have more than six different fonts in the SYSTEM/FONTS folder, use the scroll bar to see all of the fonts. Click the font that you wish to view. The Style window contains checkboxes for choosing the style of the font. You may combine the Bold, Italic, Underline, Outline and Shadow styles. Selecting Plain will de-select the other styles. Note that some fonts cannot be displayed in some styles. For example, Shaston 8, the default system font, cannot be displayed with underlining. The size window shows the font sizes available. The scroll bar can be used if more than six sizes are available for the selected font. You can also enter a size. The system approximates fonts which are not in the available sizes. There may be a slight delay in displaying these fonts and they usually do not appear as well as the available sizes. SOURCES FOR NEW FONTS The //gs System Disk comes from Apple with six fonts: Shaston, Courier, Geneva, Helvetica, Times and Venice. Many other fonts can be found from various sources. First, check the SYSTEM/FONTS folder of the programs that you buy. Word processing software often has other fonts. Check with your local Apple users group. There may be public domain fonts that the users group or its members have that you can obtain for free or at nominal cost. Online services, such as GEnie and CompuServe, have fonts that you can download. NOTES/HINTS/SUGGESTIONS The screen display does not always give the best view of fonts. Most look better when printed. The larger sizes (if available) give the best impression of what the printed font will look like. A future version of FONT VIEW will permit the printing of font samples. Although other values can be entered, the values 6 to 72 seem to be the limit for most fonts. Fonts sometimes revert to a smaller size when a large value is entered. Fonts take time to load. The more you have on your System disk, the longer it takes to boot the //gs. FONT VIEW provides a way to select the fonts you want to have stored in your boot disk. If most of your programs do not use fonts, keep a minimum (or no) fonts in the SYSTEM/FONTS folder. This will speed up booting of your //gs. For programs which use fonts (word processing, for example) create a separate boot disk which contains your favorite fonts. ""h"  H " hhHH" iHH" "E8  8`HiH" H" 9""" "᭒HiH" HiH" H" "-" "K-" "-" """h*" P" HiH"  "`"h -`ggggggggggggggggggggggggggg`""""""""""""᭒H"᭒H""``"Sorry, fatal error encountered " " }Ieux"h`Please insert the boot diskOKQuite*/@ U 'a1W WChK})I/e5u;xe  (.9;=?ACEKXcg{*-4AEZ #0?Vjx -0GJXk" (-/13579;=?ACEGIKMOQSUWY[]_ace,28>L@"A P8CDA: Copyright 1987 David A. Lyons This program is Shareware from DAL Systems P.O. Box 287 North Liberty, IA 52317 [CompuServe 72177,3233] It is copyrighted and NOT in the public domain. It may be distributed freely, but to use it legally after a 10-day evaluation period you must send $10 to DAL Systems [IA residents add 4% sales tax]. Your honesty will allow me to keep distributing low-cost software. There should "$%&'()*be a documentation file with this program. [v1.1] Press a key  / XύXoɛɿNޜ8 / X" LD%APPLE IIGS REQUIRED. a..b..0 - ' -  #U \%7 6# \#. |# #))ɹ \% @$`.8 ǯ.0`.8 Ư.0`0 )/0`z...8 Ư. ǯ. Ȳ.ޭ....+. ʸ.ŭ#..$.:.m... .0`8,.0- ʸ.) $n.0`0)L8`08`.!.. ...). .`8 .0` I# |# # $ # % @$y @$8 ȩ$$$$L .H 6h XL 0)H" 0 $0`08` P8CDA.SYSTEM01%0`80`.SYSTEM8 X eL%X-D.8 C.0)ӭG.)ɹ˭D.P &w.Hu.H" J %`` H %w.u.)i H :Hk0`0)0H8 c.0h,VL%V.ڢ "hk. -8 U.ޭZ.d.\.f.&'0 Z&8 c.0` & 'm.o. +' q&`&.).{. .{.mm.{.mo.m.m.o.m.i.g.o.m.8 e.0`08`o.m. ,2 :'9. w.u.9. m. q&`)'''8 %'0` , ' M(`HH!.H.Hk.H,.HHH "hh . `9. ..}. . 9.,``0 "کHHH "hhکHHH "hh,.کHHH@  "hhHHH@  "hh5 5`@ s+@))8$",8`JsZ7q. s+q.@ s+@q.H+"mq.ms.`q. s+ q. mq.ms.`) s+)))) ) s+)m}.))m.) ))m}.)m.H ;[0)%50)+hh`)0)+hh`0))+hh`)0+hh` )  N)n)`)).)`I* s+N*S*U*M*)Q*M*I* s+O*,b`I*)Q* S*y)U*y) )))U*S*K*m}.M*m..}.. s+΅.. . *` c+ )e`. c+ *΋.``.N\| &8 } }`8 w`m}.́.`m}.́.ȷ) m.  `ȷ) }  ` ΅.p+ s+` |+`z_.].8 [.0`08`0&.)- #.0L)D?:50+&+.0-()  (`#.)(8`(8+.`,. |+`A.mm.g.o.ii.8 e.0&.)8%.)< +# 7. ,/.61.1`Hڢ" '- &.)@- %.)-ѩ-P8CDA: NIL segment base P8CDA: INTERSEG filenum<>1: P8CDA: Fatal error=P8CDA: Bad record type=P8CDA: Bad NumLen=P8CDA: Bad ORG P8CDA: Bad segment kind=P8CDA: Bad OMF version=P8CDA: Filetype not CDA: (P8CDA: A CDA tried to call ProDOS 16. 8. XI - X0`V.8. 0`..`\.0r-X  SYSTEM/DESK.ACCS =============================== DAL Systems Documentation for P8CDA v1.1 P.O. Box 287 North Liberty, IA 52317 by David A. Lyons 22-Dec-87 =============================== [CompuServe 72177,3233] ---------------- Shareware notice ---------------- P8CDA is Shareware for the Apple IIgs. You are encouraged to give copies of it to users groups, friends, bulletin boards, enemies, any whatever else you can think of. Try it out for ten days. If it's use+-./0123456789:;<=>?@ABCDful to you, send in the $10 registration fee. Your honesty will allow me to continue distributing low-cost utilities for the Apple II. I want to know what you think of P8CDA! ----------------------- Update from Version 1.0 ----------------------- P8CDA v1.1 makes a patch to ProDOS 1.4 (in RAM, not on disk) to prevent "MLI Error $FF" messages or other strange behavior in CDAs which check ProDOS's "busy" flag before making ProDOS calls. See the "ProDOS busy-flag bug" section below for more details. Also, ProDOS 16 calls are now trapped nicely. Instead of getting dropped in the monitor when a CDA tries to call ProDOS 16, you get the message "P8CDA: A CDA tried to call ProDOS 16". Finally, a bug was fixed which sometimes caused Fatal errors ($0040, bad pathname) when CDA files had been *deleted*. (P8CDA v1.0 was trying to load them anyway! Sorry about that.) -------------------- Typical Installation -------------------- Most users will want to insert P8CDA as an invisible part of the boot sequence on a ProDOS 8 disk. Any kind of ProDOS disk will work (3.5", 5.25", Hard drive, RAM disk, ROM disk, or whatever you have). -- Copy the P8 file from the SYSTEM directory of a ProDOS 16 disk into the main directory of your ProDOS 8 disk, and call it PRODOS. (This is *not* the same as the file called PRODOS on a ProDOS 16 disk.) -- Put P8CDA.SYSTEM in the main directory, and make sure it's the first .SYSTEM file. Create a SYSTEM directory, and create a DESK.ACCS directory inside the SYSTEM directory. -- Put all the CDAs (filetype=$B9) you want to load inside the DESK.ACCS directory. IF YOU HAVE TROUBLE, START WITH JUST A COUPLE CDAs AND ADD THEM ONE AT A TIME, REBOOTING EACH TIME TO SEE WHICH CDAs ARE CAUSING THE PROBLEM. Then refer to "What should I do if my CDAs don't work?" below. -- Put the .SYSTEM file you want to boot into *after* P8CDA.SYSTEM in your main directory. -- Reboot, and you can use Apple-Ctrl-ESC to get to the Desk Accessories menu! [Hold down the Apple key during boot to get a title screen for P8CDA.] Once P8CDA loads your CDAs, it scans the main directory for the first .SYSTEM file *after* P8CDA.SYSTEM and runs it. (If you change the name to something other than P8CDA.SYSTEM, it won't be able to find itself.) If P8CDA can't find another .SYSTEM file to run, it just does a ProDOS "QUIT" call. If you have a fancied-up QUIT patched into your ProDOS, this may actually be desirable. ------------------ Installation notes ------------------ If you already have other .SYSTEM files in your directory and do not wish to change their names, there are a couple of things you could do: (1) If you have a utility that lets you rearrange entries in your directory, use it to put P8CDA.SYSTEM first. (2) Otherwise, use any program that can COPY files to make a second copy of the first .SYSTEM file in your directory, and give the copy a different name. Then DELETE the first copy, copy P8CDA.SYSTEM onto the disk [it takes the place of the file you just deleted], and RENAME the copied file back to its original name. Of course, if you have another program that behaves like P8CDA and runs the *next* .SYSTEM file, P8CDA.SYSTEM does not need to be first! But it still has to come before any program that doesn't run the next .SYSTEM file. The SYSTEM and SYSTEM/DESK.ACCS are already present on a ProDOS 16 disk; P8CDA uses the same names to (1) avoid confusion, and (2) let you make a copy of your favorite ProDOS 16 disk and just delete all the stuff you don't need; the CDAs will be in the right place already. ---------------------- Alternate installation ---------------------- If you have a utility like SETUP.SYSTEM (see November, 1987 Call-A.P.P.L.E., pp. 14-23), you can put P8CDA.SYSTEM in your SETUPS directory, and put all the CDAs in there, too. When P8CDA sees that the Prefix is not set to the main directory, it will look where the Prefix is set (instead of in SYSTEM/ DESK.ACCS). You can also put both SETUP.SYSTEM and P8CDA.SYSTEM in the main directory (and put the CDAs in SYSTEM/DESK.ACCS). If you do this, you will have to put P8CDA.SYSTEM *after* SETUP.SYSTEM. This is because SETUP.SYSTEM is a bit lazy; it runs the *second* .SYSTEM file in your directory. This scheme will fail if SETUP.SYSTEM *is* the second one! If you put SETUP.SYSTEM first, it will do its thing and then run P8CDA.SYSTEM. P8CDA will do its thing and run the .SYSTEM file *after* itself. ----- Notes ----- If you hold down the Apple key while P8CDA is running, you will see a title screen with a Shareware notice. Near the bottom of the screen will be a _version number_ and a "Press a key" prompt. When you press a key, P8CDA continues and displays the name of each CDA as it is loaded. If you are getting any error messages when loading your CDAs, this will let you find out which CDA was being loaded when the problem occured. Error $0201 means all the available RAM is in use. Solutions, in order of preference: -- Decrease the size of your RAM disk (/RAM5) if you are using it. -- Get a bigger RAM card. -- Don't load so many CDAs. -- Hold down the Option key while P8CDA is loading. This allows the CDAs to use the last 16K of the super-hires display. [This feature is intended for IIgs owners with only 256K. If you have a RAM expansion card, decreasing your RAM disk size is a much better idea.] If you will be running any programs that use Super-hires, do NOT hold down Option while P8CDA is loading! -------------------------------- Using P8CDA from a command shell -------------------------------- If you have a command shell like Davex or ECP-8, you can run P8CDA from it. If you pass a pathname to P8CDA, it will try to load the specified CDA. If you don't pass a pathname, it will try to load all the CDAs in the directory your prefix is set to. Once P8CDA does its thing, it returns you to the command shell (by doing a ProDOS "QUIT" call). --------------------------- Does it work with ALL CDAs? --------------------------- No. The major source of trouble is CDAs which call ProDOS 16 when they are initialized without first checking that it is available. If this happens, you will be get an appropriate error message. CDAs containing dynamic segments or initialization segments will not work with P8CDA. --------------------------------------- What should I do if my CDAs don't work? --------------------------------------- If you find a CDA that tries to call ProDOS 16, contact the CDA's author and explain that the CDA should check that the value at E1/00BC (1 byte) is $01 before making any ProDOS 16 calls. [See _Apple IIgs ProDOS 16 Reference_, APDA Draft of 13-Nov-86, p30.] (The assumption that ProDOS 16 is available when a CDA is loaded is a pretty reasonable one. But under P8CDA, it is false.) If you find any CDAs that don't work with P8CDA (and don't crash at E1/00A8 or display a reasonable error message), I want to know about it. (If the CDA is public domain or Shareware, it will help if you send me a copy or tell me where to download it.) Nifty List v2.1 (and some earlier versions) recklessly calls ProDOS 16 to load its data file. Nifty List's author has promised myself that v2.2 will behave more politely . -------------------- ProDOS busy-flag bug -------------------- P8CDA (v1.1+) patches ProDOS in RAM (not on your disk) if the "MLIACTV" bug has not already been patched in your copy of ProDOS. The bug results in bogus "MLI Error $FF" messages from CDAs which check the MLIACTV flag before making ProDOS 8 calls. ProDOS 8 1.4 often leaves this flag set even when ProDOS is *not* busy. The patch consists of changing the byte at $DE8F from $0E (ASL) to $4E (LSR). P8CDA makes this patch only if $DE90-1 contain $BF9B (the address of the MLIACTV flag). [All of this is in the "$C08B" bank of the language card space.] To permanently patch this and other bugs in ProDOS on your disks, use the PATCHP.FP program available from DL1 in CompuServe's APPLEII forum. ----------------- Technical details ----------------- P8CDA supports the old (v1.0) and new (v2.0) Object Module Formats, and multiple-segment CDAs are supported. However, only static code segments and static data segments are supported. Dynamic segments are not supported and will not be. Init segments are not supported, but could be if there is a demand for it. There are no CDAs that I know of that use dynamic segments or initialization segments. ROM 01's InstallCDA function returns error $0F05 rather than $0501 when the Desk Accessories menu is full. Weird, eh? (This happens only when the ROM is used "cold," not when TOOL.SETUP has been loaded.) P8CDA does not report any error if the Desk Accessories menu is full. If $0800..BFFF in banks 0 and 1 is not allocated, P8CDA requests a $30xx ID (from the miscellaneous toolset) and allocates that RAM with NewHandle. If you hold down the Option key, P8CDA allows the CDAs to reside in "special memory." In this case, $E0/2000..5FFF and $E1/2000..5FFF are allocated, and shadowing for the Super-hires display is disabled (bit $08 of the Shadow register at $C035 is set). The end result: holding down Option allows 16K of extra RAM ($E1/6000..9FFF) to be used for CDAs. --------------------- Multiple-segment CDAs --------------------- Most CDAs consist of only one segment, but P8CDA can load CDAs with up to 255 segments. Note that Glen Bredon's Master CDA does NOT support multiple- segment CDAs, and cannot reasonably be expected to. (The Master Builder program would have to change the segment numbers on all inter-segment references in the CDAs; for SUPER records in OMF v2.0 CDAs, this would usually result in some segment numbers greater than 12, which cannot be represented in SUPER records!) Once a Master CDA is built, it *is* a multiple-segment CDA, with one segment for each CDA it controls [so it can't be used inside another Master CDA!]. CDAs produced using TML Pascal have at least two segments, so they do not work under control of a Master CDA. (TML Pascal v1.1 has a $CDA directive that allows CDAs to be generated easily.) --------- Addresses --------- Apple Programmers and Developers Association (APDA) 290 S.W. 43rd St. Renton, WA 98055 (206) 251-6548 Glen Bredon 521 State Road Princeton, NJ 08540 [CompuServe 72245,636] TML Systems 8837-B Goodby's Executive Drive Jacksonville, FL 32217 (904) 636-8592 ------------- Advertisement ------------- Shareware currently available from DAL Systems: -- Davex, a ProDOS 8 command shell and program launcher. A description (DAVEX.TXT) is available in DL3 on CompuServe's APPLEII forum. [The program itself is also available in DL3, but it is very large.] Registration fee: $25 (Specify 3.5" or 5.25" disk.) -- Nifty List, an Apple IIgs debugging/browsing CDA for ProDOS 16 software developers and the terminally curious. Available in DL4 on CompuServe's APPLEII forum. Registration fee: $15 -- P8CDA, a SYS program for loading [most] CDAs on the IIgs without booting ProDOS 16! Registration fee: $10. [IA residents add 4% sales tax.] These may be ordered directly from DAL Systems. For sending in the registration fee for the products costing $15 or more, you will receive the latest version of the product, and you will receive the next update free. [Future updates will cost $3 if ordered directly from DAL Systems.] Technical support is available by mail and on CompuServe. For products costing $10 or less, your registration fee buys you the right to legally use the software and any future versions. You will be entitled to technical support and notified of any updates. -------------------------- End of P8CDA documentation -------------------------- F D$(4):DS$"--------------------------------------------------"DC$(100),SP(100),FT(100),ST(100),FL$(100),CH(100),FT$(255),ST$(100)D$"PR#3"A$"0123456789ABCDEF":X015:Y015:FT$(16XY)"$"(A$,X1,1)(A$,Y1,1):Y,X (Y:X1Y:A,A$:FT$(A)A$:X 254,0,"All",1,"BAD",2,"PCD",3,"PTX",4,"TXT",5,"PDA",6,"BIN",7,"FNT",8,"FOT",9,"BA3",10,"DA3",11,"WPF",12,"SOS",15,"DIR",16,"RPD",17,"RPI",18,"AFD",19,"AFM",20,"AFR",21,"SCL",25,"ADB",26,"AWP",27,"ASP",171,"GSB",172,"TDF",173,"BDF"EGHIJKLM 4177,"OBJ",178,"LIB",179,"S16",180,"RTL",181,"EXE",182,"PPI",183,"PTI",184,"NDA",185,"CDA",186,"TOL",187,"DVR",191,"DOC",192,"PNT",193,"PIC",200,"FON",225,"WAV",226,"DTS",238,"R16",239,"PAS",240,"CMD",249,"P16",250,"INT",251,"IVR"$ 6 253,"VAR",254,"REL",255,"SYS",176,"SRC",252,"BAS"H _NO$(24)(14):MT$(15)(27) d:" _____________________________________________________________________________":MT$;"Z";:36,78:"_": nMT$;"Z";NO$;" ";MT$;"@";NO$" Finder Fixer 1.1 ";MT$;"@";NO$;" ";MT$;"_" x"Z";NO$;:36,18:"(C) 1987 Matt Deatherage/Permutation Software";:36,78:MT$;"_" }MT$;"Z";:36,78:"_" NO$;" ";MT$;"LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL" 34,6:NO$2 :D$"prefix":PF$ %"Current prefix: ";PF$:"Enter new prefix, or press to keep the current prefix":":";PF$ *D$"prefix "PF$ /D$"Catalog,t$CA" 4:"Enter the name of the icon file to analyze:";IC$ 7IC$""ī135'9"Processing file..."P;3:36,8:MT$;"C";:36,69:"C";:NO$gSP26:IS16384:N0 MAIN PROCESSING LOOPIS16384D$"bload ";IC$;",t$CA,b";SP;",a$4000,e$6000"LN(IS)(IS1)256LN01120 CB(IS2):X$"":CB01100M$NN1:X1CB:X$X$((IS2X)):X:DC$(N)X$:SP(N)SPIS16382c.CB(IS66):X$""8X1CB:X$X$((IS66X)):X:FL$(N)X$:X$"*"FL$(N)"All"BFT(N)(IS82)(IS83)256:ST(N)(IS84)(IS85)256LISISLNVIS24576SPSPIS16384:IS16384:1020$[1030I` Fix ST$ array for hex subtypesrjX1N:ST(X)0ST$(X)" All ":1140lX$"":AST(X):Y13nB((A16)(A16))16:X$(HX$,B,1)X$oA(AB)16:Y:X$"$"(HX$,A,1)X$pST$(X)X$tX3:36,8:MT$;"@";:36,69:"@";:NO$a34,6:N0ė:"There are no icons Finder Fixer can fix."::20000:"There are "N" icons Finder Fixer can fix:":"No. Filename Typ Stype Pathname"%(DS$,4);" ";(DS$,16);" ";(DS$,3);" ";(DS$,5);" ";(DS$,47):34,100X1NLX$(" "(X)".",4)d(DC$(X))47ī1242X$;" ";FL$(X);:36,22:FT$(FT(X));" ";ST$(X);" ";DC$(X):1245Y(DC$(X))11:(DC$(X),Y,1)"/"AY:Y1:Y;X$;" ";FL$(X);:36,22:FT$(FT(X));" ";ST$(X);" ";(DC$(X),Y):36,34:(DC$(X),(DC$(X))Y)((X8)(X8))(NX)ĺ"Press any key to continue...":16384,128X:"Enter an icon number (1-";N;"), L for the list or to quit:";:"";I$:I$"L"I$"l"ė:1205I$""ī200000I(I$):(I1)(IN)(I(I))ī1300H(34,6::"Icon #";I2:"Icon display information:":"-------------------------"::<"Filename: ";FL$(I)F"Filetype: ";FT$(FT(I))IX$ST$(I):X$" All "X$"All"K" Subtype: ";X$:(P"Current Application Pathname:":DC$(I)SZ:"Change this pathname (Y/N) ?";:I$Y\t_I$"Y"I$"y"ī1205dP$"":"Enter the FULL new application pathname (63 chars max)":":";P$:(P$)63ī1380fP$""ī1300i:"Writing change to "IC$"..."AnP1$"":Z1(P$):Z$(P$,Z,1):(Z$)96Z$((Z$)32)SsP1$P1$Z$:Zx16384,(P1$):Z1(P1$):16384Z,((P1$,Z,1))}ZD$"Bsave ";IC$;",T$CA,a$4000,b";SP(I);",l"(P1$)1DC$(I)P1$:"Change saved to "IC$"."(:"Press any key to continue...":16384,128213008N N"Press F for the Finder, R to restart, or any other key for BASIC: ";:A$*NA$"F"A$"f"ĺD$;"bye"4NA$"R"A$"r"ī800>N: INSTRUCTIONS FOR FINDER FIXER A utility from Permutation Software (C) 1987 All Rights Reserved Have you noticed that the Apple IIgs Finder (1.0) isn't really a Finder? On the Macintosh, the Finder will go out and "find" an application when you double-click on a document created by that application, if it's in ANY disk drive or folder that's currently mounted. In contrast, the Apple IIgs Finder will only look on the original disk (from theNPQRSTUVW manufacturer) for a program. If you've renamed the application, or have moved it into a subdirectory on a large disk or hard drive, then Finder meekly complains that it "can't find an application." Well, we can't make it into a true Finder without a complete re-write, but we can make it fit our specific needs. Finder Fixer is a program to let YOU specify where Finder will look for an application. Here's how it works: The Finder associates each icon with files according to matching rules. Each icon has a filename, a filetype, and a subtype stored with it. The "*" character serves as a wildcard for filenames; and 0 serves as a "match-all" filetype and subtype. When Finder encounters an icon file (filetype $CA in a subdirectory named "ICONS" located in the volume directory of a disk), it reads each icon and adds it to an internal table. If a file matches the full or partial filename, the filetype and the subtype associated with the icon, then that icon is displayed for the file. For example, the icon for AppleWorks word processor files matches all filenames and all subtypes, but only filetype $1A (AWP). The icons you see for specific programs (such as Thexder or MouseTalk) match the exact filename, filetype and sometimes subtype of the application program file. Each icon also has a "parent pathname" associated with it. If this field is left empty, Finder will try to launch the file whose icon you double-clicked on. If this field contains a pathname (up to 63 characters), Finder will attempt to launch the program at that pathname when you double-click on the icon. The parent pathname for AWP, ASP and ADB files is, not surprisingly, "APPLEWORKS/APLWORKS.SYSTEM". Now you begin to see the problem - if you have AppleWorks on a subdirectory, or have renamed it due to a patch (examples include MACRO.SYSTEM and SUPER.SYSTEM instead of APLWORKS.SYSTEM), it may make your productivity improve - but no one bothered to tell Finder. And since it can't go find it, it just quietly says "I can't find it." Finder Fixer allows you to change the parent pathname of those icons which have them. It is NOT an icon editor; it will not let you change the appearance of an icon or what files it will be shown with. It merely allows you to tell Finder where YOU want it to look for your favorite applications. It can be used on any icon file, including FINDER.ICONS (but PLEASE make sure you have an extra copy of this file before adulterating it). Finder Fixer will first ask you for a prefix, and will then show you all icon files available in that prefix. If there are none, pressing will allow you to pick another directory. Once you've picked the icon file you wish to alter, Finder Fixer will analyze it and present you with a list of icons with parent pathnames, if there are any. You may then change them through a straightforward procedure. You can quit back to the Finder (assumig you launched Finder Fixer from the Finder), or you can quit to BASIC, or go back to the beginning. You will also find an icon file in this Binary II package - it contains an icon for Finder Fixer. Simply place it in the ICONS subdirectory of your boot disk, and Finder will do the rest. This program is semi-shareware. There are to be no restrictions on its distribution, except that it may not be sold. However, if Finder Fixer enables you to use Finder when you couldn't do so before, you are CORDIALLY invited to send a small honorarium (no more than $5, please) to Permutation Software. We'll continue to try to write utilities like this (including some upcoming desk accessories and 16-bit utilities) if we don't starve to death first. The address: Matt Deatherage Permutation Software 750 Ridgecrest Ct., #1516 Norman, OK 73072-7530 Comments or questions may be sent in mail to the same place, or to: CompuServe - 72277,2476 MCI Mail - MDEATHERAGE AppleLink - D0634 Enjoy! */BASIC.LAUNCHER FINDER.FIXER003?_00UUUU??_00??00??000?000??????0XZ[??_00UUUU3_GRAPHICSuHUSTON!J ' '/CUBE.DIRECTIONS^ 0J 6 \+CUBE.PICKUPxJ 3*\CUBE.8X4Y\J!6 \*CUBINATION(NJ"!@\*SGT.PEPPERVAJ6/\FINDER.DATAbc\r/MAIN@PPU #POkpWTUL=\`goc/  SK{qq`g6&78vz|zh*###"' @>sixf[*F@p]pSb -8PHFNW   -4KKEQVTD2+0BLB]_`abcdefghijklmnopqrstuv*?D>.O[P$.2.$37/   ,8|}|03o.2~q|w|04kxu!(RTJWZDBBBDBDBFD EF B "B BEB#BDBBBB D BBBBBB BEDDBEFBBDBFBBEF B BE BBFBDE D DDBB B BBDDBFDBFDBFFEFDBBEBBBB FBB E BBBBBF BBDBBBBD BEBBFE BBDBBDF  B BBDBBEBBBBD EBBBBBBDBBBB BBBB BB@ BDFD@F DDDFDD@D D BBBBD@ BE BBB BDBD@ BEBD@ BBD@ BBD@ BB DD@ B D@ @ DFBBBBDBBBBBBBBBBBBB BBBDBBDBEBB BBB BBBDDEBDBB BBDEBDD DBDBDBB DDB DDB BB DDBB BDBBBBBDBBBDBB BB DDBDBBBBBBB BBBBB BBBBBDBBBBBBBBBBBBBBBBBBBBBB DBBEDBDDBDDDDBEDFDEDDEBEDBDBEBD B B FDBB B B EEDB/ BBDDB/ EBDB B B B BDB  B BEfBDDD B B ffBDE B EBBfBB  fEffBfffBBffBffBBfBBf3fff33EEEEfBfB3f3BBUEEf3EUEBBBf"B3BwUUff33UUff""33wwEBUBBBfB3BBUBEfBB"3BwUf3U"wUEBUfBB3BBUUE"wUUUf3UUU"wBUEUfE3EUBUB"wUUf3UU"wUEBDBUBBBf"EwB3BDEBUBUBwB"BwU DDUU ff"" ww33DDUUUww""wwUBEBDUBBfBB"BwB3BBDBBUBUBwB"wBUD"wDUwBU"EwD"wD3BUBwUU""wwD"wD33UUwBUB"BwD"wDB3UBw"wD"wD3wB"w3BDBB"BwBDB3Bw"w33DD""wwDD3wwB"wB3DBB"wDB3wB"w33B"Bw3B3B""ww333B"wB3B3B3B3B33B3B  B B D  B % B B    BB B BB  F B  BB B B BB E B  E BBB B D  D  B% B  BB  B B  BDEBB BEBD B(E D B   BED   D  BBEBD BB   D  &BD BB B  B " B B  B  F D BB    B B B  B E B  BB    BB B  D B BB   D  B B B  B B B  B E   FBBE   F B B BB   BB BB B B  B B   BB   B   B B  B  D  D   B B B  B BB  BB B FD BBF   BB D B B B   BB  B B  B B B B B B B  EOA  L/  4>  h@Z TMAIN@PPU   &)"*7<GHF?;75/*%$$$ '(')+,',-,-0/0/,-.-*)& !"  *-(.64=:GKKKPwyz{|}~OTSTQNKQCD<JHQKRMMJRSOMNG@66)2/3/540++$%#$"  BBD FB B BB B DB DFE FEE FDE D_BBED=D؀ BU_E3=B؈f,pUU_FUD33=؈Eff",FwpBU_DBUUDDB38BBBf"",DwwpU_BUUBDBB38BfB",BBwpDU_DUUBDBB38BDDf",wpEUZEBUDBDBB38BDDfD"'DwpEUZEBDBB38BDDfD"'DwpEUZEBDDE338DDDfD"'DwpEUZED38EDDfD"'DwpEUZEB8FDDfD"'DwpEUZEfDD"'DwpEUZEBBBfED"'DwpEUZEff"'wpEDUZDfB"'BwpUZB""'wwpBUZBB"'wpUUZ'pUZZBBDBFBBB  BBBBB DBN FBDNB限 B BDDN陙 B BBBDNFBF B DBDNDE B FBBDDNBDD B BEDNED=B؀ BBFDIFD3=؈ BFDIFD33=B؈ BBBFDIFDB3=BF BFDIFD3=FE BBFDIFDD3=DDE,pBFDIFDE3=BEE",BwpBFDIFDF3=FE"",wwpBFDIFD38EB",BBwpBFDIFD38E",wpEDIEE38ED",FDwpDDIDF38EE",DEwpDI38EF",BFwpBBDIB38E",wpDDI38E""'wwpDIB38E""'wwpI38E""'wwp38E""'wwpF38FF""'wwpBE38E""'wwpD38D""'wwp38""'wwpB38BB""'wwpB338""'wwp38""'wwp8B"'wpF"'FwpBE"'EwpD"'DwpB"'wpB"'BwpB""'wwp"'wpB'pB_BU_BBUU_BBUZBBUZBBUZB UZZUZFUZ_UZUZUZUZBUZUZ_BUZUZU_BBUZUZUU_BUZUZBU_BBBUZUZBBU_B_BUZ_BBUZBU_BBUZU_BBBUZUU_BUZUU_BBUZBBBU_BUZBU_F UZZ_BU_ZZUZBU__B UZUZBDUZBUZBUZU_BBUZUZ UZUUZB _UZUUZUU_B UZUZBBUZUZB BBUZBUZBU_BUZUZ_B UZZ_BBUZ_BZBU_UZUZUZBUZBUZBBUZU_BBBUZUZUZUZUZBUZBUUZUU_B UUZUZUZUZBBUZBUZBBBUZBU_FUZUZUZUZ_BUZBUZ_BBZBU __UZUZU_UZU_BUZBUZUZBBBBBU ZU_UZUZUU_UZUU_BUZB UZUZBBB UUZUU_UZUZDUZBU_BFUZBUZUZBBBBUZDUZUZDUZU_FUZUZ_BBBBZDUZUZDUZDUZFU_BUZU_BBBDDUZBZUZUUZUZUUZFUU_BUZUU_BBUZUUZUZUZFBU_BUZBUZBBBBUZUZUZUZZBU_UZBUZBB UZZUZU_BBUUUZBUZBBU_BBUZUU_BBUUZ UZZBBUU_BUZBU_BBUZUZFBBBU_BBBZUZU_ZUZUZUZ__BBBBU_B_UZDUZBU_UZU_UZU_BBBBUZBUZ UZUZUUZBUU_UZUU_UZUU_BBBUUZUZUZUZBDUZDUZBU_BBBUZBFUZB ZUZZUZBUZZU_BBZ_FUZ_BU_BBBUZBUZDUZBBBUZFUZU_BBUU_BBUUZUZZUZUUZBBUZUZUU_BBU_BBUZUZBUZUZBBBUZBBUZBU_BBU_ZUZ_UZZ_BBBZ_BUZU_BUZB U_UZU_BU_BBBUZBUZDUZBUUZB UU_UZUU_BUU_BBBUZUZUZUUZUZBDUZBU_BBU_BBBUZBUZUZZUUZZU_U_BBZ_UZUZDUZDUZBBBUZUZBZUZUUZUZUUZBBUZUZUZUZBBUZUZUZZUZZBBBZUZUZU_BU_BBBUZUZUU_BUU_BBBUZUZBU_BBU_FBBUZUZBU_BU__BB ZUZUZBUZBUZUZBBB U_UZBUUZUUZUZBB UU_UZUZBUZUZBBDUZZ_UZZBBBUZU_UZBBBBUZ UU_UZBBUUZDUZBBBUZUZ_BBZBUZUZBBBBB UUZUZBBUZUZBBZBB`Bf`f`f`B`EOA  L/  4>  h@ZMAINPPU  BBE3E33B3B33333B3B33B3BEOA  L/  4>  h@Z L7@" `ᮮ8@ 0 F0;C9C@0` B a{0:L@LTILZBLALD LDLrBA[L@LBL4B DLi@8AL@8 eei B =D WLyAALASLAZLAILAJLAKLAMLA0:LVALf@/LjA DL@)  Lf@ iLf@ 8L@ iL@ 8L@ iL@ 8L@ iL@ 8L@ iL@ iLf@ i@@@Lf@ D@`Lf@ @?@L DLf@8Lf@ I Lf@0`@ B 0i)iƬLD0LB0 F00 PƪL8N杧8*杧8N杧8*杧来 kILB` ,;C5C=C H5C Dh`;C5C,)H Dh,9C5C=CH=Ch5C` 9CI9C5C6C=CLf@5Cʩ=C DLf@ 5C6C;C9CLf@,0` F @ @ @@@ .ɰ F 9@@@Di ɠD@F @@i @@i@ m@ @m@ @@Ii@ @b @Ii@m @@m @@ @Ii @@@8 @Ii @ F0欥LEL E, `Lf@ . L@  \f O3 OUU f3 O)) UU4f3̪ \UU)) 4 ))\4 0 6@ 6)@ ))5@ 5 0F e ``0@j)) Gei ' `)ȥȩȥȩki`@ `@ ` @ `@ `@ `@ `@ !!`"##@$$% &&`'((@))* ++`,--@../ 00`122@334 55`677@889 ::`;<<@==> ??`@AA@BBC DD`EFF@GGH II`JKK@LLM NN`OPP@QQR SS`TUU@VVW XX`YZZ@[[\ ]]`^__@``a bb`cdd@eef gg`hii@jjk ll`mnn@oop qq`rss@ttu vv`wxx@yyz {{`|,ɛLD8@6@)@5L0 8G8吐8内8刅3IiŔJ#J憥e eƈ 8Gƚ`J憥8 e 8Gƚ`0J戥8e憅 8Gƚ`8jƈe0e憅 8G`8jƈe0e憅 WG`+PI"+zH+H*H+zH3\xxxxU\xf\xDH\xzHxzHxHxHxHxHxzG\yzH\xSG\xxxx\xxD\x\xUxxfPHzHHzHHHzHHwzHPH+PH"+xH+H+H+{H3[xDxxxU]xf[xPIw[xxHxxHxHxHxHxHx{G]x{H\wQG[xxxx]xxD]x[xUxxfPHxHHxHHH{HHw{HPH+QH"+wH+H*H+|H3ZxDxxxU]xfZxQHwZxwHxwHxHxHxHxHx|G]x|H]xRGZxxxx]xxD]xZxUxxfQHwHHwHHH|HHw|HQH+QH"+vH+H*H+}H3ZxDxxxU^xfZxQHwZxvHxvHxHxHxHxHx}G^x}H^xRGZxxxx^xxD^xZxUxxfQHvHHvHHH}HHw}HQH+QH"+uH+H*H+~H3YxDxxxU_xfYxQHwYxuHxuHxHxHxHxHx~G_x~H_xRGYxxxx_xxD_xYxUxxfQHuHHuHHH~HHw~HQH+QH"+tH+H*H+H3YxDxxxU_xfYxQHwYxtHxtHxHxHxHxHxG_xH_xRGYxxxx_xxD_xYxUxxfQHtHHtHHHHHwHQH+QH"+sH+H*H+H3XxDxxxU`xfXxQHwXxsHxsHxHxHxHxHxG`xH`xRGXxxxx`xxD`xXxUxxfQHsHHsHHHHHwHQH+QH"+rH+H*H+H3WxDxxxUaxfWxQHwWxrHxrHxHxHxHxHxGaxHaxQGWxxxxaxxDaxWxUxxfQHrHHrHHHHHwHQH+QH"+qH+H*H+H3WxDxxxUbxfWxQHwWxqHxqHxHxHxHxHxGbxHbxQGWxxxxbxxDbxWxUxxfQHqHHqHHHHHwHQH+QH"+pH+H*H+H3VxDxxxUcxfVxQHwVxpHxpHxHxHxHxHxGcxHcxQGVxxxxcxxDcxVxUxxfQHpHHpHHHHHwHQH+RH"+oH+H*H+H3VxDxxxUdxfVxRHwVxoHxoHxHxHxHxHxGdxHdxRGVxxxxdxxDdxVxUxxfRHoHHoHHHHHwHRH+RH"+nH+H*H+H3UxDxxxUdxfUxRHwUxnHxnHxHxHxHxHxGdxHdxRGUxxxxdxxDdxUxUxxfRHnHHnHHHHHwHRH+QI"+mH+H*H+H3UxDxxxUexfUxRHwUxmHxmHxHxHxHxHxGfyJfxSGUxxxxexxDexUxUxxfRHmHHmHHHHHwHRH+RH"+lH+H*H+H3UxDxxxUfxfUxRHwUxlHxlHxHxHxHxHxGfxHfxRGUxxxxfxxDfxUxUxxfRHlHHlHHHHHwHRH+SH"+kH+H*H+H3TxDxxxUgxfTxSHwTxkHxkHxHxHxHxHxGgxHgxSGTxxxxgxxDgxTxUxxfSHkHHkHHHHHwHSH+SH"+jH+H*H+H3TxDxxxUhxfTxSHwTxjHxjHxHxHxHxHxGhxHhxSGTxxxxhxxDhxTxUxxfSHjHHjHHHHHwHSH+SH"+iH+H*H+H3SxDxxxUixfSxSHwSxiHxiHxHxHxHxHxGixHixTGSxxxxixxDixSxUxxfSHiHHiHHHHHwHSH+TH"+hH+H*H+H3SxDxxxUjxfSxTHwSxhHxhHxHxHxHxHxGjxHjxUFSxxxxjxxDjxSxUxxfTHhHHhHHHHHwHTH+TH"+gH+H*H+H3SxDxxxUkxfSxTHwSxgHxgHxHxHxHxHxGkxHkxUFSxxxxkxxDkxSxUxxfTHgHHgHHHHHwHTH+UH"+fH+H*H+H3RxDxxxUlxfRxUHwRxfHxfHxHxHxHxHxGlxHlxVGRxxxxlxxDlxRxUxxfUHfHHfHHHHHwHUH+UH"+eH+H*H+H3RxDxxxUmxfRxUHwRxeHxeHxHxHxHxHxGmxHmxVFRxxxxmxxDmxRxUxxfUHeHHeHHHHHwHUH+UH"+dH+H*H+H3RxDxxxUnxfRxUHwRxdHxdHxHxHxHxHxGnxHnxUGRxxxxnxxDnxRxUxxfUHdHHdHHHHHwHUH+VH"+dH+H*H+H3RxDxxxUoxfRxVHwRxdHxdHxHxHxHxHxGoxHoxVGRxxxxoxxDoxRxUxxfVHdHHdHHHHHwHVH+VH"+cH+H*H+H3QxDxxxUpxfQxVHwQxcHxcHxHxHxHxHxGpxHpxVFQxxxxpxxDpxQxUxxfVHcHHcHHHHHwHVH+WH"+bH+H*H+H3QxDxxxUqxfQxWHwQxbHxbHxHxHxHxHxGqxHqxWGQxxxxqxxDqxQxUxxfWHbHHbHHHHHwHWH+WH"+aH+H*H+H3QxDxxxUrxfQxWHwQxaHxaHxHxHxHxHxGrxHrxWGQxxxxrxxDrxQxUxxfWHaHHaHHHHHwHWH+XH"+`H+H*H+H3QxDxxxUsxfQxXHwQx`Hx`HxHxHxHxHxGsxHsxXGQxxxxsxxDsxQxUxxfXH`HH`HHHHHwHXH+YH"+_H+H*H+H3QxDxxxUtxfQxYHwQx_Hx_HxHxHxHxHxGtxHtxYGQxxxxtxxDtxQxUxxfYH_HH_HHHHHwHYH+YH"+_H+H*H+H3QxD~xxxUuxfQxYHwQx_H~x_H~xHxHxHxHxGuxHuxYGQx~xx~xuxxDuxQxUxxfYH_HH_HHHHHwHYH+ZH"+^H+H*H+H3QxD}xxxUvxfQxZHwQx^H}x^H}xHxHxHxHxGvxHvxZGQx}xx}xvxxDvxQxUxxfZH^HH^HHHHHwHZH+ZH"+]H+H*H+H3QxD|xxxUwxfQxZHwQx]H|x]H|xHxHxHxHxGwxHwxZGQx|xx|xwxxDwxQxUxxfZH]HH]HHHHHwHZH+[H"+]H+H*H+H3PxD{xxxUxxfPx[HwPx]H{x]H{xHxHxHxHxGxxHxx[GPx{xx{xxxxDxxPxUxxf[H]HH]HHHHHwH[H+\H"+\H+H*H+H3PxDzxxxUzxfPx\HwPx\Hzx\HzxHxHxHxHxGzxHzx\GPxzxxzxzxxDzxPxUxxf\H\HH\HHHHHwH\H+]H"+[H+H*H+H3PxDxxxx{xfPx]HwPx[Hxx[HxxHxHxHxHxG{xH{x]GPxxxxxx{xxD{xPxUxxf]H[HH[HHHHHwH]H+]H"+ZH+H*H+H3QxDwxxx|xfQx]HwQxZHwxZHwxHxHxHxHxG|xH|x]GQxwxxwx|xxD|xQxUxxf]LZHHZHHHHHwH]H+^H"+ZH+H*H+H3QxDvxs}xfQx^HwQxZHvxZHvxHxHxHxHxG}xH}x^GQxvxxvx}xxD}xQxUxxf^HZHHZHHHHHwH^H+_H"+YH+H*H+H3QxDuxxx~xfQx_HwQxYHuxYHuxHxHxHxHxG~xH~x_GQxuxxux~xxD~xQxUxxf_HYHHYHHHHHwH_H+_H"+YH+H*H+H3QxDtxxxxfQx_HwQxYHtxYHtxHxHxHxHxGxHx_GQxtxxtxxxDxQxUxxf_HYHHYHHHHHwH_H+`H"+XH+H*H+H3QxDsxxxxfQx`HwQxXHsxXHsxHxHxHxHxGxHx`GQxsxxsxxxDxQxUxxf`HXHHXHHHHHwH`H+aH"+WH+H*H+H3QxDrxxxxfQxaHwQxWHrxWHrxHxHxHxHxGxHxaGQxrxxrxxxDxQxUxxfaHWHHWHHHHHwHaH+bH"+WH+H*H+H3QxDqxxxxfQxbHwQxWHqxWHqxHxHxHxHxGxHxbGQxqxxqxxxDxQxUxxfbHWHHWHHHHHwHbH+cH"+VH+H*H+H3QxDpxxxxfQxcHwQxVHpxVHpxHxHxHxHxGxHxcGQxpxxpxxxDxQxUxxfcHVHHVHHHHHwHcH+dH"+VH+H*H+H3RxDoxxxxfRxdHwRxVHoxVHoxHxHxHxHxGxHxdGRxoxxoxxxDxRxUxxfdHVHHVHHHHHwHdH+dH"+UH+H*H+H3RxDnxxxxfRxdHwRxUHnxUHnxHxHxHxHxGxHxdGRxnxxnxxxDxRxUxxfdHUHHUHHHHHwHdH+eH"+UH+H*H+H3RxDmxxxxfRxeHwRxUHmxUHmxHxHxHxHxGxHxeGRxmxxmxxxDxRxUxxfeHUHHUHHHHHwHeH+fH"+UH+H*H+H3RxDlxxxxfRxfHwRxUHlxUHlxHxHxHxHxGxHxfGRxlxxlxxxDxRxUxxffHUHHUHHHHHwHfH+gH"+TH+H*H+H3SxDkxxxxfSxgHwSxTHkxTHkxHxHxHxHxGxHxgGSxkxxkxxxDxSxUxxfgHTHHTHHHHHwHgH+hH"+TH+H*H+H3SxDjxxxxfSxhHwSxTHjxTHjxHxHxHxHxGxHxhGSxjxxjxxxDxSxUxxfhHTHHTHHHHHwHhH+iH"+SH+H*H+H3SxDixxxxfSxiHwSxSFixSHixHxHxHxHxGxHxiGSxixxixxxDxSxUxxfiHSHHSHHHHHwHiH+jH"+SH+H*H+H3TxDhxxxxfTxjHwTxSGhxSHhxHxHxHxHxGxHxjGTxhxxhxxxDxTxUxxfjHSHHSHHHHHwHjH+kH"+SH+H*H+H3TxDgxxxxfTxkHwTxSGgxSHgxHxHxHxHxGxHxkGTxgxxgxxxDxTxUxxfkHSHHSHHHHHwHkH+lH"+RH+H*H+H3UxDfxxxxfUxlHwUxRGfxRHfxHxHxHxHxGxHxlGUxfxxfxxxDxUxUxxflHRHHRHHHHHwHlH+mH"+RH+H*H+H3UxDexxxxfUxmHwUxRGexRHexHxHxHxHxGxHxmGUxexxexxxDxUxUxxfmHRHHRHHHHHwHmH+nH"+RH+H*H+H3UxDdxxoxfUxnHwUxRGdxRHdxHxHxHxHxGxHxnGUxdxxdxxxDxUxUxxfnHRHHRHHHHHwHnH+oH"+RH+H*H+H3VxDdxxxxfVxoHwVxRGdxRHdxHxHxHxHxGxHxoGVxdxxdxxxDxVxUxxfoHRHHRHHHHHwHoH+pH"+QH+H*H+H3VxDcxxxxfVxpHwVxQGcxQHcxHxHxHxHxGxHxpGVxcxxcxxxDxVxUxxfpHQHHQHHHHHwHpH+qH"+QH+H*H+H3WxDbxxxxfWxqHwWxQGbxQHbxHxHxHxHxGxHxqGWxbxxbxxxDxWxUxxfqHQHHQHHHHHwHqH+rH"+QH+H*H+H3WxDaxxxxfWxrHwWxQGaxQHaxHxHxHxHxGxHxrGWxaxxaxxxDxWxUxxfrHQHHQHHHHHwHrH+sH"+QH+H*H+H3XxD`xxxxfXxsHwXxQG`xQH`xHxHxHxHxGxHxsGXx`xx`xxxDxXxUxxfsHQHHQHHHHHwHsH+tH"+QH+H*H+H3YxD_xxxxfYxtHwYxQG_xQH_xHxHxHxHxGxHxtGYx_xx_xxxDxYxUxxftHQHHQHHHHHwHtH+uH"+QH+~H*H+H3YxD_xxxxfYxuHwYxQG_xQH_x~Hx~HxHxHxGxHxuGYx_xx_xxxDxYxUxxfuHQH~HQH~HHHHwHuH+vH"+QH+}H*H+H3ZxD^xxxxfZxvHwZxQG^xQH^x}Hx}HxHxHxGxHxvGZx^xx^xxxDxZxUxxfvHQH}HQH}HHHHwHvH+wH"+QH+|H*H+H3ZxD]xxxxfZxwHwZxRG]xQH]x|Hx|HxHxHxGxHxwGZx]xx]xxxDxZxUxxfwHQH|HQH|HHHHwHwH+xH"+PH+{H*H+H3[xD]xxxxf[xxHw[xQG]xPH]x{Hx{HxHxHxHxHxxG[x]xx]xxxDx[xUxxfxHPH{HPH{HHHHwHxH+zH"+PH+zH*H+H\xD\xxxxf\xzHw\xPH\xPH\xzHxzHxHxHxHxHxzH\x\xx\xxxDx\xUxxfzHPHzHPHzHHHHwHzH"3DfwSOURCEuHUSTON!J$'  'PUNCTUREJ% J&*MELTUP.PAS <J&#,ANACLOCK.PASJ&/STPICDJ0 J2CPUJ J+BREATHE.PASJ 3PUNCTUREuHUSTON!J%' '(PUNC.PAS J% MAKEJ%){$DeskAcc -1 -1 'Puncture'} {$LongGlobals+} program PunctureWindow; { Window Puncture NDA PUBLIC DOMAIN 22-Dec-87 by David A. Lyons a.k.a. DAL Systems PO Box 287 North Liberty, IA 52317 CompuServe 72177,3233 [Based on the skeleton of Jason Harper's Meldown NDA Jason Harper CompuServe 71450,516 GEnie JR.HARPER DMA BBS (303)598-0111 ] } uses QDIntf, GSIntf, MiscTools; var isActive: boolean; myWindPtr: WindowPtr; procedure DoPuncture; forward; function DAOpen: WindowPtr; var myWindParms: NewWindowParamBlk; begin if not isActive then begin fillchar(myWindParms,sizeof(NewWindowParamBlk),0); with myWindParms do begin param_length := sizeof(NewWindowParamBlk); wFrame := $0020; {F_Vis only} SetRect(wPosition,5,5,6,6); {underneath the Apple logo} wPlane := -1; {frontmost window} wStorage := nil; {allocate memory for it} end; {with} myWindPtr := NewWindow(myWindParms); SetSysWindow(myWindPtr); isActive := true; end; {if} DAOpen := myWindPtr; DoPuncture; end; {DAOpen} procedure DAClose; begin if isActive then CloseWindow(myWindPtr); isActive := false; end; {DAClose} procedure DAAction(Code:Integer; Param:Longint); begin CloseNDAByWinPtr(myWindPtr); {kill it at first event, probably an update} end; {DAAction} procedure DAInit(Code:Integer); begin if (Code = 0) and isActive then DAClose; isActive := false; end; {DAInit} { This function returns the region that will be subtracted from the window's Content and Structure regions. Change this if you want a different shape or size for the hole. } function BuildRgn: RgnHandle; var Rgn: RgnHandle; r: rect; begin OpenRgn; { SetRect(r,0,0,90,40); FrameRect(r); } MoveTo(0,0); LineTo(90,12); LineTo(65,24); LineTo(100,40); LineTo(30,42); LineTo(50,30); LineTo(-10,33); LineTo(10,18); LineTo(0,0); Rgn := NewRgn; CloseRgn(Rgn); BuildRgn := Rgn; end; procedure DoPuncture; var OldPort, W: GrafPtr; R, Hole: RgnHandle; eventrec: EventRecord; e: boolean; begin OldPort := GetPort; repeat e := GetNextEvent($0003,eventrec); until eventrec.What=mouseDown; case bitand($7fff,FindWindow(W, eventrec.Where.H, eventrec.Where.V)) of wNoHit: ; wInContent: begin Hole := BuildRgn; OffsetRgn(Hole, eventrec.Where.H, eventrec.Where.V); R := GetStructRgn(W); DiffRgn(R,Hole,R); R := GetContentRgn(W); DiffRgn(R,Hole,R); Refresh(nil); end; end; { case } SetPort(OldPort); end; { DoPuncture } begin { no main program for NDA } end. set echo LIKELY compile {Parameters} punc.pas link punc keep=punc.nda filetype punc.nda NDA copy -c punc.nda 4/desk.accs unset echo {$DeskAcc -1 -1 'Meltup'} {these 2 options required to} {$LongGlobals+} {compile NDA's} program MeltdowNDA; { System Meltdown NDA (New Desk Accessory) Written by Jason Harper Under normal circumstances, an open NDA exists as a window on the desktop. It is occasionally desirable for a NDA to perform an immediate action and then disappear without a trace. Yet the Desk Manager requires the NDA's Open routine to return a pointer to its window: failure to do so results in a crash on the second open of the NDA, when the Desk Manager tries to simply Show the window returned by the first open. It is therefore necessary to allocate a window that cannot be seen. Attempting to use a window that doesn't have the F_Vis frame bit set also causes problems with the Desk Manager, so the window needs to be visible but positioned off-screen. Putting it below or to the right of the screen works for now, but the window may become visible sometime in the future when extra-large or scrollable screens become available. Above and to the left is probably safe, but the Window Manager isn't used to handling negative numbers: we might be asking for trouble doing it this way. So I choose to use the one remaining hidden area: underneath the system menu bar. The window can be made about one pixel square and will tuck away quite nicely. The only clue to its existance will be the un-hiliting of the frontmost window while the NDA is running. If the NDA closes itself at the earliest possible opportunity (probably at the Update event for the one-pixel window), then the screen will return to its original state. System Meltdown is a NDA that uses the method described above. It can be turned into a different immediate-action NDA by simply replacing the 'DoMeltdown' procedure with whatever you want. Just remember to save the current port before switching to another... Permission is hereby granted for you to use this source code for your own purposes: you can use it as is, modify it in any way, or print it out and fold it into a paper airplane, as long as you give me credit in any distributed version. The author is not responsible for anything that gets permanently melted down, however. Jason Harper CompuServe 71450,516 GEnie JR.HARPER DMA BBS (303)598-0111 } uses QDIntf, GSIntf, MiscTools; var isActive: boolean; {true if NDA is open} myWindPtr: WindowPtr; {ptr to our 1-pixel window} {* * * * * * * * * * * * * * * * * * * * * * * * * * *} procedure domeltdown; forward; {has to be declared before being used} {* NDA Required Routines * * * * * * * * * * * * * * *} function DAOpen: WindowPtr; {standard NDA routine} var myWindParms: NewWindowParamBlk; {temp parmblock for new window} begin if not isActive then begin fillchar(myWindParms,sizeof(NewWindowParamBlk),0); {set most parms to } with myWindParms do begin {0: nothing in wind} param_length := sizeof(NewWindowParamBlk); wFrame := $0020; {F_Vis only} wPosition.top := 5; {underneath the Apple logo} wPosition.left := 5; wPosition.bottom:= 6; wPosition.right := 6; wPlane := -1; {frontmost window} wStorage := nil; {allocate memory for it} end; {with} myWindPtr := NewWindow(myWindParms); {create the window} SetSysWindow(myWindPtr); {make it an NDA window} isActive := true; {we are active, if only for a short time} end; {if} DAOpen := myWindPtr; {return window ptr to Desk Manager} domeltdown; {take immediate action!} end; {DAOpen} {* NDA Required Routines * * * * * * * * * * * * * * *} procedure DAClose; {standard NDA routine} begin if isActive then CloseWindow(myWindPtr); {this is unlikely to happen} isActive := false; {'cause the NDA's lifespan is too short} end; {DAClose} {* NDA Required Routines * * * * * * * * * * * * * * *} procedure DAAction(Code:Integer; Param:Longint); {standard NDA routine} begin CloseNDAByWinPtr(myWindPtr); {kill it at first event, probably an update} end; {DAAction} {* NDA Required Routines * * * * * * * * * * * * * * *} procedure DAInit(Code:Integer); {standard NDA routine} begin if (Code = 0) and isActive then DAClose; {also very unlikely} isActive := false; {this is only way to initialize the active flag} end; {DAInit} {* * * * * * * * * * * * * * * * * * * * * * * * * * *} procedure domeltdown; {our immediate-action routine} var portsave: GrafPtr; {MUST save current GrafPort!!!!} screenwidth: integer; screct: Rect; eventrec: EventRecord; begin HideCursor; {Cursors & ScrollRects don't mix well} if GetMasterSCB >= 128 {get width of screen} then screenwidth := 640+1 else screenwidth := 320+1; screct.top := 0; {make a rectangle the height of the screen} screct.bottom := 200; portsave := GetPort; SetPort(GetMenuMgrPort); {the Menu Manager port is the entire screen} repeat {(how convenient!)} repeat screct.left := Random mod screenwidth; {make random sides} screct.right := Random mod screenwidth; until screct.left < screct.right; ScrollRect(screct,0,-1,nil); {and scroll it down} until GetOSEvent(MDownMask+KeyDownMask,eventrec); {wait for key or mouse} SetPort(portsave); DrawMenuBar; {repair the damage we've done to the screen} Refresh(nil); ShowCursor; end; {domeltdown} {* * * * * * * * * * * * * * * * * * * * * * * * * * *} begin {nonexistant main program} {no main program in a TML NDA} end. {nonexistant main program} {$DeskAcc 60 -1 'Analog Clock'} {$LongGlobals+} { Welcome to the Desk Accessory 'Analog Clock'! This DA Displays an Analog Clock in a window. } Program AnaClock; uses Qdintf, GSIntf, MiscTools,ConsoleIO; var Update: Integer; MyWindOpen: Boolean; MyWind: NewWindowParamBlk; MyWindPtr: WindowPtr; theTime: packed array[0..20] of byte; GlobalHour: integer; procedure DrawTheTime; forward; procedure QuickHand(count:integer); forward; procedure DoTheHour; forward; Procedure EraseTheFace; var face_area: rect; begin with face_area do begin top := 20; left := 10; bottom:= 81; right := 216; end; SetSolidPenPat(15); FrameRect(face_area); PaintRect(face_area); SetSolidPenPat( 0); end; Function DAOpen: WindowPtr; Begin If MyWindOpen then SelectWindow(MyWindPtr) Else begin with myWind do begin param_length := sizeof(NewWindowParamBlk); wFrame := $C0A0; wTitle := @'Analog Clock'; wRefCon := 0; wZoom.top := 0; wZoom.left := 0; wZoom.bottom := 0; wZoom.right := 0; wColor := nil; wYOrigin := 10; wXOrigin := 50; wDataH := 0; wDataW := 0; wMaxH := 0; wMaxW := 0; wScrollVer := 0; wScrollHor := 0; wPageVer := 0; wPageHor := 0; wInfoRefCon := 0; wInfoHeight := 0; wFrameDefProc:= nil; wInfoDefProc := nil; wContDefProc := nil; wPosition.top := 70; { X Width: 225 pixels } wPosition.left := 50; { Y Width: 90 [-11] pixels } wPosition.bottom := 160; wPosition.right := 275; wPlane := -1; wStorage := nil; end; MyWindPtr := NewWindow(MyWind); SetSysWindow(MyWindPtr); end; DAOpen := MyWindPtr; Update := 0; MyWindOpen := True; end; { END OF DAOPEN } procedure DAClose; begin CloseWindow(MyWindPtr); MyWindOpen := False; Update := 0; end; { END OF DACLOSE } procedure DAAction( Code: Integer; Param: LongInt ); var currPort: GrafPtr; begin case Code of DAEvent: begin if EventRecordPtr(param)^.what = updateEvt then begin BeginUpdate(myWindPtr); Update := 0; DrawTheTime; EndUpdate(myWindPtr); end end; DARun: begin currport := GetPort; SetPort(GrafPtr(MyWindPtr)); DrawTheTime; SetPort(currPort); end; DACursor: ; DAMenu: begin end; DAUndo, DACut, DACopy, DAPaste, DAClear: Code := 1; end; end; { END OF DAACTION } procedure DAInit(Code: Integer); begin if Code = 0 then begin { Desk Shutdown call, make sure window is closed } if MyWindOpen then DAClose; end else begin { Desk startup call, set flag for my window } MyWindOpen := false; end; end; { END OF DAINIT } procedure DrawTheTime; var c, t, week, month, day, year, hour, minute, second : integer; begin ReadTimeHex(week,month,day,year,hour,minute,second); { GlobalHour is set so that } GlobalHour := hour; { "DoTheHour" can tell the } { hour. } ReadAsciiTime(@theTime); for c := 0 to 19 do TheTime[c] := BitAnd(TheTime[c],$7F); MoveTo(40,8); DrawCString(@thetime); MoveTo(0,9); LineTo(225,9); Moveto(0,0); Lineto(0,9); MoveTo(224,0); LineTo(224,9); { Now Draw the Digital Clock } {48,112} MoveTo(48,112); { Vert. from 10-90: 80 steps } { Horz. from 0-225: 225 steps } { Draw Time Numerals } if update = 0 then begin MoveTo(102,18); DrawString('12'); MoveTo(216,51); DrawString('3'); MoveTo(2,51); DrawString('9'); MoveTo(107,89); DrawString('6'); MoveTo(111,45); { Center Dot . } LineTo(111,45); MoveTo(2,18); DrawString('V.1.0'); MoveTo(174,18); DrawString('Jan/88'); MoveTo(2,89); DrawString('By G. Grant'); Update := 1; { Don't do this again unless needed. } { Now, That's all done. } end; { of the Credits, etc. UPDATE } { ------------------------- The Main Thingy ------------------------- } EraseTheFace; { Clear the face of the clock, excluding numerals. } QuickHand(minute); { Draw the Minute Hand. } QuickHand(second); { Draw the Second Hand. } DoTheHour; { Draw the Hour hand ( the short one. ) } end; procedure QuickHand(count: integer); var x,y: integer; begin case count of 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15: begin {^x: 225,^y: 80} if count <9 then begin x := 111+ ( count * 11); y := 20; end; if count >8 then begin x := 215; y := 20 + ( ( count - 8) * 4) - 3; end; MoveTo(111,45); LineTo(x,y); end; end; case count of 16,17,18,19,20,21,22,23,24,25,26,27,28,29,30: begin {^x: 225,^y: 80} if count <23 then begin x := 215; y := 46 + ( ( count - 15) * 4) - 3; end; if count >22 then begin x := 215 - ( ( count - 21) * 11) - 5; y := 80; end; MoveTo(111,45); LineTo(x,y); end; end; case count of 31,32,33,34,35,36,37,38,39,40,41,42,43,44,45: begin {^x: 225,^y: 80} if count <38 then begin x := 111 - ( ( count - 30) * 11 ); y := 80; end; if count >37 then begin x := 10; y := 80 - ( ( count - 37) * 4) - 3; end; MoveTo(111,45); LineTo(x,y); end; end; case count of 46,47,48,49,50,51,52,53,54,55,56,57,58,59,60: begin {^x: 225,^y: 80} if count <53 then begin x := 10; y := 45 - ( ( count - 45 ) * 3); end; if count >52 then begin x := 21 + ( ( count - 52 ) * 11); y := 20; end; MoveTo(111,45); LineTo(x,y); end; end; end; procedure DoTheHour; begin MoveTo(111,45); { The center dot [axis] } case GlobalHour of 1 ,13 : LineTo(124,35); {} { 111,46} 2 ,14 : LineTo(137,40); 3 ,15 : LineTo(150,45); {} 4 ,16 : LineTo(137,50); 5 ,17 : LineTo(124,55); 6 ,18 : LineTo(111,60); {} 7 ,19 : LineTo( 98,55); 8 ,20 : LineTo( 85,50); 9 ,21 : LineTo( 72,45); {} 10,22 : LineTo( 85,40); 11,23 : LineTo( 98,35); 12, 0 : LineTo(111,30); {} end; { of CASE } end; { of DoTheHour } begin { Look Ma, NO PROGRAM! } end. { In an NDA, the DAxxx PROCEDUREs are called independantly } BGMUSICUNDuHUSTON!J)' ' ''BGMUSICaJ.E,&AUXSETJ.E+BGMUSIC.DOC J.E'FINDER.DATA8TssDPIIHELPuHUSTON!J)' ' ')BRUSH.CMD J*a3)PERSP.CMD J*_ 'PLT.CMD J*d$$SP.KJ*a!'TBX.CMD J*a:FINDER.DATA6s&s&GSBASIC.STUFFuHUSTON!J*'  ')LOAN.STUFZ J.c; %METRO.2.3-[ [ PRINTgJZ)METRO.MAP@N}[F)FINDER.DATA;js(s( ,@ )d##Brush Commands\H**KI1HH "hKMMHKHK"IkKIMHKH "IkKZ zk``` ` ;[  +````HH"HH""MHKHM" :"H"""Q"""OHOH:"ڽ0H.H"hi hͩOHOH:"ڽPHNH"hi hͩrOHOH:"ڽpHnH"hi ɚ""OHUOH:"ڽH~H"hi hͩOH'OH:"ڽHH"hi hͩrOHOH:"ڽHH"hi ɚ:" """""`kBrush CommandsN; (Use main keyboard for numbers)Matte: Color: Replace:Smear: Shade: Blend: Cycle: Smooth: Stretch: Halve: Double: Flip horizontal: Double horizontal:Flip vertical: Double vertical: Rotate 90 degrees:Reduce brush size: Reduce brush size more: Increase brush size: Increase brush size more:12345678ZhHxXyYz -SHIFT - =SHIFT = (C)Copyright 1987 -- Kenneth I. Gluckman {"5H[u)d -I47CKFMNMRK`IhImMqK|IMK$Q'QKOSO`0d.OOPNOOpn OO#~COKOX\|OO5.{26:>BFJNRVZ^b"f5jHn[ruvz~ ,@ /j##Perspective Commands\H**K1HH "hHHK"kKHH "kKZ zk``` ` ;[  +````HH"HH""HHM" :"H""""""HH:"ڽ6H4H"hi J:"""""""HH:"ڽJHHH"hi J""THH:"ڽZHXH"hi Ɇ"ᩆHH:"ڽnHlH"hi ɤ""THH:"ڽzHxH"hi ɤ",H|H:"ڽHH"hi J"ᩆHH:""hi ɤ:" "" """`kPerspective CommandsN; (All from keypad except if marked *) Axis Rotate about axis: Rotate 90 deg.:Reset axis to 0: Fix axis: X Y Z 7/8 4/5 1/27/8 4/5 1/2 9 6 3 9 6 3 Enter perspective mode: Reset perspective center: Reset all axes to 0: Reset to default state: Fill screen with brush: Move brush perp. to plane: As above but move more: Modify observer distance: ENTER . 0 SHIFT 0 - ; and ': and "< and >SHIFT SHIFT* (C)Copyright 1987 -- Kenneth I. Gluckman 'A[k (Eb/j 3:=ILTXfnsw*-QYf6j4JH!.Z2X\dqnulzx,3>Av y 4'8A<[@kDHLPTX\` d(hElbptx| ,@ +f##Palette Commands\H**K01HH "h244H2HK"0kK04H2H "0kKZ zk``` ` ;[  +````HH"HH""4H2HM"H""" 6H6H:"ڽgHeH"hi ɋ"" 6H6H:"ڽHH"hi O""Y6H6H:"ڽHH"hi ɋhh\"hh\"Yhhz"hhz":" "":"""`kPalette CommandsN(;Color settings: Undo color change: Select range: Color selector up/down: Top of range bracket up/down: Bottom of range bracket up/down: n u 1,2,3,or4 [ and ] and and (C)Copyright 1987 -- Kenneth I. Gluckman 8RTnp!,.246wwwwwwwwww+f /069E2H4P4T2b0j0o4s2~0426'64g8el6t666!$'*-@YCYGKNQTWjmqux{~::e8iRmTqnupy}!,.246& ,@ &'b~##Special Keys\H**Ka1HH "hceeHcHK"akKaeHcH "akKZ zk``` ` ;[  +````HH"HH""eHcHM" :"H"""i"""gHgH:"ڽHH"hi ɤ""gHgH:"ڽHH"hi ɤ:" """""`k Special KeysN; (Use main keyboard for 9 and 0)Toggle Info Bar: Toggle Menu Bar: Toggle cursor: Scroll page/Move cursor: Center under cursor: Constrain rectangle, line, polygon: Trace line or shape: Check memory: Toggle color cycle: Show page: Toggle stencil: Repeat last menu option: Abort current command: 9 0 ESC Arrows n SHIFT CONTROL CONTROL a TAB S ` a SPACE (C)Copyright 1987 -- Kenneth I. Gluckman /Ic} '1;EOYcmw'b~ +a25AcDeLePc^afakeoczaec"i%iIgQg^bgg/Ic} '1; EOYcmw"C ,@ C+fM##Toolbox Commands\H**K1HH_ "hHHK"kKHH "ᜭkKZ zk``` ` ;[  +````HH"HH""᭱HHM"H""" HH:"ڽUHSH"hi ɟͩ HH:"ڽHH"hi ɟ"" HH:"ڽHH"hi ɟͩ HH:"ڽ HH"hi ɟ:" ""("""`kToolbox CommandsNN;Brush selector: Corral: Restore brush: Filled circle: Unfilled circle: Freehand: Freehand-1 pixel:Filled ellipse: Unfilled ellipse:Fill: Fill dialog box: Grid: Brush grid: Spare page: Clear page: Magnify Palette window: Curve: Filled rectangle:Unfilled rect.Dotted freehand: Text: Undo: Straight line: Zoom in: Zoom out: Select color: Palette select: Symmetry: 1 pixel brush: bbb B C c d D E e f F g G j K m p q R r s t u v > < ,[] / . (C)Copyright 1987 -- Kenneth I. Gluckman !3EWi{ ,>Pbt  "%+f M/6_9_EHPTbjos~'4U8SX`mq 2(5(cNSW[_cgk!o3sEwW{i{ ,>Pbt   #'+/37;"?%"Z "" ;[ 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 overflowK&kKW U U HH"Gk; [8"b"u+hhkHHH8H; [  " % Q8  0 " " "e i @< " "   "Z ""b+;i kHH8H; [ȷȷ HH"+hhhhkH; ["lȿ!!+hhkHHHHH; ["l!  ȷݠȷ! ȷ+;i k:JJJJk; [B "+BHHH" +hhhhk; [  )8 I" H HI i " +;i kd8d d 8kHl( &"L(Qi ;[ l 8(I lȗ(  @+hhkHi H ;[ "+hhk+<H W-2d>CJRY_[nK  ^`dbhfjlnptrvxz|~ !.17:=@CFIOU[aru^^K K K K   K  K ,AK EILO^alK ps{r K K K r K    %K 0 3 DGLO[K ^f i ru~      XVTT K TFT NL$ r  K #'*-<?BEHJKHNQTWZF]Fc gTjTp tx|r K %(4K :=@LK OR^K lK o~K K K K K ??  K !-K lv  6 =     K       ) - / 3 7 ; i m M      Y    Y  }   Z  Z  U W :,=,VHYHcU fW kY x}}}Z Z W U U  G_bfu%/BOWbl!!l!MU!BB+BB-l0l@ll @ ,@  " "\;8 [HH "፴HH "፴H "፴{HH" " " (HH" 'HH" " (HH"  'HH" " 3(HH" ['HH" " (HH" 'HH" " (HH" 'HH" " (HH" H'HH" "  o(HH" 'HH" " " HH" " " HH" &HH""{&" C&  "  HH" " e" &"HH"g HH" HH"" "  HH" H""{" ʎ "&"+;ikAuxTypeSet, by Guy T. RiceThis program can be used to modify the auxtype field on any file. A couple of programs that I've written use this field for information. For example, the auxtype of the sound files used by STARTSOUND and BGMUSIC hold their playback rate. The current version of SYSBEEP uses the auxtype of the SYSBEEP program itself for the playback rate, but future versions will use the auxtype of the sound file, just like STARTSOUND and BGMUSIC. Thus, this program can be used instead of SS.CONFIG and SB.CONFIG. You may find other uses as well... GTREnter pathname (=Done): File not found.Old auxtype: New auxtype: a H" hhhk ;[HH H y h hh HHH y hhh    +;i k"k; [H H H y h h h8"  0 " H Hi  H"i " +;i kH"H"h"){;8[:ڋK)  " V +%- V 0:V  V N " H V H ("h" {i+k" k{;8[:ڋK H HH X hh h d"       {i +kSd ;[8 +` ;[I4" )d9  ")   +` "kK  HH "K;[c:zZګHi " kInsufficient bank zero memoryY "FH" \ KError occurred at line "H" in procedure """  " " Line Name- " ---- ----I "᭾ <H" ~ """# ;[ 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 overflowK " "q    k K;8 [0  "0dd  U  '!ͼ  ' ɍ U  ' 'ɾɮ  Uɼɬd UͼHd U h UWd U3  :Iȹ:Hd U h: U H ͼ 'Hd U h Uh  '`L'0H ""h0) a    `0ZHS"SH "hz0`8(0ͼ  ' '`ͼșμ`0;i +k K&kKHH";k; [8"V"i+hhkHHH8H; [  " % Q8  0 " " "e i @< " "   "Z ""V+;i kHH8H; [ȷȷ HH"+hhhhkH; ["`ȿ+hhkHHHHH; ["`  ȷݠȷ ȷ+;i k:JJJJkKZ " 0 ο0)zkK0ο0kHi H ;[ "+hhk; [k "TkHHH" +hhhhk; [  )8 I" H HI i " +;i kH( &"L(QM ;[ ߕ 8(I ȗ(  @+hhk  :Tbe{h{y }          33 [[  !$5 9<M Q UXi mp     HH  oo         ) -&0&9={A&D&JMS_ e&h&kn q t z~      &&g    $ (+04{8 <FIL O UY&\&bekw y y y 4 Bhk V $ 'V 6V 9 <V D K N QV g | X            ! ) 6 9 < ? B E H K N Q T x Y { Y                ; - > - W I Z I d g l y  ~  ~           q     # & ) . 8 ? B K N Q T UW d 'w ~   '  U   ' '  U U   U  UU#->BOWUZaUu|'UU''-27S?Selsv'';SVZi#6CKVs{`` AIw| kkTkk)VYi BGMUSIC Background Music, by Guy T. Rice BGMUSIC Version 1.1 documentation This program lets you play music or some digitized sound in the background while you are using an Apple IIgs program. Since it is an NDA, it will only work with programs that use the standard IIgs desktop interface. It can play any digitized sound file. You can create these digitized files with an MDIdeas SuperSonic Digitizer, or with a Future Sound digitizer, or whatever. Version 1.1 makes two significant modifications. First of all, instead of looking for your music file in your Desk.Accs folder, it lets you select any sound file on any of your disks. Secondly, the AUXSET program has been modified to allow you to change several files before quitting. How to set it up: First of all, there's a program called BGMUSIC. This program must be copied into your DESK.ACCS directory, which is inside your SYSTEM folder. It doesn't matter what position it takes in the catalog. Personally, I always keep my desk accessories alphabetized. Secondly, you will need a digitized sound file. This can be anywhere on any of your disks. (A standard file toolset dialog will ask you where it is.) Digitize whatever music you like best. You should probably digitize as slowly as possible, as you don't want to use up too much memory. (Memory used by BGMUSIC cannot be used by your program. However, if you run out of memory, you can click the Close box for BGMUSIC. This will release all the memory BGMUSIC was using immediately.) Finally, there is a program called AUXSET. You can put that program anywhere you want, it doesn't matter. You must use this to configure any sound file you use with BGMUSIC. It modifies the playback rate of the sound file by changing it's "auxtype" field. If a file is digitized at a different rate, then it must be played back at a different rate. This program can also be used to configure STARTSOUND and SYSBEEP as well as BGMUSIC. A note on digitizing for BGMUSIC: Since loading sound files takes time, I would suggest digitizing sounds at the slowest possible rate, so that they take up the least amount of space and can be loaded quickly. The quality of the sound goes down, however, when you digitize slowly. Its a tradeoff, but I think it's best to speed up the boot process by slowing down the digitizing rate. If you are using the MDIdeas SuperSonic Digitizer, and the new Sound Edit program, go into the "Preferances" section before digitizing. Set the Playback rate to 40, and the Digitizing rate to 34. Then click "Okay". This will result in the most compact sound files. Oh, also, don't pack the resulting sound file when saving it. Leave it unpacked. And make sure the file's playback rate is set at 200. (Note, the playback rate used by BGMUSIC is on a different scale than that of Sound Edit. To be specific, the BGMUSIC playback rate is the parameter passed to the Sound Manager toolset as playback rate.) Run AUXSET to set this. Macintosh and other sound files: When playing back files digitized on a Macintosh, a playback rate of 450 has worked best for me so far. If that doesn't work, 200, 300, and 400 also are good bets. Finally, if you figure out how to use sound files from any place I haven't mentioned, let me know. I don't know if any other computers use the same kind of files as Apple IIgs and Macintosh, but I'd love to hear from anyone who does. My GEnie mail address is GUYRICE, and my Post Office address is given below. Final notes: This software is completely public domain. You are not OBLIGATED to send any money at all. However, you are NOT RESTRICTED from doing so, either. If you really liked this program, STARTPIC, STARTSOUND, SYSBEEP, or any other public domain programs I have written, and feel you need to show your appreciation to me somehow, my address is: Guy T. Rice P.O. Box 13036 Dinkytown Station Minneapolis, MN 55414 STPICDuHUSTON!J0' ',STARTPIC.ASM J18,STARTPIC.MAC"\J1STARTPIC.MAKE$HJ1(+SHR.OFF.ASM&J1$******************************************************************************* * * * Startup Picture Display v1.1, by Guy T. Rice * * * * This version improves on the last one in that it allows for multiple * * picture files. (ie. PICTURE.A, PICTURE.B, PICTURE.C, PICTURE.D, etc.) * * The Subtype of PICTURE.A tell s what the next picture will be. (Subtype * * is meaningless to a $C1 file, so no harm done in using it for this.) * * This value is incremented every time around. If gets too high, its set * * back to "A". * * * ******************************************************************************* keep startpic mcopy startpic.mac StartPic START short lda #$1E ;Proper bootup shadowing sta $E0C035 lda #$41 ;Turn SHR screen OFF, but make sure sta $E0C029 ;it's linear. long ldx #0 TitleLoop lda >Title,X sta $E00400,X inx inx cpx #40 bne TitleLoop _GET_FILE_INFO FileInfo bcs AllOver ;If you can't find PICTURE.A, quit lda >FileInfo+8 cmp #$41 ;ASCII "A" blt OutOfRange cmp #$5A+1 ;ASCII "Z" blt OkayFine OutOfRange lda #$41 ;Force to "A" if out of range OkayFine sta >PathEnd-1 ;Put it as last char of pathname ina ;Increment for next time around sta >FileInfo+8 _OPEN OpenParms bcs OutOfRange ;If file not found, goto PICTURE.A lda >OpenParms sta >ReadParms sta >CloseParms _READ ReadParms _CLOSE CloseParms short lda #$C1 ;Turn SHR display ON. sta $E0C029 long _SET_FILE_INFO FileInfo ;Store subtype for next time around AllOver rtl PathName str '*/SYSTEM/SYSTEM.SETUP/PICTURE.A' PathEnd dc i1'0' ;Gets high byte from a certain STA OpenParms dc i2'0' ;Ref_Num (Result) dc i4'PathName' ;Pathname pointer dc i4'0' ;I/O Buffer (Result) ReadParms dc i2'0' ;Ref_Num dc i4'$E12000' ;Data buffer pointer dc i4'32768' ;Request count dc i4'0' ;Transfer count (Result) CloseParms dc i2'0' ;Ref_Num Path2 str '*/SYSTEM/SYSTEM.SETUP/PICTURE.A' FileInfo dc i4'Path2' ;Pathname pointer dc i2'0' ;Access dc i2'0' ;Filetype dc i4'0' ;Subtype dc i2'0' ;Storage type (Get only) dc i2'0' ;Create date dc i2'0' ;Create time dc i2'0' ;Mod date dc i2'0' ;Mod time dc i4'0' ;Blocks used msb on Title dc c' STARTPIC, by Guy T. Rice ' END MACRO &lab _SET_FILE_INFO ¶ms &lab jsl $E100A8 dc i2"5" dc i4"¶ms" MEND MACRO &lab _GET_FILE_INFO ¶ms &lab jsl $E100A8 dc i2"6" dc i4"¶ms" MEND MACRO &lab _OPEN ¶ms &lab jsl $E100A8 dc i2"$10" dc i4"¶ms" MEND MACRO &lab _READ ¶ms &lab jsl $E100A8 dc i2"$12" dc i4"¶ms" MEND MACRO &lab _CLOSE ¶ms &lab jsl $E100A8 dc i2"$14" dc i4"¶ms" MEND MACRO &lab str &string &lab dc i1'L:&string',C'&string' MEND MACRO &lab long &lab ANOP rep #%00110000 longa!# on longi on MEND MACRO &lab short &lab ANOP sep #%00110000 longa off longi off MEND asml startpic.asm filetype startpic $B7 copy -c startpic 4/system.setup ******************************************************************************* * * * Turn off Super HiRes, by Guy T. Rice * * * ******************************************************************************* keep shr.off mcopy startpic.mac SHRoff START short %' lda #$41 sta $E0C029 long lda #0 AllOver rtl END SYSBEEPuHUSTON!J4'  ''SYSBEEP,J5;()SB.CONFIG0 J58 ($BEEPA J5 (+SYSBEEP.DOCM J5;(STARTPICuHUSTON!J4'  'SHR.OFFJ%0),STARTPIC.DOC J%0))PICTURE.AAJB%0)STARTPICJ9)FINDER.DATA<js)s))STARTUPSOUNDuHUSTON!J4'  '*STARTSOUNDJ9"3 *.STARTSOUND.DOC J9" *)SS.CONFIG&J9"0 *'SOUND.A3bJ9"*t ,@ 0L("2:H"L h""HHH "L hh""/"L kH"SYSBEEP: Tool error h0"L h08k0"L  "L  "L h"L +-.0k*/SYSTEM/SYSTEM.SETUP/BEEP&*/SYSTEM/SYSTEM.SETUP/SYSBEEPРԮ堠L2&:*8 <EOSW[dimquy} //  E \p vy   2@ ,@ < " "\. ;8 [HH " HH " H " )HH"j " "  HH"j " " )(HH"j Q'HH"j " x(HH"j 'HH"j " " (HH"j 'HH"j " (HH"j >'HH"j " e(HH"j 'HH"j " " (H/123456789:;<=>?H"j 'HH"j " (HH"j +'HH"j " R(HH"j z'HH"j " (HH"j 'HH"j " (HH"j 'HH"j " " ?(HH"j g'HH"j " (HH"j 'HH"j " " ZHHH"ZB@@"M JHHH">'HH"j >HH".H "" " !HH"j <H"P " " <ʎJH@"M +;ikSYSBEEP Configure Program, by Guy T. RiceSuggestions:Set the playback value to 550 if your file was digitized using the new MDIdeas software, Sound Edit, using its default values. (Digitize:1, Playback: 114) Set the playback value to 450 if your file was digitized using the old softwarethat originally came with the card. (ie. with SAMP2 and the basic program thatwent with it. Set the playback value to 200 if you used the new MDIdeas software and set the digitizing rate to 34 in order to get the most sound into the smallest space. Irecommend doing this when digitizing for STARTSOUND, since the smaller the fileis, the quicker it will load, and the quicker you'll finish booting. (Set Sound Edit's values to Digitize:34, Playback:40 to do this.) Future Sound users: you're on your own. I don't know what you should set thingsat, but with a little experimentation you'll be able to figure it out. */SYSTEM/SYSTEM.SETUP/SYSBEEPSYSBEEP Playback Rate currently set to New SYSBEEP Playback Rate: _R H"Q hhhk{;8[:ڥ H H H @ h h h  I  $J        {i+ka c _ " k; [H H H @ h h h8"Q  0 " H Hi  H" i " +;i k  H" H"h")J N {;8[:ڋK )  "> +%- > 0:> > N "H > H ("h"Q {i+k " kSC ;[I4" )d9  ")   +` "kK  H H "K;[ c:zZګ Hi " "       kInsufficient bank zero memory "H"t \\ K Error occurred at line h " H" in procedure "! ""   " " Line Name " ---- ---- "  < H" E "! "" ;[ 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 overflowK "Q "8  k K;8 [0  "0dd    !̓   ɍ    ɾɮ  ɼɬd ̓Hd  h Wd 3  :Iȹ:Hd  h:  H Q̓ Hd  h h   `L0H ""h0) a    `0ZH"H "hz0`8(0̓   `̓ș΃`0;i +k K&kK   HH"k; [8""0+hhkHHH8H; [  " % Q8  0 " " "e i @< " "   "Z ""+;i kHH8H; [ȷȷ HH"+hhhhkH; ["'ȿ+hhkHHHHH; ["'  ȷݠȷ ȷ+;i k:JJJJkKZ "0 ΈΆ0)zkK0Ά0kHi H ;[ "+hhk; [2 "2HHH" +hhhhk; [  )8 I" H HI i " +;i kH\( &"L(QM ;[ \ 8(I \ȗ(  @+hhk < . : T b ehyj }  j   ))j QQj  xxj j     %j ),=j A EHYj ]>`>qj u ye|ej j   j j  j ++j  RR-j 1z4zEj I MPaj ehyj } j j   ??j ggj  j j  ! %Z(Z14;?ZBZEBH@K@N@TM XJ\H`d>gj{j >  !!j <<P   <JH@@M Q @ N a S c X _ f  w @  Q        0 4  F J J N _ o u >   >  >   >     >  Q    _ c h                 "             ? B U t Y \ _  h  h      !  !           !  +  .  3 @ I E L E V ! Y ! e i v y  Q  8       +>ELO]belot !(<CV[Qcjpsx  ,3:=GU^dhpu   !0Z :B''>CGMRU\_btwz2222\ \0\\~~~~~~~~}}{~|||~~|~}~|yvvtuuyz~~~~~~~~~~~|{xvrttx|}wtoqsz~~~xuqrrtttx}~~~||zwvxy{{~~~~|xtsrprty|~~yusstssvvz|~yxqpnnnqswx~~|zxxvtttxzz~~~|wrnkihji@BCDEFGHIJKptx}{zxxsvvxy}~|xuspnlkknpty}~}~~yywvvvxyzysnimnnnnty~~|vqqppptt|~~~}{z|zxvtpnqoqtux|~~~tnlkkjltz~|yxyzyxwsrpnqpqprv|zvrnmmkkrx~~zxxxx|~|yyzwvvtuqrprrtw|{ysrnlikloxzvrnlhe_bbdhms{~|xqqpkjlpv|~th_XRPPTYepx|xtqppntx}{z|~~}{k^TKHJR\iu}ysmmntu{|{~||yy{{~~fTD9:>FTdx~|ytnlhecfnt~~|xtssw{iP7'&,9K`t~n`XPKPV`l|~zrnliipưhF**L\pĻzkf^TXYpΦxM1&4F]kqwѳW<$%%0?M]k´xaVPOYg̦xH&!.CZfvɩV6*>Vt˲teXSRT|αP2%(:Pd|ضtN5 2S|¦mbTY޸mN>* ,7,4@MeãpR>0$ 9[~tihhD>0$-90&4D\|nU=+ [Я}nfVF((R{ömQ&*8OQBJWtɧzb`TA0,Sò̘gB..-9?''6\ʦ~n]= $P|ƾʴS.(1ESRLVdƪl`UP;.*.',IyɻΒT,$f͸gRDEGLNMIMYmvd[bp|~rnnoil`\]cktvz|}~|}~}ztiecflrvy}~~~~~|{yvromknptx}~|xvxz~~zwusrrv|~~~~|{~zzxyy~}{|}~~~zxz|~~~~~~~~}~~~~~|xxxz{~~~~~~~~|}}~~||y|||}}~~~}}~~~~}~|}|{{~~|}}|{~~~~~||}~~|}~|z{|~~~~|||}}~~~~~~~~~}{{~~~~|xxy{|}~~~~~|}}~~~~~~~~}~|~~~}}~~~}~~~}~~~~}}{{~~~~~}}{~~~~~~~{~~~~~}~~~~|~~}xuxrtvz~zs|z|{v|~xvmvx~~|slkfls~t~q{{}rv|zyvv}~|vx{txnpwyz|{|uwtotz|u{~s~vmp~~v~}}rqw|mwvx}gx}xth|`}yy|hqnsvttj`Uca_byn|y{k{f|m~{p~}{xix~|x}|t]St|hlx]~wlUtla[ftpt{a{xyn|os|~vtt\dx}}wrtppYvyx~s~lnhep|qZLfVww{aly{rpXzl|vtwxbfz|yH`t~|~}{gXyvxSv|jvvt_znh~vcx}zuxl}sw{|pQ~V{tpMy{fhp`L~zYI^vq^jqtoyfd|k~|lyz{bx}kj~{|t~k{{~|o`mvyxv|fdn}vNd}t}{nmvTS|sl|b|p_[mv}{vv~xxr|v~|vrkvzv~ozfl[Ukd<;^lhlqx{vpu|{vx{~j|hxggmP\XfiV~v]h_d|lYpt_anWSz{ieplPf_Slfl}pp~]cqkjppvhixrpmh~|apyfnqlxvtz}stm~~|yvxw~~n`unhxyykntqp{{v|{~|x~wxyv{xq|xs~ty|styr||{nw~yp|~}zvyy~~wx}~~|q{zw~}~txzvy|~~~~{v|zx~|xx~|o~z~~y{|uz~~yv|~~|v~}}vx~y{|~~y{}~|~|~{}~~~}}{~{~~y~~|x~~~~~~~{~}~~}~~~~||{||{~|~}~~~{~||~~~~|}~~~~~~~~~~~|~|~~~{{~~~}~~|~|~~~~~~~~~~~~|}~~~~~~~~|}~~~}|~}zz|}{{~|~}~~}} SYSBEEP System Beep Modifier, by Guy T. Rice SYSBEEP Version 1.3 documentation This program is a close relative of STARTSOUND. What SYSBEEP does is it changes your standard "Boink!" into the sound contained in any digitized sound file. You can create these digitized files with an MDIdeas SuperSonic Digitizer, or with a Future Sound digitizer, or whatever. Version 1.1 of SYSBEEP fixes a bug that would sometimes cause SYSBEEP to hang, often making a "wasp-like" sound.LNOPQRST It also fixes the problem that caused it to sometimes mess up the HiRes or Double-HiRes screen (such as in Apple II DeskTop). Version 1.3 of SYSBEEP fixes the bug that would cause Unclaimed Sound Interrupt error in Point-To-Point and some other programs. How to set it up: First of all, there's a program called SYSBEEP. This program must be copied into your SYSTEM.SETUP directory, which is inside your SYSTEM folder. It doesn't matter how far down in the catalog it is. I have it last in mine. Secondly, you will need a digitized sound file. Put this into your SYSTEM.SETUP directory, and rename it BEEP. The one that comes with this program is my voice, saying "Whoops!" Finally, there is a program called SB.CONFIG. You can put that program anywhere you want, it doesn't matter. When you change sound files, you may have to run this program. It modifies the playback rate of SYSBEEP. If a file is digitized at a different rate, then it must be played back at a different rate. The program will suggest some rates for you. When SYSBEEP won't work: There are two conditions during which SYSBEEP will revert back into your standard IIgs "boink". First, if the program you are running uses the Sound Manager for itself. Second, if the program turns off interrupts. For example, the MDIdeas Digitizing software uses the Sound Manager for itself, thus SYSBEEP will not work. Another example is Point-To-Point, which turns off interrupts when it makes a beep. A note on digitizing for SYSBEEP: Since loading sound files takes time, I would suggest digitizing sounds at the slowest possible rate, so that they take up the least amount of space and can be loaded quickly. The quality of the sound goes down, however, when you digitize slowly. Its a tradeoff, but I think it's best to speed up the boot process by slowing down the digitizing rate. If you are using the MDIdeas SuperSonic Digitizer, and the new Sound Edit program, go into the "Preferances" section before digitizing. Set the Playback rate to 40, and the Digitizing rate to 34. Then click "Okay". This will result in the most compact sound files. Oh, also, don't pack the resulting sound file when saving it. Leave it unpacked. And make sure SYSBEEP's playback rate is set at 200. (Note, the playback rate used by SYSBEEP is on a different scale than that of Sound Edit. To be specific, the SYSBEEP playback rate is the parameter passed to the Sound Manager toolset as playback rate.) Run SB.CONFIG to set this. If you are using a Future Sound board, set your Sampling rate at 15125, and when you run SB.CONFIG, set the file's playback rate for 300. Macintosh and other sound files: When playing back files digitized on a Macintosh, a playback rate of 450 has worked best for me so far. If that doesn't work, 200, 300, and 400 also are good bets. Finally, if you figure out how to use sound files from any place I haven't mentioned, let me know. I don't know if any other computers use the same kind of files as Apple IIgs and Macintosh, but I'd love to hear from anyone who does. My GEnie mail address is GUYRICE. Final notes: This software is completely public domain. You are not OBLIGATED to send any money at all. However, you are NOT RESTRICTED from doing so, either. If you really liked STARTPIC, STARTSOUND, or SYSBEEP, and feel you need to show your appreciation to me somehow, my address is: Guy T. Rice P.O. Box 13036 Dinkytown Station Minneapolis, MN 55414 333 Txc33jd]XS33:cggP ic3334MgwjLGwj̷ L\Ӭ ֧Njif 33333337gcXP dCic\33333333:MMDL333jccdݬ333333333333333333333j33:vvړ336jv~dmE338jfvDDG33331Jjzz JDC34jJjv3333333::C:@|G}֪1::UUUF33333333:MDD333XF666P333333333333333333333333:\UPc33:dݦt3."bF3i5f36˪}DƝ.f~ehf` [ [<ŌƙfeŰM}LU[[U^a"9:P P \\Yh̅SiḑHi".bn)m&b*gfFEU333316˴gI~nnnbpƓCcfl\\ \jXcilLMi\̼PJi5U [ [PPU [  P [[UUUP MƩK:JUwrv"Dz[ZKUfs1:[ Uw.i) Fffi` PP8Df65͙8U P UfaU[U U c \ilJxfM"g⎧"\U\ :Ti.n3U ×~ifiifi X  њDģi[ \ \i6[[ P[ P[P [ [ [ [[[[Ue6aĈE\J֮&[L@D :J38Uif3[~vnv j9fiP[PPPPPAȪZflG PŖbjU U\ ЪđlXLcԧ'MH@ :3]&nbb11;P]ݭ~ngǤcf\U\\U\ \ CUZ\cʪa P\řff:[PU[PPP[ [ P [[ PP ˰֙NHa6&"".GĂ]MD@3333nhU13˰HM~n.9 hfiif UUD̊:6PUUiaUUP U )*f""".}B%NM@܁93:z)f 3[wĪic\̦\\USP\XʦjZZ f:[ [ [[[ [P P U amzUԄ""""."mw@У:3:3uҭ諵8U @~wwvnm Difff6eJŊUPFhŨʖ[[ giPU  d}]ff\i"&"".".~$K@cUP3UuwfJiffd T\\\ XU\\ƪXZ HD̖vHF5U[U [PP [ PPPP [ P P[[UP}Zvr-Fi""""""brDLK3UT˸HC33:[ G~~Jf:fj ff[UʊFvuŦKU U\NPTMFi"bbbb)'\TX333U[[c33:: H@D~nfffdU \\ʪVlU DfThL;  [P [ [ [[P[ P[P[PP MǓJTvI"""""'M6H35Kx333:X Ж~wpyf:fjPJ:EUPĽlJjkŻ U vFjLjDeL ]@P U\PH\ULiii"""b"..}x 93PM[ c3333U p9mt~G \ifcjcjP\ZZf U\\XlU Vgfg:JH؍:ʖ [[ [PP P PPP[ȋP ňF!ˉ"&"."".&}-3[f[ :33J ۆzwxNMĖfHjzE[f[ U[[ŌŀJh :JfDJjLʊ̣l[  H\ GiPY"")"""b&iimF#3:33U .ЃzکdUWicFTUUƤ \ \ XEZjgfj[UXtjȥ [ P [ [[ PP[P ɖfY&&"&.&&mfFzFi96tv :38UnswDM:MT=: MAX PACKAGES, STATIONS & TRAINS*LGMAX= :TKMAX=: PACKAGES TO START!::: READ THE DATA INITIALIZE RANDOM$:STA=: STARTING STATION |:="DO YOU WANT TO BE ABLE TO DELIVER AFTER 5 (EASIER)?";A$%:A$="Y"TM=:TM$="6:00":TM=:TM$="5:00"$I=߁: INFO ABOUT DELIVERIESDP(I)=:I"I=߁ : PICK UPS,DP(I)=:I-6:߂);"COPY THIS SCREEN FOR LATER USE"@:: PRINT PACK LOG T *** ARRIVE AT STATION ***^: PRINT TIME.h"YOU HAVE ARRIVED AT "ST$(STA)" STATION."r"THESE TRAINS STOP HERE:"|I=߁ST(STA)$" ";TR$(SR(STA,I));" LINE":I,PERS=L:: IF ON FOOT, BUY TOKEN)STA<>TR(TR,)߈STA<>TR(TR,TS(TR))-"End of the line. You must get off.":&"DO YOU WANT TO GET OFF?";A$:A$="N": STAY ON5PERS=:"DO YOU WANT TO:":" (P) MAKE A PICKUP":" (D) MAKE A DELIVERY":" (C) CHECK YOUR LOGBOOK"" (T) GET ANOTHER TRAIN","YOUR CHOICE PLEASE (P, D, C OR T)?";A$:A$="P"߉A$="D"A$="T"A$="C":2"NOT A VALID CHOICE ENTER P,D,C OR T>";A$: *** TRAIN COMMING ***: PRINT TIME+&RN=ߗ1.0+(ST(STA)*ߢ))): WHICH TRAIN?0TR=SR(STA,RN)2:STA=TR(TR,)DES=:X: AT ONE END OF LINE? DSTA=TR(TR,TS(TR))DES=:X*NDES=ߗ1.0+(2.0*ߢ1.0))): DESTINATION?=X"HERE COMES THE ";TR$(TR);" LINE TRAIN TO ":TD$(TR,DES) bMIN=MIN+%l"DO YOU WANT TO GET ON?";A$:vA$="N"&: WAIT FOR NEXT%I=߁TS(TR): FIND WHERE TRN ISTR(TR,I)=STASI=I-I:TR(TR,SI)<>STA"ERROR AT LINE 660":DES=TX=-:TX=# *** TRAIN TRAVEL ROUTINE ***=PERS=:"YOU ARE ON THE ";TR$(TR);" LINE TO ";TD$(TR,DES): HAZZARDS2SI=SI+TX:STA=TR(TR,SI):MIN=MIN+ߗ2.0+1.3*ߢ))T  *** PICKUP AND DELIVERIESA$="P"X$="PICKUP":X$="DELIVERY"I"WHICH ";X$;" DO YOU WANT TO":"MAKE (ENTER LOGBOOK ITEM NUMBER)>";A DP(A)<>4Q"THAT NUMBER SEEMS TO BE IN ERROR.":"DO YOU WANT TO CHECK YOUR LOGBOOK?";A$ :A$="Y"* 4"THAT ";X$;" IS AT ";DE$(A)>I=߁PK(A)HPS(A,I)=STAf2RI:"WHICH IS TOO FAR TO WALK FROM THIS STOP."1\"PERHAPS YOU SHOULD TRY SOMETHING ELSE.":fX$="":PD(A,I)>X$="S"?p"WHICH IS ";PD(A,I);" BLOCK";X$;" FROM HERE. OFF YOU GO."z' *** SUCCESSFUL PICKUP OR DEL ***MIN=MIN+2.0*PD(A,I)+6.0!DC=DC+:DP(A)=: PICKUP1:"YOU FIND SOMEONE TO SIGN FOR THE PACKAGE"DP(A)=:BLGMAX=LGMAX+:"YOU PICKUP A PACKAGE AND LOG IT IN AS #";LGMAX&"THE ADDRESS ON IT IS "DE$(LGMAX)DP(A)=:DP(LGMAX)=:  *** CHECK IF ALL DONE *** DC=,X$="S":PK(A)=X$=""J:"FROM HERE, YOU CAN WALK TO THE":"FOLLOWING SUBWAY STATION";X$;":"$PK(A)=" ";ST$(PS(A,)):TI=߁PK(A)"" ";I;" - ";ST$(PS(A,I)):I9$"TO WHICH STATION DO YOU WANT TO GO (BY NUMBER)>";B..B<߉B>PK(A)"NOT A VALID RESPONSE.":$%8STA=PS(A,B):MIN=MIN+*PD(A,B):TBL *** BUY TOKEN ***VTN=TN+:TN<=TKMAXH`:"YOU HAVE SPENT THE ENTIRE $20 YOUR BOSS":"GAVE YOU FOR TOKENS." jTK=~At"MOREOVER, YOU HAVE USED ALL OF YOUR OWN MONEY AS WELL.":B~TK=:"DO YOU WANT TO BUY TOKENS WITH YOUR OWN MONEY?";A$:&A$="N""OK, THAT'S IT THEN.":>RN=ߗ300.0+(600.0*ߢ1.0)))/100.0:"You have exactly $";RN;B"SO YOU CAN BUY ";INT(RN);" MORE TOKENS.":TKMAX=TKMAX+INT(RN) *** TRIP HAZARDS *** DOOR REFUSES TO CLOSEXXX=ߢ):XXX>.05 I"ONE OF THE CAR DOORS REFUSES TO CLOSE":"AND THE TRAIN CAN'T MOVE."6RN=ߗ1.0+(2.5*ߢ1.0))):MIN=MIN+RN:RN>X$="S": X$=""2"YOU ARE STUCK HERE FOR ";RN;" MINUTE";X$;"." *** MUGGINGS RND()>.35XXX=ߢ):XXX<.95W"SOME REAL UNSAVORY TYPES ARE WHOOPING":"IT UP IN THE CAR ACROSS FROM YOUR SEAT."2("DO YOU WANT TO MOVE TO ANOTHER CAR?";A$:2A$="N"<5XXX=ߢ):XXX>.05F9Z<XXX=ߢ):XXX>.05PAdCF"THEY JEER AT YOU BUT LET YOU PASS.":"ALL IS OK... FOR NOW":EP"THEY LOOK AT YOU AND TRY TO BAIT YOU,":"BUT YOU AVOID THEM.":=Z"UH OH. TWO OF THEM GET UP AND BLOCK":"YOUR WAY.":^Nd"OH MY, OH MY. THEY'RE ALL MOVING TO":"SURROUND YOU. THEY PULL KNIVES""n"AND DEMAND YOUR MONEY.":^Rx"YOU, DECIDING THAT DISCRETION IS THE":"BETTER PART OF VALOR, GIVE THEM ALL"3"YOUR MONEY AND CALL IT QUITS FOR THE DAY": FIRE ON TRACKRND()>8.000001E-03+"UH OH. THE TRAIN IS SLOWING DOWN AND"!"SEEMS TO BE STOPPING.":^,"YOU'RE STUCK HERE IN THE TUNNEL.":^R"THE INTERCOM FINALLY ANNOUCES, 'IT'S":"JUST A COMPUTER MALFUNCTION, FOLKS."/"WE'LL BE UNDER WAY IN A":"FEW MINUTES.'"'RN=ߗ10.0+(35.0*ߢ1.0))):MIN=MIN+RN8"IN FACT, THE DELAY IS MORE LIKE ";RN:"MINUTES!": *** END OF GAME *** DC=,-:"YOU MADE IT TO ";DC;" LOCATIONS, BUT"4"YOUR LOG STILL SHOWS THE FOLLOWING ITEMS":.:"PERHAPS YOU'LL DO BETTER TOMORROW.""J&,::߀ );"CONGRATULATOINS!":T6"YOU MADE ALL 15 PICKUPS AND DELIVERIES":"SUCCESSFULLY IN THE CAPITAL CITY OF"@"THE NATION. VERY GOOD!")J"YOU USED $";TN;" ON YOUR FARECARD.",T:"WOULD YOU LIKE TO TRY AGAIN";A$:^A$="Y"|:r:c:"BYE FOR NOW":h-r:߂);" DC METRO ADVENTURE":H|"YOU HAVE A JOB WITH A MESSENGER SERVICE LOCATED IN WASHINGTON DC."S"TODAY, YOU HAVE 5 PACKAGES TO PICK UP FOR DELIVERY TO OTHER LOCATIONS IN THE"D"CITY. SO, IN TOTAL, YOU MUST VISIT 15 DIFFERENT LOCATIONS.":Q"YOU CAN USE THE 62 STATIONS OF THE DC METRO SYSTEM WHICH ARE SERVED BY THE":"FOLLOWING 4 LINES: BLUE, RED, ORANGE, AND YELLOW.":S"YOU MUST COMPLETE ALL YOUR DELIVERIES & PICKUPS BY 5 P.M. YOUR BOSS GAVE YOU"Q"A $20 FARECARD (WHICH WILL ALLOW FOR A FEW WRONG TRAINS.) YOU CAN KEEP ANY"""UNUSED MONEY. GOOD LUCK!":& *** READ PACKAGE DELIVERIES *** I%=߁PSPN(I%),DE$(I%),PK(I%)J%=߁PK(I%)PS(I%,J%),PD(I%,J%) &J%:I%:*0 1,"Curator, Air&Space Museum",1,16,49: 2,"Oval Office, White House",4,11,5,12,5,13,6,49,6*D 3,"Panda House, National Zoo",1,51,23N 4,"Code Room, DMA, Crystal City",2,32,6,33,3+X 5,"Hecht's at Ballston Commons",1,5,21b 6,"Washington Apple Pi Office",2,56,7,57,100l 7,"Computer Dept., Catholic U of A",1,45,5-v 8,"Speaker of the House of Rep.",1,18,4. 9,"President Pro Temp. of Senate",1,43,6( 10,"The DC Courthouse",2,42,1,43,67 11,"Armand's Chicago Pizza at Tenley Cir.",1,54,3E 12,"Fed. Communications Commn (19&M St.)",4,10,6,11,4,49,4,50,4* 13,"FBI (near Archives)",2,14,3,39,1# 14,"King St. Antiques",1,36,6, 15,"Ticket Office, RFK Stadium",1,21,3' 16,"Tempest Rm, Pentagon",1,31,1* 17,"Capitol Center Shuttle",1,29,1? 18,"National Bureau of Standards (near Shady Grv)",1,62,5( 19,"Hunan, G St, Chinatown",1,40,1' 20,"Arlington County Court",1,8,1* *** read data about subway stations I=߁MSST$(I),ST(I) J=߁ST(I)+*SR(I,J): READ TRAIN # THAT STOP HERE 4J:I:> "VIENNA",1,2H "DUNN LORING",1,2R "W FALLS CHURCH",1,2\ "E FALLS CHURCH",1,2f "BALLSTON",1,2p "VIRGINIA SQ",1,2z "CLARENDON",1,2 "COURT HOUSE",1,2 "ROSSLYN (VA)",2,2,3 "FOGGY BOTTOM/GWU",2,2,3 "FARRAGUT WEST",2,2,3 "McPHERSON SQ",2,2,3 "METRO CENTER",3,1,2,3 "FEDERAL TRIANGLE",2,2,3 "SMITHSONIAN/USDA",2,2,3 "L'ENFANT PLAZA",3,2,3,4 "FED. CENTER SW",2,2,3 "CAPITOL SOUTH",2,2,3 "EASTERN MARKET",2,2,3 "POTOMAC AVE",2,2,3 "STADIUM/ARMORY",2,2,3 "MINNESOTA AVE",1,2 "DEANWOOD (DC)",1,2$ "CHEVERLY (Md)",1,2. "LANDOVER",1,28 "NEW CARROLLTON",1,2B "BENNING RD (DC)",1,3L "CAPITOL HTS (MD)",1,3V "ADDISON RD.",1,3` "ARLINGTON CEMETERY",1,3j "PENTAGON (VA)",2,3,4t "PENTAGON CITY",2,3,4~ "CRYSTAL CITY",2,3,4 "NATIONAL AIRPORT",2,3,4 "BRADDOCK RD.",1,4 "KING ST.",1,4 "EISENHOWER AVE",1,4 "HUNTINGTON",1,4 "ARCHIVES",1,4 "GALLERY PL.",2,1,4 "MT. VERNON SQ/UDC",1,4 "JUDICIARY SQ",1,1 "UNION STATION",1,1 "RHODE ISLAND AV",1,1 "BROOKLAND/CUA",1,1 "FORT TOTEN",1,1 "TAKOMA (DC)",1,1 "SILVER SPRING (MD)",1,1 "FARRAGUT NORTH",1,1( "DuPONT CIRCLE",1,12 "WOODLEY PK/ZOO",1,1< "CLEVELAND PARK",1,1F "VAN NESS/UDC",1,1P "TENLEYTOWN (DC)",1,1Z "FRIENDSHIP HTS (MD)",1,1d "BETHESDA",1,1n "MEDICAL CENTER",1,1x "GROSVENOR",1,1 "WHITE FLINT",1,1 "TWINBROOK",1,1 "ROCKVILLE",1,1 "SHADY GROVE",1,1& *** READ SUBWAY TRAIN LINES *** I=߁MTTR$(I),TS(I)J=߁TS(I) TR(I,J)J6TD$(I,)=ST$(TR(I,)): STATION NAME AT N OR W END;TD$(I,)=ST$(TR(I,TS(I))): STATION NAME AT S OR E ENDI:) "RED",23,62,61,60,59,58,57,56,55,54/ 53,52,51,50,49,13,40,42,43,44,45,46,47,482 "ORANGE",26,1,2,3,4,5,6,7,8,9,10,11,12,13,14) 15,16,17,18,19,20,21,22,23,24,25,26> "BLUE",21,34,33,32,31,30,9,10,11,12,13,14,15,16,17,18,19$ 20,21,27,28,295. "YELLOW",12,41,40,39,16,31,32,33,34,35,36,37,38  *** END OF DATA ***0 *** CHECK FOR LUNCH AND END OF WORKDAY***MIN>TMd( 2LUN= <MIN<ഌ FPERS==P:"TIME FOR LUNCH BREAK.":"CHILI DOG AND COLA... BURP!"'Z:MIN=MIN+ߗ24.0+20.0*ߢ)):LUN=:4d:"SO SORRY, IT IS AFTER ";TM$;"PM AND ALL THE"8i"PLACES TO WHICH YOU WANT TO GO WILL BE CLOSED": *** PRINT THE TIME ***2HR=ߗMIN/60.0):MN=MIN-<*HR:HR";A$: LA$="N"2NMIN=MIN+:"LOG BOOK NUMBER OF DESTINATION>";A PDP(A)="BAD NUMBER.":NQDE$(A);" IS"8RI=߁PK(A):PD(A,I);" BLOCKS FROM ";ST$(PS(A,I)):IT^ *** SHORT PAUSE ***hI=߁:I:)|" PRESS ANY KEY TO CONTINUE"$X$:X$)=# *** SHUFFLE PACKAGE LIST ***I%=߁PS-CK%=I%+ߗ(PS+1.0-I%))*ߢ))):J=PN(I%):PN(I%)=PN(K%):PN(K%)=J)X$=DE$(I%):DE$(I%)=DE$(K%):DE$(K%)=X$#A=PK(I%):PK(I%)=PK(K%):PK(K%)=A J%=߁/A=PS(I%,J%):PS(I%,J%)=PS(K%,J%):PS(K%,J%)=A/A=PD(I%,J%):PD(I%,J%)=PD(K%,J%):PD(K%,J%)=A J%:I%:0 CONVERTED TO IIGS BASIC 1/1/88 BY RC PLATT0tr FOUR.ROW.DOCH FOURINAROW ,@ 0("pxA[A3x"5 Aۂ_= H"hH "hhH"""HHH "hh""""h""pH"k*/SYSTEM/SYSTEM.SETUP/SOUND.A&*/SYSTEM/SYSTEM.SETUP/SOUND.A */SYSTEM/SYSTEM.SETUP/STARTSOUNDOĠԮ堠p&x7;3@xI5P\=` m}17FJSW[alv~p5pO STARTSOUND Startup Sound Player, by Guy T. Rice STARTSOUND Version 1.2 documentation This program is a close relative of STARTPIC. What STARTSOUND does is it plays a digitized sound file when you boot your computer. You can create these digitized files with an MDIdeas SuperSonic Digitizer, or with a Future Sound digitizer, or even with a Macintosh! (Finally, a good use for a Mac.) Version 1.1 of this program fixes the bug that sometimes caused 1.0 to either hang or abort early when playing certain sound files. It should be noted that this was caused by a bug in the Sound Manager on my IIgs, which has not yet been updated to the new ROMs. I do not know if this bug exists on the new ROMs as well. At any rate, version 1.1 works with both ROMs equally well. Version 1.2 of this program allows for multiple startup sound files, named SOUND.A, SOUND.B, etc. SS.CONFIG has been modified so that you can set the playback rate of these files separately. How to set it up: First of all, there's a program called STARTSOUND. This program must be copied into your SYSTEM.SETUP directory, which is inside your SYSTEM folder. If you are using STARTPIC, you will probably want to make STARTSOUND come after STARTPIC, so that the sound comes out after you're already displaying the picture. It is best to make STARTPIC the first file in your SYSTEM.SETUP directory, and make STARTSOUND the second. Secondly, you will need a digitized sound file. Put this into your SYSTEM.SETUP directory, and rename it "SOUND.A". The one that comes with this program is my voice, introducing my program. You'll probably use it once, then decide you don't want to listen to me for the rest of your life. I'll be uploading some better sound files to GEnie soon. Whenever you add a new sound file, you must run SS.CONFIG to make it useable by STARTSOUND. You have have multiple sound files, named SOUND.A, SOUND.B, SOUND.C, etc. Finally, there is a program called SS.CONFIG. You can put that program anywhere you want, it doesn't matter. When you change sound files, you will have to run this program. It modifies the playback rate of that file. If a file is digitized at a different rate, then it must be played back at a different rate. The program will suggest some rates for you. A note on digitizing for STARTSOUND: Since loading sound files takes time, I would suggest digitizing sounds at the slowest possible rate, so that they take up the least amount of space and can be loaded quickly. The quality of the sound goes down, however, when you digitize slowly. Its a tradeoff, but I think it's best to speed up the boot process by slowing down the digitizing rate. If you are using the MDIdeas SuperSonic Digitizer, and the new Sound Edit program, go into the "Preferances" section before digitizing. Set the Playback rate to 40, and the Digitizing rate to 34. Then click "Okay". This will result in the most compact sound files. Oh, also, don't pack the resulting sound file when saving it. Leave it unpacked. And make sure STARTSOUND's playback rate is set at 200. (Note, the playback rate used by STARTSOUND is on a different scale than that of Sound Edit. To be specific, the STARTSOUND playback rate is the parameter passed to the Sound Manager toolset as playback rate.) Run SS.CONFIG to set this. If you are using a Future Sound board, set your Sampling rate at 15125, and when you run SS.CONFIG, set the file's playback rate for 300. Macintosh and other sound files: When playing back files digitized on a Macintosh, a playback rate of 200 or 400 usually works best. You'll have to experiment a little with each file to be sure. Finally, if you figure out how to use sound files from any place I haven't mentioned, let me know. I don't know if any other computers use the same kind of files as Apple IIgs and Macintosh, but I'd love to hear from anyone who does. My GEnie mail address is GUYRICE. GTR @ ,@  ""\;8 [HH "ፓHH "ፓH "ፓ`,HH" "" HH" ""(HH" 'HH" "(HH" 'HH" ""6(HH" ^'HH" "(HH" 'HH" "(HH" 'HH" ""#(HH" K'HH" "r(HH" 'HH" "(HH" 'HH" "(HH" 8'HH" "_(HH" 'HH" ""(HH" 'HH" "(HH" %'HH" ""L(HH" H""H""HHtHHHHH"Z "f "} " HH"9 *HH" HH".H """HH" H"""ʎ" +;ikSTARTSOUND Configure Program, by Guy T. RiceSuggestions:Set the playback value to 550 if your file was digitized using the new MDIdeas software, Sound Edit, using its default values. (Digitize:1, Playback: 114) Set the playback value to 450 if your file was digitized using the old softwarethat originally came with the card. (ie. with SAMP2 and the basic program thatwent with it. Set the playback value to 200 if you used the new MDIdeas software and set the digitizing rate to 34 in order to get the most sound into the smallest space. Irecommend doing this when digitizing for STARTSOUND, since the smaller the fileis, the quicker it will load, and the quicker you'll finish booting. (Set Sound Edit's values to Digitize:34, Playback:40 to do this.) Future Sound users: Sampling rate of 15250 equals playback rate of 300. Sampling rate of 31500 equals playback rate of 600. Set playback rate of which file? SOUND.*/SYSTEM/SYSTEM.SETUP/SOUND.STARTSOUND Playback Rate currently set to New STARTSOUND Playback Rate: a  H"hhhk{;8[:ڥ: e dHHH"% e8Y qdHHH hhh h h ) A8ҥ){ei+k"d e 8  :eee J   (`HHKHH"✙hhkKiH" ! # # GHH# ! # ! ! i! # hh! # `8` ;[  )   +;ik{;8[:ڥ H H H h h h  I  $J        {i+k "" "3 hhkHiH;8  [  " O$>"3 ȩȗ na i  U GE "F e i  " "8  0 E  ")i+;ikiHHHH "hhkHH; [ȗȗȥȥȩ i+zzzzk "k; [H H H h h h8" 0 "u H Hi  H"hi " +;i ku{H"H"h"){;8[:"  {i+k{;8[:ڋK{)  "꜔+%-C0:CN "HCH ("h"{i+ko"okHHHHH; ["  ȷݠȷ ȷ+;i k ;[)JJJJ*+ ;cik;ikS ;[I4" )d9  ")   +` "kK ki HH "K;[}c:zZګ}Hi} " {omkInsufficient bank zero memoryv "H"\KError occurred at line  "᭡H" in procedure  """  " " Line NameJ " ---- ----f "᭝ <H"  """ ;[ 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; [8":"M+hhkHHH8H; [  " % Q8  0 " " "e i @< " "   "Z "":+;i kHH8H; [ȷȷ HH"+hhhhk:JJJJkKm "m"#o o mo { k K;8 [0  "0dd  >  !ͥ   ɍ >   ɾɮ  >ɼɬd >ͥHd > h >Wd >3  :Iȹ:Hd > h: > H sͥ Hd > h >h  `L0H ""h0) a    `0ZH<"<H "hz0`8(0ͥ   `ͥșΥ`0;i +k lH; ["ȿ+hhkK&kKHH"kKZs "qs0q sqq0)zkK0qqs0kHi H ;[ "+hhk; [ "HHH" +hhhhk; [  )8 I"u H HI i " +;i kHG( &"Lo(QM ;[ G 8(I Gȗ(  @+hhk :Tbe`h`y }       66% )^,^= AEHY ]`q uy|  ## KK rr  - 14E IMPa e8h8y }__     %% !%L(L9 =@EIMluy|ttZ f }  9   $ (+048<FILOU I  %    ) "        !  #  #  #  !    #   !   !  !  #  !  # {  "  3 = G K \ 3 b i         ? t |          !uGhJhquw{{(C+:=C@HOCRCUkooki.}>}F}S{VoYm\_behknqvv "&*-XJ[Jtfwf7:>Mw'/:W_mm#oomo{ !(+47:=>@M`gnq>>>>>> '+8@>CJ>^ex}s>> <(<NU\_iw)s.2q8s=q@GsJqMq_qbqejsuG GozGG~{zz~}z|{{y|{y|{zxvpq{x~xpw~zl|}ootyf`lzu~~vo|}j{z|t|~vbW`pxzzuL|wlb\dvg{~~Ypdw`ctn|w~mNu}|q|pnpr~}xzpx}|~fqnuaj|j`xz^k~fNvbfpTo~|ZrPrZ^v~tp~ht~xPd~pa@[lfq~hpYrv{t~pdl~snt~pfen|etv{uZxld~r\pPX]t|ohΊdU\\|hrvnT^Rb\~~nrh~hSWt|\)yZrrvsm`jzuvd~txlfnd_tvhpk(Zf^olwhngyfa^eZZ<8pxm|Xppltrqqhn~dhz^b||phtthf|wR\ײxx|Jx^rNx`TZkvGRj`pt_!Hrn~NzonzDrtzfjzQXҎzVhszVpxu~tzxHumxwrz}zy~|~|~|~~~~~|~~|}~~|z|~~~~y||}|~x}~|~|~~~~|~~~}zz~~}rxZ:|}fl`vvFH\njl^d>"-ɖf`xHUTxfohnz`vzVvprjm~zpP~|t{v|{~x~ntpxl`PFGOTfvs|vnyp6f>]~|d&rPСӹb4LXXL\ʺkΠqh0d lFPuvע~z:B&nAFخ Yp*Vo~Ч޽xlt{tDJ2<œ/ RmaNNRj&@Pڀ0ScZr`~{nxPPq6V^kZx&ʢ[&Oabb~trt`_yF.v)LD"JX&_W~t{t|fvZ IJPRH &kvsJzx|s~pj_{/-'"BU\T8@k~xjtzytjt>\؊yxdN.^nxvoijFOGi자r~V!Jy|~szz|_>DÞP @~`ptZNc~Xs Ђ꬚f  dI7ZټsRNct~~t=rf/$PV.*aڶʹxvrZPL[n~cTrڰ~W,.7, D¯̘xno^QJR]dtPj`bćYzŦdI8(p¨iRRIHNd~Er4B̼d2.XcdҸlZT>(*Pp|gFffn~T,"*/8^в|gP=6DW^`ro֨:h(޾lNILB#.TȧeVblj^j컈x:Hl`>8Xzz~nho||tnxtzxzzhdflrrnlnu||xrr|{xyx|xzwvnnqmlr|yyspnszyx{z|xtt|}z{xtllnty|y~yz{zzwvw|{tqmmmry|{yvxx||~zzzz|~zvtvv||vtwvrstz~{|{|zz~~~}zzttsx{~~|utx~{||~}~~~y~xwvxz|z~||z|~~~}|~}|~~}z{zz|~~x|zx|~}~~|~~|~~~z~~|||z~~|t|zu|~}~}|z}v~~zz~i|ptntxz~~rsppfzpr{zsT|t~~~l^xdlx~v|p~qvtptv`fNl[wdvLt`lBm}lt{zn`l~P~`d{xzPzzxzkjlk}djbfp|^JRy~kVXerf^FMSomTT@:6j~vflvP^~~xdbPzn~b4[nldjl|jFw_Pnlvlvbr_n͊XKnbp|V\dr|Hfx|jsudvLbfn|_r|nltbyl~vlmznwexrz|hz~vzbiwf|vytpKxl~xhpkzkxzzlzhrRlp}jvrrpu~gThrtXj~rd~yb|vkntPxbm~xn~lTjox{|snX~||vn~zz`v}`cTt~en\o~slqpwZb|cyplql~Hf_y~_xjZl`q^fdpv{Nox^v~dmvoazbk|^d`{tsw|rz~tptzjr||ldj~x|{||zzvpoxzt|z||}|~qzz~~}}~{{}|~zzn|t~v~x~zw|~|}z|z}x|{|yxz~pjj`]]]htzx|xtpr|||z~F :@T5R^hNǟ\bjRh^RpqszptvvxtUZoz~w~ldlvx{~،lXPnvjƈhJHYbxvx\`r|{pnu`T`trjhy~k]evx|ޑQ<TzlLSirdbjlz~fY^t||yzpjpn^VLc~zzphjjdNBWnz|rpzvx~vy{~~x[FEp|znp||xzxw~mXHFj~~~zmp~vptx|v||yvzrg^d~}vs|~~~{~}~{cXPLdxv|vz|~~xszx~wxx~|xbNQbp~ztt|~xlfbkXDirvj_dxnljr|zgv||{pXkzifz~zppx~xy~~|h3~|T>vz|{p~}v`\rz~xpz}vv~xnt|~~t{|zxy}zhpxbru2R~b=^s|xl\m{x~~z||xrw|xy|{trvwtrx|z|jz{hh[r`:P`Q\x{ymbvypvrdho\bfox~}zx|t~vvzv~RXpjFRp~pxvvfepltrrffd\WXfjpvzpv|ri}j\>yl\>_pi|xgpo`bblsr|jjqfcZlrjw|s~n|pNe~bILn\LXrxtqvf^dnpj|~|plllilppx~|~zgv\`zX\`piXx~ur||nrz~xxzxxz~~|~z~zn~~ponhr~r_vzrlyzzurtusrvy|z|zz||{xwptttpppnntz||zzz{xvrsvwwyzvuxxzz~{|}~~~~~z~~~wrprrqtz|||}yx~~||ztprqpnnruwwx{|~~~|}|{xutrrvxzz}~~|vrpqpprtvvwxz|~~~z||||}|~|zzxwxzyxx|zxxx{~~~~~zxtrpnnlklklnsvvz|xwzzz||{xwvvxwtttvzx~||~zvxy~~|~~~~~|zxz||~~~~~|||~}~|vx|zztrwz||z|~~{|zxvvvvxxyz|~~~|xutvx{zzxz|~|x|~~|}~~|zxvxyxxz|~~{yz~~~|~~~~~~{xzzzzxxz~y|}~~~|}>BoT~fthp{yv\jalp|htjxwnairjrvnrrnxptpvxwwzptvrw}|z~z~z~|~~r|}tx||~vzrx{sfznPfttt^vtt|fhqxxt{|ztx|vz~}qdvN>yD48Llb|ppbJ4@FTdp̻\HFHGDlrl|{vohntirlf~hhh^Sf_Z_^|tb\_hjlzn`\fjrvnrNRfzllj|ztns|rʊ1]V^>RR˰sbJN^r|~|x]hwxwzhjzrSFXz~yvxxz ^YlZ0dftlpnknjt~sn~zvtdfehlx}~x~dR{H.6\Wty~|c\QPg}slnvpftlRR_hhk~~zw|ttb]{^vPn¸vpWRdz}xlblvtd`jt~vw|ttsn~vhf<3Pl`dvkpnXJWn{qpztdd]bsxyxv|zgwz{PN0 VlĮTDB@P`vy|this|~thffgtz~rx|l|yp{~ZM& 8ƳvR4*Hqjbksr~xp`brvxxnt}t|z{|v{ D~LFzZXhjttf`hs}~~~t~hqr8  hްP,;nvedsd\ftwtv}rv~wtmj{|48& b4H|nZb~n`jznvtvr}l`dj.ZB!v=$Ptr~qZr_^l|xpu~wr~i`tM&#LVJGN~rxNbr{lt~ztbl~v`Zdx:Dd8 :C}|VltlrnepotrZdpvgvtpUXIEp8(πe6Rxpbpn|l~xxzy{x~x~os~sr^hA *(btsez~lhvv~lh~zymwxtzzxz\`jX".wlslvNU|jn|hlt|{e\^H0H|dvtX}lvrvqzzz|~z%|rt/0JxxDodfnh~t}~|trzxuvz0x|NALZtFTv~zjv|uws~z~{xt}tz|:5/RLgX@nvl{||~||op|z~~xlxzoUqxXIV\@_t{|s|~}znvsx|z|~{}|~8Į\MxC`,BjcL^y|xxx|ux~~|zxZ~~AZRQDjf\^|zz~wz{x~}vl|z~|zw~Xtp^EfP^jZ`i~qz{ztrz~xz|~|jnyyNdTcZ[\frlh~rr~zxr|~~||vzt~|hrfphllszrx~~z|z~{x{w|zztrrtvpp~~}|~|vz|xvxw~~|~|~z~}~~yzxvwvvtx|v}~lrm~{~~xsw|~~zyxx{x|{wzzyvwx|~|z~||~|vn|~x}xvrxy~~~~|zttrttyz||~}~~~|~z|||~~|~~~~~~~~|zvrtz|~|zxxy|~~||~|{{{zyuvtwxx{~~~~~~|~~|~~~}~||xxvvxzz|~~~~~|x~~}yxxtsrprtx|~~~zzvx|~|zz||~~~{||~||~||{|~~|z{|zz}~~|z{|~~~~~~~zyx~~~~||||z|z~~~~~~|~~~~~~{|{|||~~~~||z}|zxxzz|z~~~|}~~zxyyzx|z|}~{~zxx||~~{yxtwvzx|~|~||{z~~~|~|~~~}~~|xw|~|~}|z}|zxz|~zxz~|}~}xzz|zz|~|}||~~~~~|zxzv{|~~~|||~|~~~~|||~|zzz|{z}~||||||{x{|}~~~|~~~~~rrz|x|zx|~xsavr|~{ve~~nvPk{^fgrijltzxvt|zjkxl~|zt|xxxpv~vtznpfblfqxvnlvt~tnhtftb~vt|bJfxwrs`[`ewyotlmkqpf^tt\trpndh}nrhv~hfLXT|jRBVobvhjknL`PHid6u|Xnzzpp~|dqhTUZ^MfzbhtlV~we~}hij|rxvrstqdYh|ubjzv|ZWhflt{znv|tnnmzrr|vwzrwt|~rtbztxt~yhtpr{}gvzt|tuy}~rz|xj~t~d~uv|rtnzp|x||n~p}u~k~~zo~ns~~jrnfznxxvr{xvmhdr|nvvhyt~ju~v{xvztlq}~~y~{|pxvvzz|xv||z|z~}~|~y|w||||~v~x||~x~~~~z~~~~x~z}x~{~x{~xxv|{}vxotjptprq|~{||z~ĖrgvbRI\N;NZX_h~ppytjkqpftzxv|}||n\h\TRRVS^qp~zrz|v|~||~{x\i|xlex\NkbRlt~u{vxjkrd`rnlhxyxLXmjffoWLnjRrjyt~vxllxhfrefgrvvJʇLpnmnhjfR]vX^inv{~~vvfxrcnmzmvwD8{bl^jUrLOxcVvyqrnxw|nzfrhrpzxr\hHn\SpZjaDnvHlzsjzjtvvphfczplvxr|7(ZgXtLxNCxjN|v{zorjjlvfn~fn{xxv|T~ZІtIxXei;\hD^n|p~qltjljjnrrf~|~xA~9ZpT}UndGsjbo{j{zwtv|dt|ehpvpj~~VTfVdPrTdXHf\e\xx|vlvvdcrlfg~~zQ_XrTfNVrJbdt|jghvhbrzdp|{|Pez~@QVRv\Jhsxn|~jl|pbgxripzxu|~jvYDrhPFPpdXpprvhilrtpw~|wfxxbbPlpbRUnndtvzaepnjns||~|~~ve~pYZfk^T^bl|zvmfnsphiyx{|z|wxxqv~pddZ^djplo~zxtruxxxy|~xyxp}~|xzndjl`Z`hrpsz~yrtpqnprxv|~~vnh]\bcdbbnvz}yzz|~~~|zvxwvwz}|vhhntrtvzx|}wttxvwvwx~~|vvtrsv~~||rjbdhhhlrz~xxvvvwtyxz~~~||z{~~~~z|{zpjefgntx~~zyv||~~|zzyz|vtpnlhjkmpry|~}|||}|~|~||wvwz|{zvvv|zvpkfffilnrtwz~||~{|||||zztrvvw|z~}vtmlb`dhns|zvqoprtv|z~zxx{~}|~~zvm`XVY^bjpxztnnkr~}z||~~{||~}ytpnjbSNR^jux~xmlgdbhp{zwrtvttx~~zx{t`TJHHJQbpzxmd^adjrv|ztibbgjnrxuis~nP>:CR^cp{~hXTW]`hozxm`ZZ\^`hn|zvvsvwJ4BVb^`nfTPVXXX`rl_[XWTW`jvxllrxV6-:FEBRn¾pVHFFHNZru^RJMV^kxxnihddgnt|¬}f>$'$%>^оsXKB:3:Tr³pZPLLO\r~rbOFHRWbv~{v^DZX:1HRlyhaXNPZdxrb`d[RWl|thjhh_`qxpu~~hM*RS* s's' o ,@ Control Panel Utility G K6H8H " " " " " " " " " "D "Y "D " "D " "D " "D " "D " "D " "D "5 " ""h)L 1#  " rʍ 2#   "Ⴙ 3#  "႗ 4!  "o *c5  "5 000` " "0 " ""hO M(  <0Я0 "0"8"0  M(  Θ` M(0 "  M(  ` M(0 "  M(  ` " "H " " "5 " " " "I " " " "0 " ""hL0!x +( "+K0 +(  ` ɪLH "W "E  "" ""`G  "] "᭞ &t "᭜ & "0 " ""h0HJJJJ 50h) 0:i0H "`00k0 "8 "& " "` G 01/BATRAM0/SYSTEM/SYSTEM.SETUP/CP0  ` ---=== CONTROL PANEL UTILITY V3.1 ===--- By Robert W. Easterday [1] Restore Control Panel from disk [2] Save Control Panel to disk [3] Update System Parameters [4] Save Boot File [5] About CPU CPU allows you to save or restore the current Control Panel settings to or from the current directory. Saving the Control panel will always overwrite any previously saved settings. Loading a saved Control Panel, will cause the old attributes to become immediately effective and permanent. If you wish the current changes to become permanent without saving and restoring them to disk, you can select the UPDATE function. Finally, the SAVE BOOT FILE function allows you to save the current parameters into an INIT file in your SYSTEM.SETUP directory. The next time you boot that disk, those parameters will be automatically loaded. Control Panel Utility V3.1 was written by Bob Easterday. Compuserve ID [74505,473] [PRESS ANY KEY] A Prodos error # $ has occured during a $ command. THE LOADED FILE IS BELIEVED TO BE INVALID. ABORTING RESTORATION. " " "h8h6k0H8Z[Z[ɪL %Pȍ 1C68@ˍ 7& ʍ 7 ?Z[0kG 0kǍ HZg/gʎg K,ȍ W\^fˍ ] eLtG ÀAA0BATRAMgggBSYSTEM/SYSTEM.SETUP/CPBo& ,@ &0KHb "0""h0k VY\_DDYYDDDDDD DD%(2D5D?BLDODY\fDiDs5v5     0 3*SZq t ~0 0 M  M  MM $' +/M@DMH PS kHnHx{5 5       I I       0 0 %+4+8 @D G THZ bl t{~    ] ]  &t t  &   0  0 .5Qk\ dn v}   1 8    & + 1 %8 > 1C 6F 8I @L U [ 7d j 7r ?u {     k  H g  g g  K  W \ ^ f  ] e t   & A2 A4 I gL t ,@ Z Grass\H**Nw(6Grass by Jeff G. Erickson Let the grass growq ;[KmHH) "h!h##H!HK"HH#H!HH "h%h'#H!H"#H!H"!#+k#H!H"kk ;8 OCNB"A;i+kr<H H H"h#!kH H H#H!H"hkH H HHH"hkHHH"hIHHH"kkHH"#H!H"""kKHH"#H!H"#H!H""#H!H""k#H!H"kKV"6"," 7"H"hX@X""kZ0K "d᭬HH""HH%"hCJm)XVH:"HHH"Xɀ h)  h)πHH<"""h(kZ -wcn)NRrVZ^bf<jnt8Jaiq|69?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghiective immediately. **************************************************************** SLOT GEQU TRUE ;ASSEMBLY OPTION CDASTART start str 'Control Panel Utility' ;name of CDA dc i4'mainprog' ;start of main code dc i4'shutdown' ;shutdown routine **************************************************************** * LOAD/SAVE DATA USED TO OVERWRITE APPLICATION AT $003000 IN * VERSION 1. NOW THAT AREA IS 1ST PLACED IN 'NULL', and SWAPPED * BACK ON EXIT. **************************************************************** NULL ENTRY ;space for OLD batbuf info ds 257 END **************************************************************** * BEFORE WE GET DOWN TO BUISNESS, WE MUST SAVE THE OLD ENVIRONMENT. * FOR LATER RESTORATION. **************************************************************** MAINPROG start USING BOOTDATA ;POINT TO GLOBAL DATA AREA phk ;GET PROGRAM BANK plb ;SET DATA BANK = PROGRAM BANK lda CSWL ;SAVE I/O HOOKS pha lda KSWL pha pea $0000 ;SAVE GLOBALS pea $0000 _GETINGLOBALS ; INPUT pea $0000 pea $0000 ; OUTPUT _GETOUTGLOBALS pea $0000 pea $0000 _GETERRGLOBALS ; ERROR _TEXTRESET ;DEFAULT TEXT DEVICE **************************************************************** * ACTIVITY FLAGS ARE PROVIDED TO INFORM THE USER OF THE * USELESSNESS OF USING THE CPU FEATURES WHEN NO CHANGES HAVE * BEEN MADE TO THE CP SETTINGS. IF THE USER HAS USED A FEATURE, * ONCE BEFORE IN THE CURRENT SESSION, WE WILL BEEP THE BELL and JUMP * BACK TO THE MAIN MENU. **************************************************************** stz UPDACNT ;ZERO UPDATE FLAG stz RESTCNT ;ZERO RESTORE FLAG stz SAVCNT ;ZERO SAVE FLAG stz BOTCNT ;ZERO BOOT FILE FLAG PUSHWORD #$007F ;SET IP and MASK TO STRIP HI BIT PUSHWORD #0 ;SET IP OR MASK TO LEAVE IT ZERO _SETINGLOBALS PUSHWORD #$00FF ;SET OP and MASK TO PASS 8 BITS PUSHWORD #$0080 ;SET OP OR MASK TO SET HI BIT =1 _SETOUTGLOBALS PUSHWORD #01 ;SET IP DEVICE TO standARD PASCAL PUSHLONG #$03 ;SLOT #3 _SETINPUTDEVICE PUSHWORD #01 ;SET OP DEVICE TO standARD PASCAL PUSHLONG #$03 ;SLOT #3 _SETOUTPUTDEVICE INIT PUSHWORD #00 ;INITIALIZE INPUT DEVICE _INITTEXTDEV PUSHWORD #01 ;INITIALIZE OUTPUT DEVICE _INITTEXTDEV ;CLEAR SCREEN PUSHLONG #SPACES ;NOW WRITE TITLE & MENU _WRITECSTRING PUSHLONG #MESSAGE _WRITECSTRING PUSHLONG #SPACES _WRITECSTRING PUSHLONG #NAMESTR _WRITECSTRING PUSHLONG #SPACES _WRITECSTRING PUSHLONG #MESSAGE0 _WRITECSTRING PUSHLONG #SPACES _WRITECSTRING PUSHLONG #MESSAGE1 _WRITECSTRING PUSHLONG #SPACES _WRITECSTRING PUSHLONG #MESSAGE2 _WRITECSTRING PUSHLONG #SPACES _WRITECSTRING PUSHLONG #MESSAGE3 _WRITECSTRING PUSHLONG #SPACES _WRITECSTRING PUSHLONG #MESSAGE4 _WRITECSTRING PUSHLONG #SPACES _WRITECSTRING PUSHLONG #MESSAGE5 _WRITECSTRING Readkey PUSHWORD #0 ;PUSH SPACE FOR PUSHWORD #0 ; INVISIBLE KEYPRESS _READCHAR ;NOW READ THE KEY pla ; and PULL IT FROM STACK and #$00FF ;ZERO UPPER BYTE cmp #$001B ;KEY = ? bne RESTORCP ;NO THEN MUST BE ANOTHER KEY jmp EXIT ;YES THEN QUIT RESTCNT ds 2 restorcp cmp #$0031 ;KEY = 1? bne SAVECP ;NO THEN MUST BE ANOTHER KEY lda RESTCNT cmp #0000 beq GORE BELL brl INIT GORE lda #$caca ;YES THEN SET READ FLAG = TRUE sta OLDCOM ; and STORE IT jsr RESTORIT ;RESTORE IT brl INIT ;BACK TO MENU SAVCNT ds 2 savecp cmp #$0032 ;KEY = 2? bne UPDATE ;NO THEN MUST BE ANOTHER KEY lda #$ffff ;YES THEN SET WRITE FLAG = TRUE sta OLDCOM ; and STORE IT lda SAVCNT ;deja vu? cmp #FALSE beq gosa BELL brl INIT gosa jsr saveit ;NO THEN SAVE IT brl INIT ;BACK TO MENU UPDACNT ds 2 UPDATE cmp #$0033 ;KEY = 3? bne BOOTFILE ;NO THEN MUST BE ANOTHER KEY lda UPDACNT cmp #FALSE beq GOUP BELL brl INIT GOUP lda #$EEEE ;SET UPDATE FLAG sta OLDCOM ; and STORE IT jsr UPDATEIT ;UPDATE IT brl INIT ;BACK TO MENU botcnt ds 2 bootfile cmp #$0034 bne ABOUTCP lda BOTCNT cmp #FALSE beq GOBO BELL brl INIT gobo lda #$AAAA sta OLDCOM jsr BOOTIT brl INIT ABOUTCP cmp #$0035 ;KEY = 4? beq DOABOUT ;yes then print help screen BELL ;ELSE DING THE DONG brl READKEY ; and GET ANOTHER KEY DOABOUT brl ABOUTIT **************************************************************** * PREPARE AN AREA INWHICH TO MOVE THE BATTERY CODE TO BANK ZERO * BY SWAPPING THE DATA CONTAINED THERE WITH A NULL BUFFER. **************************************************************** SWAPNULL rep #$30 ;16 BIT REGISTERS ldx #257 ;# OF BYTES TO SWAP LOOPNULL ldy NULL,X lda >$003000,X sta NULL,X TYA sta >$003000,X DEX DEX BPL LOOPNULL rts **************************************************************** * THE TRASH CODE GETS EXECUTED, IF CPU DETECTS THAT AN INVALID * CP FILE HAS BEEN LOADED. **************************************************************** TRASH BELL ;DING THE DONG PUSHLONG #TRASHMSG ; and WRITE TRASH MESSAGE _WRITECSTRING PUSHLONG #HELPC _WRITECSTRING PUSHWORD #0 ;WAIT FOR A KEYPRESS PUSHWORD #0 _REAdcHAR pla brl ERREX ;SWAP BACK OLD CODE & EXIT **************************************************************** * If the following 'RESTORE' and/or 'UPDATE' activities are * successful, we will update the activity flag(s) to disallow * further use during this session. If, however, a Prodos error * is encountered during a 'RESTORE' operation, we will skip * the 'UPDATE' function (for obvious reasons), and zero out the * 'RESTORE' activity flag, and the Prodos error flag. This gives * the user the opportunity to correct the problem, and try again. * Also, CPU will ATTEMPT to determine the validity of the * loaded CP file, by looking at byte $f0 and $f1 for $ff's. * if it finds something else, the RESTORE operation is aborted. **************************************************************** restorit inc RESTCNT ;update activity flag php jsr SWAPNULL ;SWAP BUFFER WITH $003000 plp jsr P8 ;LOAD BATRAM FILE lda ERROR cmp #FALSE ;was there a prodos error? bne ERREX ;yes then don't update lda >$0030f0 ;load validity byte cmp #$FFFF ;is this a valid CP file? bne TRASH ;no then don't update stz UPDACNT pea $0000 ;PUSH LEADING NULL + BANK 0 pea $3000 ;PUSH DATA ADDRESS ldx #$0903 ;COMMand FOR _WRITEbraM jsl $E10000 ;NOW WRITE IT UPDATEIT inc UPDACNT ;update activity flag sep #$30 ;8 BIT REGISTERS jsl $E10080 ;WRITE BUFFER TO BATTERY RAM lda SLOT ;WISH TO INCLUDE SLOT/PORT cmp #$0101 ; CHANGES IN 'UPDATE'? bne NOSLOT ;NO THEN SET CARRY FLAG clc ;YES THEN CLEAR CARRY FLAG bra TOBRAM ; and DO THE 'UPDATE' NOSLOT sec ;don't include slot/port changes TOBRAM jsl $E10094 ;UPDATE SYSTEM PARAMETERS rep #$30 ;BACK TO 16 BITS lda OLDCOM ;ASCERTAIN CALLING ROUTINE cmp #$EEEE ;UPDATE FLAG SET? beq REXIT ;YES THEN EXIT errex php jsr SWAPNULL ;NO THEN SWAP DATA BACK plp rexit lda ERROR ;get error flag cmp #FALSE ;WAS THERE AN ERROR? beq NOCLEAR ;no then exit stz ERROR DEC RESTCNT ; and 'RESTORE' ACTIVITY FLAG NOCLEAR rts **************************************************************** * Since it is impossible to change pathnames from within CPU, * we will allow only one SUCCESSFUL save operation per session. **************************************************************** saveit inc SAVCNT ;update activity flag php jsr SWAPNULL ;SWAP DATA AT $003000 WITH BUFFER plp pea $0000 ;PUSH BANK '0' pea $3000 ;PUSH ADDRESS OF BATTERY BUFFER ldx #$0A03 ;CODE FOR _READbraM jsl $E10000 ;READ IT jsr P8 ; and GO SAVE IT php jsr SWAPNULL ;NOW RESTORE DATA AT $003000 plp lda ERROR ;Prodos error encountered? cmp #FALSE beq BINGO ;no then don't DECREMENT flag dec SAVCNT ;yes then DECREMENT activity flag bingo stz ERROR ;always zero error flag rts ;BACK TO MAIN MENU bootit inc BOTCNT ;update activity flag php jsr SWAPNULL ;SWAP DATA AT $003000 WITH BUFFER plp pea $0000 ;PUSH BANK '0' pea $3000 ;PUSH ADDRESS OF BATTERY BUFFER ldx #$0A03 ;CODE FOR _READbraM jsl $E10000 ;READ IT jsr P8 ; and GO SAVE IT php jsr SWAPNULL ;NOW RESTORE DATA AT $003000 plp lda ERROR ;Prodos error encountered? cmp #FALSE beq BINGOB ;no then don't DECREMENT flag dec BOTCNT ;yes then DECREMENT activity flag bingob stz ERROR ;always zero error flag rts ;BACK TO MAIN MENU ABOUTIT PUSHWORD #00 ;init input device _INITTEXTDEV PUSHWORD #01 ;init output device _INITTEXTDEV ;this will clear screen PUSHLONG #HELP1 ;now write the help screen. _WRITECSTRING PUSHLONG #HELP2 _WRITECSTRING PUSHLONG #HELP3 _WRITECSTRING PUSHLONG #HELP4 _WRITECSTRING PUSHLONG #HELP5 _WRITECSTRING PUSHLONG #HELP6 _WRITECSTRING PUSHLONG #HELP7 _WRITECSTRING PUSHLONG #HELP8 _WRITECSTRING PUSHLONG #HELP9 _WRITECSTRING PUSHLONG #HELPA _WRITECSTRING PUSHLONG #HELPB _WRITECSTRING PUSHLONG #HELPC _WRITECSTRING PUSHWORD #0 ;SPACE FOR RESULT PUSHWORD #0 ;NO ECHO TO SCREEN _READCHAR ;WAIT FOR CHARACTER pla ;REMOVE IT FROM staCK jmp INIT ;BACK TO MAIN MENU **************************************************************** * HERE WE WILL DETERMINE THE ACTIVE OPERATING SYSTEM AND USE THE * APPROPRIATE ROUTINES TO DO THE READ/WRITE. IF P8 IS ACTIVE, WE * WILL DISABLE INTERUPTS, MOVE THE P8 CODE TO BANK 0, AND EXECUTE * IT THERE. NOTE, THAT YOU SHOULD DISABLE INTERUPTS WHEN RUNNING * IN THE EMULATION MODE IN ANY BANK OTHER THAN ZERO. IN THIS CASE, * WE WILL BE IN BANK 0 BEFORE THE SWITCH, SO IT IS NOT REALLY * NESSESARY. BUT IT DOESN'T HURT TO PLAY IT SAFE. **************************************************************** P8 LONG ;SET LONG REGISTERS lda $E100BC ;DETERMINE ACTIVE O/S cmp #$0100 ;P8 ??? bne P16 ;NO THEN GOTO P16 ROUTINES sei ;disable interrupts php jsr SWAP ;Swap code/buff into bank 0 plp phd jsl $001000 ;Go to bank 0 routine pld phk plb ;Fix the data bank reg LONG php jsr SWAP ;Swap it back plp lda ERROR ;DID A P8 ERROR OCCUR? cmp #FALSE beq EXP8 ;NO THEN EXIT jsr ERR8 ;YES THEN INFORM USER EXP8 rts ; AND BACK TO CALLING ROUTINE **************************************************************** * DURING EACH P16 COMMAND, WE WILL STORE THE ERROR # AND THE * COMMAND WHICH ENCOUNTERED IT, AND INFORM THE USER OF EACH * ERROR. **************************************************************** p16 stz ERROR ;null out error flag lda OLDCOM ;GET CALLING ROUTINE cmp #$CACA ;WAS IT 'RESTORIT'? beq OPEN ;YES THEN OPEN THE FILE cmp #$AAAA bne CREATE jmp MAKEBOOT create ldx #$0001 ;NO THEN SAVE COMMand FOR ERROR stx COMMAND ; ROUTINE and CREATE THE FILE _CREATE CREPARMS bcs ERR16 ;HandLE ERROR IF PRESENT OPEN ldx #$0010 stx COMMAND _OPEN OPARMS bcs ERR16 lda OPARMS ;LOAD FILE # FROM OPEN PARMS sta RWPARMS ;STORE FILE # IN READ/WRITE PARMS sta CLSPARMS ;STORE FILE # IN CLOSE PARMS lda OLDCOM cmp #$CACA ;RESTORE FUNCTION? beq READ ;YES THEN READ THE FILE WRITE ldx #$0013 ;ELSE WRITE IT stx COMMAND _WRITE RWPARMS bcs ERR16 bra CLOSE READ ldx #$0012 stx COMMAND _READ RWPARMS bcs ERR16 CLOSE _CLOSE CLSPARMS ;CLOSE THE FILE, IGNORING ERRORS bcc EXP16 ;is carry clear? clc ;no then clear it exp16 rts ; and EXIT P16 **************************************************************** * THIS ERROR ROUTINE, AND THE ASSOCIATED PRBYTE ROUTINE, WILL BE * USED TO HANDLE BOTH P8 and P16 ERRORS. THIS WORKS, BECAUSE AFTER * THE P8 ROUTINE COMPLETES, THE SWAP ROUTINE WILL NOT ONLY RESTORE * THE BANK 0 CODE, BUT WILL BRING BACK THE P8 CODE _INCLUDING_ THE * ERROR CODE(S) WHICH GOT STORED THERE. NOTE: THE ENTRY POINTS * ARE DIFFERENT FOR P8 AND P16 ERROR PROCESSING. **************************************************************** ERR16 cmp #$0047 ;WAS ERROR 'FILE EXISTS'? beq IGNORE ;YES THEN IGNORE IT bra ERR8 ; ELSE PROCESS IT IGNORE bra OPEN ERR8 sta ERROR ;SAVE IT AWAY BELL ;DING THE DONG PUSHLONG #P161 ; and WRITE ERROR MESSAGE PART 1 _WRITECSTRING lda ERROR ;GRAB THE ERROR CODE jsr PRBYTE ;CONVERT IT TO ASCII and PRINT IT PUSHLONG #P162 ;WRITE ERROR MESSAGE PART 2 _WRITECSTRING lda COMMAND ;GRAB THE CURRENT COMMand CODE jsr PRBYTE ;CONVERT IT TO ASCII and PRINT IT PUSHLONG #P163 ;WRITE ERROR MESSAGE PART 3 _WRITECSTRING PUSHLONG #HELPC ;ASK FOR A KEYPRESS _WRITECSTRING pea $0000 ;PUSH SPACE FOR INVISIBLE pea $0000 ; KEYPRESS _READCHAR ;WAIT FOR IT pla ;PULL IT FROM staCK brl EXP16 ;EXIT DISK ACTIVITIES **************************************************************** * THE FOLLOWING ROUTINE IS SIMILAR TO THE PRBYTE ROUTINE * LOCATED AT $00FDDA. THIS ONE, HOWEVER, WORKS FROM THE NATIVE * MODE. IT COULD VERY EASILY BE TURNED INTO A MACRO BY REPLACING * THE SHORT, LONG, AND _WRITECHAR LABELS WITH THE APPROPRIATE * 65816 MNEMONICS. ENTER IT WITH THE CODE TO BE CONVERTED IN THE * A REGISTER. ROUTINE ALWAYS RETURNS WITH REGISTERS IN 16 BIT MODE. * HEX TO ASCII CONVERSION IS A SIMPLE MATTER OF LOOKING AT EACH HEX BIT * AND ADDING $30 OR $37 AS APPROPRIATE. * IF DIGIT IS 0-9 THEN ADD $30 * IF DIGIT IS A-F THEN ADD $37 **************************************************************** PRBYTE short pha ;SAVE THE CODE lsr A ;SHIFT HIGH NIBBLE INTO PLACE lsr A lsr A lsr A jsr HI ;CONVERT IT SHORT pla ;PULL CODE FOR LOW NIBBLE and #$0F ;MASK HIGH NIBBLE HI ora #$30 ;ADD $30 cmp #$3A ;BETWEEN $30 AND $39? blt PUTCHR ;YES THEN WRITE IT adc #$06 ;NO THEN ADD $06 MORE WITH CARRY PUTCHR long ; AND WRITE IT pha _WRITECHAR rts **************************************************************** * AFTER HAVING MOVED THE BATTERY RAM TO $003000, WE WILL NOW * STORE IT'S IMAGE IN THE CP FILE AND SAVE IT TO DISK **************************************************************** MAKEBOOT SHORT ldx #$00 LOOPB lda >$003000,X sta RAMCODE,X inx bne LOOPB LONG CREATEB lda #$0001 ;CREATE THE FILE "CP" sta COMMAND _CREATE CREPRMSB bcs ERRB OPENB lda #$0010 sta COMMAND _OPEN OPARMSB bcs ERRB lda OPARMSB ;LOAD FILE # FROM OPEN PARMS sta WPARMSB ;STORE FILE # IN READ/WRITE PARMS sta CLSPRMSB ;STORE FILE # IN CLOSE PARMS WRITEB lda #$0013 sta COMMAND _WRITE WPARMSB bcs ERRB CLOSEB _CLOSE CLSPRMSB rts ERRB sta ERROR ;save error cmp #$0047 ; was it a 'file exists'? bne ERREXB ;no then exit & process error stz ERROR ;yes then be sure and bra OPENB ;now open the file errexB bra CLOSEB ;EXIT **************************************************************** * PARMTABLES FOR P16. NOTE: NO PARM COUNT ENTRY NESSESARY. **************************************************************** CREPARMS dc I4'PATH' ;BATRAM dc H'C300' ;ACCESS = RWD dc H'0600' ;FILETYPE = BIN dc H'00000000' ;AUXTYPE = 0 dc H'0100' ;STORAGE TYPE = SEEDLING ds 2 ;CREATION DATE and TIME ds 2 ;MODIFICATION DATE and TIME OPARMS ds 2 ;FILE REFERENCE # dc I4'PATH' ;BATRAM ds 4 ;P16 I/O BUFFER POINTER RWPARMS ds 2 ;FILE REFERENCE # dc H'00300000' ;DATA BUFFER ($003000) dc H'00010000' ;# OF BYTES TO READ/WRITE (256 BYTES) ds 4 ;ACTUAL BYTES READ/WRITTEN CLSPARMS ds 2 ;FILE REFERENCE # PATH dc I1'PEND-PATH-1' ;CALCULATE LENGTH OF FILENAME NAME dc C'1/BATRAM' ;THE "1" MEANS CURRENT SUBDIRECTORY PEND anop CREPRMSB dc I4'PATHB' ;SYSTEM/SYSTEM.SETUP/CP dc H'C300' ;ACCESS = RWD dc H'B600' ;FILETYPE = STR dc H'00000000' ;AUXTYPE = 0 dc H'0200' ;STORAGE TYPE = SAPLING ds 2 ;CREATION DATE and TIME ds 2 ;MODIFICATION DATE and TIME OPARMSB ds 2 ;FILE REFERENCE # dc I4'PATHB' ;SYSTEM/SYSTEM.SETUP/CP ds 4 ;P16 I/O BUFFER POINTER WPARMSB ds 2 ;FILE REFERENCE # dc I4'BOOTCODE' ;DATA BUFFER dc H'00020000' ;# OF BYTES TO WRITE (512) ds 4 ;ACTUAL BYTES WRITTEN CLSPRMSB ds 2 ;FILE REFERENCE # PATHB dc I1'PENDB-PATHB-1' ;CALCULATE LENGTH OF FILENAME NAMEB dc C'0/SYSTEM/SYSTEM.SETUP/CP' ;THE "0" MEANS DEFAULT PREFIX PENDB anop **************************************************************** * THIS TECHNIQUE WAS BORROWED FROM GLEN BREDON'S "NOTEPAD" CDA. * SINCE P8 ONLY WORKS FROM BANK ZERO, WE MUST PUT THE P8 * ROUTINES THERE AND MAKE THEM NON-RELOCATABLE. IN ADDITION, * IT IS IMPERATIVE THAT WE SAVE AWAY THE BANK ZERO CODE THAT THE * P8 ROUTINES REPLACE, AND RESTORE THAT CODE UPON EXIT. THE SWAP * ROUTINE, WHEN CALLED TWICE, PUTS EVERYTHING BACK INTO IT'S * ORIGINAL SPOT, CARRYING WITH IT, ANY CHANGES; SUCH AS ERROR CODES. * YOU MUST MAKE ALLOWANCES FOR ANY I/O BUFFERS * OR DATA STORAGE REQUIREMENTS YOU EXPECT THE RE-LOCATED * ROUTINES TO USE. * SWAPSIZE = P8SIZE + I/O BUFFERS + DATA STORAGE **************************************************************** SWAP rep #$30 ;16 BIT REGISTERS ldx #$D00 ;SWAP BETWIXT P8SWAP & BANK 0 LOOP ldy P8SWAP,X ;FLIP lda >$001000,X ;FLOP sta P8SWAP,X ;SWAP tya sta >$001000,X dex ;DROP dex bpl LOOP ;POP rts ;HIPPITY-HOP **************************************************************** *PROGRAM LITERALS **************************************************************** SPACES dc h'202020202020202020202020202020202020202000' MESSAGE dc c'---=== CONTROL PANEL UTILITY V3.1 ===---',H'0D0A00' namestr dc c' By Robert W. Easterday',h'0d0a00' MESSAGE0 dc h'0D0A0d0a00' MESSAGE1 dc c' [1] Restore Control Panel from disk',h'0d0a00' MESSAGE2 dc c' [2] Save Control Panel to disk',h'0d0a00' MESSAGE3 dc c' [3] Update System Parameters',h'0d0a00' MESSAGE4 dc c' [4] Save Boot File',h'0d0a00' MESSAGE5 dc c' [5] About CPU',h'0d0a00' help1 dc c'CPU allows you to save or restore the current' dc c' Control Panel settings to or from',h'0d0a00' help2 dc c'the current directory. Saving the Control' dc c' panel will always overwrite any',h'0d0a00' help3 dc c'previously saved settings. Loading a saved' dc c' Control Panel, will cause the old',h'0d0a00' help4 dc c'attributes to become immediately effective' dc c' and permanent. If you wish the',h'0d0a00' help5 dc c'current changes to become permanent without' dc c' saving and restoring them to disk,',h'0d0a00' help6 dc c'you can select the UPDATE function.',h'0d0a00' help7 dc c'Finally, the SAVE BOOT FILE function allows you' dc c' to save the current parameters',h'0D0A00' help8 dc c'into an INIT file in your SYSTEM.SETUP directory.' dc c' The next time you boot that',h'0d0a00' help9 dc c'disk, those parameters will be automatically loaded.' dc h'0d0a0d0a00' helpa dc h'0d0a0d0a00' helpb dc c'Control Panel Utility V3.1 was written by',h'0d0a' dc c'Bob Easterday. Compuserve ID [74505,473]',h'0d0a00' helpc dc h'0D0A0D0A',c' [PRESS ANY KEY] ',h'00' P161 dc h'0d0a0d0a',c'A Prodos error # $',h'00' p162 dc c' has occured during a $',h'00' p163 dc c' command.',h'00' trashmsg dc h'0D0A',C'THE LOADED FILE IS BELIEVED TO BE INVALID. ABORTING' dc c' RESTORATION.',H'00' EXIT _SETERRGLOBALS ;RESTORE GLOBALS _SETOUTGLOBALS _SETINGLOBALS pla ;RESTORE I/O HOOKS sta KSWL pla sta CSWL END **************************************************************** * standARD CDA EXIT ROUTINE **************************************************************** shutdown start rtl ;BLOW THIS POPSICLE STAND END **************************************************************** * THE FOLLOWING CODE IS MOVED TO BANK ZERO BEFORE EXECUTION. * ALSO NOTE THAT IT IS MADE NON-RELOCATABLE BY USE OF THE 'ALIGN' * DIRECTIVE and AN OFFSET CONstaNT. FINNALY P8 MUST BE ACCESSED * FROM THE EMULATION MODE. * THESE ARE ALL REQUIREMENTS OF PRODOS 8. WHEN ACCESSING PRODOS 8 * FROM A CDA OR NDA, IT IS EXTREMELY IMPORTANT TO SAVE and RESTORE * THE OLD DATA SO THAT NO DISRUPTION OF PROGRAM ON HOLD OCCURS * UPON EXIT. DO THE SAME WITH THE OLD P8 MEMORY ALLOCATION BITMAP. * THIS METHOD IS NOT THE MOST EFFICIENT IN TERMS OF MEMORY USAGE, * BUT IS A GOOD DEVELOPEMENT TOOL, IN THAT IT GIVES YOU SOME * ROOM IN WHICH TO PROGRAM WITHOUT HAVING TO RELOCATE WITH EACH * LINK. AFTER ALL CHANGES HAVE BEEN DONE, YOU COULD RE-CALCULATE THE * ABSOLUTE REFERENCES, OR IN THE CASE OF ORCA, USE THE 'OBJ' DIRECTIVE. **************************************************************** align 1024 P8SWAP START USING BOOTDATA **************************************************************** * LOCAL EQUATES FOR P8 ROUTINES **************************************************************** MLI EQU $BF00 ;MLI ENTRY POINT OFFSET EQU $0400 ;OFFSET ALL ABSOLUTE REFERENCES **************************************************************** * P8 ROUTINES **************************************************************** SHORT ;8 BIT REGISTERS lda #$00 ;PUSH A ZERO ONTO STACK pha plb ;SET DATABANK = 0 EMULATION ;PRETEND WE'RE A //E LONGA OFF ;REMIND ASSEMBLER TO USE LONGI OFF ; 8 BIT REGISTERS lda $BF5A ;SAVE BITMAP FOR PAGES 10-17 sta OLDMAP+OFFSET lda $BF5B ;SAVE BITMAP FOR PAGES 18-1F sta OLDMAP+OFFSET+1 stz $BF5A ;FREE UP PAGES 10-17 stz $BF5B ;FREE UP PAGES 18-1F lda oldcom+OFFSET ;CHECK CALLING ROUTINE cmp #$CA ;WAS IT 'RESTORIT'? beq OPEN ;YES THEN SKIP CREATE STEP cmp #$AA bne CREATE jmp MAKEBOOT+OFFSET CREATE lda #$C0 sta COMMAND+OFFSET jsr MLI ; AND MAKE THE CALL dc h'C0' ;'CREATE' dc a'CREPRMS8+OFFSET' ;POINTER FOR PARMTABLE bcs ERR ;HANDLE ERROR IF PRESENT OPEN lda #$C8 sta COMMAND+OFFSET jsr MLI dc H'C8' ;'OPEN' dc A'OPARMS8+OFFSET' bcs ERR lda OREF8+OFFSET ;LOAD FILE # FROM OPEN PARMS sta RWREF8+OFFSET ;STORE FILE # IN READ/WRITE PARMS sta ClsrEF8+OFFSET ;STORE FILE # IN CLOSE PARMS lda oldcom+OFFSET ;CHECK CALLING ROUTINE cmp #$CA ;WAS IT 'RESTORIT'? beq READ ;YES THEN READ THE FILE WRITE lda #$CB sta COMMAND+OFFSET jsr MLI dc h'CB' ;'WRITE' dc A'RWPARMS8+OFFSET' bcs ERR bra CLOSE ;and CLOSE IT READ lda #$CA sta COMMAND+OFFSET jsr MLI dc H'CA' ;'READ' dc A'RWPARMS8+OFFSET' bcs ERR CLOSE jsr MLI dc H'CC' ;'CLOSE' dc A'CLSPRMS8+OFFSET' ; IGNORING ERRORS RESTORE lda OLDMAP+OFFSET ;RESTORE BITMAP FOR PAGES 10-17 sta $BF5A lda OLDMAP+OFFSET+1 ;RESTORE BITMAP FOR PAGES 18-1F sta $BF5B NATIVE rtl ; and return to main prog **************************************************************** * ERROR ROUTINE FOR P8. HERE WE WILL CHECK and SEE IF THE ERROR * WAS $47 (DUPLICATE FILENAME). IF SO, WE WILL NULL OUT THE ERROR * CODE, IGNORE THE ERROR, and IN THE CASE OF A RESTORE OPERATION, * OVERWRITE THE FILE. OTHERWISE, WE WILL STORE THE ERROR CODE * and EXIT BACK TO THE MAIN PROGRAM WHERE THE ERROR WILL BE * PROCESSED. **************************************************************** ERR LONGA OFF ;insure short byte assembly LONGI OFF sta ERROR+OFFSET ;save error cmp #$47 ; was it a 'file exists'? bne ERREX ;no then exit & process error lda #$00 ;yes then be sure and sta ERROR+OFFSET ; null out the 'file exists' sta ERROR+OFFSET+1 ; error code bra OPEN ;now open the file errex bra CLOSE ;EXIT OLDMAP ds 2 ;storage for old MLI bitmap **************************************************************** * THESE LABLES ARE MADE GLOBAL BY THE 'ENTRY' DIRECTIVE. THEY ALLOW * PARAMETER PASSING BETWEEN THE MAIN PROGRAM and THE P8 ROUTINES, * THROUGH THE USE OF THE 'SWAP' ROUTINE. **************************************************************** oldcom entry ;storage for calling routine dc H'0000' COMMand ENTRY ds 2 ;storage for PRODOS command ERROR ENTRY ds 2 ;storage for PRODOS error MAKEBOOT ldx #$00 LOOP lda $3000,X sta RAMCODE+OFFSET,X inx bne LOOP getprefx lda #$C7 sta COMMAND+OFFSET jsr MLI dc H'C7' dc A'GETPRMSB+OFFSET' bcs ERRB ldx #$02 PLOOP lda PATHB+OFFSET,X cmp #"/" beq ADDNAME inx bra PLOOP ADDNAME inx ldy #00 GLOOP lda NAME+OFFSET,Y cmp #$00 beq DONE sta PATHB+OFFSET,X iny inx bra GLOOP DONE dex stx PATHB+OFFSET CREATEB lda #$C0 sta COMMAND+OFFSET jsr MLI ; and MAKE THE CALL dc H'C0' ;'CREATE' dc A'CREPRMSB+OFFSET' ;POINTER FOR PARMTABLE bcs ERRB ;HandLE ERROR IF PRESENT OPENB lda #$C8 sta COMMAND+OFFSET jsr MLI dc H'C8' ;'OPEN' dc A'OPARMSB+OFFSET' bcs ERRB lda OREFB+OFFSET ;LOAD FILE # FROM OPEN PARMS sta WREFB+OFFSET ;STORE FILE # IN READ/WRITE PARMS sta CLSREFB+OFFSET ;STORE FILE # IN CLOSE PARMS WRITEB lda #$CB sta COMMAND+OFFSET jsr MLI dc h'CB' ;'WRITE' dc A'WPARMSB+OFFSET' bcs ERRB CLOSEB jsr MLI dc H'CC' ;'CLOSE' dc A'CLSPRMSB+OFFSET' ; IGNORING ERRORS jmp RESTORE+OFFSET ERRB LONGA OFF ;insure short byte assembly LONGI OFF sta ERROR+OFFSET ;save error cmp #$47 ; was it a 'file exists'? bne ERREXB ;no then exit & process error lda #$00 ;yes then be sure and sta ERROR+OFFSET ; null out the 'file exists' sta ERROR+OFFSET+1 ; error code bra OPENB ;now open the file errexB bra CLOSEB ;EXIT **************************************************************** * P8 parm tables **************************************************************** CrepRMS8 dc h'07' ;Create parms (7) dc a'PATHNAME+OFFSET' ;pointer to pathname dc h'E3' ;access code (DRW & RENAME) dc h'06' ;filtype (bin) dc h'00 00' ;aux filetype dc h'02' ;storage type (seedling) dc h'00 00 00 00' ;create date & time OPARMS8 dc h'03' ;OPEN parms (3) dc a'PATHNAME+OFFSET' ;pointer to pathname dc a'IOBUFF+OFFSET' ;pointer to 1k i/o buffer OREF8 ds 1 ;file reference # RWPARMS8 dc h'04' ;READ/WRITE parms (4) RWREF8 ds 1 ;file reference # dc a'BATBUFF' ;pointer to input/output buffer dc h'0001' ;# of bytes to read/write dc h'0000' ;actual bytes read/written CLSPRMS8 dc h'01' ;CLOSE parms (1) ClsrEF8 ds 1 ;file reference # PATHNAME dc h'06',C'BATRAM' ;length byte and filename GETPRMSB dc h'01' ;GET PREFIX PARMS (1) dc a'PATHB+OFFSET' ;ADDRESS OF PATHNAME BUFFER CrepRMSB dc h'07' ;Create parms (7) dc a'PATHB+OFFSET' ;pointer to pathname dc h'E3' ;access code (DRW & RENAME) dc h'B6' ;filetype (str) dc h'00 00' ;aux filetype dc h'01' ;storage type (seedling) dc h'00 00 00 00' ;create date & time OPARMSb dc h'03' ;OPEN parms (3) dc a'PATHB+OFFSET' ;pointer to pathname dc a'IOBUFF+OFFSET' ;pointer to 1k i/o buffer OREFb ds 1 ;file reference # WPARMSb dc h'04' ;READ/WRITE parms (4) WREFb ds 1 ;file reference # dc a'BOOTCODE+OFFSET' ;pointer to input/output buffer dc h'0002' ;# of bytes to write dc h'0000' ;actual bytes written CLSPRMSb dc h'01' ;CLOSE parms (1) ClsrEFb ds 1 ;file reference # PATHb ds 65 ;STORAGE FOR GET PREFIX CALL NAME dc c'SYSTEM/SYSTEM.SETUP/CP',H'00' ;NAME TO APPEND TO ROOT DIRECTORY **************************************************************** * P8 REQUIRES THAT A 1K FILE I/O BUFFER staRT ON A PAGE BOUNDARY. * USE OF THE 'ALIGN' DIRECTIVE OF APW DOES THE TRICK. NOTE THAT * I CAN ONLY USE THE ALIGN DIRECTIVE _INSIDE_ A SEGMENT, IF I * PREVIOUSLY USED IT PRIOR TO THAT SEGMENT. ALSO, THE NEW 'ALIGN' * MUST BE SMALLER THAN OR EQUAL TO THE PREVIOUS ONE. **************************************************************** ALIGN 256 ;set I/O buffer on page boundary IOBUFF ds 1024 ;1k I/O buffer starts here END BOOTDATA DATA **************************************************************** * The following mess, comprises the exact code, for the init * * file which will be responsible for making our desired * * parameters into a bootable file. The $FF's will be filled * * in by the current Battery ram contents. * **************************************************************** BOOTCODE dc h'010000000000000026010000000A04010000010000000000' dc h'000000000000000000000100000000002C00400020202020' dc h'20202020202020202020202020202020F22601000018FBC2' dc h'308B4BABA90000488B621700A20309220000E1E230228000' dc h'E118229400E168C230AB6B' RAMCODE dc h'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' dc h'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' dc h'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' dc h'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' dc h'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' dc h'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' dc h'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' dc h'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' dc h'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' dc h'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000' END if {#} != 1 echo EXAMPLE OF USAGE: CPU.MAKE /HARD1 exit end echo Now installing CPU on specified disk. ASML CPU.S filetype CPU.CDA $B9 copy -c CPU.CDA {1}/system/desk.accs exit MACRO &lab _CREATE ¶ms &lab jsl $E100A8 dc i2"1" dc i4"¶ms" MEND MACRO &lab _OPEN ¶ms &lab jsl $E100A8 dc i2"$10" dc i4"¶ms" MEND MACRO &lab _READ ¶ms &lab jsl $E100A8 dc i2"$12" dc i4"¶ms" MEND MACRO &lab _WRITE ¶ms &lab jsl $E100A8 dc i2"$13" dc i4"¶ms" MEND MACRO &lab _CLOSE ¶ms &lab jsl $E100A8 dc i2"$14" dc i4"¶ms" MEND MACRO &lab _TextReset &lab ldx #$050C jsl $E10000 MEND MACRO &lab _SetInGlobals &lab ldx #$090C jsl $E10000 MEND MACROkmnopq &lab _SetOutGlobals &lab ldx #$0A0C jsl $E10000 MEND MACRO &lab _SetErrGlobals &lab ldx #$0B0C jsl $E10000 MEND MACRO &lab _GetInGlobals &lab ldx #$0C0C jsl $E10000 MEND MACRO &lab _GetOutGlobals &lab ldx #$0D0C jsl $E10000 MEND MACRO &lab _GetErrGlobals &lab ldx #$0E0C jsl $E10000 MEND MACRO &lab _SetInputDevice &lab ldx #$0F0C jsl $E10000 MEND MACRO &lab _SetOutputDevice &lab ldx #$100C jsl $E10000 MEND MACRO &lab _InitTextDev &lab ldx #$150C jsl $E10000 MEND MACRO &lab _WriteChar &lab ldx #$180C jsl $E10000 MEND MACRO &lab _WriteCString &lab ldx #$200C jsl $E10000 MEND MACRO &lab _ReadChar &lab ldx #$220C jsl $E10000 MEND MACRO &lab pushlong &addr,&offset &lab ANOP LCLC &C LCLC &REST &C AMID &addr,1,1 AIF "&C"="#",.immediate AIF "&C"="[",.zeropage AIF C:&offset=0,.nooffset AIF "&offset"="s",.stack pushword &addr+2,&offset pushword &addr,&offset MEXIT .nooffset pushword &addr+2 pushword &addr MEXIT .immediate &REST AMID &addr,2,L:&addr-1 dc I1'$F4',I2'(&REST)|-16' dc I1'$F4',I2'&REST' MEXIT .stack pushword &addr+2,s pushword &addr+2,s MEXIT .zeropage ldy #&offset+2 pushword &addr,y ldy #&offset pushword &addr,y MEND MACRO &lab pushword &sysopr &lab ANOP AIF c:&sysopr=0,.b LCLC &C LCLC &REST LCLA &BL &C AMID "&sysopr",1,1 &BL ASEARCH "&sysopr"," ",1 AIF &BL>0,.a &BL SETA L:&sysopr+1 .a &REST AMID "&sysopr",2,&BL-2 AIF ("&C"="#").AND.(S:LONGA),.immediate lda &sysopr pha MEXIT .b pha MEXIT .immediate dc I1'$F4',I2'&REST' MEND MACRO &lab str &string &lab dc i1'l:&string',c'&string' MEND MACRO &lab native &mode &lab ANOP clc xce AIF c:&mode=0,.a &mode MEXIT .a long MEND MACRO &lab emulation &lab ANOP sec xce longa off longi off MEND MACRO &lab long &lab ANOP rep #%00110000 longa on longi on MEND MACRO &lab short &lab ANOP sep #%00110000 longa off longi off MEND MACRO &LAB BELL &ERROUT &LAB ~SETM PEA $07 LDX #$180C+(256*C:&ERROUT) JSL $E10000 ~RESTM MEND MACRO &LAB ~SETM &LAB ANOP AIF C:&~LA,.B GBLB &~LA GBLB &~LI .B &~LA SETB S:LONGA &~LI SETB S:LONGI AIF S:LONGA.AND.S:LONGI,.A REP #32*(.NOT.&~LA)+16*(.NOT.&~LI) LONGA ON LONGI ON .A MEND MACRO &LAB ~RESTM &LAB ANOP AIF (&~LA+&~LI)=2,.I SEP #32*(.NOT.&~LA)+16*(.NOT.&~LI) AIF &~LA,.H LONGA OFF .H AIF &~LI,.I LONGI OFF .I MEND gX gZ _  ---=== Control Panel Utility V3.1 ===--- By Bob Easterday Sep. 24, 1987 INTRODUCTION ------------ This is the documentation for CPU V3.1. Completed Sep. 24, 1987. This is a potentially dangerous utility, so I hope you will take the time to read through this entire file before using CPU. The information in it IS important. Remember, That if you absolutely MUST show your appreciation, I could use a blank disk or two (heh). That address suvwxyz{|}~is: 522 Loumena Ln. San Jose, Ca. 95111 ABOUT CPU --------- The purpose of CPU is to allow you to save/restore the current Control Panel settings to/from the current directory. As each save/load occurs to/from the current directory, it is possible to maintain different CP characteristics in each sub-directory or disk. Thus, you can customize a different CP for each application as long as that particular application resides in it's own sub-directory. ACKNOWLEDGEMENTS ---------------- After downloading every source file I could get my hands on, I opted for a variation of Glen Bredon's technique for accessing Prodos 8. Specifically, I found his source code for NOTEPAD CDA to be extremely informative. I got the original idea for CPU from the BRAMPEEK and BRAMPOKE routines uploaded by Bill Ruff. Finally, many thanks to Bob Consorti for his technical assistance and especially for his patience! COPYRIGHT --------- As I received several questions regarding the copyright notice in the last version, I thought I should clarify. CPU is released to the public domain, on a no-charge basis. I would appreciate it if you would not sell it without first consulting me. Furthermore, it would be, like, really great, if you would leave my name in it. HISTORY ------- CPU V1.0 was originally released as a Beta version. Though there were many downloads, I received no comments or suggestions, as to possible enhancements. Version 1.0 provided P8 support only, and had several programming inconsistancies (BUGS). No source code was provided. Version 2.0 added P16 support, better error reporting, but only worked with the earlier tools. (PRE-2.0) In addition, an update function was added, and all RESTORE or UPDATE activities, with the exception of current ramdisk size, made the changes permanent. Version 3.1, hopefully the final release, fixed the compatibility problems with the later operating systems. CPU V3.1, is now known to work with all operating systems, from V1.1, up to and including V3.1. A minor bug was fixed which left a few corrupted bytes in bank zero, when using P8. I/O hooks are now fully restored, on exit, and interupt handling has been improved. Finally, V3.1 adds a "BOOT FILE CREATION" feature, which will be explained under a separate heading. SAVE CP TO DISK --------------- The SAVE function will pull the values from the battery backed ram, calculate the appopriate checksums, and save those values with checksums to the current Prodos directory. This is true under either P8 or P16. Note that saving a CP to disk will automatically overwrite an existing CP in that directory. You will not be warned, as it is assumed you wish the new values to become your defaults. Since you can neither change Prodos directories, or modify the CP settings from wihin a CPU session, you are allowed only one successful SAVE per session. In the event that the SAVE attempt resulted in a Prodos error, you will be given the opportunity to correct the error, and try again. This is only true of those errors which can be corrected by some means other than the keyboard. For example, re-inserting the appropriate disk, or changing the write protect tab or shutter. RESTORE/UPDATE -------------- A RESTORE operation consists of loading a previously saved CP from the current directory, and writing it along with checksums, to the battery ram. A successful RESTORE operation, is ALWAYS followed by an UPDATE. The UPDATE function, will copy the current battery ram buffer to the working buffer, and then update current system parameters to any changes detected. There are exceptions to what gets updated. The CURRENT ramdisk data is not stored in the battery ram, and thus does not get updated immediately. However, any changes to the ramdisk size parameters WILL become effective at next boot. There may be situations where it is desirable to have any SLOT or PORT changes NOT become effective until next boot. As uploaded, this is not the case. I.E. any SLOT or PORT changes become effective immediately during the UPDATE function. I have, however, provided an "ASSEMBLY OPTION" which allows you to choose whether to immediately update SLOT/PORT changes on an UPDATE. Look at the source code for instructions on changing the setting. If you wish to do an UPDATE, without loading a CP from disk, a menu item is provided. Again, in the event of a Prodos error, you are given the opportunity to correct any HARDWARE related errors, wihout using up your RESTORE function. SAVE BOOT FILE -------------- There are often situations where a particular program requires certain parameters be set prior to run time. Here are a couple of examples of these requirements. * My digitizer card resides in slot 2, and needs to be activated prior to booting it's software. * My communication disk needs slot 2 set to the internal port for the modem. * I have a parrallel printer card in slot 1. * I have a serial printer connected to internal serial port 1. * I have an older //e program which crashes unless speed is set to "normal" Well, you get the picture! Wouldn't it be great, if each of your applications handled these tedious details for you? Well, now they will! CPU will take the current parameters, and create the init file containing those parameters. It will then seek out the SYSTEM.SETUP subdirectory, and store the INIT (STR) file there. That file will be called "CP". The next time you boot that disk, the init file will take the saved parameters, recalculate the checksums, and perform a RESTORE operation to the battery ram. The boot process will then continue, with your changes in place. Note that CP will ALWAYS include any SLOT/PORT changes. ERROR HANDLING -------------- In the event of a P16 or P8 error, you will be informed by CPU of the HEX value of the Prodos error code along with the Prodos command which encountered it. NOTE that any command code less than $40, is a P16 command, and those from $40 up, are P8 commands. Don't let this confuse you, however, as any error code likely to be returned by CPU, will mean the same for either operating system. We must consider the possibility, of the actual BATRAM file getting trashed. Obviously, we do not wish to update to the contents of a trashed file! In writing CPU, I added a VERY simple error checking routine to partially verify the contents of the battery ram prior to saving, and the BATRAM file prior to loading. To do so, it was nessesary to make a number of assumptions about the Apple "reserved" area of battery ram. I randomly chose 2 bytes within the reserved area, which are always expected to be $ff's. The assumptions are as follows. 1] APPLE HAS NOT "UN-RESERVED" THEM AND CHANGED THE VALUE(S). 2] SOME OTHER PROGRAMMER HAS NOT "UN-RESERVED" THEM AND CHANGED THE VALUE(S). 3] SOME UNSCUPULOUS CHARACTER HAS NOT INVADED THE AREA WITH COPY PROTECTION. (SINCE SOFTSWITCH GOT HERE FIRST, I AVOIDED "THEIR" AREA) 4] THE CP OR BATRAM FILE HAS NOT BEEN TRASHED _AND_ LEFT THESE TWO BYTES AS $FF. OK let's assume (heh) that one or more of the above assumptions proved false, and I have just "successfully" updated the battery ram, the working buffer, and the system parameters, to trash. Where do we go from here? The first thing you will probably see, is a blank screen, though input from the keyboard is still accepted. Unfortunately, we updated the checksums as well, so simply rebooting, will not give us back our display. There are two possible recovery procedures. The easiest, is to simply boot a disk which has a valid CP file in the SYSTEM.SETUP subdirectory. The second method is a little trickier but not much. The only trickyness lies in the fact that you may not see anything at all on the screen until you have successfully updated the control panel. You will first need to press and simultaniously. dependant upon how trashed your battery ram is, you may or may not get a 4 item menu. Now, if you are running on 60 hertz, press <2>, or 50 hertz, press <3>. Your control panel will then be restored to the values stored in permanent ROM, and the boot will continue. Hopefully, you are now booting from a disk which does NOT contain a "trashed" CP file. If so, you will wind up right back where you started. This makes a VERY good case for storing a known good CP file on your BACKUP boot disk. COMMENTS -------- Well then, there it is! As this is my first attempt at GS programming, I would appreciate any comments you might have. You may contact me on CIS at [74505,473]. Bob Easterday a@ ,@ | " "\# ;8 [HHH HH " hh~|~H|H"H" "B "B HHH") "HHH HH " hh"B "B HH" HH" h" H" +;ik;8 [HH"E :HHH" 0:2HH<HHH" HH" HHH HHHHH" H" HHHHHH HHHHH" 8H"V""HHHHH"iH" HH" 0:"@" >'HH"_ " " eHH"_ " +;ik Syntax: PLAY Example: PLAY SOUND 200 H"Xhhhk{;8[:HHH G  ("{i+k{;8 [:d HHH G hhhqm8  )dK VeJ     {i +k"X{;8[:ڥHHH G hh h vneG8Ze e e e eJ  Ȋ    {i+kHHK  HH"  hhkKiH"R|~ ~GHH~|  ~ | |i|~hh|~`8` ;[  )   +;ik{;8[:ڥ H H H G h h h  I  $J        {i+k "}" hhkHiH;8  [  "_ O$>" ȩȗ na i  U GE " F e i  "p "p8  0 E  " )i+;ikiHHH H "hhkHH; [ȗȗȥȥȩ i+zzzzk;8  [ "X["r" && & 8   *8e 8 +;ik{;8[:ڥH H H G h h h NHHH G hhh5 /d8 d  Ȅ  ڢ {i+kV X T " k; [H H H G h h h8"X 0 " H Hi  H" i " +;i k H" H"h")? C {;8[:ڋK H H H & h h h  i i  Ȁ     {i +kHHHHH; ["_  ȷݠȷ ȷ+;i k ;[8 +` ;[I4" )d9  ")   +` "kK  H H "K;[ c:zZګ Hi "        kInsufficient bank zero memory' "H"{\cK Error occurred at line o " H" in procedure  " "-"   " " Line Name " ---- ---- "  < H" L " "-" ;[ 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; [8""+hhkHHH8H; [  "p % Q8  0 " "  "pe i @< " "    "pZ " "+;i kHH8H; [ȷȷ HH"+hhhhk:JJJJkH; ["_ȿ+hhkK&kK   HH"kHi H ;[ "+hhk; [ "HHH"- +hhhhk; [  )8 I" H HI i " +;i kd8d d 8kH( &"L(QM ;[  8(I ȗ(  @+hhk | # !$*036<M b fjmp~|~| B B )    #&58;>ADGJMPSV\B `fB nq}     E :: <<    '*CFO T X[dg V   >> _   ee+_ / X8G {G XCG       $R(|+~.~9~>|C K P~S V|Y ]|c|h~q|t~G g}m _    : pD p] c o        ; XB r G  G C V H X M T [  l G  X      % ) ; ? ? C _ & l t    _    f j o                      " F'I'\{`cf oo   -    %(2 5 : GPLSL] ` l-p}(pc m p  p w_~     -G@ASSIGN ".PTR",1 OPEN ".PTR",AS#12 OUTREC=0:OUTPUT#12:LIST:OUTPUT#0:OUTREC=80 CLOSE#12 ASSIGN ".PTR",-1 BREATHEuHUSTON!J ' '''BREATHEJ 5+BREATHE.DOCJ 2  ,@ main  Breathe\H** ;8[i! "  dd{i+k ;8[i "{i+k ;8[i /X ::H " Io eH" {i+;ik ;8[iթ8pI0 "h"h"z٥ "z"h"h"zۥ "z"h"h"zץ e eeٟՂT{i+  ;i k ;8[i""8pI0* eH "H"h" " " {i+;ik ;8[i@){i+k5Jon C. Thomason - do not upload without documentationHZ"kH"k"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 ;[HH "h h +k ;[HH "h h +k ;[;8 ")) )))));i+k ;[ H HHHHH "+k ;[;8")) ;i+k ;[;8" ;i+k ;[;8+" ;i+k;8 ;[.0*, & ( "$ ;iH"+;ik ;[;8 " ;i+k ;[;8 " ;i+k ;[;8 " ;i+k}xsn i d _ZUPKFA<72-(# "#'( )*";i(k"rv /?HKUa::   2  2 2 2  2 2 2  2 Vr`cmZ.@5z?j     2  2  d g u{ ;[ ïů):  +;ik;8 ;[gi     :  ie H ,@ ~global  ;[ ïů):  +;ik;8 ;[gi     :  ie H  HH H"~+ H) H1 H" :    A+;ik;8" ;[(@**d(*)ȷȷ)ȷ)Ȅe2 4  )Breathe v1.0 -- a New Desk Accessory by Jon C. Thomason _______________________________________________________ Public Domain -- distribute, but do not sell. Someone's time, energy, and thought went into this, so please leave his credits bundled together with it when uploading anywhere. Use it as you wish, but don't distribute any modified copies. This NDA, written in TML Pascal, serves as an example for writing your own "periodic event" desk accessories. It updates the color palettes every 1/12th of a second or so, depending on TaskMaster "stress." One feature I plan to implement in the near future is a method to turn Breathe back off. It's hard to write documentation when your screen's out of control! Jon C. Thomason (301) 657-9293{$a+} {$DeskAcc 6 $0101 Breathe } {60ths of a second, event mask, and name} {$LongGlobals+} { Breathe v1.0 -- a New Desk Accessory by Jon C. Thomason } { This program is in the public domain. Distribute, but do not sell. } PROGRAM Breathe; USES QDIntf, GSIntf, MiscTools; CONST Most = 15; {Steps for an in/exhalation (1/2 period) + 1} VAR Palette : ARRAY [0..15] OF ColorTable; {Speedy Lookup Table} Position, Inhalation : INTEGER; BreatheActive : BOOLEAN; FUNCTION DAOpen : WindowPtr; {Standard function, starts breathing} BEGIN IF BreatheActive THEN BEGIN BreatheActive := FALSE; SetColorTable (0,Palette [Most]) END ELSE BreatheActive := TRUE; DAOpen := NIL END; PROCEDURE DAClose; {Standard procedure, stops breathing} BEGIN BreatheActive := FALSE; SetColorTable (0,Palette [Most]) END; PROCEDURE DAAction (Code:INTEGER; Param:LongInt); {Standard, does work} BEGIN IF (Code = 2) AND BreatheActive THEN BEGIN IF Position IN [0,Most] THEN Inhalation := - Inhalation; Position := Position + Inhalation; SetColorTable (0,Palette [Position]) END END; PROCEDURE DAInit (Code:INTEGER); {Standard procedure, startup/shutdown} VAR Looper:INTEGER; TempSCB:SCB; PROCEDURE CalcPalette (VAR WorkPal:ColorTable; Pos:INTEGER); {Shade it} VAR Looper, Red, Blue, Green : INTEGER; BEGIN FOR Looper := 0 TO 15 DO BEGIN Blue := (Palette [Most][Looper] MOD 16) * Pos DIV Most; Green := ((Palette [Most][Looper] DIV 16) MOD 16) * Pos DIV Most; Red := ((Palette [Most][Looper] DIV 256) MOD 16) * Pos DIV Most; Palette [Pos][Looper] := (Red*256)+(Green*16)+(Blue) END END; BEGIN IF Code = 0 THEN DAClose {DeskShutDown} ELSE BEGIN {DeskStartUp} GetColorTable (0,Palette [Most]); FOR Looper := 0 TO Most-1 DO CalcPalette (Palette [Looper],Looper); TempSCB := GetSCB (2); { } SetSCB (1,TempSCB); { these are nescessary to avoid partial } SetSCB (10,TempSCB); { breathing on top & bottom of menu bar } SetSCB (11,TempSCB); { } Position := Most; Inhalation := 1; BreatheActive := FALSE END END; BEGIN {NOTHING, JUST} END. ,@ 0A)0kSTARTPIC Startup Picture Display Program, by Guy T. Rice STARTPIC Documentation updated for version 1.1 of STARTPIC. This program allows you to display a Super HiRes picture while you are booting you disk or hard drive. This gives you something a little less boring to look at than "ProDOS 16 v1.3" etc etc. It also makes your friends say "Oooo!" and "Ahhhh!", or if they have a IIgs, "How did you do that?!" Version 1.1: There are two significant differences between this and 1.0. First, this new version allows you to have several startup pictures instead of one. These pictures are named PICTURE.A, PICTURE.B, etc, and are cycled through alphabetically. Secondly, this version fixes the bug in SHR.OFF that caused it to return an error and make ECP-16 mad. How to set it up: Okay, first of all, you have to copy some files into your SYSTEM.SETUP directory, which resides inside your SYSTEM folder. The first file you need is called STARTPIC. It is a $B7 (TSF) file that is run whenever you boot. The second file you need is called PICTURE.A, and this can be any Super HiRes picture, but it must a $C1 file! It cannot be packed, in other words. So when you save this picture, save it as a $C1 file. Finally, you can have several other pictures, but this is optional. These optional pictures are called PICTURE.B, PICTURE.C, etc. Thus you can have 26 different pictures, if you so choose. (Or just 3 pictures, if you want.) Each time you boot, the next picture will be displayed. After showing the last picture, it goes back to the first (PICTURE.A). For best results, STARTPIC should be the FIRST file in your SYSTEM.SETUP directory. You can sort directories safely with Cat Doctor, which comes with ProSEL. Or you can try and use the Sort Directory DA in Apple II Desktop. Or if all else fails, rename STARTPIC to "A......STARTPIC" and then alphabetize the catalog with Copy II Plus. Then rename it once you're done. Failing all of the above, you can copy all the files out of your SYSTEM.SETUP directory, delete them from SYSTEM.SETUP, copy in STARTPIC, and then copy those other files back. A problem, and the solution: This program works great if you're booting into Finder, Program Launcher, or some other SHR graphics-based application. But what if you're booting into a text shell program like APW, ORCA/M, or ECP-16? Well, since STARTPIC leaves the graphics screen on, you have to turn it off. That is what the program "SHR.OFF" is for. Its an EXE file that should work under any of the above shells, or any other shell that follows the same standards. If you are using APW or ORCA/M, go to your "LOGIN" file and add a command at then end of it to run the program "SHR.OFF". If you're using ECP-16, add the command to the file "CP.STARTUP". The line could look like this: /DISKNAME/SUBDIR/SHR.OFF This is unnecessary with IIgs desktop applications, since they will reinitialize the SHR screen themselves. You need only worry about it if you boot into a shell (like I do, APW to be specific). Comments, suggestions, fan mail: I'm always glad to hear from you, especially if you have bug reports, suggestions for improvement, or just thanks. You can leave me E-mail on GEnie. My mail address is: GUYRICE. I hope you enjoy the program! GTR ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcf33c3f3633c6ffffffff33333ffhffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffkf6;;k3;k;333k;366ffffffff6636f6ffhffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3333c3f36fffffffc633fhfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff;fffffffff;kk;3c;;3;333;;k3k;;fffffc;3333;6hfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffccffffffffcc633c3333cffffcc33hffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff;6;6;k;fffffffkffc;3;fk633;c;f;k;;;fffk3f;k;3;hffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfcfffffffff3f333cc333cfff3cchfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6k;;k6f6;;ffffffff6c3;36c;;33;36k;;;k6ffc33;;fk8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcffffffff3cc3c33ff333fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff;;;6;;k;;;;ffffffff6c;k663;;;36kf6;k6;63333338ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffccffffffffcfffc333fc3f3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6k6k;;;6;6;3;8fffffffffff3;33;;;;33;k6;k6;;36386ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc33affffffffff6c3333c3f633fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffk;k;;;;;33;3;k6ffffffffk33;3;33333k;66k;66h86ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff33333affc3c36c333fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff;6k;f;k;;;33;3366kfffff;ffff;;3;63k;3;36k36;;;;;ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc336cfaffcfc333333fcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff;f;;;;6k;;333;3;;;;ffff;k;fffk;kf6;;;;33;363;;;;;;6f6ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc33ffc33333c33333cffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff;;;;;fkf;33333;3;;66kff6;k6;fk;;;3333;3;;33;33;k;;;6ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffccfc33333cfcccc33c333fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffk6;;;;;;;;3;;3;;;;;k66k6k;kk;;;6k33;3336f3;333;6;k;;6k;ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffccfc33333fccfc333333cffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffk;;6;;ff3;3;;;3;;;6;;;;;f;;;;;;kkfc3;3;6;333;;3;;;6k66fffffffffffffffffffffff`fffffff`fffffffffffffffffffffffffffffffffffffffffffffcc33c3cf333c3333cfffffffffff`fffffffffff`fffffff``ff`ffffffffffffffffffffffffffffffffk6ffffffffffc336f;;k;;;;;6f;;;;;k6;;cfc3;;;6c;3;;3;6;;;6k6fffffffffff`ff``ff`ffff`ff``fffffffffffffffffffffffffffffffffffffffff6f33cccccfc33cf33cffffffffffffffff`f```fff`fff`fffffffffffffffffffffffffffffk;k;k6;6ffffffffck3;;66;;;k;6k;;;6;;kk;;3;;;k;6f3333;3;;6;fffffffffffffff`f```fff`fffffffffffffffffffffffffffffffcfcffffff3fffc633ffffffffffffff`ff`f```fff`ffff`fffffffffffffffffffffffffffkf;;6;fkk;ffffffff;fff6;f;;;;;;;;;;;;k;;;;;;k6;3c;363;;6f6ffffffffffffff`f`f`f```ff``fffffffffffffffffffffffffffccffffffffffffcccf33cfffffffffffffff`f`f```fffff`ff`ff`fffffffffffffffffffffffffk;;;k;6k;;k6k;;ffffffk;f;6;;;;;;;;;;;;k;;;6;;;;;6c6c336;;6;fffffffffffffffff`f```fffff`ff`fffffffffffffffffffffffffffcfcccffafcfccc3fcf333ffffafffffffff```ff``ffff``ff`ffffffffffffffffffffffffffkf;f;;;6;;k;f;k;8ffhk;;;;;;;;;;;;;;;6;6k;3;;66ffc66;;f;6;ffhfffffffff`fff``fffff`ffff`fffffffffffffffffffffffffffffcccfccf3333ffcf3fffaafffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffk6f6;6;f;;;;6k;;;hfk;;;;;;36kf;;k;333333;36kf6ffffffhfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfaffcf33c333333333fffaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff;;;;;;k;;;ffff;;;33;3;;;;;;kc3333333;336fffffh;;;6ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcccff33333cffc333333fffffffcccafffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffk;;;;;;;;;;;6;;;33;336;;fk;k333;333;333k;;;6fffff;6;6;;fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffccfcccc633f3333333c3fffffccffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff!fffffffffffffffffffk;;;;;;f;;;3;kf;333;3;;kf;f;;6;;3;3333;;3;6;fffffk;k;;68ff;;;;;fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffccc3336cc33333333333cffffcfffffffffffffffffeffffffffeffffffffffffffffffffffffffVffffff(!ffffffffffffffffk;;;;6f6c3336k;c3333;3;f;;;;c3;;;3;33;;3;f;;effff;;;;6fkfe;;;88fffefeeeffffffeffffVVUffffeefffeVfffVeeffffeffefffffffffyyyqfffffffefefffefcUfc333333333c3333333cfefcffffVfVfeeVVeVVfffeVfVffVVffVVeffffUVUffefVfVeefVVVUUefffa((ffffffVfUfeefVf;k;;;;33;c;;;k;3;;3;6[k;;;;333;3;;3333;3;kfVefVfk;kV6;Vee8;;8;fefeVUVVfffefeUeUfUVfVeUVeUVUeVVeefeVeUUVUUeeUeVfUUfffayryyyyfffeffUffffUUSf3c33S33333cc3333333VfVecfVVe3eUeUfffUUVVVVVVVeVfeeVUeefVUVffVUfUUVUVeUUeefUUVeVeeQ'((UUUfVVVeVUfe;;;k;3;333;3;3;3;;;3;;;;;U;353;3;3S;3;3;k[;VVUfk;;;;5VeSS33;8;;;;;UeUeVeeUeUfUVUeUeefVUVUUUUUeeUUeUVUUUUVefeVUeVeVUeUUyyyyyyyryUUUeeUUUVVfVUeVVf33333333333SSeUUUSSVU3383fUUUVUUUUUUUUUUUfUUUUeVeVVUUUUVUUUeUUUeUVUeeUVVVeUUQ'(%UUVUUUUUUeUUVU3333;3;;3335;;;[;5;;UU53;3;;36333;;;5UVU[;;;5[[6eV3333;;;;;;;;;;;;;UUUUUUUUUUUUUUUUUUUUVUUUeUUVUUUUVUeUUUUVUeUeUUUVUUUp yyyyyyyyyUVUUUVUUUS335333SUSS3S3U333UUUUVUSUUS33U3UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUfUeUUfUUUUUUUUUUUUU''(UUUUUUUUUUU3353;;;;3;3;;e[[5[;;U33333;US5;;;5;5UUeUU5;[[UUc5;33;;;9;;8;;8;;UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUPyyyyyyyyyyrryyUUUUUUUUU33333SUSS53U3UUUUUSSUU33333UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUPw''UUUUUUUS53;;3;3;;[;5;;;[5U5;U;;USU;5;UUU;;5[UUUUUVUUX;UUU[;3;X38;898;;;3;8;UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUyyyyyyyyyyyyryyrUUUUUUUUUS333SSUUUS5UUUUSSUUUUUUUUUUUS333331333UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU'')UUUUUUUU333US;UU;[5;;;;[5UUU[;;;;;;;5UU5;;;UUUUUUUUU3;;;3;3;;8;;8;;8333UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUyyyyyyyyyyyyyryyyUUUUUUUSUS3SUUUSUUUUUUSUUUUUUUUUUUUQUUUUUS3383338313UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUp''UUUUUUUU5;3;UU[5[;;5;UUUUUU5;[;;;;U;UUUUUUUUUUUXUUUS33;3;;;;;;;;3838;;;33333UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUwyyyyyyyyyyyyryyyyyUUUUUUUS3S3UUUUUUUUUUUSUSQUUUQUUUQUUUUU3S3313333813UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUPw'('UUUUUQU[5UUUU;;;5U5UUUUU[5[;;[;5S;5UUUUUUUUUUUU3;3;3;;;;;8;3;3;;;383;3UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUPwwpyyyyyyyyyyyrryyyyUUUQUUUUUUSSUUUUUSSS3333QUUUQUU3333333333UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUP( wwp'(('UUX(UUUUUU[;5;UUUUUUU;U;;3333;;;UUUUU;UUX;;;3;5;;;;;8183;333;;;3;UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUwwppqyyyryyyyrryyyyyYUUUUSUUUUUUS3333USUQUUUUSUUUUUS3113333UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU( wwwp(((('UUUUU;5;UUUUUUU;;;3353;;;55XUUU;;;;[;5;UUU[3;3;;;;;;3;8333;;3;;;33;3UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUpwwwwqyyryyyyyryrryyyyyyUUUUUUUUUUUUSS333UUUUU3UUS3333333UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUwwwpwwwp('(((%UUUUUUUUUUU[;;3;333;35[85[;[;;;35;;55[[;;5;;X;8;38313;3;;3;;8833;UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUwwwwwwwwpwwwpyyryyyyyyyryyryryyyyyyUUUUUUUUUUUU3S3UUSU33SUUUU33333333UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUwwwwwwwwwwwwwww((UUUUUUUUUU[;3333;S;;;;U;5;;;S;3;55[55UU[5;583133;;3333;38;;;;2UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUwwwwwwwwwwwwwpyyyyyyyyyyyyyyyryyyyyyyqUUUUUUUUS333USS3333UUUUSS333333UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUwwwwwwwwwwwwwww')UUUUUUU[U5;3353;;;;[;;;;;;3S;3355;;;;U[;[;8;39333;33;3;3;;;;882UUUUUUUUUUUUUUUUUUUUUUUUUUUUUwwwwwwwwwwwwwww yyyyyyyyyyyyyyyyyyyyyyyyyyUUUUUUUU3333SSS333UUUS83333UUUUUUUUUUUUUUUUUUUUUUUUUUUwww((wwwwwwwww(UUUUUU3;3;;3;35;;;[U;55[3;333[;;;5U5U;[5;;333;133;3338;;;8UUUUUUUUUUUUUUUUUUUUUUUUUwwwywwwwwwyyyyyyqyyyyyyyyyyyyyyyyyyyyyyUUUUUUS333SS533SSSU3333333UUUUUUUUUUUUUUUUUUUUUUU((!(wpwwwp)()UUUUU333US;;;;;UU;;;;;333;;3;[;5UU[5[;;3;3;;3;83;;;;;;;8;UUUUUUUUUUUUUUUUUUUUUUyyyywp yyyyyyyqyyyyyyyyyyyyryyyyyyyyUUUSUS3SSSS3333SUU333UUUUUUUUUUUUUUUUUUUUU(((((((!(()U5;3;U;55[;;;;U53[3;;35;U;;5[;;;;83333;3;;8888UUUUUUUUUUUUUUUUUUUUPyyyyyyq yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy3S3USS33SSS833UUUUUUUUUUUUUUUUUUUQ((('(')5U;;;;;U[[555[3333;3;[5[55UU[;83;3;3;;88UUUUUUUUUUUUUUUUUURyyyyyyyyyyyyyryyyyryyyyyyyyyyyyyyyyyyyyyyyyyyyyUS533USSUS33UUUUUUUUUUUUUUUUUU( ''';;;;U5;UUU;5US3;3;35UUU5[5UUU;8383388UUUUUUUUUUUUUUUUUQyyyyyyyyyyyyyyyyyryyyyryyyyyyyyyyyryyyyyyyyyyyyyyyyyyyUUUUUUUU33UUUUUUUUUX333UUUUUUUUUQUUUUUQ  0 (('(775UUUUUS5S3355UUUUUUUUUUX;;;;UUUUUUUUQUUUUyyyyyyyyyyyyyyyyyyyryyyyyyyyyyyyyyyyyyyyyyyyyyyyyyqyyyyyyyyqUUUSU333UUUUUUUUUUUX3UUUUUUUX(((((U(8((( 33;;;;;(('''(('';8'UUUS55;;UUUUUUUUUUUX8UUUUUR33yyyyyyyyyyyp yyyyy yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyrqUSU3UUUUUUUUUUUXU[UUQ(((( (((((( 0 333;;;;;;((((((('('((( ((((('(!%U5UUUUUUUUUUUUU1UUQ333333yyyyyyyyyyryyyyyyryyyy yyyyyyyyyyyyyyyyyyyyrryyyyyyyyqyyyUUUUUUUUUUUUU[[[( ( 0 ;+8(383; 3;;3333;;3;;38(((((((((((('((''(('(''('(!((UUUUUUUUUU;51U333333yyyyryyyyryyyyyyyyrryyyyyyyyyyyyyyyyyyyyyyyyrUUUUUUUUU5; ;;;;;3;3;;3;3;;3333333;33333;#8+(((((((((((('((((('(((''((('('((('((((((((!(!UUUU[5;;1333333333333332yy yyp yyyyryyyyyyryyyUUS33;;;;;;;;;;3;;;33;;3333333;;3;33;3;3;;8+;((((((((((((((((((((((''(''((((((((((((((((((((!(((((U;[;3;13333333333333333yyyyyyyyyyyyyyyy33;;;;;;;;;;;;8;3;3;3;333;;3;3;;;33;;;;;;;+8;+3+38++(((((((((((((((((((((((((''((((((((((((((((((!(((((((!9;3333;1333333333333333333333sssyyy333;;;;;;;;;;;3;3;3;;33;;;;;;;;;3333;;3;;;;;;;;;;;;;88(((((((((((((((((((((;;(!((((((((((((((((((((((((((((((((((((((!;;;;3;3;;13333333333333333333333333333;;;;;;;;3;3;;3;3;;3;3;;;;;;33;;33;;;;333333;;;;;;;;;;;;;;8++(8888+888;8(;+;8++;8+;(888;(888;+((((+((++8++(((((((((((++3;;;;33;;;;133333333333333333333333333338;;;;;;;;83;;33;3;33;;;3;333;;333333;333;33;;33;3;33;3;;;;;;;;;;;;;;;;;;;7;8;+;;+((88;(888;;+;+(++(;+8++;+(+(((((8;;;;;3;;;;3;3;;3333333333333333333333333333333;;;;;;;;;;;3;;;;3333;;;;;;;;3;3;;;3;33;;3;;;;3;3333;3;333;;3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;88+;;;;;3;;3;3;;3;33D3333333333333333333333333333D;;;;;;;3;3;;3;;3333;;;;3;;;;;3;33;3;;3;33;;;3;;33;33;33;3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;33;;;;3;;3;33CDD333333333333DDD;;;;;;;;33;;;3;;;;;;;;;;;;;;;;;;;;;;;;;;3;;;;;;;;33;;;;;;;DDK3KDK KDKD {{p ww{{w{{{{{w{{ww{yy{yDKD ()ww{{{wwwww;{wwwwwww{K{{ www{wwww{ww{{{{wwwwwww{wwwwwwwyyyyyyyyyyyyyyy{wwwwp( ww{ww{(axyyy{{{{UUUUUUUUUffffffffffffaUUUUUUUUUUUUUUUUUUYUUUUUUUUUUUUUUUUUUfffffffffffffffk{yyyyyyyyUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUfffffffffffUUUUUUUUU)(UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUfffffffffffffayyfyy{{yx{yqUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUYUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVfffffkkfkf))(()((((&ffffffffffffffffffffffffkkkffkk{y{x{yyyUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUfffffffffffffffffffffffkfffkka((((((((()(()((f&ffffffffffffffffffffffffffhkffffffky{yyyyyyyyybfffffffffffffffffffffffffffffkfhfffffffk)))UUUUUUUUUUUUUUUUUUUUUUUUUUUUVffffffffffffffffffffffffffkffhfffffffhfhyyyyyyyyyyyyyqy fffffffffffffffffffffffffffffffhffffffffffkfawy)((((%UUUUUUUUUUUUUUffffffffffffffffffffffffffffffffkkkhffffffffkffyyyyyyyyyyyyqywwwwyUUUUUUUUUUUUURffffffffffffffffffffffffffffffffffffffffffffhffffgwwwyq((((((((((((hh&ffffffffffffffffffffffffffffffffffffffffkfffffffffffifayqyyyyyyyywwywwwwbfffffffffffffffffffffffffffffffffffffffffffffffffkkffffffawwwwwwqw))(((((((((((fhffffffffffffffffffffffffffffffffffffffffhffkfffffffkkkfffffffffffyyyqyyyyyyyyywwwwwwyff`ffffffffffff`ffffffffffffffffhFffhdDffffffkhffffffffffffffwwww(((((((((((&ffffff`f`fffffffffffffffffffffffff`ffffhDffdDffffffkfffffffffffffafiyqqyyyyyyyyyyy wwwwwffffff``fffffffffffffffffffffffff`fffffhDffDDffffffkffffffffffffffggwwwwww)(((((((((((&fhfffff``fffffffff``fffhDDDDfffffhfffkkfffffffffafiqiqyyyyyyyyyyyyyywwwwwffffffff```f```fffff`f``fff``DDDdDDfffffDfffkffffffffffffffww())(((((((((((ffffffffff```ff`ffffff`fff`ff``DDfDfDDfffffDdFffffffffffffffffyyyyyyyyyyyyyyywwyyfffffffffff```fffffff`f``f`ff``kDdDFffffhfDDFfffffkffffffffffw(((((((((((ffffffffffff```ff`ffffff``fff``dDDFffffhhdDFhffffffffffffffffyywyyyyyyyyyyqffffffffffffffff``fff`ff``fkFffffffHDDDhffffkkkfffffffffkawwwwwwww)()))h(((((((fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffFDFDDFffffffffffffffawywwwwywyyyyqyafffbfffffffffffffffkfffffffdKkDFfffffffkffffffffkffawwwwwwww(fff((((&ffffffffffffffffffffffffffffffffffffffffffffffffffffffkfffffhdFfffffffffffffffffkffaawwwwyyyyyqyfffffbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffhffkffffkfffkfffffffffkfffafwwwwfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffkkfhffffffffffffffkffwwwwyyyyffaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffkkfkfffkfffffkkfkffffffffffhfffffwwwffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffkkkfkfkkffffffffkffffffffffkkfkfffwwwwyyfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffkkfkkkfhfffffffkkfffffffffkfffwwwfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffkfkhkhfffffffffffffffffkffffgwyy{{fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffhkffkkfffffffkkfffffffffkffffaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffhfffffkffffffffffkfffffffhfkffffffy{ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffhffffkhfkffffffffffhkfffkfffhfffffffaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbff&fffhhffffffkfffffkfhffffkkfhfffffffffayw{fafffffffffffffffffffffffffffffffffffffffffffffffffffffffffbff&&fffffffhfffkfkfffffffffffkkfhffffffffwafffaffffffffb&f&ffffff&ffffffffffffffff`fffbfffffb&ffffffffbf`"hb"&kffbf"kDffffffkk&hkffffbfkwf&fffff"ffff"bf"&ff&fffffbffbffff`b`&fbfb&ffffff&&&`f`"`b&bfbf&f&f&&f"h&fbb++kk+kkffDf&ffff+&+khfff&ff&fffbf&fbff&fbf&fbf&ff"f&f&f"f&b"f`f```f``&&f`f bff""ff"` f b("fbb&&k+f&fkFDD&ff&("kk+k"&&bk{baaf&"&&ffb&""b"f"f""bff"ffff&bfff"f&`"f"&f"bb`&`&"bb b"`ffb(bb"f&++"+&k+bfkDDDb"b&+"b""b++fk{f"fb&&bfbb&""b"b"b"&"b"&f"b"f&bbbbff&" &&bbbb" bb & b b&f&&"`"&"h&""&(b&+"kf""k$DDBb&""""&&++"k++&{"""""&&""bf"f"&b&&fb&"f"b&b"f"&f&""fb`b&&&&`"f f& "`" bb"f`fb b`&("b""&k""++bbf"$BDBb"bh""""&"""+++"q!"""""""&""b&b"bbb"""""&"b""bf"&bf&f&b"""" " b` b&&bf"&&" ```b("&"b""""bh&"&"""($BDBD"""+h""""+"++""""""&"b""&b&"""b"&"b""""""""b""&f"""&"&"&"&"&"b"b"f""&"f""b""""b""b"&""b""&""b"("+((+&"(&""&+bb"""b"dDBD"(""h+b+(&"f"(("""""""""""""""""""""""""""b""b"""b""""""b&"""b&&"fb""b"""""""b"""""&&"""""f&""b""""""(""+(""""(""&b""&"&K"""""+""$B""(+"""""""""""""""""""""""""&"""""""""""""""""bb"b"&"""&"""""""""&""&&"""""&"""bb""""(++""""("""+""""&"+"&("b+++$B"&++""""""""++""""""""""""""""""""""""""""""""""b"""""b""""""""""""""""""""""""b""""("+"""""""+"""""""(""+D$DH"++""""""""+"""""""""""""""""b"""""""""""""""&"""""""""""""b""""""""""""""""""""""(+""""""++"""""""""DDDK"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""&"""""""("""("""""""""+DDD"(+""""""""""""""""""""""""""""""""""""" " """"" ."""""""""""""""""""""""""""(""""+("""+""""++"+D$D""+("""""""""""""""""""""""""""""""""""""" ""   """ "" ""  " "((""""(""""""+""""""D$D$K"("""""""""""""""""""""""""""""""""""""" "" "" """ " " "" """ " """""(++""+""""++"""+(""DDK"++""""""""""""""""""""""""""""""""""""""" """" """ """  """ "" """"("""+"""""+++"""+++D"+(""""""""+(""+"""""""""""""""""""""""""" " """ """" """ """ """ "" """""""""+"""+""""+"""+(+(""""""(++""""""""""""""""""""""""""""  " " "  " """"+"""""""+""(+""""++""""""""+"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""(""""""+""""""("++"""""""+++"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""++++"""+"""""+"++""""++("+"""""++""("+++"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""+""""""+"("""""""++""""""+""""+"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""+""""""""++++"""++"""""""""""+""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""++""""""("""""""+"""""""("+"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""+++""""("""""+"(+"""""""+++"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""(""""+"""""(++""""(""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""+"+""(++""""+"""""""+"(("+"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""((""""""++"($"($D"""(+("("""""""""++("("""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""(""""+++"""++H"$"""("+"(""""""""""+""""+""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""HD"+"""("+"""+("""""""""("""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""("""""+""""(K"""("("("""""""""(""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""+DD$"""("D""+"""""""++"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""((""""+"+"""""DDD""""("D$H"+"""""""+(""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""(""""++"""""++D"""(("DD""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""++"""""(+"((($HB("""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""(""""""+"""""(+(+"+"""DDDD"DB"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""((""""(""+"""""("""(""""DDDDB"DB"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""((""""("""""""("("""""+""""+DDDDB"(DDB""""""""""+"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""("""""(""+""""""""("+"""+(DDB""DDDB"""""("""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""("""""(""""D""""""""+(+DDDH$BDDB""""($H"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""("""""(""""D"D""("(""++D"DDDB$B$DB""""($BD"(++""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""!"""""""""""(舁"""""(""$BD"D"""("(("D"+"BDD"""""$DD"(+++"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""!!"""""""""""("""+"($DDDD""++"++"+""++DDD"""""DD"+"+"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""!"""""""""""(ሁ"""++$D(DB"(+""+"+++"("D""""""(DDDB+""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""!!""""""""""("""+"D($B""""+"+(+++++""""""(D$D$DD+"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""!"""$HDB""""""++"("""""""(DDD""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""!!""""""""""(""+"$BDB++""""""("(+"""""""D+"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""!""+""""DB++""""$B+((++++""""""+""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""(_,_ C ^ʞ``,`L_  O  @ @ @A,p   A,p   A,p   A,p   A,p   A,p     O  @ @ @ ` ``@栎 )# @" В e) * / ), ,  EKT O" T@"MTP1& ,@ &05A)0("ZA[A"诪""0)0"k*/SYSTEM/SYSTEM.SETUP/PICTURE.A */SYSTEM/SYSTEM.SETUP/PICTURE.AìԮ堠(/@ENUY]fpSHRCONVERTuHUSTON!J' '*SHRCONVERTnJ SHRCONV.FINDERiJ-SHRCONV.ICONSkHJ/SHRCONVERT.HELPoMJFINDER.DATA7jcs.jѓ ,@ MAINE (K#% + I D")@ ""h "H "hh!H "hh!!HH"iH@H"""H"hCE   <"""H""8`"" HH"    !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghH "hh{)ȷ+ HH""H"9"H H" H H" > H H"H" 6"H H"" `""""""""""""H")H""``"(< ."h`Hey! Give me back the disk: RETURN: Retry ESC: Shutdown<f"h`$0110 Tool versions too early.Must run from 1.1+ system disk. RETURN: Ok ESC: ShutdownH ""<:;"h`Error $xxxx: Unable to startup. Make sure you have 512K+ memory. ESC: Shutdown#` % '"h)"h* )HH"Ⴀ) F(f `"%#H!)  ,"`v92gA E   . ,0`1/   zf{{&#`"h- j 3 j """? -ɡ 3 H "h m3 OHH-H "hehe m-  ɠ? I T  " """ᜠ Μ ?) ?)JJJJm }@)͜  ͠  ĭ H"᭞ H" :" ":" "ᩀ "  "h߂)) ) $?! E Im 8 m 8080ۭӭm 8 8080 """9")""` ͒  8 `8 `) Use arrow keys to position the picture. ) Use the Option or  key to move faster. XHVH"`HH"`$H"H"`& "h"h$$H"H4"$H"H"t4"`-" "<-" "-" "-" "-" """h*"` "hhڭHHHH3"HH4""{Z "hVhXڭXHVHHH3"٩! '`NxPJ<<<<##@\N1X >>About SHRConvert...\N256 >>Help\N261*?/V .## File \N2 >>Load & convert...\N257*Ll >>Save conversion...\N258*SsDV >>Rename a file...\N272 >>Delete a file...\N273 >>Change a file's attributes...\N274 >>Format a disk...\N275V >>Choose Printer...\N269D >>Page Setup...\N270D >>Print...\N271*PpVD >>Quit\N259*Qq .## Edit \N3D >>Undo\N250*ZzV >>Cut\N251*Xx >>Copy\N252*Cc >>Paste\N253*Vv >>Clear\N254V >>Close\N255 .## Windows \N4 >>Load formats\N262 >>Save formats\N263 >>Conversion\N264D >>Full screen\N260*FfD .## Special \N5D >>Picture Info\N265*Ii >>Show Page\N267 >>640 => 320 mode\N266 >>Fix Aspect Ratio...\N268 .+L4 Z CContinue# }dSuperHiRes Convert version 2.0 Copyright 1988 Jason Harper This program is shareware. If you decide to continue using it, you should send $15 to: Jason Harper 1480 Michelle Ct. #A Colorado Springs, CO 80916 iU$ Select picture type to convert 1L|3c:q Apple II HiRes   Double HiRes "  /Atari ST .PI1, .PI2, or .PI3  dType $C0 compressed SHR  Type $C1 non-compressed SHRD N  Mac ScreenMaker formatN X MacPaint$ .  Commodore 64 Doodle format. 8  KCommodore 64 KoalaPaint8 B  {Commodore 64 Print Shop (B/W)Z d  [reserved for future expansion]f p  RLE (run-length encoded)  [reserved for future expansion]p z  RGIF (CIS Graphics Interchange)z  [reserved for future expansion]    Full Color!NX   Condensed" Select format for saved pictures Pab9n ?  QType $C0 compressed formats:0  Type $C1 non-compressed1 "  Subtype 0: Paintworks Plus 1.02" ,  Subtype 1: _PackBytes format3, 6  "Subtype 2:  Apple Preferred48 B  WGIF (CIS Graphics Interchange) 2"hh"hHH"~"HH "`x;8 [6:"d+ ;i kLP"h`NHLHPH"#NHLHPH&"h  &NHLHPH."hP ` F`NHLHPH."hIHNHLHPH/"`%RTNHLH%H/"% `  '%! '`HXHVHڢ""`8RTRT"hh; 3ͼ)P)0LS Hڢ"h`'/"k#Eg4Vp#Eg4VpEg#Vp4g#Ep4V#Eg4Vp#Eg4VpEg#Vp4g#Ep4V#Eg4Vp#Eg4VpEg#Vp4g#Ep4V#Eg4Vp#Eg4VpEg#Vp4g#Ep4V#Eg4Vp#Eg4VpEg#Vp4g#Ep4V#Eg4Vp#Eg4VpEg#Vp4g#Ep4V#Eg4Vp#Eg4VpEg#Vp4g#Ep4V#Eg4Vp#Eg4VpEg#Vp4g#Ep4V {vSHRConvert Help 'Bleaigh! HPrevious iNextl BackA  lTOP1/SHRCONVERT.HELP2x4w'B/< ?OkP#6ZHUnable to find the help file. Please insert program disk and try again. H "hh`HH"` "S">HHH@HH """ "h`""HH$" "hhHH3"HH03"HHQ3"HHn3"" `HH "HH$"`;8  [dHHH"HHH"3 . " )ȷ) ؈ W)_ "!dH H") d.i\m^eȷ)  "i HHHHH " i "` #i HHH HH " # HH"U":"HH8"HH""HH""HH"" @# @# @#r#)x#)HHH8"+  ;ikei`) ` ")~ȷ) ~  )8e)`p# #,HHp#H#"p# 8.r#`r#`;8 [ HH" +;ik;8 [Kg"h%h%%H%H%"m"6X""n" $ ,"." $2" $ $$ $0" $ #H#H:"=""h) $ 5$)}#)_#E$)}#)$# $ $b%H%H$"᭨%H%Hh"+;ik"h&&h(&&& (&(&H&&HL"h" "h)6"  "h)"*"`  ???<( ">("B(@(H>(H"h("hz 4("$ 4(%`%(`(&("`*&"`B(D(`%`$H"H") ""h) ") "$H"H>"h#)h%)8)) )}#)')8)))8)))')')ʭ))H')H$H"H?"`&" "s)o)"`o)")""`Zs)H k<))*h**H+, )Ok )"# 0 1 2 3 4 5 6 7 8 9 A B C D E F ;,/*8Master mode: Width: Height: 320 Mode: 640 Mode: % Done: K*VColor 0% 0% 0% 0% 0% 0% 0% 0% 0% 0% 0% 0% 0% 0% 0% 0% K*XPalette 0% 0% 0% 0% 0% 0% 0% 0% 0% 0% 0% 0% 0% 0% 0% 0% ,;`+320 0 0 0% 0% 0% v(,},4,a,  *, No change# 2 L,Reduce height by 50%< K y,Reduce width by 50%++++++~+`327)64a+9He+ &"3Hj+ &")2"h+h+'-"h+H+H "`;8 [K+3?+?)++++?) ++)++-Z) K/z+m-+83+)+H+Ho+".+H+Ht+".*+H+HHH".i ש*ڽ+H~+H+H+HHH".i@+H3Hy+".j*:"*:"J+:"d+;ik;8 [   & 1000v  0f H Hd "h h hh H H HH "hHHH &"+ ;i k+) /)JJJJ-)JJJJJJ /)0JJJJ  /) JJ  /) ~++++`+2"h+h+"h+H+H "` 0 L0+H+H "LE +)-J0Hh  J0; m-;ӎ;3Ji3 S)` +)-00  JJJJHh  κ0κ0;;-Ji-5Ji59Ji9 S)`?) ??)? 3 ?) i?J)wV6 )yV6V6ߠ) V6JJ)V6w ݭ77N9 1" N@LE 22- 23J235223"""2 "22W"6"d22H:"2H "hH2H<"22Š ? ?222JH"2222333325*"h """9")""`I0/~0/3744Flރi5555P&5$I am having a hard time ^0 the file:P&5^1 P(&5Error code is $^2: ^3.-9^ 6Continue333y#F``'`J+N 0 S4W8[@@=@`Ad#F'JL L,LO 0S  5 Xll9l\=`,,B,e$Gxx(xK ,O8818T5X9\XX>XaBe$G)Ld d-dP1T$$6$Y:]>aD DCDf00%0H)L -PPP2PU6Y;^pp?pb Cf%H*M| |.|Q2U<<7 f=틋h)H&>H"K5"h`0000======== reading fromcreating writing to convertingrenamingdeletingchanging the attributes of=formatting the disk in device: '>+>.>/>@>D>E>F>G>H?I?L%?M%?N=?QL?Wm?ZL?[?????@,@ I/O error!Disk is write-protected Disk switchedDisk is not onlineInvalid pathname syntaxFile not foundDuplicate pathname Disk is fullVolume directory fullUnexpected end of file!File is locked Disk directory has been damaged!Duplicate volume names#Cannot rename onto a different disk Memory full!Missing GIF terminator.Picture is damaged or not of the selected typeResolution too high to convertPicture too large!(error description not available)?)?)3ܭ 0"Mix 320  0"640 @@s  AH@ &"@$H"H "` xxx mode: nn palette# "666B6P6`H"6h(`R6"P6 A`$6h)00 V6??  6"6"6 A`H6h)00e ?V6D6F6"B6 A` @ ? A? ` R`pU /     pP f 7-3A)$Z "h;h== :;8`- 9 57)9` A A [B`@C B B B@C  BAڀ A`( BAȭ@C@C V8V6 JBCV6   DC HC KC(` QC QC QC 3 C C FC `FCNDCNDC.FCNBC.FCNBC.FC ڮFCC `f3NDCNBC.FC(.FC(.FC(.FC` A+ 3 [B A [B A`2D,D.D D,D D A`*D 4D 4D 4D.Di.D,D`.D /A˩( BA,D V8*DV6 D D DV6 D(.Di(.D,D` D D D DJ.0D(.0D(.2D`H 3 2D 2D0D  ȩ2Dh` A?} BA4 BA)8 BA BA A?) [B`3 A 3 |*E8`EE JEEEEE /A: BA/V6EE'"h mEEEп`  BA6 BA+ [B"; 0E A?` 0E` A}?~??) [B`,&5FkFF MFScanning the segments in this Ffile. Click on the "MAIN" #Fsegment to load.ccc 7 S)FFFF(F4FF2"hFhFK" AFHFH "h먭F`FȷF +) AFF /A BAխ[6MA7_6)7a697 55)55JJ-c68`  BA BA7-V6 [BٜK BA˭K V6FKX6 )? KK3МKK FH BAHKK-iKV6KK'"hm-KK3 A`;8 [K /FF /AC!# BA6CLFdF+;ik)+FF먭FȭFȘ)V6 FeiFiFFHFHF3"FHFH"FiFFiFV6 X6SV6mFFX6mFFB A`8` A WM WMG WMHOM@` [BŀOM [BQMUM WM8 +ВSM QMUMȩUM;SM߭QMIQM A`Z BAV6)z` A [B` AZ BAzV6M6MM*M*I@U A` AGO BA 3LZN` A  [B NV6JJJJJJ :NV6JJJJ :NV6JJ :NV6 :NH; A` ) ::0  ` Ah [B NZ Nz NUU N; A`NNI7V6 N NNI-NH` N NJnN(nN`ZGO /AhP BA]V6V7P V70EOV7V6HEOIEOV7V6HEOH mGOGOz` A+ BA V6덐O  BA O} BA` AO:0LOLTPLP? ? `?GOW` [B`DPFPHPJPJP 7PHP 7PFP 7PDP 7PRPȭPPȭNPȭLP}`.LP.NP.PP.RP` O? [B`델P덺PP.P.PP.P.P뭾PȭP}`?OQ A [B`V6iPV68O8PV6GQV6IQ 4Q 4QKQMOQ}` 7Q :QNGQnKQNIQnKQ` [B! A BA A Q BA` Q A`Q( BA2 QQV6ȗȗȗ(Q Q}`/R-R@ BAH-RV6JJJJJJ 3RV6JJJJ 3RV6JJ 3RV6 3Ri@8?nj-R}`,/RL )::0(>)1R 1RE)1RJJJJ 1R3) 1R)JJJJ 1R )::0 3% ` [BZ AU AA! BAG QB BA7 BA, BA!V6) 3 3 3 /A Q` BA BA -S A`hS( BA,hSjS lS lS lS lS(jShS}` %V6)S S ` [B( A# BA A} Q` A`- A#( BAFO BM8`SȷS)Sȷ)S A T \U A` BA)SSBODY U#S BA`CMAP U $U`SS` JJJJ[Uȷ)ZUȷJJJJ ZUZU ZUS`"(SUSUU V` US ** USJJJJ USJJ US U(U USUiU}`)::0-U `S!SJJJɡ BA S`SJJJVV BA 0%V  BA VSΦV%`IV  BA VSΦV VV`& @  @),2XJXXxYY X 2xXx25Y2 qxX2xqOYProcessing GIF file... 640-mode graphics.$=> Mixed 320- and 640-mode graphics.=> Multiple color palettes.=> 640-mode dithering.#=> Colors other than black & white.bbxbbbb(dx &cJcc<,K >c Cancel save<K bcSave anyway, AT YOUR OWN RISKK2c<Can't save, the specified format cannot handle: ^0 ^1 ^2 ^3 cd;d7U dcentered} /d Cancel save hSd.Select alignment of saved area within picture:7 Ux d center left7Uh d center right 2 d top center!Zx e bottom center0 2x ,etop left12h Me top right2Z xx oe bottom left3Zxh e bottom right, 0&`HH&`H."h&`3<`&`) 0<`80ȹ<`. <`<`  (`<`*`>`Ȍ<`0 h` i k" 95" E5x2h<`3 "3 " 95`" E5",6F &`) M`66W`86"06 <" 95` A +)&`) h* AH",6 S)"h <" 95` A" 95 S)"XHVH"`Name to save as:pmn@nn!p`2"h`h`-`3`&`) }```N`#`H`H`H""᭧`)`H`H`H8"``"᭱`H`H "h8` ``````-`3```c2"hchc`-cHcHd3"cHcHd3"᭥`3~cHcHe3"cHcH5e3"cHcHWe3"cHcH{e3"cHcHd3"cHcHd3""cHcH "h8`00+2&1&!38-`J` ) ``` 8-``00 +1&2&!!383`J` ) ``` 83```e`m`033>)`?)`HH-H "hei`0 -e`?)`m`033>)`?)`?)`y`k`o`s`w`"m"m ,k)y`k`o`bk`y`o`)JJJ?G@O;W6AI.Q)Y$CKS[EM U]w`)s`"m"mͥ`j&`) a`{`$m`b&m(m`b*m,m`b.m0m`b2m4mN{`k`$mb&mb(m$mi$mԭ$m`(mH&mH,mH*mH0mH.mH4mH2mH"c"h8`nmejmlmjmnmV6&"h`0g0g ,k` AG0g0gͥ` kV6`mV68`i8 A  A`8-=[ This picture generated by SHRConvert version 2.0 ]=-  A  A`0g0g ,k` :m A0g0gͥ``0g0g ,k` :m A=0g0gͥ`0g0g k0ge0g0gͥ`螠e :m A`?e :m A?e :m A`p` i1 ps`i p0g0g ,k`i) :mm p ppip0g0gͥ`ҭ pV6pX6Z6MA[6IN]67_6` a67)a6c6s`c6 A$ s` A`V6 A`0g0g ,kH`i) :mV6hX6 A0g0gͥ`Ϝ0g0g ,k`i) :m A0g0gͥ`ڢpV6pp A` SHRConvert8`Select file to rename:lkpppp'qMqP2] pRenameP^]& pCancel Np9A file by any other name takes just as much disk space... (NqOld pathname: ^0 - 7N?q New pathname:7 FN%3!3eqSelect file to delete:<nD6#rDrgr<AI ;rKill it!<EI \r Have mercyd7NrWARNING: You are about to utterly destroy the file called "^0". Please take a moment to consider the possible consequences of this action. What has ^1 ever done to you to deserve such a terrible fate? 3(Select file to change the attributes of:xsst8tgtttttu1uTuyuuuuKZr s Make changes_nr tCancel N)tChanging: ^0  PtOld filetype: ^1 (^2) Jt New filetype:J#$v* 4tOld aux_type: ^3 *4Jt New aux_type: (J7(v< F &u DeleteableF P Iu RenameableP Z lu Needs backupZ d u Writeabled n uReadable <G u Lock file!<G u Unlock file3$00???xxx$xxxxBADTXTBINFOT WPFDIRADBAWPASPSRCOBJLIBS16RTLEXESTR???NDACDATOLFNTPASCMDP16INTIVRBASVARRELSYS???v DwwwwwtGD7D0<34GD| I!PysHwsH}H."hIHysHwsH}H/"Ⴇ(ysHwsH "`v)=v[v vOysHwsH.v" ~  ~VysHwsH .v" ~ ~05v)ysHwsHZ."hJ.v׭v)vysHwsH ""v <`) ~Hv ""v$vv&v=v) ~??!v"v`>v!v%v?v"v&v`H*v ""`.v)$/v)$0v $"hv<8` .v`)_.v =v)ݍv>v/v?v0v`.v)(/v)$0vڢ $"h v`8`/v ("h v`"," $ysHwsH"H!"ysHwsH"Hc!"$`Aw2"h=wh?w?wH=wHc!"?wH=wH" ""h?wH=wH "`ez "?wH=wHTz"?wH=wH "Az'"/x"h`gz%3 +)"$~zH S)h <` ez 0jzgzi&kz1jzgz "lzAz#''/0R9ezezgzCz(gzҀgz gz" x:"`not formatted (or no disk).no disk in drive.not a ProDOS-recognized disk. ;8[idH"ph{i+k ;8[i H)H)8H)H)8"pJJJJ)HJJJJ)8HJJJJ)HJJJJ)8"pJJJJJJJJ)HJJJJJJJJ)8HJJJJJJJJ)HJJJJJJJJ)8"phee"p"z{i+k ;8[i'dq Hhe;8ZH"Dzzzzz{i;8ZH"Dzzzzz"Jzz{i+k ;8[i8He8pI08 pI{i+k ;8[iJJJJJJJJ)HJJJJJJJJ)H"zz)HH)h hJJJJ)HJJJJ)H"zz)HH)h h)H)H"zz)HH)hh{iH+"Dhhhh{i+k ;8[i)HH)hh)HH)h h)HH)h hdq{i;8ZH"Dzzzzz Hhe;8ZH"Dzzzzz"Jzzi H h+kdd + +ܥ: HheH Hhe"Dhhhhd Hhe;8ZH"Dzzzzz Hhe;8ZH"Dzzzzz"Jzz + +>7 +H8"8"zzziHi h+{i+k ;8[i"Ƀ;i dvH Hhe;8ZH"Dzzzzz""zzzzH Hhe;8ZH"Dzzzzz Hhe;8ZH"Dzzzzz"zz;8ZH"Dzzzzz""zzzzH"pheHHheh Hhe)HH"phi"pHheh {i+k ;8[iiH8"ʐhiiH8"ʐh{i+k ;8[iJJJ)8=pI0@8deS)Hh S 8pIץ8@pIAА"<8pI0ZH-"zzzА"<8pI0-"zzzHh S ]mHS"ِh8pIH"h H"h{i+k ;8[iАȐƐ-"Szz悳А"<8pI0-"zzz,8pI8 pI-"zzz"·zd"#ͨ1ͦG"·z"#HȐƐ"<z-"zzz8pI2H Hheh  8pIs Hhe)H Hheh  Hhe썺H Hheh  8YpIR Hhe)HȐƐ"<z-"zzzH Hheh  Hhe8pI8 pI0  {i+k ;8[it"Ꮰ,"Ꮰ"Ꮰ7"Ꮰ"Ꮰ :"Ꮰ"Ꮰ:"Ꮰ"Ꮰ:"Ꮰ"Ꮰ':"Ꮰ"Ꮰd:"Ꮰ "Ꮰ"zzz8 pI0{i+k ;8[i8pI0 H8"p H8"pheiH8"pH8"phein8:"Ꮰ<"Ꮰic{i+k ;8[i{i҅Тօd΀J֥Hiԥ֐hHҥHiХҐh"DhhhhΥ8pI"Ꮰ1̂[{iօԢ҅d΂ ֥Hiԥ֐hH{iH"DhhhhJJJJJJJJ)H"phʥH28" z)HH)h hJJJJ)H"phʥH28" z)HH)h h)H"phʥH28" z)HH)hh{iHҥHiХҐh"DhhhhΥ8pI0΀H8"phΥ8dpI̥8pI{i+k  kcck! ;[Fj+k##k H;[`I I f  8 FF I Izz+k H;[  3 I I II& & f f  ! 8  F f Ff0IIIIzzzzzz+k ;[ȗȗ+k H;[IIʩ FeIz+k H;[2IIIIʀFf ee&IIzzzz+k:Hk ;8[i$"iiե {i+k;[[HH Z;[ȷȷ hhhz+k#% +IDAWlp!!! <*LVads)+ >   6*.@E  ..FfIfLOX[::;;J#P%S'\_j)ps ))F(f % # !   v 9 2g A ! E # %  '  ) . + ,- 0/ `11 /3  5  7  9 z; f{= {? &B #W -] j ` c f 3l j o r  ?  - 3      3  -   " -' 8 ; D ?G R X [ ^ i q t w        ?  ?  @          - 0 = @ C S V a w                          ! $ ) , k n r }     X V # / $3 "E &H &S "W $] $a "l $p "{ t~ t   < <    =@CFfjpsy}{{ZZVXXV'`+L#47CXd@U$L|3c:q #/Xd ?Ko{FR}9!n%)- 1?EQz"KW}  66$'*L-L0P3PANELIPM#VNZL^PyN}LPPFNLPNLP%RTNL%% '%"'/X3VHKRNQTTWZ]R`cTtx{~P''//'<H]iz'B3?NZ %(+.147:=AERVhp s        0" 0, 0 4 Q7 QA E I nL nV Y \ c g k y }                  !"*!"|!"!!!!!!!!!!!!!"!#!!!!!!!!"#""#"&")"-"3"7"B"E"O"R"_"c"n"r""""""@#"@#"@#"r#"x#"" #"A#p#D##I#M#Q#p#\#p#d#i#m#r#u#r###### p$%t$%w$%{$%$6$6$ $$ $$ $$ $$ $$$$$$$$ $$#%#(% $-%5$6%#F%#I%E$R%#b%#e% $h% $s%%w%%%%%%%&&%(&%&&%(&%(&%&&'>('>('>('>('B('B('@('>('4(("($(4((%(%(((((&('(*&*(*&5(B(;(D(G(%P($T("_()b()|()()()()($("(#)(%)()()( )(#)(')()()()()()()(')(')())(')($(",)&/)&C)s)F)o)I)o)T)o)W)o)z)s))))))*)h*)*)H+))))#*/*t****T+`+,,,4, ,a,,*,@,L,m,y,,+,+,+,+,+,+,~+,7,a+,9,e+,e+,3,j+,j+,),)-+-+ -'- -'--+-+4-+7-3?-+B-?H-+M-+R-+U-+X-?`-+c-+f-)k-+p-+s--}-K/-+---+-3-+-+-+-o+-o+-.-+-+-t+-t+-.-*-*-+-+-..* .*.+.~+.+.+)..B.+I.3M.y+P.y+S..W.j*Z.j*d.*g.*q.J+t.J+M/+U//k//y/////~+/+/+/+/+/+/+/+/+/+/0/L0/+/+/00E 0+) 0-0J0%0J0*0;10-50;:0;=03D03G0S)M0+)T0-W00Z0000000;0;0-0-050509090S)0?0?0?0?030?0?0?1V61V61V6+1V681V6F17K17N19[1N@^1E c12h12k1-o12r13v12y13|151212131212121212121212121222222?(2?622922<22?22B22T22W22Z22]22`23c23f23i23l22o25z2}2;53A574G54Y5i5]55a55e55u5555555 663,63063993939X9V9393:X :V: 3 :X$:V3: 3;:95E:?5P:;S:;V:;Y:;b:3e:3o:3y:95:+):?5:?:$:":3:;: A:S);< ;95;95;3!;3+;S).;N@>;A;D;E M;$Q;"\;$`;";;;B;C;IO;E;D;mM;M;QQ;R;S;uT;L;Y;3;3 2=f=D=&>R=K5U=K5m==q==u==y==}========&>>*>>.>>2>>6>>:>>>>>B>>F>>J>?N>?R>%?V>%?Z>=?^>L?b>m?f>L?j>?n>?r>?v>?z>?~>@>,@O@R@U@[@?a@f@i@?q@v@z@3@@@@@@@@A@@@@@@@@@$@"A6A6A6AB6AP6(A60AR68AP6?A ACA$6ZAV6_A?dA?oArA 6uA"6}A6A AAH6AeA?AAV6AD6AF6AB6A AA?AAA?\B7_B-bB3B;B=B=B;B-B9B5B7B9B ABAB[BB@CBBBBBBB@CBBAB ABBAB@CC@CCV8 CV6CBCCV6/CDC2CHC5CKCICQCLCQCOCQCRC 3WCCZCC_CFChCFCkCDCnCDCqCFCtCBCwCFCzCBC}CFCCFCCCCDCCBCCFCCFCCFCCFCC AC 3C[BCAC[BCAC2DC,DC.DC DC,DD DD A D*DD4DD4DD4DD.DD.D"D,D5D.D;D/AFDBAKD,DPDV8VD*D[DV6^DDdDDlDDoDV6rDD|D.DD.DD,DDDDDDDDDD0DD0DD2DD 3D2DD2DD0DD2DD ADBADBADBADBAD AE? E[BE3E AE3#E*E*EE,EE.E J1EE4EE9EE>EEAEEDE/AOEBAWEV6ZEV6`EEcEEfEEiEEwEEzEE}EEEBAEBAE[BE;E0EE AE?E0EE AE?E?F?F[B%F5F)FkF-FFAFMFwFFFF JS) JFJFJFJFJF"JF+JF.JF9JF=JFCJKFJKPJ ASJFWJFeJFpJFwJFzJ+)}J AJFJFJ/AJBAJ[6J_6J7Ja6J9J7J5J5J5J5J-Jc6JBAJBAJ7J-JV6J[BKK KBAKKKV6KFKKKX6%K?*KK-KK0K35KK@KKEKFLKBATKKYKK\K-bKKhKV6kKV6oKKrKKuKKxKKK-KKKKK3K AKFKFK/AKBAKFKF L)L+LFLFLF"LF.LV69LFBLFJLFMLFQLFULFXLFbLFfLFrLFxLF{LFLFLV6LX6LV6LFLFLX6LFLFL ALALWMLWMLWMLOML[BLOML[BLQMMUMMWMMSM"MQM'MUM0MUM3M;8MSM=MQMCMQMKM A`MBAeMV6nM A|M[BMAMBAMV6MMM6MMMMMMM AM AMGOMBAM 3MZNMAM[BMNNV6N:NNV6N:NNV6"N:N%NV6(N:N1N;6N A[NAgN[BoNNvNNzNNNNN;N ANNNNNV6NNNNNNNNNNNNNNNNNGON/ANBANV6NV7NV7OEOOV7 OV6OEOOEO!OV7%OV6.OEOPPPAPRPUPO^P?qP[BPPPPPPPPPPPPPPPPPPPPP?POQPAP[BPV6PV6 QV6 QGQQV6QIQQ4QQ4QQKQ"QOQ5Q7Q8Q:Q;QGQ>QKQAQIQDQKQ[Q[B`Q AkQBApQAsQQ|QBAQQQ AQQQBAQQQQQV6QQQQQ/RQ-RQBAQ-RQV6Q3RQV6Q3RRV6R3R RV6 R3R$R-R4R/RNR1RUR1R`R1RgR1RvR1RR1RR 3R[BR ARARBARQRBARBARBARV6R 3R 3R 3S/ASQSBASBA$S-S)S A.ShS7SBAXXVX5YnXXXOYYYYYYAY AYBAYV6YX6YZ6Z\6 ZVZ^6ZVZa6ZVZ`6 ZV)ZW-ZW1ZFY4ZFYDZVLZVOZWUZV]ZV`ZVdZ6YgZ6YwZV{ZcVcbccccccdc;ddd#d/dGdSdddddddde e,eAeMeceoeee6g&``g<`ghgigkg95gE5ghghg<`g<`g3g3g3g95hE5 h,6h&`#hM`&h66)hW`,h864h06>h<Fh95Lh AQh+)Th&`\hhah Ajh,6ohS)}h<h95h Ah95hS)hXhVhpmhnh@nhnh!ph`h`h`h`h-h`h3h`h&`h}`h`i`i`i`i`i`0i`8i`Ok?^k-wk`k-kek`k?k`k3k3k>k?k?ky`kk`ko`ks`kw`k"mk"mk,kky`kk`ko`kk`ky`ko`l?lG lOlWlAlIlQ!lY&lC)lK.lS3l[8lE;lM@lUEl]Mlw`Vls`Yl"m\l"m_l`gl&`ola`rl{`ul$mxl`b{l&m~l`bl(ml`bl*ml`bl,ml`bl.ml`bl0ml`bl2ml`bl4ml{`lk`l$mlbl&mlbl(ml$ml$ml$ml(ml&ml,ml*ml0ml.ml4ml2mmc mc;mnm>meAmjmDmeGmlmMmjmPmjmSmnmVmnmYmV6\mV6qm0gtm0gwm,kzm`mAm0gm0gm`mkmV6m`mmmV6m`mAmA nAnAn0g n0g#n,k&n`)n:m/nA4n0g7n0g:n`An0gDn0gGn,kJn`Mn:mSnAXn0g[n0g^n`cn0gfn0ginkln0gonern0gun0gxn`~nen:mnAn?nen:mnAn?nen:mnAnpn`n pns`n pn0gn0gn,kn`o:mo po p opopo0go0go`o p"oV6%op(oX6.oZ64o[6:o]6=o7@o_6Co`Goa6Jo7Roa6Xoc6[os`coc6loAtos`oAo`oV6oAo0go0go,ko`o:moV6oX6oAo0go0go`o0go0go,ko`o:moAo0go0go`opoV6oppp pAOpkpSppWpp[pp_p'qcpMqwppppppqq3q?qYq%3q3qeqr#rrDrrgr/r;rPr\rsrrJs3sssssts8tsgtststststsus1usTusyususususss tt)tDtPtsttt$vttttu(vu&u=uIu`uluuuuuuuuuv3vvOwwwSwwWww[ww_wxcwFxgwmxkwxowxwwwwww xx*x6xRx^xyxxxvxxxxxyx.yxyy'y:yFylzgzpzCz~zgzzTzz&pz&pz3z3z3z%3z%3z3z3zApzApz=pz?pz%3z%3{?p{=p'{?p+{=p2{eq5{eq?{?pC{=pY{qc{<m{qp{q{3{3{3{%3{%3{3{3{r{r{Js{<{Ns{Ns{3{3|3|v|v|} | v#| ~&|%3)|%3,|v/|v2| v5| v8|(v;|(vK|{sN|{sY|ws]|ysc|vn|5vx|ys||ws|}|ys|ws|}|ys|ws|}|ys|ws|v|v}v }v}ys}ws}.v}.v)}~1}~7}ys;}wsB}.vE}.vO}~W}~`}5vm}ysq}ws}v}v}v}ys}ws}v}<} ~}v}v}v}$v}v}&v}=v} ~}!v}"v}>v}!v}%v~?v~"v~&v~*v~*v ~.v+~/v9~0v<~0vJ~vV~.v_~.vj~=vr~vu~>vx~/v}~?v~0v~.v~/v~0v~0v~ v~/v~/v~ v~"~$~ys~ws~"ysws "$-Aw0Aw;=w??wB?wF=wZ?w^=wi"?w=wez"?w=wTzTz?w=wAzxxgz%3+) ~zS)<%ez.jz3gz;kz@jzEgzOlzTAzmezvez|gzgzCzCzgzgzҀҀgzgzgzgzŀ xȀ x2p~ppppgDDJ0d++D7DpDyJ+++񄢐DRD[DJ++ƅ+Յz+!$7ɃLD"ˆDD $D-"=pppʐ򇦐 ʐ/58>AV_fStSА<ƈӈ׈-ڈ-݈А<- - S%+.148;>JSMSPِf|АȉȐˉƐΉ-щ-ԉSА<- -6-9-<E·ORU#Y\dgq·v#z}ȐƐ<--ʊ͊Њ Xw}ȐƐ<- - A^cfilpzttΌ܌ *;?BL]adn  ߍp%p=pHpnD rDp Əpԏ p GDop ,@ RAISE *?       "3DUfw SuperHiRes Convert version 2.0Copyright 1988 Jason HarperThis program is shareware:see the online help for details.Loading tools... have patience.i ,@ HAYSTACK  ,@ K """hh(HHH "hhڀH""")'Purge-O-Matic now running, please wait. 1/SHRCONVERT  +/27EIMg~SHRCONV*?DDDDD ?DDDDDDDDDDDDDDDD 333333UUUU333330UUUU333330UUUU33333UUUUU?jlm DȈ30USHRCONV.FINDERSHRCONVERT.HELPDD    ̪UUP ̪UUP UUUP . SHRConvert 2.0 help file Copyright 1988 Jason Harper . This file is not human-readable: press Apple-? in the program to display it. . SHRConvert requires 512K and must be run from a v1.1 or higher System Disk. . If run from the Finder, launch SHRCONV.FINDER instead of SHRCONVERT itself. . If the program hangs after displaying the title screen, press Escape. ERROR ERROR ERROR ERROR ERROR ERROR ERROR ERROR ERROR ERROR ERROR ERROR ERROR Invalid data in the SHRCONVERT.HELP file: Label ".^0" not found. npqrstuvwxyz{|}~ ERROR ERROR ERROR ERROR ERROR ERROR ERROR ERROR ERROR ERROR ERROR ERROR ERROR \~Return to the first page of help~TOP ^~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ (_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_) .ADV-EXIT A door opens in front of you. You have escaped the maze alive! .TOP SuperHiRes Convert version 2.0 Written by Jason Harper Select the area you want to get more information about by clicking on it: \~How to use this program~HOWTO \~Picture formats that can be converted~LOADFMTS \~Formats for saving converted pictures~SAVEFMTS \~Notes on this version of SHRConvert~VERSNOTES \~Copyright and shareware notices~NOTICES \~Play a text adventure game~ADV Close this window when you've had enough help. ^~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ (_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_) .HOWTO -=[ How to use this program ]=- \~System requirements~SYSREQ \~Converting a picture~PICCONV \~Menu command summary~SUMMARY ^~~~TOP .SYSREQ -=[ System Requirements ]=- SHRConvert requires a IIgs with 512K or more memory, and must be run from a version 1.1 or higher System Disk. If you are running the program from Finder 1.0 on System Disk 3.1, you must run SHRCONV.FINDER rather than SHRCONVERT itself to bypass a bug in the toolsets from System 3.1. If you are getting unexplainable crashes when running the program (the main trouble spots are this Help system, loading $C0,2 or GIF files, and saving pictures), you might want to try SHRCONV.FINDER also. ^~~~HOWTO .PICCONV -=[ Converting a picture, part 1: Loading ]=- 1. Acquire a picture to convert, a demo file from a graphics program perhaps. 2. Click on the appropriate format in the 'Load Formats' dialog box. 3. Pick 'Load & convert' from the File menu, or double-click on the format. 4. Use the file selector dialog to locate the desired file, and open it. 5. The file will now be converted, please wait. 6. The picture will be displayed: if it's larger than the screen, you can use the arrow keys to scroll around within it. 7. Press Escape or the mouse button when you've finished looking at the file. 8. Try the Special menu's Show Page and Picture Info commands. 9. You can now load another file, quit, or save the picture (see next page) ^~~PICCONV-2~HOWTO .PICCONV-2 -=[ Converting a picture, part 2: Saving ]=- 1. Decide which format to save the picture in, probably Apple Preferred. 2. Click on the appropriate format in the 'Save Formats' dialog box. 3. Pick 'Save conversion' from the File menu, or double-click on the format. 4. Pick a size for the saved picture from the resulting dialog box. 5. You may be asked to pick an alignment for the saved picture. 'Centered', 'Top Left', and 'Top Center' are the most likely choices here. 6. You may now be warned that the loaded picture is incompatible with the selected save format. Try another format, or another picture. 7. You should now be at a file selector dialog. A default filename will be given, based on the original name and the selected save format: you can either accept or type over the default. 8. You can now load another file, quit, or save in a different format. ^~PICCONV~~HOWTO .SUMMARY -=[ Menu Command Summary ]=- \~APPLE menu~M1 \~File menu~M2 \~Edit menu~M3 \~Windows menu~M4 \~Special menu~M5 ^~~~HOWTO .M1 -=[ APPLE menu ]=- \~About SHRConvert...~M1ABOUT \~Help~M1HELP Any additional items in this menu are New Desk Accessories (NDAs). ^~~M2~SUMMARY .M2 -=[ File menu ]=- \~Load & convert...~M2LOAD \~Save conversion...~M2SAVE \~Rename a file...~M2RENAME \~Delete a file...~M2DELETE \~Change a file's attributes...~M2CHANGE \~Format a disk...~M2FORMAT \~Choose printer/Page setup/Print~M2CHOOSE \~Quit~M2QUIT ^~M1~M3~SUMMARY .M3 -=[ Edit menu ]=- The items in this menu are only enabled when a New Desk Accessory (NDA) is the frontmost window on the screen. The 'Close' item will remove the NDA from the screen: the other items do nothing unless the NDA specifies otherwise. ^~M2~M4~SUMMARY .M4 -=[ Windows menu ]=- \~Load formats~M4LOAD \~Save formats~M4SAVE \~Conversion~M4CONV \~Full Screen~M4FULL ^~M3~M5~SUMMARY .M5 -=[ Special menu ]=- \~Picture Info~M5INFO \~Show page~M5SHOW \~640 => 320 mode~M5MODE \~Fix Aspect Ratio...~M5ASPECT ^~M4~~SUMMARY .M1ABOUT APPLE menu: About SHRConvert... Displays the program's version number, along with copyright and shareware notices. Click on the 'Continue' button to exit. ^~~M1HELP~M1 .M1HELP APPLE menu: Help... Shortcuts: Apple-? or Apple-/ Calls up the online help display that you're reading now. An error alert is displayed if the file SHRCONVERT.HELP cannot be found in the same subdirectory that SHRConvert itself was run from: put the program disk in any drive and try again. The same alert will be shown if the SHRCONVERT.HELP file doesn't exist, or if there is insufficient memory to load it. Doing this command while the help window is already on the screen will bring it in front of all other windows. Once loaded, the help file remains in memory until you quit from SHRConvert or the memory is needed for other purposes. ^~M1ABOUT~M2LOAD~M1 .M2LOAD File menu: Load & convert... Shortcuts: Apple-L or double click on an item in the Load Formats window. Initiates the graphics conversion process. You must have already selected the type of picture to convert in the Load Formats window. All files on your disk will be listed, but only the ones that appear to be of the chosen type (as determined by the file's length, type, and aux_type) will be selectable. If, for any reason, you want to attempt a conversion on a file that isn't selectable, you can hold down the Option (Solid Apple on an upgraded IIe) key when giving this command: this will allow any file to be selected. Use this override with care, as inappropriate files will produce meaninless results and can conceivably crash the program. ^~M1HELP~M2SAVE~M2 .M2SAVE File menu: Save conversion... Shortcuts: Apple-S or double click on an item in the Save Formats window. Enabled only when a picture has been successfully converted. Saves a converted picture to disk. You must have already selected the type of picture to save from the Save Formats window. ^~M2LOAD~M2RENAME~M2 .M2RENAME File menu: Rename a file... Changes a file's name on disk. First you are allowed to select a file, then you are given a dialog asking for a new name for the file. The dialog is set up so that you can just type in the new filename and press Return. However, if you are running under ProDOS 16 version 1.2 or higher, you can also use the mouse or arrow keys to move back into the pathname and change/add/remove subdirectory names: this will cause the file to be moved to a different (existing) subdirectory. This command is unable to rename subdirectories. ^~M2SAVE~M2DELETE~M2 .M2DELETE File menu: Delete a file... Permanently removes a file from a disk. You will be asked for confirmation before the file is actually deleted. Use this command with caution. Will not delete subdirectories, even if they are empty. ^~M2RENAME~M2CHANGE~M2 .M2CHANGE File menu: Change a file's attributes... Allows you to modify some of a file's directory information, which contains important parameters describing the file but not actually part of it. THIS COMMAND IS POTENTIALLY DANGEROUS, AND SHOULD NOT BE USED (except for its Lock and Unlock features) UNLESS YOU KNOW EXACTLY WHAT YOU ARE DOING! New filetypes can be specified either by a two-digit hex number (example: $B3) or by a standard three-character abbreviation (example: S16). New aux_types can be entered either in hexadecimal (preceded by a $) or decimal. Note that changing a file's type or aux_type does not change the data in it to conform to the new type. More dire warnings on next page. ^~M2DELETE~M2CHANGE-2~M2 .M2CHANGE-2 File menu: Change a file's attributes... Page 2 The five checkboxes correspond to the ProDOS access bits for the file. Any attempt to delete/rename/write to/read from a file that does not have the associated bit turned on will generate an error. The 'Lock' button is a quick way to turn off the delete, rename, and write access bits, preventing the file from being modified in any way (except for re-formatting the disk). Likewise, 'Unlock' quickly enables all the access bits, allowing anything to happen to the file. This program will not allow you to turn off the read access bit, since an unreadable file is rather useless. The 'needs backup' bit is purely informational and indicates that the file has been modified since the last time a copy was made of it. It is placed in the middle of the other access bits because that's where it is in the file's directory entry. ^~M2CHANGE~M2FORMAT~M2 .M2FORMAT File menu: Format a disk... Prepares a new disk for holding files, or recycles an old disk that no longer has any useful files on it. You select the disk to format by stepping through all the disk devices connected to your system until you get to the right one. This command can do a lot of damage in a very short time: it is advisable for you to eject all disks before giving this command. You need to type in a unique name (15 characters maximum) for each disk you format: having multiple disks with the same name will confuse the system, and can lead to data loss if you switch disks. If you can't think of original names for each disk, at least use serial numbers. (/BLANK.0000, /BLANK.0001, /BLANK.0002, etc.) ^~M2CHANGE-2~M2CHOOSE~M2 .M2CHOOSE .M2SETUP .M2PRINT The printer-related menu commands are not functional in this version of SHRConvert, since the IIgs Print Manager does not handle the full range of the computer's graphics capabilities to my satisfaction. I have no idea when or if this might change. ^~M2FORMAT~M2QUIT~M2 .M2QUIT File menu: Quit Shortcut: Apple-Q Exits SHRConvert and returns you to wherever you were before running the program. Make sure you have saved your most recent conversion if you intend to keep it: no warning will be given if you try to quit before saving. ^~M2PRINT~M4LOAD~M2 .M4LOAD Windows menu: Load formats Brings the Load Formats window to the front, allowing you to select a different picture type to convert. ^~M2QUIT~M4SAVE~M4 .M4SAVE Windows menu: Save formats Brings the Save Formats window to the front, allowing you to select a format to save pictures in. ^~M4LOAD~M4CONV~M4 .M4CONV Windows menu: Conversion Enabled only when a picture has been successfully converted. Brings the Conversion window to the front, which contains a false-color representation of the converted picture. You can then drag the entire picture around within the window with the cursor, which turns into a hand icon when over this window. The false colors allow you to see any details that may be invisible in the picture due to lack of contrast between colors. The title of this window gives some information about the graphics mode used in the picture: pay attention to this, since many IIgs graphics programs prefer or require one mode rather than the other. ^~M4SAVE~M4FULL~M4 .M4FULL Windows menu: Full Screen Shortcut: Apple-F Enabled only when a picture has been successfully converted. Returns you to the true-color view of the converted picture. Use the arrow keys to scroll around within the picture if it isn't the same size as the screen: holding down the Option key will cause larger moves, and holding down the Apple key will cause moves to go all the way to the opposite side of the picture. The instructions at the top of the screen can be removed by pressing the space bar, and recalled with ?. Press Escape or the mouse button to exit. ^~M4CONV~M5INFO~M4 .M5INFO Special menu: Picture Info Shortcut: Apple-I Enabled only when a picture has been successfully converted. Calculates statistics on pixel and palette usage within the converted picture. The display goes rather slow so that you can get an idea of the usage variations from the top to the bottom of the picture: if you're impatient, clicking the mouse in the middle of the window will speed things up. Click on the 'OK' button to exit: you don't have to wait for the display to finish to do this. ^~M4FULL~M5SHOW~M5 .M5SHOW Special menu: Show Page Enabled only when a picture has been successfully converted. Shows the converted picture at 50% reduction, which will allow even the largest image that SHRConvert can handle to fit on one screen. The curve at the lower right represents the 65536 byte internal limit on picture size. For you math freaks, the curve's boundary is expressed by the equation x*y=65536. Press any key or the mouse button to exit. ^~M5INFO~M5MODE~M5 .M5MODE Special menu: 640 => 320 mode Enabled only when a picture has been successfully converted, and contains one or more scanlines that are displayed in 640 mode (4 colors). Translates any portions of the converted picture that are 640 mode into the closest equivalent in 320 mode. This results in a loss of resolution, but is necessary to use 640 mode pictures with 320-only programs such as Paintworks. The transformation affects the color palette only, and may produce duplicate colors in the palette. Strange things will happen if the same palette is used for both 320 and 640 mode areas of the picture, but I doubt that any such pictures exist. ^~M5SHOW~M5ASPECT~M5 .M5ASPECT Special menu: Fix Aspect Ratio... Enabled only when a picture has been successfully converted. Allows the converted picture to be compressed horizontally or vertically, to make it better proportioned. Mainly useful for GIF pictures, which may come from machines with aspect ratios vastly different from the IIgs's. Giving this command produces a dialog box with the following options: No change Reduce height by 50% Reduce width by 50% Other reduction percentages may be implemented in future versions. ^~M5MODE~~M5 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ (_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_) .LOADFMTS -=[ Load formats - Page 1 of 2 ]=- \~Apple II HiRes~LFHGR \~Apple II Double HiRes~LFDHR \~Atari ST .PI1, .PI2, and .PI3~LFATARI \~Commodore 64 Doodle format~LF64DOODLE \~Commodore 64 KoalaPaint~LF64KOALA \~Commodore 64 Print Shop~LF64PS ^~~LOADFMTS-2~TOP .LOADFMTS-2 -=[ Load formats - Page 2 of 2 ]=- \~Macintosh ScreenMaker (startup screen)~LFMACSM \~Macintosh MacPaint~LFMPNT \~RLE (Run Length Encoded)~LFRLE \~GIF (CompuServe's Graphics Interchange Format)~LFGIF \~Type $C1 non-compressed SHR (IIgs SuperHiRes)~LFC1 \~Type $C0 compressed SHR~LFC0 ^~LOADFMTS~~TOP .LFHGR Format: Apple II HiRes Machines: all Apple II-series computers Programs: various, MousePaint for example Resolution: 140 x 192 x 6 colors, or 280 x 192 in black & white Recognized file lengths: 8184 ($1FF8) to 8196 ($2004) Recognized filetypes: BIN ($06) or FOT ($08) Recognized aux_types: don't care Resulting picture: Full Color: 280 x 192, 320 mode, only colors 0,3,6,9,C,F are used B&W: 280 x 192, 320 mode, only colors 0,F are used ^~~LFDHR~LOADFMTS .LFDHR Format: Apple II Double HiRes Machines: Apple IIe with 128K memory, Apple IIc, Apple IIgs Programs: various, DazzleDraw for example Resolution: 140 x 192 x 16 colors, or 560 x 192 in black & white Recognized file lengths: 16376 ($3FF8) to 16392 ($4008) Recognized filetypes: BIN ($06) or FOT ($08) Recognized aux_types: don't care Resulting picture: Full Color: 280 x 192, 320 mode, 16 colors B&W: 560 x 192, 640 mode non-dithered, only black & white used ^~LFHGR~LFATARI~LOADFMTS .LFATARI Format: Atari ST .PI1, .PI2, .PI3 Machines: Atari 520ST and 1040ST Programs: Degas, Degas Elite Resolution: .PI1: 320 x 200 x 16 colors from a palette of 512 .PI2: 640 x 200 x 4 colors from a palette of 512 .PI3: 640 x 400 black & white Recognized file lengths: 32034 ($7D22) to 34999 ($88B7) Recognized filetypes: BIN ($06) or TXT ($04) Recognized aux_types: don't care Resulting picture: .PI1: 320 x 200, 320 mode, 16 colors .PI2: 640 x 200, 640 mode non-dithered, 4 colors .PI3: 640 x 200, 640 mode non-dithered, 4-level grayscale \~Downloading notes~LFATARI-2 ^~LFDHR~LF64DOODLE~LOADFMTS .LFATARI-2 -=[ Atari ST downloading notes ]=- Downloadable ST pictures with filenames ending in .PI1, .PI2, or .PI3 are directly convertible. ST pictures with filenames ending in .PQ1, .PQ2, or .PQ3 are squeezed, and can be made usable with any program that implements USQ, such as Floyd Zink's BLU (Binary Library Utility). The newer Degas Elite program has its own form of compressed pictures, with names ending in .PC1, .PC2, and .PC3: these are unusable for now, but may be supported in a future version of SHRConvert. .ARC files can be unpacked with the DeArcGS utility, available on several online services. Files with other endings, such as .TNY and .NEO, are not currently usable. ^~~~LFATARI .LF64DOODLE Format: Commodore 64 Doodle format Machines: Commodore 64/128 Programs: Doodle Resolution: 320 x 200 x 16 colors: two color choices per 8 x 8 pixel area Recognized file lengths: 9024 ($2340) to 10000 ($2710) Recognized filetypes: BIN ($06) or TXT ($04) Recognized aux_types: don't care Resulting picture: 320 x 200, 320 mode, 16 colors Doodle files always have names starting with DD. ^~LFATARI~LF64KOALA~LOADFMTS .LF64KOALA Format: Commodore 64 KoalaPaint Machines: Commodore 64/128 Programs: KoalaPaint Resolution: 160 x 200 x 16 colors: four color choices per 4 x 8 pixel area Recognized file lengths: 10511 ($290F) to 12000 ($2EE0) Recognized filetypes: BIN ($06) or TXT ($04) Recognized aux_types: don't care Resulting picture: 320 x 200, 320 mode, 16 colors ^~LF64DOODLE~LF64PS~LOADFMTS .LF64PS Format: Commodore 64 Print Shop Machines: Commodore 64/128 Programs: Print Shop Resolution: 320 x 200 black & white Recognized file lengths: 8000 ($1F40) to 11000 ($2AF8) Recognized filetypes: BIN ($06) or TXT ($04) Recognized aux_types: don't care Resulting picture: 320 x 200, 320 mode, only colors 0,1 used There is a possibility of getting at least a B&W image out of other C64 picture formats by using this load type, but no guarantees can be made. ^~LF64KOALA~LFMACSM~LOADFMTS .LFMACSM Format: Macintosh ScreenMaker (startup screen) Machines: Apple Macintosh Programs: ScreenMaker, converts MacPaint pictures to this format Resolution: 512 x 384 black & white Recognized file lengths: 21888 ($5580) to 22000 ($55F0) Recognized filetypes: BIN ($06) or TXT ($04) Recognized aux_types: don't care Resulting picture: 512 x 192, 640 mode non-dithered, 4-level grayscale See the MacPaint format (next page) for downloading notes. ^~LF64PS~LFMPNT~LOADFMTS-2 .LFMPNT Format: Macintosh MacPaint Machines: Apple Macintosh Programs: MacPaint and many other Mac graphics programs Resolution: 576 x 720 black & white Recognized file lengths: 1000 ($03E8) to 65534 ($FFFE) Recognized filetypes: BIN ($06) or TXT ($04) Recognized aux_types: don't care Resulting picture: Condensed: 576 x 360, 640 mode non-dithered, 4-level grayscale Not condensed: 576 x 227 (truncated), 320 mode, only colors 0,F used \~Downloading notes~LFMPNT-2 ^~LFMACSM~LFRLE~LOADFMTS-2 .LFMPNT-2 -=[ Macintosh downloading notes ]=- ALL downloaded Macintosh files (other than plain text) will be in a special format known as MacBinary: to use such files, the 128-byte MacBinary header must be stripped off of the file. Assuming that the file is not much larger than 32K, the following commands from ProDOS BASIC will accomplish this: bload MACPIC.BIN,tTXT,a$1000 bsave MACPIC.BIN,tTXT,a$1080 Replace MACPIC.BIN & TXT with the file's actual name & type: do this on a copy! In addition to MacBinary-ing, many Mac files will be in a compressed format, either PackIt (names end in .PIT) or StuffIt (.SIT). There is currently no way to handle StuffIt files on a IIgs, but you can unpack PackIt files (and un-MacBinary long files) with MACDOWN, another utility program of mine. It can probably be found wherever you got SHRConvert: on CompuServe, it will be MACDWN.BNY in the Apple II Software DL of the APPTWO Forum. ^~~~LFMPNT .LFRLE Format: RLE (Run Length Encoded) Machines: virtually any Programs: various Resolution: 256 x 192 or 128 x 96, black & white Recognized file lengths: 500 ($01F4) to 19999 ($4E1F) Recognized filetypes: BIN ($06) or TXT ($04) Recognized aux_types: don't care Resulting picture: 256 x 192 or 128 x 96, 320 mode, only colors 0,F used \~Downloading notes~LFRLE-2 ^~LFMPNT~LFGIF~LOADFMTS-2 .LFRLE-2 -=[ RLE downloading notes ]=- RLE pictures usually have filenames ending in .RLE: on CompuServe, they will have a '/graph:RLE' flag after their name in the directory listing. RLE pictures contain only 7-bit ASCII data, and do not have to begin precisely at the start of the file: this means that you can use your telecommunication program's capture buffer to grab RLEs, without having to worry about capturing excess stuff before or after the actual image. ^~~~LFRLE .LFGIF Format: GIF (CompuServe's Graphics Interchange Format) Machines: virtually any Programs: various Resolution: virtually unlimited; up to 256 colors from a palette of 16777216 This program currently cannot handle images larger than 640 x 400. Recognized file lengths: 500 ($01F4) and up Recognized filetypes: BIN ($06) or TXT ($04) Recognized aux_types: don't care Resulting picture: virtually any size; 320 or 640 mode chosen by user Will not contain mixed modes, 640 mode dithering, or multiple palettes. \~Downloading/usage notes~LFGIF-2 ^~LFRLE~LFC1~LOADFMTS-2 .LFGIF-2 -=[ Downloading and using GIF pictures ]=- GIF pictures usually have filenames ending in .GIF: on CompuServe, they will have a '/graph:GIF' flag after their name in the directory listing. When you convert a GIF picture, you are asked to choose between the IIgs's 320 x 200 x 16 color and 640 x 200 x 4 color modes. The default mode is determined by the following algorithm: If the image width is 320 or less, 320 mode is recommended, otherwise If the number of colors is 8 or less, 640 mode is recommended, otherwise If the image height is 200 or less, 320 mode is recommended, otherwise 640 mode is recommended. 640 x 200 GIF pictures may look better in the non-recommended mode: try it. ^~~LFGIF-3~LFGIF .LFGIF-3 -=[ Downloading and using GIF pictures, part 2 ]=- Since GIF images can come from a wide variety of computer systems, they may not always look correct on the IIgs. Be prepared to use the Fix Aspect Ratio command (under the Special menu) if the picture comes out elongated. ^~LFGIF-2~~LFGIF .LFC1 Format: Type $C1 non-compressed SHR (IIgs SuperHiRes) Machines: Apple IIgs Programs: All IIgs graphics programs can read this type: most can write it. Resolution: 320 x 200 x 16 or 640 x 200 x 4, colors taken from a palette of 4096 Mixing of the two graphics modes is possible, but seldom implemented. Up to 16 independant color palettes can be (but usually aren't) used. 640 mode has an option that allows alternate pixels to have separate color palettes, making 16 dithered colors possible. You guessed it... Recognized file lengths: 32288 ($7E20) to 35000 ($8868) Recognized filetypes: $C1 or BIN ($06) Recognized aux_types: don't care, but should be 0 Resulting picture: same as original, no conversion. Always one full screen. \~Note on Paintworks animation files~LFC1-2 ^~LFGIF~LFC0~LOADFMTS-2 .LFC1-2 -=[ Using Paintworks animation files ]=- Type $C2 Paintworks Plus animation files are compatible with this format to the extent that you can extract the first frame of the animation. To allow files of type $C2 to be selected, you must use the Filetype Override command: hold down the Option key when starting the conversion, for example click on this load format then press Option-Apple-L. ^~~~LFC1 .LFC0 Format: Type $C0 compressed SHR Machines: Apple IIgs Programs: (see aux_type info) Resolution: (see aux_type info) Recognized file lengths: 200 ($00C8) and up Recognized filetypes: $C0 only Recognized aux_types: 0, 1, and 2 are currently defined Resulting picture: (see aux_type info) \~Aux_type 0: Paintworks Plus 1.0~LFC0x0 \~Aux_type 1: _PackBytes format~LFC0x1 \~Aux_type 2: Apple Preferred format~LFC0x2 ^~LFC1~~LOADFMTS-2 .LFC0x0 -=[ Type $C0, aux_type $00: Paintworks Plus 1.0 ]=- Programs: first release of Paintworks Plus Resolution: 320 x 396 x 16 colors from a palette of 4096 Resulting picture: 320 mode, same as original (no conversion) This format contains 514 bytes of information on the current drawing color and patterns. SHRConvert stores this data from the most recently loaded Paintworks picture, and includes it with any file saved in this format. It is therefore highly recommended that you load at least one file of this format before saving anything in this format: otherwise, the resulting picture will not have any drawing patterns and will be difficult to edit in Paintworks Plus. ^~~LFC0x1~LFC0 .LFC0x1 -=[ Type $C0, aux_type $01: _PackBytes format]=- Programs: 816/Paint compressed screen format Resolution: one full screen, all IIgs SHR graphics features are possible Resulting picture: same as original (no conversion) This is referred to as the Eagle format in some documentation. This format is no longer officially supported by Apple: 816/Paint has no real excuse for using it. DO NOT use this format: it is unlikely that any future programs will be able to display it. ^~LFC0x0~LFC0x2~LFC0 .LFC0x2 -=[ Type $C0, aux_type $02: Apple Preferred graphics format, page 1 of 2 ]=- Programs: hopefully all IIgs-specific graphics programs Resolution: virtually any size; all IIgs SHR graphics features are possible Resulting picture: same as original (no conversion) This is the IIgs graphics format of choice. It has provisions for handling images far larger than available memory: however, all existing implementations (including SHRConvert) place a much stricter upper limit on size. DeluxePaint II defines the following maximums, which are also imposed by this program: Maximum height: two screens (400 pixels) Maximum width: two screens (640 pixels in 320 mode, 1280 pixels in 640 mode) Image size is further limited to a maximum of 65536 bytes of raw pixel data: this is slightly more than two screenfulls in area. This limit is illustrated by the hyperbolic curve shown in the Show Page (under the Special menu) display. ^~LFC0x1~LFC0x2-2~LFC0 .LFC0x2-2 -=[ Apple Preferred graphics, page 2 ]=- Files in this format consist of a series of named segments, also referred to as records or blocks. Only a "MAIN" segment contains an actual picture: other segment types contain additional information such as drawing patterns, and may be specific to the program that created the file. This program includes a "SHRConvert" segment in all Apple Preferred files it produces, so that any problems with them can be traced back to the source. The segment will contain two bytes of data indicating the current version of SHRConvert in standard toolbox format, presently $0200. When you load an Apple Preferred file, you will get a dialog box with buttons for each segment in the file. You specify the segment to load by clicking on it: if it isn't a "MAIN" segment, an error message will be given. This allows for possible future uses of this format that include multiple images. ^~LFC0x2~~LFC0 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ (_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_) .SAVEFMTS -=[ Save formats ]=- \~Type $C1 non-compressed SHR~SFC1 Type $C0 compressed SHR formats: \~Aux_type 0: Paintworks Plus 1.0~SFC0x0 \~Aux_type 1: _PackBytes format~SFC0x1 \~Aux_type 2: Apple Preferred format~SFC0x2 \~GIF (CompuServe's Graphics Interchange Format): NOT IMPLEMENTED YET~SFGIF The 'default filename endings' listed here are purely my invention, and are in no way defined or supported by Apple Computer. ^~~~TOP .SFC1 -=[ Non-compressed screen format: type $C1, aux_type $00 ]=- Default filename ending: SCR Programs: all IIgs graphics programs should be able to read this format. Picture size: one screenfull, no more, no less. File size: always 32768 bytes (65 ProDOS blocks) long. Limitations: all IIgs graphics features are possible, but few programs can handle some features such as mixed graphics modes and multiple palettes. Usage: since this format's lack of compression makes for larger files, it should generally only be used in conjunction with other programs that are incapable of reading the standard compressed formats. ^~~SFC0x0~SAVEFMTS .SFC0x0 -=[ PaintWorks Plus 1.0 'Paint' format: type $C0, aux_type $00 ]=- Default filename ending: PNT Programs: the first release of PaintWorks used this format rather than the Apple Preferred format, which wasn't defined at the time. Some other programs can read this format, a few can write it. Picture size: one screen wide, 396 pixels high, no more, no less. File size: varies, PackBytes compression is used. Limitations: Only the 320 pixel, 16 color graphics mode is allowed (use the 640 => 320 menu command to allow 640 mode pictures to be saved). Multiple color palettes are impossible to represent in this format. Usage: this format will probably not be supported by future programs, so don't use it unless you have to. Before saving any files in this format, you should load one real Paintworks picture to properly set things up. ^~SFC1~SFC0x1~SAVEFMTS .SFC0x1 -=[ PackBytes (also known as Eagle) format: type $C0, aux_type $01 ]=- Default filename ending: PAK Programs: only 816/Paint seems to use this format. Picture size: one screenfull, no more, no less. File size: varies, PackBytes compression is used. Limitations: like the $C1 format, all is possible but little is implemented. Usage: this is not an officially-supported format. Don't use it, period. ^~SFC0x0~SFC0x2~SAVEFMTS .SFC0x2 -=[ Apple Preferred format: type $C0, aux_type $02 ]=- Default filename ending: SHR Programs: all IIgs graphics programs should read/write this format. Picture size: virtually unlimited, either larger or smaller than the screen. All current implementations impose some size limit, which is no larger than two screens wide or two screens high, or 65536 bytes of raw data. File size: varies, PackBytes compression is used. Limitations: another case of 'all is possible but little is implemented'. Usage: use this format if possible. Note that you can load these files (if no larger than one screen) directly into Deluxe Paint II as brushes. Format note: the files produced by this program will contain one "MAIN" segment and a "SHRConvert" segment giving the version number of the program. ^~SFC0x1~SFGIF~SAVEFMTS .SFGIF -=[ GIF (Graphics Interchange Format): saved as type BIN ($06) ]=- ***** NOT IMPLEMENTED YET ***** This is a "format for the exchange of raster-based graphics information", which was developed by CompuServe, Inc. It allows for files containing unlimited images of virtually unlimited size, each using up to 256 colors chosen from a palette of up to 16777216 colors, and is designed to be easily extensible to meet future needs. GIF decoders and/or encoders have been developed for a wide variety of machines: the Picture Support Forum (GO PICS) on CompuServe is the headquarters for this effort. Default filename ending: GIF File size: varies, LZW compression is used. Limitations: multiple-palette pictures can be encoded, but will not look the same if re-displayed on a IIgs. Mixed 320 and 640 modes won't work. ^~SFC0x2~~SAVEFMTS _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ (_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_) .VERSNOTES -=[ Notes on version 2.0 ]=- Previously released public-domain versions were 1.0, 1.1, and 1.2B2. This is the first released shareware version. \~Features dropped from this version~DROPPED \~Features added to this version~ADDED \~Bugs fixed in this version~FIXED \~Coming attractions~COMING The program currently consists of: 11646 lines of APW Assembler code 499 lines of APW C code 28 lines of ALINK commands 1005 lines of online help script ^~~~Top .DROPPED The conversion process is no longer shown on the screen, to make it easier to handle pictures that are not one screen in size. ^~~~VERSNOTES .ADDED Picture saving, missing from v1.2B2, has been re-implemented. Title screen & other cosmetic changes have been added. New mouse-based help system. New disk maintenance commands under the File menu. ^~~~VERSNOTES .FIXED Conversion of some GIF pictures has been vastly improved: this mainly affects 320 x 200 x 32 color images. The '$BA1A Missing GIF terminator' error is no longer fatal. GIF now correctly handles images that don't start at 0,0. A bug has been fixed that caused some Atari ST .PI3 pictures to be converted into photo-negatives of what they should be. Maximum recognized length of a RLE file has been raised from 9999 to 19999. RLE will no longer choke on files that are missing the last few pixels. Height of MacPaint pictures has been changed from 768 to the correct 720. Loading of type $C0, auxtype $01 _PackBytes format files has been fixed: I had forgotten to update this section of code in the upgrade from 1.1 to 1.2B2. DeluxePaint brushes ($C0,$02) now load properly. ^~~~VERSNOTES .COMING Printing of pictures may eventually be implemented. Conversion of additional picture types will be added: the waiting list includes: Atari ST Degas Elite .PC# compressed pictures Amiga IFF PrintShop graphics AST VisionPlus picture data files (or possibly direct digitization) Suggestions for other new features are welcome. ^~~~VERSNOTES _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ (_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_) .NOTICES This program and its accompanying help file are Copyright 1988 Jason Harper. GIF and 'Graphics Interchange Format' are trademarks of CompuServe, Incorporated, an H&R Block Company. This program is shareware, meaning that you pay for it only if you decide to continue using it. If you don't think it is worth the price, delete the program, or better yet give it to someone who might find it useful. But if you do continue to use it, send $15 to: Jason Harper 1480 Michelle Ct. #A Colorado Springs, CO 80916 ^~~NOTICES-2~TOP .NOTICES-2 Your money buys you the right to use this program as you see fit, as well as any updates to it (but I cannot guarantee that any updates will be made). You are responsible for the costs of downloading or otherwise acquiring the program and any updates. I WILL NOT mail out disks: however, I may make future arrangements for someone else to handle distribution for me. You are allowed (and encouraged) to give away copies of this program, with the understanding that all persons receiving it are under the same requirement to send in the shareware fee. You have my permission to upload the program to other computer systems, either commercial or free, as long as the copyright and shareware notices remain intact. ^~NOTICES~NOTICES-3~TOP .NOTICES-3 No guarantee is made as to the functionality of this software: if it doesn't do what you want it to do, then simply don't send any money. Under no circumstances will a refund be given if you become dissatisfied with it. Please support the shareware concept. Shareware means useful programs at a fraction of the cost you would pay for them commercially. You can try-before- you-buy, and are not subjected to Copy Protection or the other atrocities that many software vendors inflict on their customers. Software updates can also be distributed much faster than is possible through normal means. ^~NOTICES-2~NOTICES-4~TOP .NOTICES-4 If you have any questions, comments, suggestions, bug reports, or gripes about SHRConvert, you can send me mail at the address given above, or electronic mail at one of these online addresses: CompuServe: 76703,4222 (preferred) GEnie: JR.HARPER Hope you enjoy the program, Jason Harper ^~NOTICES-3~~TOP _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ (_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_) .ADV You are in a maze of twisty little passages, all alike. \~North~ADV-DEADEND \~South~ADV-2 \~East~ADV \~West~ADV-DEADEND ^~~~ .ADV-2 You are in a maze of twisty little passages, all alike. \~North~ADV-3 \~South~ADV-DEADEND \~East~ADV \~West~ADV ^~~~ .ADV-3 You are in a maze of twisty little passages, all alike. \~North~ADV-2 \~South~ADV-DEADEND \~East~ADV-4 \~West~ADV ^~~~ .ADV-4 You are in a maze of twisty little passages, all alike. \~North~ADV-DEADEND \~South~ADV \~East~ADV \~West~ADV-CHOICE ^~~~ .ADV-DEADEND You are in a maze of twisty little passages, all alike. \~North~ADV \~South~ADV \~East~ADV \~West~ADV-DEADEND ^~~~ .ADV-CHOICE You are in a room with no apparent exits. A voice coming from all directions asks: "Have you sent in the $15 shareware fee yet?" \~Reply 'Yes'~ADV-EXIT \~Reply 'No'~ADV-PIT \~Don't respond~ADV-CHOICE2 ^~~~ .ADV-CHOICE2 You are still in a room with no apparent exits. An impatient voice coming from all directions asks again: "Have you sent in the $15 shareware fee yet?" \~Reply 'Yes'~ADV-EXIT \~Reply 'No'~ADV-PIT \~Don't respond~ADV-CHOICE2 ^~~~ .ADV-PIT A trap door opens beneath you, dropping you into a bottomless pit. There's only one way out... ^~~~ { the end */  m tL 8 9!:!  <=< /< <Ș LD  < < Lg <= >? BC ,  ` m `e<<=i=`!!ŢĠנŮآ !-ټ!(R!!PQS!!TU`8LstξϾ pL о־!!׾ؾپھ ɛ p! о޾ p`L ɍɬɠ`;!! /WAP2013 Odd Bits II Notes on /Wap2008 This disk contains Prodos 8 for boot up purposes. Many of the applications require Prodos 16 to run. Either transfer the files to a stripped down system disk or access them after booting a separate Prodos 16 disk The terms "subdirectory" and "folder" are interchangeable. In the /Desk.Accs folder Punc.NDA -Puncture. Pierce a hole in your desktop screen. Source code in /Source folder. Breathe -NDA for screen theatrics.Docs. By WAP member Jon Thomason CPU -CDA that allows you to save a custom control panel setting for each bootup disk. Source code in /Source. Docs Grass.NDA -grow grass on your desktop. Gardening for those of us who can vaguely remember the sun. Area.Codes -CDA of all the area codes in the US. Meltup -A modification of Meltdown NDA. Code in /Source. Anaclock -Analog clock NDA. Has a habit of growing extra hands. BGMusic -Background Music NDA. Loop through a digitized sound while at the desktop. Docs. DPII.Help -A set of NDA help screens for Deluxe Paint II In the /Games folder Fourinarow -Try to get 4 colored circles in a row on an 8x8 grid. Docs In the /Util folder Macdown -Extract downloaded MacBinary files and de-compress Packit format. Docs Fontview (shareware) -Allows viewing of the font sets currently on your disk. By WAP member Jim Frison P8CDA (shareware) -Load in CDA's when booting under Prodos 8. Docs Finder.Fixer -Analyze and edit the prefix path that finder searches for your application. Desktopfix2 - allows you to change the background color of your desktop. Docs Diversiscope (shareware $20) -Turns your MDIdeas digitizer into an oscilloscope. Play - A command to add to APW to play sounds within the shell. In the /Graphics folder Cubination -Spinning, bouncing multicolored cube. Show it to your Amiga friends and deflate their bouncing ball. Sgt.Pepper -Digitized Beatle cover. Ported over from another computer. Cube.Pickup. Modular Paint bush for Deluxe Paint II or 816 paint designed by Wap member David Wood. In the /GS.Basic.Stuff folder (requires GS BASIC) GS Basic is Apple's basic for the GS and is available from APDA Metro - Text game. You're a courier trying to navigate the DC Metro system. Watch out for those street punks. MetroMap -SHR map of DC Metro system Loan.stuff -Calculate loans. If I put $300 down on an 80meg hard disk... Print -GSBasic routine for output to the printer. In the /Sysbeep folder Sysbeep -An Initialization file that modifies your error beep to a digitized sound of your choosing. Docs. SB.Configure -Lets you choose the playback speed of your systembeep. Beep -A digitized sound. Other sounds in /Sounds folder. In the /Startpic folder StartPic -An Initialization file that shows a SHR picture while Prodos 16 is booting. If you have more than one picture in your folder, a different picture will display the next time you boot. Docs Shr.off -used to turn the SHR screen off if you are using a text screen based program selector. Picture.A. Sample of a bootup screen used with StartPic In the /StartupSound folder StartSound. -An Initialization file that plays a digitized sound while Prodos 16 is booting. If you have more than one sound in your folder, a different sound will play the next time you boot. Docs SS.Configure -Use to set the playback speed of your startup sound(s). Sound.A -A digitized greeting. Other sounds in /Sounds folder. In the /Sounds folder (descriptive titles followed by playback speed) Boom.220 Doorbell.450 AYAAAH.220 MGM.Lion.200 Scotty.200 Scream.200 In the /SHRConvert folder SHRConvert 2.0 (shareware $15) -This is the full working version. Several expanded features. Help screens and Finder Icons. SHRCONV.Finder -Used to launch SHRConvert from Finder. In the /Source folder (for Pascal and Assembly programmers only) This folder contains TML code for Analog clock, Breathe, Meltup, and Puncture. The Assembly code for CPU and StartupPic is included. ;$| CUBE.8X4Y<CUBE.DIRECTIONS CUBE.PICKUPz CUBINATION SGT.PEPPERFINDER.DATAbs)D.RPLAYR< DIVERSI.SCOPE3 DSKTOP.FIX23zDESKTOPFIX.DOC3FF.ICON3FF.INSTRUCTIONS3< FINDER.FIXER P8CDA.DOCz P8CDA.SYSTEMFONTVIEW MACDOWN.DOC<MACDOWNSOUNDSuHUSTON!J' '-DOOR.BELL.450R4J%*SCOTTY.200(J&,MGM.LION.2003uJ) *SCREAM.2001J 1(BOOM.2201J!Ү +AYAAAAH.2201J!Ү űr 5rxlYQ6)]rvAH97UiUavkt˷wvmxcOE4DW\}ڽYVXOXfPAH. .BFxάϲzj6)*)Gmcc|u|hǣ{oxqKEE8@^a]|}~yeιvdVGaeYYdQOL>FmvtʺͿrs[ED?6S^NHPK^ijudrfQOSLi}znqfyпuowtljJ1=@AUhjp_^IDOTbtiIA6:Tx±bJF46@BKfpixŲw`_S=8DCNckzõzhlaUUUBIG<'2;AM]Xfw|ũpnzj_UF50$!>[pĬ qeQ87GA?HNZf_Wj~Ƴ}ono]]T@6B?FV_jǽ|t|yh^[KHC63K[k~}e\SP]]SMNGP]dk{ykTKBARXSW``oz{}cIC?=HNSk}Ȼpc[SR]P?::=Pbj~ql`XPE@NUV^ituoeVJH>COW^qz{s`WK8178I]jxƽm_bbWUQFHJFK\fzzoXHEDAGOQannrþqg_YX^WPSTQU\d{o[V]WRMB;BBFVjv[E44AGR]aaga]kſ}pje\WRKLYcp~yĽ~k^SJIE?BIR^swhbSIKRW[XSYbjvwg\VTXQFGOU^ipysp_K8/2GV\gv¿{iVFCMSSQNRcpv¼vf[OFJOQXehmrzɸuigcSF>;DOT[kvxrjf\PJF@CNWeuq]NJJLIHP[`ent{rnk^OC=>FKS`r~slb`]SKJEEKVdu}Ȼn]SQTVWWNDDHTj}obXOKMNRX[]guƽrgc]XPMLKJNYetzk]VTRNGADLS^o~pd[ZUOMOOTX[gv|xuocTIHIINXezm]USV\]YQQV^hxvmcXNGGJLQX`iw~vj_SICBCLZfq}th]VRJFHNV`fo~re[USPNNOPRX`m}q`PC<=FMTY`gpxtid^XSONQTX\^cm{yhXJB?BJVclurg_YVTRQRTX_dlx{m\OIECDHOYcjqzzmc\WTNHFHJPZgxxk^RE<=HS[co{º}uj[KAAGNU\iv}ǵtkd_ZQIDEM[kux{ysnh`XPLJKOWao~xrlf`\XQORYcinu}ukaVKDDINVbrtf]YUOIGJNU_n}qbVKDDIOSUY^fqvi_XUV[]ZUOPZixudTIDCDHQ[fq{yrkd_YUPNPSV^kyobZVTQLKNSX^ft{tjaVMGCCFKR`qubUKDDKRY_hv~sfYOLPW]`dinsyſzroj`UMHGMWcnv}ymd]WRMHHKOXfvzuolg^TONRX^dmx{pf\SLKLMPWdtrf^ZVSSVZ]_bfku}sh]SICBFLSZco}}gRFDHKNU`hjjmxxqnjfc^YVW[`ejs~o`TLHHIMS[dnz}vncXMHHLRZer~}si_WOJHJLQ[gpwtmic^YVRPOU^gp|xl_UNHGKUevxi_[[\\[XWY_gow}n`UQOLJLS]fmvwog`VLFFIOYeq}yog]SKHJNRV]gr~~tnic\XUQLJNWds{qf[ROQTTRRW`n|{i^YVTPORVZ\_hwzod]YWVX[^aflvrcXSPNMPU\bis~}pcXQOQTVX\dmwzqi`WQPPPQSYalxzpdZPIEFLU`lwvh[RLIJP[hrwx|~zsj_SJIMT\erwj`ZXWVWZ]_dlv}yl_QFADJPXbnxrf]WTRQQPQW`is}|ri`YSNHFJVeszod^ZXTNLOXcnxrh_XVXZYVQPT_qzsle[TPPQUZ`jv{mb[URQTX[]ahs~tkd]WRPPSYbjot|}rha]YWSNLPWcqxj\PHFJRZ`ejq{zj^UQQTZ^^]_hywfVIDFMXbipxujda`^\[]`bfkqwvi^VPNPTW[`dhmw}qjd]XUSRPPU]gs{m]PJJMRX_fms|{pe\TPNMPV]fq}vk_SJGKT]dlt|xoeYMD@BITao~|snid`]\[\]_bekuyqh_WRONPV^foy|rg[RNLNSZbjr{{rjc^ZWSPPU\gpyzsojbWMIOX`jxzof^XUTW\adhoyvld]VOKKNT\dp}{vqkb\YVRQU^is{wof^YUSSV\bejt~wqkd[QJINW_htsic^YSOOU^dglt|}riedc]TKGISct}pdYRRUXYYZ`is|wph`ZWURQT^jt{xne^YVQMNTOcmzxog`[WSRTZahr}ynd]YUPMPV^fq|dMACKTZ^`gtvlf_UPRYajprqqxp]QMLKLS_jrw||vuph]UPLMU`iqz}tmfa^\ZWVX^fq}wnf\RMKNSX_itth_WQNMOSZdpztkfa\YWWX\bjqx|nbYRPPPRW_hpw~yqg_YUQPSZbiq{|ria\WTRSX_foy|ri`XROPTY^dlv~tke`\XUTVY_foy}uojc\XVUVY`is~}tkb[WUUVY^fnu}xof_YWUUW[ahpyvme_[XUUX]cipywnf`\WUVX\bis~}tke_[WVWZ^clu}zqiaZUSTWZ_gpxvng`ZWTSTX`js|woe\VRQRX`gnu~zpha]ZXWX\agnvzpg_ZVTUX\bgoxynf`[VTUX\ais|umf_XUUVY^fnv~~vmf^XVUTW]emu~}ulc]YVTTX_fnwxphb]ZXVW\bir|xnf_[WUVY^djq|vle`[WVX[^elu~xpjc]VSSUY^enx|rh_XUSSVZbks{~unga\YVVY_fnu~~vle^YVVX[ahnv|sjc]XUUW[agoyxohb]XVUWZ_gqz{xq_OJLPValt||soh^etn[NS\ap|ytlf`YF9@Tbimt{»~r]JBFJDBIPWcuwqpcVR[`^bjkkrwrrnkswibc_WVVX[dptsz~skaTOMGFKNLO_qw~rjaUIFD=ALWZ_n{oc`[ROTVTWalt~{tvrjgec`jz~|qihljcbehozuh]\[SMNTWU\dlwztoaVRNE@BFJTfwsgb`WRPRU_jomozvwphehmmruvx~vmjjgejsvvx~xoc][YUWZXW^fjqwqeYSME>?FKUcpyxpdTMMLJKS\co}}tmiid]_flnqy~|rrmhilljpxuida]Y[^]\clqt{ûzpcXROLHKMLOYguwpf[RKHEFOYbkv~xldca]]ahimu|~wokklkouz|umhaYWY[]aejq{xmcYTRKDBBFMVblyvi[OHD@@GNT]jw{rkd^ZZ[]dmqsyysolikpuzvphca_^^bimqyzpf\UQLJLNPSZelu¼}skbXSMEAAELUcq}{qf[TUWVW]fmu~|vqlknppsz~tkeb`^agkot{}qd\XRNMPRRX`ir|woeZTNIFEILQ[huzqjaXRONRX`hr{zrkiiilptz~}wpliefgint|ymd]WRPPSV\bir|yod[TPLIGHKPYblywncZUPLLPV\dny~wpjeceilot||xrljijkou{wne]WUTSTYahowvjaYSMIHIJNU_jtzqg^WSOKMPV^gr}~wsmfbadgkpv}}xsoljlqw}zrmf_[Z[\]ahowymc[UOIHILPU]gr~znd\TOKJKMRX`ku{tnid_\]bgkqx~xusppqsw{~ysojea^^_beks{uj`XRNKIJOV]eo{sf\UPLJJLPV_hq|yofa]\Z[`flpw}xtqpoorvy}{uplifccdfinv~zph^UOLLLNS\enxvk`XRLJIKOTZclvyria[YXWY]cjqx~yvsrqpqtwz|~ytpnljijmqv{umf_XRPPQTYbmw}qe[SMJIKMRW^hszrjd^XUUWZ]cjrz}xrolkkjlpuy|{wspommmnquzzrjc^ZVSSV[`fozvj`WPLIGHMT]eozujaZURPQTX]cks{}xrmihgfhkqv{~{wtqppqsv{ztle`][ZZ^cipxyne\TNLKKMRZcmwyoe\VRPPQTY_gow}xsojecdegintz}{xussstvy~}xslgb`___afmu}|qg_YSNLLORW^hs||qg^VPLKLOTZbjt{rmiea^^behlrx|xurqruwy|~ytplhedefhlqxwnf^YUROPSX^eozvlbZSNKJLPW`hq{yphb^\Z[^bgmt{{xvtrqsuwy|ytpmjhhhilpv||tmd]XVTSSV\dlt~zpg^WQMLLNRYblvxqib\YWWX\agmt{zurqnkknqtvz|xurpnnnoptzwpjd^YVVXZ]dlv~~si`YSNKKMQV^gs~}tkd]WTSTV[agnvzsomljjlosvz~}zwtrqqqruzxpkfb^\\^adjrzwnd[UQNLLPV^eoyvmd]XTRQSV[bjrz~ysmihhgginrw{~{xutttuvy~|vpkgdb``adiou}zqiaYSPNNORYblv{qg^WQONPSW]eoxytnidbbdehmrw|~{xuttuuwz{wrmifdddfiou|vle^YSPPRUY_is}ujbZUQNNPU[`is~~unid_]]`bfjou{|yvsstuuwz|xtqnkjjlnpty{rjc^ZVTSV[`goyxnd\UQONORX_fnxwoga^[YZ\`djpw~}yvsommprsvz~~zwtrpnmnorvz}vpib]ZYXY\ahowzqh`YSOMNPSYcmvyqjc]ZWWX[_djqyxtqolkloqtx||yvutsrsuy|{tnid_]\^`bgnv}vld]XRONPTY`hs~ule_ZWUUW[`flu~|upmkihikoruy~}zvutsrtw{ysnjfca`bdhlrxypg^XTQOORX_goyypg_ZUSRSUZaipyyslhfeeegkpsx}|xuttttvz~~zuplihffgimqw}|sle^XUTTUX^gpx|rjc\WTRSTW\dnx{upjea`abdhmrx~~zvttttuw{{xtpnlkklnqu{xpid^ZVVX[_dlu}vlc\WSPOQU[ais}~unhc_\[]_bflqx}zvrqqrssvz}~zwurpooprtx|}vngb_\ZY[_djrzypg_YURQPSX`goxzqic^[YZ\_cipv|}yvronopqsvz~~{ywusrsuxz~ysnhc`^^^`djqxzqjc]WRQQRU[blu~{skd]YWVWZ^bipxxtqnkiiknorv{}zxvtsrsvx{~{vqmhda`abehmsz~uld^YTQPRV[ais}~ule_ZWUTVZ_dks|~wqmkhffhknquy~~zxvvtuwz}}xsoljhghilptz{tld^[YWVX]dkr{{rjb\XVUVX\cjrz{unjfdcbdhlqv{|ywvvtux{~~zvrpnmmmnpty}~wpjd^ZYYZ]biqy}skc]XTSTVZ^enw|uoid`__`bfkpv|}xutsrrtwz}|zwtrpppqrvzyrlgc_\[\_bgmu}vne_ZWSRSW\air}xpjd_\[\^afkpv~|xtrqqpprvy||zxvtsstuwz~xrlgca__`dhnt{yqia[WTTSUZahpxzrkd_[ZYZ]agmtz~zvrnmmmnprvz}|zxvttuwxz~zvqlhedccdgkqw}{sle_YUTTVY^fnw}tle^ZWVWY]ahox{vrnjhghjlpsw{|zxutuwyz|zvrokihijkmqu{ypid_[XWX\`emu~xpha]YWVW[`flt}ztokhedegknsx|~{yxvuvy{|~|xurpnmmnprvz|vohb^\ZZ\`fls{zrjb\XVUVX\bjqy{tnhebaabeimrx}{xwvttuxz{}~|xvtrqqqrtx|~wrmhc_]^^`djqx}tle`[WUVXZ_enw~wpjea_^^aeint{{wutsrrsvxz}}{yvtttttvy~|uokgc`_`beinu|wog`\XUTUY^djr|wohc_\ZZ\_diou|~ytqonmmnqtwz}}{yvttuuvx|~ytnjgeccdfinsxyrkd^ZXWWX\bjqyzrke`\[Z\]`elsy{wsnljjjlorvz~}zwvwxxy|}yvrnkjiijlptz~voie`\Z[\^bhpxvnhb^ZYY\_cipx~xsokhgghjmquz~|ywvxyz{}~{wtrpnmnoqsw{{slgc_\[\_chnu}xphb]ZXWW[`eks{yrmifdccehkpuy~}{yvuuvwxy||yvtsrqpqtvy}|vpjeb`_^_bhmszzrke_ZXWXY\bjqx|vpjfba`adgkqw}}zxvtssuvxz|}zxwvuttvy|~ytpkfcbbcehlry~umga]YWXZ]agow~vpjea_^^`cglry}xusqpoprtvy|}zwvvuuux{~|wrnjhfeefilpu{wpic_\YXX[`fls|xqjd`]\[\_cint{zuqnmlklnqswz~}zxwwwwy{|xtpmkjjjlnqvz{uoic_]\\]afmsz|tmgb^[[\^afmtz|xsnkjiijmpsw|~zxxyyyz}}zwtqonnoqrvzwqlgb_]]_adjqx~vnhb^[YY[_bgnw~xrnjgfefhkorw{~{xwwwwxy|~{xvtrqqrsuw{{uojfca_`bfjov}xqjd_\ZYY\afls{{tojfdccdfjotx}~{xvuuvvwy|~{yxvuttvxz|~ytnjfddddgkotz{tmga\ZZZ\_elsz|vojfb``acfjou{{xvsqpqrsux{~~{yxvutvxz}zvrnjgffgiknrx}~void`\ZZ\_chpx~wpjea_]]_cfkpw~yurpnmmnpruy|}{yxxwwy{}zvspnljjkmorw|ztmgc`]\\_diou}yrlfa_]]]_cint{|wroljijknquy|~zyyxxxz}~{xurpoonopsw{|vpkea_^^_chmsz{tnhb^\[\^`ekry}xrnjgffgjmquz~|zyxxwxz|~|zxvtrrrssvy~ysnjfcaabehlrxwoiea^[[^adiowztokhfeegjnrv|~zxwwvvwy|}|{ywutuvwx{|wrmjgeddfimqv|zslfb_]\\^chnt|{uojfdbcceinrw}~|xusrrrstwz|~|zywvuvxy{~}yuqmjhgghilpuz{toid_]\\^`elry}vpjfb`_`beintz}yvrponoprux{~}|zxwxy{|~}yvspnlllmoqtyxqlgd`^^`cfkqxxqkgca__`cgkqwzvspnllmnqtwz~}|{yxy{}~}zwtrqpoopsux|{uoifba_`bfjpu{yslgb_^]^`cint{|vrnkihijlosw{~|zzxxxz|}~~{yvtsrrqrux{~|wrmiecbccfjotz|uojea^^^`bfmsz~xsnkhgfhjlpsy~|zyxwvwy{|~}|zxvuuuuwz~zuqmjgeefhknsy~xpkfc`]]_bejpwztnjgeddehlpty~zwuttsstwy{}~}|zxvvwwwy|}ytpmjihhhkosw|ztnhc`_^^`dint{|uojecbbbdglrv||xurqppqrtwy|}{yxyzz{}|yuromllmnpsw||vqlgca``bdintz}vpkgca`aceint{~zvspnnnopsvy|}|yyz{|}|yvtrppoprtvz~ysnjfcaabdhlrx~xqkgc`_^`cglqw~zvrnljjklnrvy|~|{yyy{{}}zwvtsrrrtwy|{vqlhfdccehlpv|ztoida```aejpu{}xrokihijknrvz~~|{ywwxyz{}}zxvvuuuvy|~~yupligffgilpu{|vpkgb`_`adgmtz~xsnjhfefhknqv||yxvuttuvxz|~~}{xwwwwwy|{wspmkiiikmqtyyrmheb`_`cgkqw~ztnjgedcehkosx~{xutrrrstvy{~~|zzzzz{}|xtqonmmnoruy}{vpjfdbaacflqv|{upkfdccdehlqv{}yvsqooopruwz~~|zz{{{|~{xusqpppqrtw{|wrniecbbcfjotz|upkgda`adfimsy~zvromlllnqsvz~}{zz{{{|~~{ywvtsrstuwz~zuplifdcegjnsy~ysmifdbabeimqw~|wsomkjjkmqux{~|zyyyzz{}}{yxwvuuvxz|}xtolihggikosx}zupkfcbabcfkqv|}wrnkhgghjlptx|~|zxvuvvwxy{}}{yyxwvwy{}~zvsoljijkmorv{|vqmiebaaceintzxrnjheefhjmpv{~{xvtssstvxz|}{{zzz{}~zwtqpnnnoqsvzztojgecbcfinsx~ztojhfeeehkosx~|yvtrqpqrtvy|~|||{{{}}zwtrqpppqsvy}{vqlhfdccehlqv|zupkgdccdeglqv{~yvronmmopruy|~|{{{z{|~|zywtsssttvx|}xsolhfffgilpu{~wrmjgdcdfhjntzzvromlklnpsvy~}{zzzzz{}~~|zyxvuvvwx{~{wroljhhijmquy~ztojgecbcfinrx~|vrnkjiijlorvy}~|yxwwwwxy{|~|{zywwxy{|~}yvrolkkklmpty}{uqlhecccdglqv{}xsokhfghikotx|}{xvutuuvxz{~~}|{zz{}~|yvsqonnoprtx|~xsnjgdddfhkpu{~xsokigffhjmpu{{xvtrrrstvxz}~}}|{{}~~|yvtrqppqsuwz~zuplifedegjosx~zuokhfeeegknsw}}yurpoooprtxz}}||{{{}~~|zxvuttstuwz}|xsokhggghkosx||wrnjgeeffimrw|zvrpmllnpqtx{~~|{{zzz|}~}|zxwvvvwwz}~zvqnljiijlorv{~xsokheddfhkotzzuqnljijlnqtw{}{yxxwwxy{|~~}|{yxxxyy{}|xtqnmlkkmorvz~zupkhfdddgjnsx~{vrmkiihiknruy}}zxwvvvwxy{}~}{z{{|}{xvsqooopqsvz~{wrnjgeefgjnrw|}wsolihhijlosx|~{yvutsstvwy|~~}|{|}~~}zwutrqpqrtux|}xsplifeegilpuz~ysokigffhjmpuz|xusqppprtwy{~~}|{|}~~}{ywvussstvxz~{wroljhhhknquz{vrmjigggilpty~~zvspnnnopswz|~}|{z{||~~}{yxwwvvwy{~|yuqnkjjjlnptx}|wsnjgfefgimrw|}xtqnlkklnoruy|~|{zyxxyyz|}~}{yxxxxxz}~{wtqomllmoqsw{~ytoligeegilpu{zuqnljjilnpsv{|zyxwwwxy{}~}{{{{{|~}zwtrpoooprtwz~zvqmjhfffhlpty~{wrnkjjjjknruy}~{xwuttuuwx{}}|{||}~~|ywusqqqrrtvz}{wsokigfghknsx||wsolihhijlosw|{xutrqqrtuwz}}||||}~~{yxwutsstuwy|~zuroljiijlorw{zuqmkihhiknqu{}yusqpoopsuxz}~|||||}~~|zyxwvvwyz|~|xtqnlkklmpsw{~{vrnkihggilpty~|xtqnmmmnoqtxz}~}{zyyzz{|}~}|zzyyxxz|~}zvtqnmmmopruz~|wspliggghknsw|~ytqolkklnoruy}~|{yxxxxy{|~}|||{{|~|yvtrqpoprtvy|~yuqmkigghknrv{{vqnlkjjlnqsvz}{xwvvvvwx{|~}|||||}}{xvtrrrqqsux{}~zvrnkihhhjmquy~{vroljjjjknruy}}zxvtssstuwy{}~~}}}}}~}{yxvuttuuvx{~}yuroljjklnquy~}xtqnkiijkmpsx}{xvsqppqrtvy|}}|||}}~~|{zyxwwxxyz}{wtpnmllmoqtx|~zuqnkihhiknquz{xtqonnnoqsvx{~}{zzzz{|}~~|{zzyxxz{|~|yvspnnnnoqtwz~zwsoljihhjmptx}}xuqnmmmnoqtxz~~|{yyyyz{|}~~}}|{{|}~{xvtrpopqrtvz~|xtpmkihijlpsx}~yuromlklnpruy}|zywwvvwxz{}~}}}|||}~|zwutsrqrsuvx{}yuqnljiijlosw{zvqolkjjlnpsvz}zxvttttuvyz|~~~}||}~~|{ywvuuuuvxz||xuqnlkklmpsw{|xtqmlkkklnrvy~~{xvtrrrstux{}~~}}}}~}|{yxwxxxxz|~zvsqomlmopsvz~|xtpnkiijkmpsw|~zwtrpoooqrtwz}~||{{{{|}~~}|{zyyyzz{}~{xurponnopsux|~zurnljiijloruz|xtqonnnoqsvy|}|{zzzz{{}~~~}|{{|}}}zxusqqqqrsvy|{wtpmkjjjlnrvz~|yurommmnoqtwz}~|zyxwwwyz{|~~~}|{|}~~~{xwutrrrstuwz}|xuqolkjjlnqtx}~yuqomlklnoqtx||zxvvutuvxy{}~~}}}~~~|yxwvuuuvwyz}{wtpomllmorux|{wspnmlllnqswz~{xutssstuwy{}~~}}}~~}|zyxxxwxy{}|yvspnnnnoqtx{{wtpmljkklnquy}}zwtrpppqrsvy|~~}|||||}~~}|zyzyyyz|}zwtrpoooprtvz~}xtqolkjjlnptx|{wtrpoooqsuwz~~||z{{{|}~~}|{||||~|zwtsrqqqsuwz|zvspmlkklmptw{|xtqponnoqsvx{~|zyxxxyyz|}~}|||}}~}zxvtsrssstvy|~{wtqnmlklmorvz|xurommmnopswz}~|zxwvuvwxyz|~~}}}~~}{yxwuuuvwxy|~zwsqonmmoqsvz~~zvspnmlmnpruy}}zxvutttuwxz|~}}~~~~|zyyxwwxyz{}{xurponnoprvy|~zvsonlkklmpsvz~|yvtrqrrrsuxz|~}||||}~~}|zzzyyyz|~|ywtrpoopqsux|{wtqnmlklmorvz~~{xurqpqqrtvy|~}|{{{|}~~}|||{{|}~{yvtsrqrstvxz~}yvspnlllmoruy}{wtrqpopqsuwz}}|zyyyyyz|}~~}|||||}~|zxvttssstvxz|~{wtqnmmlmoqux|{xtqponnopsux{~|zxwvwwwxz|}~~}}~~~~|{yxvvvvwwy{~}yvsqonnoprux||yusponnnoqswz~|zxvutuvwxy{~~~~~~~~}{{zywxxyyz}}zwtrponoprtwz}}yurpnmllnortx||yvutsrstvwy{~~}}}}}~~~|{{zzyyz{|~~{yvsrqppqrtwy|~{wtqonmlmoqtx{~zwtsrrrrtvxz}}}||||}~~~}}||{{|}~}zxvtsrrstuvy||yurpnmmmoqsw{~~zwusqpprrtvx{~}|{zyyyz{|}~~}|||||}~~|ywvutsstvwx{~}zvsqonmmnpsvy}{wtrqpooprtvy}}{yxxxwwxz{|}~~~~~~~|zxwwwvvwxz|~|yvspooopqsvz||xurpooooqsux{~~{zxvvvvvwy{}~~~~}||zyxxxxxz|~|yvtrpoopqsux{{xurpnmmnoqsvz}~{ywutsstuvxz}~~}}}}~~~}||zzyzzz{}~{xusrqpqrtuxz}}zvtqpnnnoqsvy}}zwutssstvxy|~~}|||}}~~}}|{{|}~|zxussssstvx{}{xurpnnnopruy|}zwusrrrrsuwz|~}{{zzzz{{|}~}}||||}~~}zywvuttuuvwz}|yvsqonnoprtw{}zwtrqppqrsux{~}{zyxxwyzz{|~~~~~~}{zyxwvvwxyz|~{xusqpooqruxz~~{xusqpopprtwy}~|yxwwvvwyz|}~~~|{yyyxxxy{}~~{xvsqpppqqtvy|~{xurponnoprux{~}{ywutuuuvwy|}~~~~~~~~~}|zzzzzz{|~|ywusrqqrstvy||yvtrponoprtw{|ywvtttuvwxz}~}}}}}}~~~}|{{|||~~|ywutssstvwy{~~zwurpooopqtwz}|yvussrrsuvxz}~|{zzz{{{|}~~~}}|||}}~~|{ywuuuuuuwy{}~{xvsqooopqsvy||ywtrqqqrrtwy|~~|{zyxxyyz{}~~~~~~|{zyxwwwxxz|~}zwusqppprtvx|}zwusqpqqrtux{~}{zyxwwwyz{|~~}{zzyxxxyz{}}zxusqqppqsuxz}}zwtrqpooprtvy|}{xwvvvuvxy{|~~~~~~~~|{zzzzzz|}~{ywusrrrstuxz}|yvtrpppprtvy|~|ywvuuuvvxz|~~}}}}}~~}|{||||}}{xwvtsstuvwz}}zwtsqpopqsvx|~{xwutssstvwy{~}|{{{{z{|}~~~~}|||}}~~|zxvvuuuuwxz|~~{xusqppoqruxz}|yvtssrrstvxz}~}{zyyzzz{}~~~~~~}|{zxxwxxxy{}~|ywtsqpqrstwz}|ywusrqrrsuwy|}{zyxxxyyz|~}|{zyxxxyyz|~|zwtsrqpqstvx{~|ywtsqppprsux{~|zxwwvvvxyz{}~~~~|{{{zyzz{|}}{xvtssrrsuwy{~~{xvtrqqqqsux{~~{ywvvvvvxy{|~~~}}}~~}|||{{|}~|zxwutttuvwy{~|ywusqpqrstwz}}{xvuttttuvxz}~}||{{{{|}}~~}||||}}}{yxwvuuvvxyz}}zwusrqpqrtvy|~{xvutsrstuwy{~~|{{zzzz|}}~~~|{yyxxwxyz|}~{yvtsrrrrtvy{~|ywussrrstvx{}~}{zyyyyyz|}~}}|{yxxxxxy{}~{xvusqqrrtuwz}|ywusrqqrstwy|~|zyxwvwxxy{}~~~}||{zzzzz{}~}zxvutsssuvxz|~{xvtsrrrsuwy|}{yxwvvvxyz{}~~~~~~~}}||{{|}~~}|zxvuuuuuvxz|~~|ywtsrrrrtvx{}|zxvuuuuuvxy{}~}||{{|||}~~}}}}|}~~~|{yxwvuvvwxz|~|ywusrqqrsuwz}}zxvuttttuvxz|~~||{{z{||}~~~}{zzxxwxxyz|~}zxvtsrrrtuwy|~{ywutssstvwy{~~|{zzyyzz||}~}{yyyxxxyz|}}zxvtsrrrstvx{}~|ywussrrstvx{}~|zyxxxxxy{|}~~}|{zzzzz{|}|zxvutttuvwy{~}zxvtsrsstvxz}|zyxwwwxxyz|~~~~~~~}}|{{|||~}{ywvvuuuvxyz}~{xvtsrrrsuwy|~~|yxvvuuuvwxz|~~}|||||}}~~~~}|}}}~~|{ywwvvvvwy{|~|ywtsrrrstvy{~|zxvuuutuvwy{}~}|{{|||}~~|{zyxxxxyy{}|zxvtsrstuvx{}}{xwvttttuwxz}~|{zzzz{||}~}|zzyxxxyz{|~|zxutsssstvwy|~}{ywutssstvwy{~~|zyyyxxyz||~~}|{zzzyzz{}~}{zxvuttuuvxz|~|zxvttsttuwy|~~|zyxwxxxyz|}~~~~~}||||||}~|zyxwvuuvwxy|~}zxvusrssuvxz}}{yxwvuuvwxy{}~}}}}|}~~~~}}|}}}~}|zyxwvvvwxy{}}{xvutsrstuxz|~|yxvvuuuvwyz|~~}|||||}~~~}|{yxxxxxyz|~~{yxvtssttuwz|~}{ywvuuuuvxz|~}}{{z{{||}~~|{zyyxxyyz{}~|ywvutsstuwxz}}{xwvttttuwxz}}{{zyyyzz{|}~||{{zzzz{|}}{ywvvuuuvxy{}~|zxvutttuwx{}~|zyyxxxyz{|~~}||||{|}~~|{yxvvvwwwy{}~|zxvtssstuwy{~}{yxwvvvwwxz|}~~~}}}}~~~}}}}}}~}{zyxvvwwxyz|~|zxvutsstuvxz}}{yxwvvvvwxy{}~}}}|}}~~}{zyyxxxyz{|~}{ywuttttuwy{|~|zxwvvuvvwy{}~~||{{{||}~~}|{zyyyyxyz|}}{ywvttttuvxz|~~|zywvutuuvwy|~~}|{zyzzz{|}~~}||{zzzz{{|~}{yxwvuuvwxz|~~|yxvuuuuvxy{~}{zzyxyyz{||~~}}|||||}}~~|zywwvvvwxz|}}{ywuttttuvxz|~~|{yxwwwwwxz{|~~~}}~~~~}}}}}}~~~|{zywwwwwxy{}~|zxvutttuvwy|}}{zxwvwwwxy{|~~~}}}~~~|{zyyxxyyz{}}{ywvuttuvxy{}~|zxwvvvvwxz{}~}}||{||}~~~~}{zyyyxxyz{|~}{ywvuuuuvwy{|~~|zxwvvuuvwyz|~~}|{zzzz{|}~~~}|{{zzz{{|~~|{yxwvvwwxy{}}{yxvuuuvwxz|~~}|zzyyzzz{|~~}}|||||}~}|zyxwwvwxyz|~}{ywvutttvwyz}~|zyxxwwxxyz{}~~~~~~~~~}}|}}}~}|{yxxwwwxyz|~}{ywvutttuwxz|~~}{zyxwwxxyz|}~~~~~~~~}|{zyxxyyy{|~~|zxwvuuuvwxz|~}|zywwvwwxy{|~~}}||||}}~~~~}|{zzyxxyz{{}~}{xwvvuuvwxy{}~|zxwvvvvwxz{}~||{{z{{||}~~}|{{{{{{|}~~|{yxwwwwxyz|~~}{yxvvvvvxy{}~}|zzzzzz{|}~~~}||||||}~~|{zyxwwwxxy{}~|zxwvutuvwxy|}}|zzyxxxyyz{}~~~~~~~~~}}}}}~~}{zyxxwwxyz{|~}{xwvuuuuwxy{}~}{zyyxxxyz{|~~~~~~~~~}|zyyyyyyz|}~}|zxwvvvvvxy{}}|zyxwwxxyz|}~}||||}}~~~~||{zyyyyyz{|~~|zyxvvvvwxyz|}{zywvvvwxyz|~}}|{{{{||}~~~}|||{z{{|}}~|zyxxwwwyz{}~~|zxxwvvwwyz{}~||{{zz{{|}~~~}||||||}~}|{yxwwwwxyz|~}|zxwvuuvvwyz|~}|{zyyyyyz{|}~~~~~}}}}}}~~|{zyxxxxyyz|~~|zywvuuvwxyz|~~}{zzyxyyz{|}~~~~~~~~|{zzyyyyz{|}}|zxwvvvvwyz|~}{zyxxxxyz{|~~}|}}}}}~~~~~~}||{zyyyyz{|}}|zywvvvwwxz|}~}{zxwwwwxyz|}~~}|{{||||}~~}}|{{{{||}~}{zyxwwxxyz|~}|zyxwvwwxy{|~}}|{{{{{||}~~}}}||||}}~~}|zyxxwwwxz{|~}{ywwvvvvwxz{}}|{zzyyyz{|}~~~~}}}}}~~}|{zyxxxxyz{}~~|zyxwvvwwxz|}~}|{zzzzz{|}~~~~~~~~~}|{zzyyyz{{}~}{yxwwvwxxz{}~}{zzyxxyz{{}~~}}}}}}~~~~~~~~~}|{zzzzyz{||~}{zxwwwvwxy{|~~|{zyxxwxxy{|~~}}||||||}~~~}}|{{{||}~~}{zyxxxxxy{|~}{zyxwwxxyz|}~}}|{{{{||}~~~}}|||}}~~|{zyxxwwxyz{}~|{yxwvvvwxyz|~~}|{{zzz{{||}~~~}}}}}}~}|zyyxxxxyz{}~|zyxwwwwxy{|~~}|{zzzz{|}~~~~~~~}}|{zzyzzz{|~~|{yxwwwxxyz|~~|{zyyyyyz{|~~~}}}}}~~~~~~~~}|{{zzzzz{|}~}{zyxwwwxyz{}~|{zyxxxxyz{}~~}}||||}}}~~~}||||{||}~~|{yxxxxxyz|}~}{zyxxxxxz{|~~~|||||||}~~~}}|||||}~}|{zyxwxxxyz|~~|zyxwwvwxxz{}~~}|{{zz{{{|}~~~~}}}}}}~~}{zzyxxyyz{|~}|zyxxwwxyz|}~||{{zz{||}~~~~~~~}|zzzzzz{|}~}|zyxxxxxyz{}~}|{zyyyyzz|}~~}}}}}~~~~~~~~~}|{zzzz{{|}~}|{zyxwwxxy{|~}|{zyxxyyz{|}~~}}}|}}}~~~}}||||||}~}|zyyxxxyz{|}~|{zyxxxyz{|}~~}||||||}}~~~~}|||||}}~~}|zyxxxxxyz{|~~}|zyxwwwwxy{|~~}|{{{{{{|}~~~~}}}}}}~~}|{zyyyyyyz|}}|zyxxxxyz{}~~}|{{{{|||}~~~~}|{{zzzz{{|}~|zyyxxxyz{|}~}|{zzzyzz{|}~~~}}}}~~~~~~~~~~}|{{zzz{{|}~}|{yxxxxxyz|}~~}|{zyyyyzz{}~~}}}}}}}~~~}||||||}~~|{zzyxxyyz{}~}|{zyxxyyz{|~~}}|||}}}~~~}}}|||||}}~~|{zyxxxxyz{|}~}|zyyxxxxyz{}~~}||{{{{|}}~~~~}}}}}}~~~}|{zyyyyyz{}~~}|zyyyyyz{|}~}|{{{{||}~~~~~~~}|{{zzzz{|}~}|{zyxxyyz{}~~||{zzzzz{{|~~~~~}}~~~~~~~}||{{zz{{|}~~}{zyyxxxyz{|}~}{zzyyyyz{|}~~}~~~~~~~}||||||}~~}|{zyyyyyz{|~~}|{zyyyzz{|}~~~}}}}}}~~~~}}}||||}}~}|{zyyxxyyz{|~~}{zzyxxyyz{|~~}||{|||}}~~~~}}}}}}~~~}|{zzzyzz{|}~~}{zzyyyz{|}~~}||||{||}~~~~~~~~~~}}|{zzzzz{|}~~}|zzyyyyz{|}}||{zzzz{{|}~~~~~~~~~~~~}||{z{{{{|}~~|{zzxxxyzz{|~~|{zzyyzz{{|}~~~~~~~~}||||||}~}|{zzyyyz{|}~~}|zzzzzz{||}~~}}}}}~~~~}||||||}}~}}|{zyyxyyz{|}~~}|zyyyyyz{|}~~~}||||||}~~~~~}}}}}}~~~}|{zzzzz{|}~~|{{zzzz{{|}~}|||{||}}~~~~~~~~|{{{zz{{|}~~|{zzyyyyz{|~~}|{{zzzz{||}~~~~~~~~~~~}|{{{{{{|}~~~|{zyyyyyz{|}~}|{{zzzzz{|}~~~~~~}}|||||}}~~}|{zzyyyz{|}~}|{zzyz{{|}~~~~}~~~~~~}}||||||}~~~}|zzyyyyyz||~~}|zzzyyzz{|}~~}}||||}}~~~~~}}}}}}}~~}|{zzz{{{|}~}||{zzzz{|}~~~}|||||}}}~~~~~~~}||{{z{{|}}~}|{zzyyyz{{}~~}|{{zzz{{|}~~~~~}||{{{{||}~~}|{zzyyyz{||~~}|{{{z{{{|}}~~~}}|||||}~~}}|{zzzzz{|}~}}|{zzz{{{|~~~~}~~~~}}|||||||}~}|{zzzyyzz{|}}|{{zzzzz{|}~~~}}}|}}}~~~~}}}}}}~~~~~}|{{{{{{|}~~~|{{z{{{{|}~~~}|||||}}~~~~~~~}}|{{{{||}~~}|{zyyzz{{|}~}}|{{{{{{||}~~~}|||{{{{|}~~}|{zzyyzz{|}~~}|||{||}~~~}}}}}~~~}{{{{{{|}~~}}||||||}~~~}}}}}}~~~}||||||||}~~}}}|||}}}}~~~~~~~~~~~~~~}}}}}~~~~~}}}|}}~~~~~~~~~~}}}}~~~}|||||}~~}}}}}~~~~}}}~~~~}}|}}}}}~~~}}~~~~~~~~~~~~}}}~~~~~~~~~~~~~~~~~~}}}}~~~~~~~}~~~~~~~~}~~~~~~~~~}~~~~~~~~~~~~~~~|~||v~{~}~u~z~|~~{}|~x}~~xv~}|||~~~{~|Rv`yvg !"#$%&'()*+,-./01x~ttyzw|x~}z|u~|}}}|{~~~|z|SkWltr|m|vt{|zrz~t{uzzwz~~~}xlpƃnxvn^s~upnuzrzv~|~vouxrz|y~~}~|j}t|rjnzw]j}hrttxopfxz}xt{z~zsnzxw|zz~~~}x{~j`zy~o~Zv~~lztw|lws~x{vx{z{zzrttxz|~|z~|~yz|}|wy|xx~}|~|}~||x{zxw~~~tw|~~txs~xz~vtqtwx~|~|r|x}y{z|z~~~tuvv~u{xr~n||woz|~||u~s{w{~r~y|{nhn{vnsl~x|~wxnuxw|z|v}y~~|~~|}~~pylrzzxzxxnr~|xz~zx{||{szxxz~}zvprxhetwp|~v|{~|||{v~x|y|~~~nnfxv{|}pv~|~z~y}xpx|{uvvvpyhdzy||~sx~~`wc^{hLdrpty|fot|bei~xylx|~{~|spt||qvft~|{z~r~{{dnxhQngvnus[`p|jkzp~v~||y{zz~|wpqx{~}zmxkk}bz|x{wfqnlp~dg~{~nvzok|zxtz}|tyxz~bck||lt|zq`bVbpx{~~||~|~y~vvyzv~noz~`n{l\ru}wxzbXf`^~|}~~~vh~|tu~jszxo`nSzTnz|~l~|~pdd`Kctzzjl}krv||xn|wzZZhŽV}t|rupfrdT`hOp|vxqpx{iv|z}Tth|pxow{r~~n}vlfj_Vv{xzpyvn}n{pjvKL^Zehn}~t|rjge^VXlTavynrf^daY^kldxlg`Z@NTXanfd\cefv{vhvtivtvrcbn}|wyvh_wxmsdkZjeZVZln[jxesjx}\KWmfv|y{~~u~}ifpn|s\Yl}~t~m^dPTt}v|ti|vuvxxx~vzvtl|r|xxzt~sy|{rr~bnixt{t~|ujbptrx}~~|{}z~z|~~vb}bRomvvwztlqtptxw|~zxu}z{~~zwyz|z~~xw~|}r~|nYjv||NMRo~|vhd|}}ps~{|xysz~vxtx{}~z}~y~{|{bgdfVdtzz{vgx{{vxu~~}yv~zttpyz~~~~ux|xvclZtu{vDgX{xup{|nyv|}r~~y|{z~zp}sxx{x~`nn{gz}|nZpwzx{kzq|ps~~}~|x|vv}txw}~{hoYirfnpt~|ztvztxp~|xv|tZtx{rxmir~uxryntxvypwt{xz{t~|}}~ojoj~{~}~~|}vv|yxz~{zv|~x}~~|xxv{|||~~~svt~yz|zyvx}|~x|~~~|x}}~z~|z}~||~y{z~{z~z|~~|~v{~vy~vzty~{zxr~}z~~~~{|||zr|~~~t{xrvzpzxx~~zw~vxz{v}{xw~|y{|r~zyx||n~z|{z~~|x}~v~u~|||~|}~xv|~|~~|~}}~|~~~|~{}~|{{x~~~}~|}~z~|~~}z|~~|~|z{{~|||~~x~~~~}~{~~~~~~~|~|y|zz~x~y~|~}~{z{~~{~~~~~|~~~zz}~~~}~||~~zx2456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~x~~~|~~~|{{~~|z~~~~{~|{zx~yz|z|~~~~v|szrttrunwrzxw{w~v|{}z|}~~z}zzvz~}x~tzrrpltntrtvv|vxx{z}~zz}~}|||twpumrrrwr~|~x|~v|vzxt|x{vzx||v~vzvv|vxpvpqppvltpwwx~|||z||{|~yz|{xv}|~|~~~zxzvw|w|x~~|~xz~~~~~|~|zrslnmmrmvr|zz|~~|vztvxt{x~~yztrmff^`X[X\_`ifrvx|||vxrzqtrqslrmvpvxv}y~~~~z{vzrvqnnglfeeffbdac_`aahfnntrpyt|z|}zwtmphldjhnsptrnnntovptqnrltpvruxx~z~~xyprjld^[SVSXZX`blhqrvxx|yzxrtotjpjihdlfrlpppwv~~|yz~{~~wzmpjhe[_Y_W\^\cbllrvx~~~z}v~|||zuzrxrrpntprjnlnrnvrxvtxt{x~zvtnla_XXVPUQ^V^^dhhtp|x}~~~|~x{{}~}|{rwlpkmrnvlrnqstxv~z}~||rtlnhjhchdjedfejekcihkpnyt~x|~|{prjcf[^V\^a^[bbijpyv~yzrupnpgjdjffinptxxz~~|vthm`dY^\\b\hdmrrxt{|~|{osfib`ZX\Vcaknq{txzvzxttlldf`b`ajbijprr|x~z|rvklfdd`fbhdhkkrp|x}{{|yrkf\\\Z^V_\cbdjhrmrrxzv~~Ⱦ|mna^XPRJI@DDFNJ\Xfiv|}~z~vxrpo^YRSPJRP]X_bnt|ztldb`b`elhf\^Z^TV]]jflgjt{|yppff``cbjimlrnnlnpmjnjj^f```\`Z^V^^`io~ø}tpnbf`d^`c\\RSJLGBB>D=DEKVZfksx~xxqmfbe]`Z]YXXRRJJHHKGLHPMNPNUT`_fltƺxmd\\PPFC>44(0(.4297BBLT^ehvvr]VRT^lveL866,  6PnjYHD:DHXemƸohPFI\zmA)%')6CDT^~|^J8:6GP\n}Ȥz^P3,$F^qxlfpsv|zwvj^VIJ3,.AP^XTC6, 1286:=86*BDJBDTXbdtݼ|}tn}~t[F" #Ffx~κ\6:397DLRH.! &JtжxZC;6JUw|t{¶~qrmafRXTN@-0"(%0@VpμwVL@2& JJTcktinfgjddTRCA>BHEJNLLDKFPLdtϾn`ND=;C764@@KS^x̠tyv~|s`a\bd\fcl^ZODB>NTdihzŦ~tpipnvrvqxbC2 &4BJZVaaa|tbTIZlqcW\`f\TS\heljǶt\* .@LX[dr~ĢdJ0" 6Dh~upfa[lbmtzʿpXJ40(2Hfdz|z|znʽĸd@*<]n|qf8 8Tjx̳gXdp`hQL=7<2DRd~ƺ~ulQ@,&)&8@Z^s~°yfVV\`yzrvh_m{ЬzR: $>e¶U $9SON90*'(,=DbxʽbH." $#6D\|ɶslRH74007Rr̻r`>00:JPb|Լ{jT@ /LsfZFMDHKJ^hw~{¢xxnu|xtzpd]]X\RVUZZV^P_^\UNIPnê|vfWJN3$*DfzƳh@+ 06JThpԵzL. 2B^{ˢ~Z<+ 0,8><:>PRhʾjF ,:\pڰ]2""50HBLV`|ļpZN?<%$&,>dzf\F@2($.1Rdx}ƺvmOA$6HMTVajtztlYLD0<>H>6:@UYjttxv̺dN."  *2>XdvtrP?244@LQt|tbKJ>6 #&$,)5=@\diZCC( 0B\xi`XPNL\Xgnxμ|w\80 0>TlvrYblŴ~mhpk²~|~ofzv}lrtfbbfR`STVMN?:4=IVq~xoTRD6<1632:,2-AL\ekxx{vbcbppptnjZPRMafx̼~rhWNL2$%2J`˴dD-)6>`tn`P>84>I`vȼnC4..00&&10CN`tnzrôxn[EB'2BXtijukadRRRTSRW`_ckz~pqhbRLB00$(AVrºl\@! $>M^mɸV(,Dc¼nndrrv~jZYY^\]TQPLT`iȸrfD%&6@TXpzĻxZ:&&;NZtҼλȺxS;02,()=Dbbswnutxp{|xj\YHJN^mtzrntxzx¶~v^H5'.2EQh|r`NI("0>Vpyjnppvyvcfdfpr̼wpeXH0!,*>Ne}μljc[NFLGNJTXfxy|~mhlrlaRPGCNXjntɮvhRMPNL@FA:' &088GXoveQ@&$ "29Th̾ri^JJ:*!"1:PbtŲfS! &.JZr~µmxitr~hjbepvfPEB@2.$*.2>:HXdr¼~bN;7<0 (8L^p}zhbb^njtzz|olZXWLQCHBFQL_h{x|v~wnff_edpttrf\hp}vz|xrbe^YNIKFPP_em~~»t^VLLHHFBB>LIVZdryμ|hZHG@>HERPZ_ennyz¸zj``bmq~}tktnutrqrpkvpz|}}~npnxmvz~|||z|v~zo`ZTYTb`dfhu~wzdb\\_]b\^_ajlzx{lpjkgpvots}xxsuptbfb`ll|{~lb`RJPX^`fbchnwx~z{uvx|zrhj`loypsjid^bTTLRXXbhvv~nl]`U[YYa^nt|zu{z|vvyp|vrhnplpefZZXTVR^_jt|˾ttppxu{~|xlbVLV\ljwxyzvzwlhbnosnkxunhppxx~kif\VJLFRT\dfpp|~|xoqhnhjkp~~x{~p|xyprwt{txxxtvjj`lv|z|~|xxomnff\`an{yrppxtxsuvv~t~zynlsx~{trrmvuz{xzqqhnpu|x~txrvrmgdj\SHNS]ljplxzxzpp_\VZXVbdxt^eilobln{~z|utokhfb`_cfjqt}zzxlpjqortt|zsrf\WPY[ebjuv~uvpol^\ORNV`dv|mldaafqp|~zrhnha^UVPZ^nx|~zwnphlllnlur}tvjpgp{|zzttzzzzlqjknjldhd^`^lhpb`XX[\hsƺ~xrjru||utrvuukinff\\Zbq|~|lqpw~|~{wtlntx~|{xnplvx{ztvjjbdfcfblflehlp|xttkhd_dbh\^^_ddnp}~yvxz{vlrp}xxunffZ`X[\bgdjfljippz}vvheYZS\Z^chop~vzz~v~vzx{w~yz~tni`_Zdht}}|znhhbeeirt~~}vxsstxnplr|z|tzrqplqnvy~}w|tfci[ZNYZa_ZZX[Zb`\bivxy|ppa`[Z\STOY\juz|~x|uyxz}vvtttlqv~~zhb^V_`nklkhm`bbfjjtr|{|r{wr`VV[e`\LNRTZWdalrvx|~z~{~rslpjgffqtzz|zzzvtlmhfooysvqy~tyt{||}~}|ttrlijxwz~xpphcRXR^hlnjts}xvvt|oltpxrzvplhqjndnpnur~~|tzv|xvxv|~xvpnvtvvkrv~zwotnprkpjllr{xxz~w|vyyw~|x~~~~z{nrlxz~zpvqxtnf^jq|zyxppjfppxt|xsunjPHHXilu{zy|tblyw{z~x||rw|x~||zpvr{rnjikiu~|x|vz~~}~rpnpzqplqvkf`hmrrjrr~|vz{|trv{||zxtxrtrzvxt{zvlp~vrhisyz|~xshpvxzy~{x{~xinnpxvzopsrtjtkrlpvqvfsqvx|~optvthrvxrt|~vxrtrpyz~zxx||~{qsx~}v~rvp}t{|~w||xztznpjurlb^gp~r`Zdesw|vhp{~||~xzsvxv~y~~|{qvt~vvpnss~nqlvzxv~|~{nsr~~xtxx|}xxvpsjeciojrhleryuxzxvv~ukfll{pjpp|}~xmx~~~ttnrtv}z~z~y~qyy~x|wvtfnkxttpmrjv{wxtt~z|~||x~y|xvnlpputtxx{{~urdjrz}|v|z~zrpfmihjq}{xrtptxz~v~vxvx~z||z~prv|}}~opkxx||x|t|x||||t~x|xzuszwvjsxtj^hiuvxrebadrx}~v~tvv{}wpxv{vrtt~z~~tmppyrunknmxpumpv~xvwt|qy~|||pndnjuv~||qtlploxz||nijlxvx{vx~~z~tvlfc`lmwszzrtr~wz|}sqwz~w~|vsgnlv|vvkljltt{x|tnh^b\ddeljrnytzxzy~vztx}xxlkglrnvhpgnjhqr|{~zvxt~|~~~~~{vz|~xzz~}~|}|z~z~|zz~z|z|~zzxrvnxqrrvxrvptruxy~{~zvxtyqtrnxj~t~||{~|x|xx|xw|x||tvpzx}zz~zz||||z|~}z~txnsvz~~x~~~vypprnxt~|}z~~|zznlmptrvlplntq{u||}y}|~~~{}uyy|~|}|~uvpxvz~y|v}uzv|}{|xvsxrqfdjhpfldbfflcopvxy~ryv{vwxvypxt|~}tzrxx|}z~wzz|z|x~}~{~rxt{x~y|xvplll|~zyq{z~~vzryzspnnvv{vich`jbqmplr~|~u{x||x{ttxs~yz||lh^hmv~~~|orz~|vrhmky|~xyuzzvvt~zxrltpsrpvu}|~~xz|~||~|z~||ttvw|zkjlx~xv}z~x~~{xrhjdsx~rlad[bfvrxz~~||pljkqhrpvstwt|wrjhopw|s{~z~~zvfpszpb`^ny|qz{rxx|xppolf`lnv~pg]bjq|{nrrryx|zqvxtsolrmxz{u{~~r}x{|~~y}{v~|~v|p\[Vj||s|}rphq}|y~ytkhj^\T_enz|rrh\`]f`^_Y_V^W^dn~x|~nf\XXX[R\Zjt||}xz~wpsnrkoz~|}zz{zxhVXT`adjl|||pfhksu|vvuvxsxsyx|~t|tw|~xyrxz~~|mjXVKDHCONZ`nv~zxppirpx~xqkbc\dchroxtz~}pphmpq|z|vtjhdhtx~xvlfVXTVZ\hhyy~~z{zxy~vvtvzprhtzzqtjnnp}ztphjjprvzz||rnf`\RSMPU[hj|tpdc^TXPZUcfr}}zzxxyprjqpw|~zwnnjprqxt~{|vsfh`\\\fhvv~y~~~uvxv|||vxpvptrt~|}~~zxzzw~xx||{~zrnlhi[`Zfhklnut}~}}x|uzrxyvwmqgjhiliqpzwxzu~t~uxtrxv~z~~~|rxpmjdj^hchfefbichfinltozv|xyptornllhnfmhjihnhnhplprs{w~}|}x{prjljhhadbdedhcjhmnptr|x||~{z|||z~~}~~}}z~v|vxxvzt|u|}|~}|t|v|y|~||xtplqipffd_ibd`frr|}|~|~zvvttvyxzxtwrvpssszu~{~|z~z~~|~}z}~~~|xtrwt~z|~{~rxrtpmspwttrntozxxvprolnjtproecZdflhadfvhdZbfprplfpnzz|¸n\cfnspn^ZRZ\\_`nr~wxtptu}wjl\fao~ld^eqtjjt}|qdhhqnroll`idpojhWXPXYcv|yxptzr`E;:Tt´}{z~vgf[fr~rfPR[rtjbXbbqz~rrlstrswy~|{v~xhs|znpkqx{}~xomenr|~lbLE;BFJOBLVhxĽz|{~zxyjp_YTU^\jgɰ~x~vt`^NRPJFLVRRVddpx~xdfTfn}~objtthkksxz||n_`ZZTXde}t\`^kmqz~~nlnpy{zwznkfntmryy·pX`NJ@CDBLT`f^^Z_]n|n`[SH@266DIX\bjvzr|~|ll`hfffdrx|trhnv~~~trnunplnrdlhtx|~rzvhnh[PNV^ptvfc[TLFNIQHJNWllzzxy|wja]W[JF8AJN[brrsg^Za^a\b^[bf|zuw~~zmhpv~sfRTJMYdrpp[NJLWVho~|udjz~jgXRRPVZjlmom~xhPNR^pr}jdZOSNbjnlfltv|u|wwjf\ajlxtvaTE=;7B@LPV^`ppzĻrhh`f`^TLMR^`klxz}|prsxxqlfjbjffdl||~|sfaajlzx~~~|lc^\b\dchlgjdhcnjdjchbfht{kk^`]`ip~upjfhly{~xxpz|zrvrv~xvlkpv~|~xvuzzhdVNE>@9@7BLRZdutxkra`PVRVWTTVWUNDVJT?Zhr{rr\@&4NnvxzjbdP`Tddhv}vо}p_H:#&4\xȼ|ltppbehblNC)"-,BLhz˰nP.6DUjzxԷjkPZNF6'%4Der²nV/8Xo~hTLTB?>R[i}~`ZVIlLYLL?6:F@RdԺvU6 (:AGHMGZ\ΰvWNEEW^ts~|nHB>:!!!8F\wƶƶvO@. -8Raavpzäh@0 "5DW^VjЮbZ2F8@CN\ZZ@2&4VsƼhZDFKTbzʺrjfI<0,:N\ysf\JCDRt~ȢvcFB6,PXnbNeTn~~s{vqv¨M.  *NKHGAbjƭ|l]V\QVT`brжwZ>TIYbij^[JROLPFR^vȳ~lV87V~ĸt`N=18CThrxvvnjvpvrkj`cX^NDDJhvԱh^F0+"28G?Zbv{}|rnhrzpr|\fC8.0C@RTjƵ|n[U<( 8VoJ";Nvɾ~tiJ2 ./<;MdxɢjP>+(9\z¬hL&Pzʲz`F.  $%,4I^Ӷxrlc[ZZVLNL^p~plvt~zz~xhn~h\@*)9H^xa@FaİjK:NP\fefPM07+66ETtȢh6"$ &:8DBBHbڵ6+Nmʾ~~t3",&XbdN& :Jnvȹ~o\6+ $$*46CHZjԶ~VE@:3%.+66("0BVfʶ^NNfTF<>,7DFfĴ`T,-FHBNXfưxoX9EH\jtxklN^X|`,#BdzlPF6D>KTTZ^sֺv^PUW4 5P~ʺxZN>9B8RRhdpnnr~ĦuP"B^ʨĸ`B( 6HbѰztfXYfm]NZVWYPWLXTVR`x`B7B@dhz~r`VblzܺpZ3&.$,$&AYrҲj;$2:O`yⲐ`H@QQ@+5Dc]G%,"'>T޾~rC< 5]n~ھhN58Bez~xfXB.$  $?Xмļl\B7/ ,:F\n}viU^j˶x\D0 /=PcpƲrT52J^t|֦fPVPH:HZԴj^RZ\lzrfPbnsjX\Z^_jzzxȺ}v^L04&&$(9YfжQ ) 8h~fjdXVBGNf~ѺvrnbP>49CVj|X4762+*"(6RxƳi\GFDERRR@J=PhxxxiX>2 34P]гf;6[Ȼ¾^: !.FUn̼d`IB$#44PPtij~j[Q@F6HJP`Ziblxsdfp~zvp~koTZ_jneox|tr̲nhJ.*:RpƪhF$ .@DWdr{|Ũ|fP@7@B@CNj|ɶva`ZZB.!&<`~λy`#!BXx~zlclhof{v|Ǹz\OR]bsjprt~sP0 02@J\grʻpS4,=XhxѺiP;D4*+,2BH`h|zhE*.1=LYhrz|ƶpR>1 #(2HHONXXaptñj^M. *FB>Idw~hZLB@T`h~v|znmlphlnln[P>A>:?Pbr~~|Ĵtxx}rz||xdVBJMe|yrpbZPSTSXM[SVZ\nptcH:4ERTPZYhj{x|ppklzx~zzkrznbS@6*- (2BRb~zxgcXY\ehkxi^PDJWXSLJLJ66*3BM\hjphhfoǾxtnrpltltovyyv~|zxzxpfgbdZRXVhetedZUVR\VVQNVPX`}̲Ⱦvh`ZZZhtzkmZ\cfuwh\F4&$8BRVfin|}|xlpfhdnzz}npf\^[`\g_^VMTWdbljnllw|vrtj_NPO\hnvsľ²ro\VKE>)22BJWhnʹvhjhfTPJUNFA8BJalw|zuh^]V^Xhlt|v|yrlxv|xid^TPBJNV^`r}}~rdPF7*01>CcjaYNXXdnzlh\ZSB:)*&448BPnynk\f[\bigju¼̸ytjinitv}~t|rxt~vx~|vvnxutxqpdedd\QRJPNT]h}xvsik`fdjnx̶~oddng`PKLRkp|r}~~~xnn]\dflce^`ttrhlpw|~}zvrbdblvn|~rkphqr~k`^T\by|pln}zwlbQTPXPJJObabbdifsv~{wrxp~}vpjsrxp|vutt|plkitnvnxx~hTJK\[f`hhflisnv|~x|zv|x|vk_GEHgj}r\apvu´f]TfjfZVizlpn|zzxpz|rxzv{pwyvr`_VVLEJHVVn¾ntvjlv~vrdf^^VVTWdlxlsv~|lkgvv}{xnmnhzxnet}{~rmjmlpljfRXVZQT[bjj|wg^\przzz¬~zhZVZNTVhZR\Xdzzb\NRLPN=@JX^ntsnlu|rbhdj~xrrnqbXULMNX]fnfj``ZX`[het~}zzvr\XX]``nlrkljdd\`hw|~~rxz|v{~v`PRbc|ror{{peppx{~tnhijiz~vqcjanrx~zx|}ld^abZYR`dpnnxwvozplp{~ssfl|n~vvohn}zy|rpmnvx|fbXPNPfiojhbk~||zxfffpwonfnjlnlvhvnxtvľroqjlYNGNTKHJUV\hq~rhldqtyxvzx~|||~szrplnl]\^hb\YXVXlr~|~{|~x~||~~nngdddf^fehbad`edtxrjut~p|{rrlnhdjdsltohpakhvvx}zuy}zxtpzxparzzvtzzxx~qnllvzjgvv|llft|x||rx~~x~~~{uwuv||~rudjcffjtuvns|vrtv|z{tjurvsviflp|sywt~tfd~x~vlc`nkndbW\fjtnurnklvjpxx{~~trjjnrzxwnx~~s||zxtnz~~vjnbcf`d^nrtxv|{z|j}~x|~|z{|~zxpjf`jejc`\X\V^Y\`crvºxps~zvtluvrn_e`gb^fixv{qrhb[aijtmvs}~{z}volchlhh`r~|zxxmofmpx|tvnqptrkv|tto|r~x|swnjnfg\\X_`^ZPVPXZZXYddj__hptjt|~z|~s{szpvxlphl`QRJYXbYZ\_danv}zvwxpz~v}vldZRXXbbfrpxr{nnlnrqxt~|~xnjflksvql`dYdhz~{~vx~~|xxnrhfb_``ijrppqlvirqw~~|~z|}}x|xv~~~vsrnrmrhllrx|~~zz~|z||xzz{~v~rsppvt|uz||~|~||{~vlrr~wxtv|~vsnfihtrtlhvztt~vzz~tzvmtjjf`hetnxwxvtxlrx~{|vn~}vwmp|vkhrwzzuxttxtlqw|zfgixtvx~{pvq}tgh\\YdwzcHFETbhmptelrndv|}~vkp}}jenntk|xslksmw||tv}~xlj~zzt|pTXjxvz~x|y~td`volhrjiho~hRZddhn|tc_nt~sff[]k~}~~z|olnyjlpuh`nnr{~z|~zxpbjdttpttmVZq|nTRSttfbrx~vx~wxhjnzz|[fjx|~vf[ZVXr~olhphhu|x~~rb`h|t~|~z|tbR_hyx~v`LED`zg^ntylx|zphgtxzzjlo~x{pVENXfhy|lrvrnc`bnfft||vtrfvv~~xnx~µxdPSPRA<>>6@=JQ^kq~{stnppptrz|ķtlbd\^X[\Z[TWPNLFPDRLVZ\feqpyx|zxzt{uttnwqzx~ynb\NMDDDDJGQR\^fkipeich``d`hbjfmrr}|zrtjmfhdfe_dZ^ZXVRXMTJPNLOFRITNVZZfftvytvhxhpjjoktqrppphleidfh`g`g^d`dffmjrrx|{xu|vutnqfj`b_^_X]XZUTZS\Xa`dhjpsvvxz~||uvvrupsjnhjfdjcleljlrpxt}}~|xzszrxrtrnrlvrx|z~|}xy|zx}w|x||z||~}{zz|x|{z~~~~}zxzxvyrxux{w{z{z~v{xvwttntrrtrxkxrxvy|v|vzxx~y~x~~|||{|zuxsutsvszvywxxv|v~x||{|{~~|x{rxprpipirjpllnknlqoppnvtzx{}||~~~}z~yz|v|vxtxvz|{z~~|||}xv{wzvpwnvrtsqrprprtrvszv|xz~|||||zuxtzt{t|{|}xz{|~|~~~~|zz|~~~|~x{xyztxpvptrnminhjjjnjrnvrvxz~~}{z||x~vzwvwrxpxsuxvy|~~x~vxvrvnrmrporjpjplrspvnvpxzz~}~|~wvztursspzoyvvzv|z|~{{~}~~||~|~x|zz}y~x|wz|x{t}tzxy|x{x|||~|zyyzv|tzuxwvzv}x||~x~xz{x|x~x}||||~~|~zzyv{vzszvx|v{v|x|~|z~~~~z|||~xy}xxy~~}~y}vzwxzx|x~{~~~{|~||z}~z~w{xzxvzsxrxtzxx|y~~~|z|~|{~z|~~|~~~~||{{{~~|~z{yuy|x}~~~~zxytr{tz||}~yutrklyupv{{zz|rytzvfg{ulv{~}}~sotw}i`zfn}z}pvlp~dpw`^~eswsznjjmvbYwffw~wwqu~mr_evdZzmgyvmplu{ardjgKamdwnxdnu{hydchXizr|x~xlnwdmncHVzup~qomwsjnyZI\napx}cgvnvdTves}zzvo|ofnEOqmw|qy{qytdt}vl`B9Zqdwz~toq~xgx{wrT?Vndp}|wo{kwyvoZ;Smai}uupzvxczç}{P=beWkvwuktq\z{pHVoma{tt}vtr}wszvtvXJkzbp}sluolperln`Jkzck{plrfz}}ylhcfRLthy}pvnn{xn{nj]Gb|myr}o}y{fp|vlxWWesornsx{}YuocciNruyruktds`zkYgXQyywvvpqv[wr`el[tvwvi}mcp{rsuycTe\b|vzxajq|jeS\Y\ywx{bbduqlZ\aUi}}lfnxowe_^Wi|y{wldjj~}g^\Wazxnjfl{z|iZXR_|}}~jhfdz}sqb]Xaibedkol_\VT||n^hiqome`ZZo_ddosmc_PPss_gelomc^WUqwbhaipsc_[Vqy_faiqvl\\VlxdjfdivukadXk}_[_\zyv}zj\`[d}pciexlreebbsbfdnm~lh_f_ys`adhn{ne\ccw}t\^_fsqh\]]lgc\avt{yk_VWebd`[r|{tj^[[d}ede`r~w{qk`\fcbg`on|kg\^`iaa_pl|mg\[^{h]b^le~mg[[_t`e^jhwpk\`]z|{agacpwomZ_`rz~jlf`~t|uvd^[gvgdj_y{dzpk\_dv~jkk]wh|rl^aa~z{mhlankxoq]\_yz}~qklblqyss`\\l}{tgrhbwxque^apvu|ubmegw{xqg[\hzflf_{t{umX]exzygmmcqoxrt^_azz}whok`lylpWV`|}xskoobhxynv_XWt~qosohm}~pw]WYvrnnmcisy_SRozrqobitw[TWq~zqkmafpw^UZ|~ywuopaioqXNYz}w~rlleizosWP_zvwllin~tiQMauykghnwwjVSo~}|njp~uu^UZvz~{yjfnzsjTN[x~y~{gfwsx_KOdy{~vy{ymk|rx_MYnuy~zywjnztvWI^vu~{vxwjootiLEd{sw|xvujzswgNIjwr{{ttun{pp[K^ysxxz}qurrvvmiWSi|y}{zrqmpzvoaQXtwwysvsxzsf\ScsyxuuvtldV[mrz}z{yywwzwdmbYUz{kaeehymglis|}qkbfpr|ytxsegymtvfqxnllfs}}|smqjdpohj__ztxz|l^]iequwjQVewx|zdbZUi~j`\]s~vnwkbTcxxgb]evuthX\m{|zf_\ook^^cmr][_mxnwZP\o~zts]U]updrj^_mvedxliv~fbmrcovcjtkk{ufeue`qtezqgkv}}qekvdimuxlhmgip}}rfspgfj{rxqkcdtpmoe^_qzsmf][pym}m`UWl{i^USiti\OTfg`XRg}e]TWiwe^ZZrtdXU]sl^UYe~h[MOascVPTnpgTNSkze\VQ[rwg_VTatn^WVXjpcUPVmbWNO\wyfYMNbxl_SOTlhaTQ[tbTNN^ve]SRgsaNKSjk`UR]u{hSILa|eYQLRki]KEOnwaXRObyfYMQhr`WQWotaVJOko\OK]x~w\NDUs}s[JG\~t~_LCQrvwbMG\|tgpSLZyu`tsZPc|b\}~g\Yyl^]yjetw`Vbzfqmj\ls}[[igdh|{rjk`vw`lsbaj|jjtigohaeer|}[bnngt|s{`hu{plkrgyvvugfsulbloehoyyynmq~nhghkxzkotrbgu|jxolpctnwrglsaiw~}skfgpkyxt~vibevtudplrzoqutq_h}xx}xyvtp}}~}us|||vsljix~rzskb`f{vurpjqnkp{rtw|yxtvdiuy{sk_eixypmorrqmousw~vnbunogtwxhc]j|xoMCH`umVJ[mkx|\Z]j}xa[Zro~ojevql_^ars]POnddZqnp_zt͵^NOeSondS`E[idƨYYOvoz~v_biXGtdU^Wwtl`[gHQjpt\U[ro|prmhA`pm}{^dQksyx{zccn\CjeT^OquwzmfuRRsjp[[_pqwhefe?azuy^]Sds|kllYFbt_]Kap|w|hpjSGhfaWIi|xv{}jtiTGtV]POpvvznhpfHUUXRP}|~maihQ\VPTQsuzqdlhM_L}RZYvssscgeYiVxTYYqmnhjgY``cX\Vunihfqeb`ēabS]VqhkdjokbVmR]^R_oceq|smRǜca|iiXdqhe|movmWŘT|[bOevnpo|mk~bVUbbQcrn|sdm`zOlmym[SWcz}qw{w^lhtOpv_`Tcfepthouxg\tt}b]Y_lhr~yfyyych{sgZR[brsqpimyt^oxbZNYepw}qq`kujseTRjks~undjmx|hW@S_rnsLB_lrqtzx[cvtt}kdwkepw|vpnZXl]u{rvdtjjijrlvU[XbpprslamuyzZCR\x~kQPGlo|}szeaanjpbc]_izvxiWZ_uy|qzukZUXsmtNDZcvXNYg|wsrֱ]=/?^p^9DN^o}u\LZa{rqX>Ue}ueQJM]j~dTBFO[zzZFMTaifRAGPb}qOFRafp\JMP\oiYJNcqjTHDPa{fRFFSnoT;DYjľvT@ESkkN;C]g~vͯ~fB?Vm}x`FCRixtȷlVJXkxtßy^OFPbwsiţuKEGPp|z̵kK@AMmpÖeOA:KssŪeP=AUkrǫgR>CYu[LANZuyWI=F[wQE9H\|xTB3@bwN9*Ca|\;1Dixv]72LhooX>;Wyo]^7ChqMurCFfxN^«}RAXqPJytLKw|`V[Ű^Oe}gUOoŭa\wxrVSVyjki`WbewjwYV^hduure^pnia|ekio_fi_mtpRpxuRY_uz~c``kWWq]Q]qgtxxvRK[t~sQz˱u^O]c_JkeVneWYVmuldOJ[evtlvdXVqr~|klei_tyhtnKPgy{w[MZygLuwpkqmdSX}}aFK@Mo§Q57DK]տȱVTXYO^mh{ŻLMeqiYe^npyJGT{~̸[CPmg|yspdxkxxcNCCatlWFQPmuxdT\qznaffshyh]xyl`ZNZXb{t}׫RIIp|xV88:Ef}kuٳÒWGJYHt}[PQ8[vf|֯³}UDTRUzeI99JvZZΦOABPAs|ˀsLH)GhoGәlVLVU[z~ǡ|RKWKVfTþXT]ybmpmS[Z[srCzĠIJ\PLtmlwšoQOXRaYMưĊ<:_uewm^>^OX|IϬĴRCCuiaĂnL`[Oh]^ȲNOl^YtlbGfSf}DѫSFrPKGe`C`Ozj@={Qo[Ka_GXVWJ=]]cqXer_HaJY>[`WrTdmdMj@[EPjM~XWlpSu=˰lJHIx\PfrckCq˴oPCmZfdT]nd[JbòvLBi]lk\]`]`Oc}NG]}Xab^\iaeU^|MCXeggaW]ZjaUPGN|fq}gb]cSglKPFVu_mx^ebndfsZMLaomz_X^`^dvPF5Ozge~lR\UT^yPåP:Qo[b_Kb`XcePHShetrhV[\pT¹~Y4ORk|hqdc]oRgGHkQkvR]^`flY_7HgVtxaZeaic˞d/S[[hf]a[eakO6XLbl_`ZX`kgطʵx_6JTGjfaTUQ[~OûƿrY;VEN}mcfSP`_|˱ŲrHRYP]ofaq`]lsRŷmYLdYXn}|uVTd_mE~sHbZYglr\YghrIĘàleUv[a~lsuz_Zfv>÷s\;hodwa|tvrdhfhwİ|DGjjs}|ok}psplm^ӚrI]fniu`aociwU҅i\a[lhs}znHsj`pbrꉩ~WQYnmpvy;EYnu}SѣTWDg}z`MITbtDžS_EYqbUNNQt䚫RNEM^wɧnJPJZ_y淿bK7@\rs~^TLQgh}ްǥbWIAQlh`\MW\sq˹~OSCNopaeDVYxsvѲOE9IWrjmQ]OhqxeWDC\d}nn]aeuvzħ[]DX[n{~zsY^[ml~Ƣc^BJ^^typojjns۞^^QCU}olugrZm}}뙹`KJUXju}WlenZjsҩū`YLSPm|nhVe`g}}ۣpRF>T\mfW\QbeurϣVP2Sds~uNITTE`ȳbaFIZq`LHQ^o}VL>Tampi[CP[nkSJZct}^DH^sqtlI@LpqqWCGayhnz\Vg}nhvk|xi^s{|e[XnpvvnqvjZ[iyfmvkfrnhy{yjclq{x{wnkhztzktur}u{v~yrnnwvwzpmtjz{zttqupu|zuzyotustlsx|vvsrnrvgq{wyzptq|oyyt~|{|tjpql}}wpe_wptpp]gtmut{Zfoyj~~dYlUxswmkzxyrmpWo|{z~}tw[i|zq}vvy{r{x{|oj`dy~vjaor|yxxzo~ovywtvmkgxollgq}~~xswxuvzwuimhl|rdays{}~z{wvolxitpmkkyv|q}epn\nijqtptti{{{ytytzhupftvyrsanhj}yz~ffngrove|{qlhfg{nvyinpovxv|rwp}z~}v|o~t{t}swus|x{qs|y|o~ww~|t}tx}r}wvy{~wy{v|}zwx{~|v|~}uwrwyx}}}tv|}yvrrw}zvrvy~~{|{v{xuzzxt{qovt|vtswwqpw|x~tstkou|{}wyzw{qw{v{w|~~vr{vu{~vxwuv{}}ox~sz{|{|pq}yo|}{}{{sv}wzx}xz|x~~vvw|y{~~vvwwx}~zx{{zwzytvx|{|x{{}tw{z|}|{}{z|}xuy{|||}}z|z~~~}}~|{yv}w|}xxx~xww{wrtx~~|z}{}}}{xxtz{}zsx|{|yrt~}{xx~|vxz~xx~}~z|vtt|}z{{zw{~|xxxtvz~~z{{{~|{yw{{~wstxxz|wxxxxxxzyvww{~z|{|~}{{|}~{{}~~{{zz{~}}{{}|}}~|z}xw{}y||szx{}{x{x~~|{z}{{{}yzw{}z}{|zx}{{{}}}|xwx~~z~zxw{}yz||{||}}|z|}~{~xxxvx}~~{{}~||zxvvz~}{zx||~~x}xvqrxx|yuy{wx~~xtqsv{}}}wtxwuy|{ztttyyzzut}}}~}~xxx{{wz|{~{{|z~}{z|}}}|{}zz~~|}}{}yvwy~}}}~~}|zwz|~}~}}y|~~|{}}|yx{~}{{}~{}~{{{z|}zy{|~{{{{}{wz~|z}||}z|}}~~}~~}~~~~}~~~~~}~}~~~~~~~~~~~~}~~~~~~~}~~~~|vy~tt~}wxww|vyfZlg_Sv}{y{uo`bsfPQi{r\cwx{evmYUUAVnse]iovzrgk}tepiqnpddooc^els~tbfy~w_\`r{twsgkscXZV_{|pv{{uwql`doH;N\cf\XZ]\iǣ`rhYh`\rzzts|{hbk\mtkpiivywt\is`e\qrcrk`dyh{|k\xqWywgozj|oZ~lDbyN[uymunq~|bSWoyhY`Un}fXx~bTZcslVYm}h\\]xzqZ\\]P>MXUd]\ipr{iotq[VolPM\zswrcW^ZSYPKH>HPQU_lnfzyļiMLJ@>37B>?RZZ[bvnq]Y_PEB.!0ALRTGNim{up~}snnsfUNKJKB=PYSVX`iqw}}ýoV=) &8FO\JDOG?HMW_bzwîyr\J;4+'9K_qжw^gTMIXnsaGXlYauxNIcT;5GO4D]gihhctkp{ww}ui_WRPPRV\bhorq~_ZidxzycKDYaf}»kVZ^MJS`süi[VWy=FcHnX56NeXSkdfBAO\cedmv~fJbf_\cf_Y_crijx^`]NETgfr~ufctvnryxor{mVWpyh_fv}e_tt^vgqaQgmf]Oh}e|acyPk`5AE9=6]LB6KI9KUH<]XYn˽ymdJINYZS9oY@ZWVrredTcgbnn/Vckpʼyzl~{owm[ltYxOopgxicUrUUUcru]W<*.889?H{bej[Vnnrv|yzѻt_TE@.&2C65;N_\YWW\Y]m~_e}}`5?B'#3DBJXhx}iY_v{y|wt{yrv}xq[HB>6JSQbuxw{pSa~p}y[TSGBPYewzylE61/30DT]]qʨl`GHE65EGMSclltдYDEj{clsnrxtisjdlncly{y`OxdRkq`moyyrmry\RqȾtSy[AHLfuZDZjIEcYW=4M`dyiz}^filmuyyZZeXUPFBCGQ`rÿ}wsojijmpv}Z_O6J4)6>=?:FRZivǾŹ||{kW3-4 /_`<`Ű~tk`[YZXZ]cekqxs~}|tw}wnszoutmg2:@8/&;3JTvstme?T`K^Rxll{vg{oZ[Q^ql||ssutµv\YWJ;;[M5')J>77E]Ybuz̾ʸʿxpu_`^VT[LIKF=:---.:BRVToputɸӭëzbilq^akX`\MKEK^`NNLKM^\WQ[\Zfsx͹sc^V>;4,&)!,301AFB?Vrp|þżjiZIKF;8?B<<@JQ\bnuq{zxwkmyt|j˥䣧Ҏɫq\cbe,BbRD@PXiknéyomldclis}~wxua^LILE89=?:BQVddl`xwSS6LQL[groȿ״}}fZ]ZLH5GB!<2*>@DLCQUWeYvȻؿİgbQNOJFOaYU`jf_\_efbKOeec_t}}kYOPLMAMVPYlYH^akocRg\GANv~{{`bfZ\VjuxqumpwshekS`u`f~xpacZýnP=IbN;#05/4JWUXzWh|ZighbJWkjꥋôndyp\i}}s`rO1 B#Q V@DpWN~ƨŨ}}mlb_70KKcIx{έt|[\LinbR>Y\JGOQ]\[WzlyuMONkHVbbO^wmFqR^ZqĹοŭ¸xp[]KBUPP_lHQNGPPGECCCFTemm{ǼɾÔ~\JC7C9>7Ichhogws~qnl]prl|wlfZOM3#*,9;JE>Xwwռ|_RcbQVtxHKjR>F@7A>@gٺy]bdzxBTf\kzzutmcnekgbfhmtygRӹͼCpg`CEUK_V]mwf͝~q\\gkKA5! '6=Ngvu~{X]^tKWh^vƮюDsznfWF +MVIAO?Xġehtrcje\cVinkistymdc_WaĶzxTE3)'81*"&#$19?Jahnżï˲{[gaWFPRQ.ESqTcL|zYr~žt}^{|U|macWCKEnXMttfzlvLNciSkzikhr}kbTH?GJ+Rm>5^IZsQqa{~swmLWs^NZnpb`K_`ELVLMQWUYs}ȿ}yyngkhnw~zx~k\D+*2JLVlqnZXprm}xz}xvqeXA:;7:=?5:CH^~|qh_UNGA@HRasɹqYTKPOMNPL[`Ueenfbldi\`cWUab`uwYdXZaRYYLU^KduDZsx|utp[mptzem[>XBARJINWQjeg}īvlqu\ITMT_gvzhztsrzv~z]`ep~qryr}|xvynnZUfVHPNhdszwxwwifjWaa[F7?;DLQIawxuytt}x~{okhZ\YUR[`if`fZ\i|{SN;C9N%)/() I;0YfL[cʾ{]cshmc}QHoaCkvn^7pVRN~A^Xxùs}]~bLul[if`x}r`dffmsfyorg[c\Xcv~kypVNQCFB?ECDIJV^czx`RKEEGIBOX]N]fhq{luʴ{uwt^nzhpaTE82?:JW_mxq~¶~{phd_][QMQZakzxqxyod\VKIEMPPTTTTY[fho}}r}úyrdG74)&+(2;AHMPV^hnx||m[NA95@DAJIL_dp|y}w}{fTKJFHLSXjwqu{rj]]kv|o{|zj]bfjx~h_N@OE3JRalujʵv[OOCPQKad]VR[bb^`\e{ɸyjmfkq{v_[N;B=M_p}pidjtzѻxb_LQ\dlqzrhZ[Ta]dpz¿|mI(22D59Qciq{ylmn~_k[Wok~qsW\KaKYsbtsy|nn\sYr϶ıtgkOL>CKBddxce]kfk{}XTA3;>HBhj|{gpbpƷfjfaRkdfy|y|kgdkarraY^^Uyt}}lks\i`OM?E7LTTjqxwsphpquŶzmrofvkm}`H7?83HYkz~nqfjdv{xgopi}q]ZNOYYsw}na[SMbltflizybSOAWhv{}bfnnxmp_XQ@ZikfSGJIY[t|οp\?0(#/4Natwwqhźl]VRRTeiqots\KRCCYbp|qtv|k_]HNgz÷pUPJRSgvuvtUfųupaNJP[\q~|jeYO`szUM\HBak_sqϻ\[^QG^`aSRTA3?62HargVTacg{ynsð~rTDDRGJ]khnncY[[P]r}lcZ_jexowicɺcUSUKRbkfmlWCFB9G_pxjUJVaam˼kK7+//.?SQUc`U`i_t|o_SU_ep}ikWRr|ztXK?JMWpypplwƻx_B(!&*2Hbun|jce^\tθs^U\W]lv||{q\[^Qa|ʸqXD?KLLdsmum[IQJE\xƮnUM[kh}ng[JSq½pUD67@CVpu|squiiԵkSPYWZiskneP=?/'9T_~weSGUnntμuW5 !6U`ppqzjrɥkP;;HN[tvr^\[HIfzǫ|_MHHMVivrsn`SVPPhֳ{\OM^hgqwtVOA*9[lŹbNIFQ_rygB%  0CDMkgIeq_¦lQ9;9Cd~sqrzi]VLTkw|jUH@EMR^u{{e\_V`űh]ZZcnjec\iƾrT9#" /DLQ\`^kwçoUCA@?HW[Yab\dfkƾzj[QUahr{b\`_vôhM:*$)4:JZcfhfaknzŧ{gVQQPRZ_\YVHFJKZxǮr^RT[]cmuzwlbjms̹ybI=A@FQVVUQIKMPb|Ļ{jXMIMUZgtyyyqinrһnZMHJJNVYWROEHJOe˽p_SPX]bpxzuvmlsyʪrYA2,--4?<7?CQrpd`ggosmppƷ|bM>6;;@JPVYWPNWZiҹudXW_]dknlg`TVX\uȸiVI@HJLXVURMCDKNcӻqhjno{}rjppxĹhQ?6399>FJNLG=;AF]{зtqx|zm[QSTdèw^PFBFGNTTRSSPST_yǶ{mddlmrz{wrkb`af{Ĵ|eQGADHMV\`_ZMIMK[|ūnd`ago{z}пsY?,%#',5BINQQOV_iؿpfc``dc_ZSHAEDNktf^ahnw{o_`^^tǼq^KBAGJTekqsqjkxy˯|`LA=<>FOZhorpksmmоuZM>=<=HR_hnmbhc_z̲kWIFDHQ]hqx{rryn}ͷtdLA<6=DMSWYTNUNTiο}pbbfjqwspctžeOC68?CN_m{x~pví~bN=256:GW_jtxpw~|θr`NGEBEOWX]_YPYVYl¶}l[OQUYduxrtʶo]G;<;>HV\dkh^]d]jįtaNMONUdvʾx\K7((+.7HYbq||s|vër_OMPPUetvqsvaqɹqgWGINKRdtrnryapɼsiTEHJIOduu~r|ǰv_EEE@BRb_lzqd]iURo{ƺx[X[UVdz~{ya̷{mICG;HZh{y|üv_LE@@IWet|qytcJ?97529DOZkx}zovqn{k\WUQXdqpbS;20)*5BN_wĿƵ~fQLA@GT]h{xr[grwsWJH??FW_oysTLG<;BQT`tzzkpj^tİfa[SS]nozet~|}vdD;;/-9JMZvĿz]WH88?CHYilw~xømWP@6=DJUhw~mXSB568?HTds}{t{ue]VRTX`kxz~vk_QE@:?BJWco}n_VOJKNT[cnwxzlb\WVZ_hq~ztlbTNICEHOWcpwxod^ZYY`hmu|}tsxuv}unib__cflxs`PG=79>DKYeqsjf`_bflssrsoqy|x~urncYUPKOT[cq}re[VMKOQV\ekr}~yolkhilqx|zxvtuux}upme`baekrz}qd\QHIGLSXckt}~xnlkjmpw}{vwwwz{skg`]\]bgnu}{{xuz~xnljkoty}wtrnrsv}{qlhcdfks|~|ux{}wmhb_``eimsy}}vpkghhjmqx{{rmhffgmpv~~{smfa__^cikty~}unljhhhloruxz{~~~~{zzyy|~}yxw{{}{zvrrruv{}~~|zvutttw}zxvttuuuxwuttqnnnootxz|vsokkklloruy|zuqnnnptwz|~~{wxwwy{|~~|zxxuwxz{{}}}}{}~~~{{z{{|~}~}}|zzz{|}~~~~}~|{{{{{}}}~~~~}}|{{{}}}}}|}~~}}|{{{{|~~~~}}|}}}}~~~~}}|}~~~||{{{~~|~z{yuy|x}~~~~zxytr{tz||}~yutrklyupv{{zz|rytzvfg{ulv{~}}~sotw}i`zfn}z}pvlp~dpw`^~eswsznjjmvbYwffw~wwqu~mr_evdZzmgyvmplu{ardjgKamdwnxdnu{hydchXizr|x~xlnwdmncHVzup~qomwsjnyZI\napx}cgvnvdTves}zzvo|ofnEOqmw|qy{qytdt}vl`B9Zqdwz~toq~xgx{wrT?Vndp}|wo{kwyvoZ;Smai}uupzvxczç}{P=beWkvwuktq\z{pHVoma{tt}vtr}wszvtvXJkzbp}sluolperln`Jkzck{plrfz}}ylhcfRLthy}pvnn{xn{nj]Gb|myr}o}y{fp|vlxWWesornsx{}YuocciNruyruktds`zkYgXQyywvvpqv[wr`el[tvwvi}mcp{rsuycTe\b|vzxajq|jeS\Y\ywx{bbduqlZ\aUi}}lfnxowe_^Wi|y{wldjj~}g^\Wazxnjfl{z|iZXR_|}}~jhfdz}sqb]Xaibedkol_\VT||n^hiqome`ZZo_ddosmc_PPss_gelomc^WUqwbhaipsc_[Vqy_faiqvl\\VlxdjfdivukadXk}_[_\zyv}zj\`[d}pciexlreebbsbfdnm~lh_f_ys`adhn{ne\ccw}t\^_fsqh\]]lgc\avt{yk_VWebd`[r|{tj^[[d}ede`r~w{qk`\fcbg`on|kg\^`iaa_pl|mg\[^{h]b^le~mg[[_t`e^jhwpk\`]z|{agacpwomZ_`rz~jlf`~t|uvd^[gvgdj_y{dzpk\_dv~jkk]wh|rl^aa~z{mhlankxoq]\_yz}~qklblqyss`\\l}{tgrhbwxque^apvu|ubmegw{xqg[\hzflf_{t{umX]exzygmmcqoxrt^_azz}whok`lylpWV`|}xskoobhxynv_XWt~qosohm}~pw]WYvrnnmcisy_SRozrqobitw[TWq~zqkmafpw^UZ|~ywuopaioqXNYz}w~rlleizosWP_zvwllin~tiQMauykghnwwjVSo~}|njp~uu^UZvz~{yjfnzsjTN[x~y~{gfwsx_KOdy{~vy{ymk|rx_MYnuy~zywjnztvWI^vu~{vxwjootiLEd{sw|xvujzswgNIjwr{{ttun{pp[K^ysxxz}qurrvvmiWSi|y}{zrqmpzvoaQXtwwysvsxzsf\ScsyxuuvtldV[mrz}z{yywwzwdmbYUz{kaeehymglis|}qkbfpr|ytxsegymtvfqxnllfs}}|smqjdpohj__ztxz|l^]iequwjQVewx|zdbZUi~j`\]s~vnwkbTcxxgb]evuthX\m{|zf_\ook^^cmr][_mxnwZP\o~zts]U]updrj^_mvedxliv~fbmrcovcjtkk{ufeue`qtezqgkv}}qekvdimuxlhmgip}}rfspgfj{rxqkcdtpmoe^_qzsmf][pym}m`UWl{i^USiti\OTfg`XRg}e]TWiwe^ZZrtdXU]sl^UYe~h[MOascVPTnpgTNSkze\VQ[rwg_VTatn^WVXjpcUPVmbWNO\wyfYMNbxl_SOTlhaTQ[tbTNN^ve]SRgsaNKSjk`UR]u{hSILa|eYQLRki]KEOnwaXRObyfYMQhr`WQWotaVJOko\OK]x~w\NDUs}s[JG\~t~_LCQrvwbMG\|tgpSLZyu`tsZPc|b\}~g\Yyl^]yjetw`Vbzfqmj\ls}[[igdh|{rjk`vw`lsbaj|jjtigohaeer|}[bnngt|s{`hu{plkrgyvvugfsulbloehoyyynmq~nhghkxzkotrbgu|jxolpctnwrglsaiw~}skfgpkyxt~vibevtudplrzoqutq_h}xx}xyvtp}}~}us|||vsljix~rzskb`f{vurpjqnkp{rtw|yxtvdiuy{sk_eixypmorrqmousw~vnbunogtwxhc]j|xoMCH`umVJ[mkx|\Z]j}xa[Zro~ojevql_^ars]POnddZqnp_zt͵^NOeSondS`E[idƨYYOvoz~v_biXGtdU^Wwtl`[gHQjpt\U[ro|prmhA`pm}{^dQksyx{zccn\CjeT^OquwzmfuRRsjp[[_pqwhefe?azuy^]Sds|kllYFbt_]Kap|w|hpjSGhfaWIi|xv{}jtiTGtV]POpvvznhpfHUUXRP}|~maihQ\VPTQsuzqdlhM_L}RZYvssscgeYiVxTYYqmnhjgY``cX\Vunihfqeb`ēabS]VqhkdjokbVmR]^R_oceq|smRǜca|iiXdqhe|movmWŘT|[bOevnpo|mk~bVUbbQcrn|sdm`zOlmym[SWcz}qw{w^lhtOpv_`Tcfepthouxg\tt}b]Y_lhr~yfyyych{sgZR[brsqpimyt^oxbZNYepw}qq`kujseTRjks~undjmx|hW@S_rnsLB_lrqtzx[cvtt}kdwkepw|vpnZXl]u{rvdtjjijrlvU[XbpprslamuyzZCR\x~kQPGlo|}szeaanjpbc]_izvxiWZ_uy|qzukZUXsmtNDZcvXNYg|wsrֱ]=/?^p^9DN^o}u\LZa{rqX>Ue}ueQJM]j~dTBFO[zzZFMTaifRAGPb}qOFRafp\JMP\oiYJNcqjTHDPa{fRFFSnoT;DYjľvT@ESkkN;C]g~vͯ~fB?Vm}x`FCRixtȷlVJXkxtßy^OFPbwsiţuKEGPp|z̵kK@AMmpÖeOA:KssŪeP=AUkrǫgR>CYu[LANZuyWI=F[wQE9H\|xTB3@bwN9*Ca|\;1Dixv]72LhooX>;Wyo]^7ChqMurCFfxN^«}RAXqPJytLKw|`V[Ű^Oe}gUOoŭa\wxrVSVyjki`WbewjwYV^hduure^pnia|ekio_fi_mtpRpxuRY_uz~c``kWWq]Q]qgtxxvRK[t~sQz˱u^O]c_JkeVneWYVmuldOJ[evtlvdXVqr~|klei_tyhtnKPgy{w[MZygLuwpkqmdSX}}aFK@Mo§Q57DK]տȱVTXYO^mh{ŻLMeqiYe^npyJGT{~̸[CPmg|yspdxkxxcNCCatlWFQPmuxdT\qznaffshyh]xyl`ZNZXb{t}׫RIIp|xV88:Ef}kuٳÒWGJYHt}[PQ8[vf|֯³}UDTRUzeI99JvZZΦOABPAs|ˀsLH)GhoGәlVLVU[z~ǡ|RKWKVfTþXT]ybmpmS[Z[srCzĠIJ\PLtmlwšoQOXRaYMưĊ<:_uewm^>^OX|IϬĴRCCuiaĂnL`[Oh]^ȲNOl^YtlbGfSf}DѫSFrPKGe`C`Ozj@={Qo[Ka_GXVWJ=]]cqXer_HaJY>[`WrTdmdMj@[EPjM~XWlpSu=˰lJHIx\PfrckCq˴oPCmZfdT]nd[JbòvLBi]lk\]`]`Oc}NG]}Xab^\iaeU^|MCXeggaW]ZjaUPGN|fq}gb]cSglKPFVu_mx^ebndfsZMLaomz_X^`^dvPF5Ozge~lR\UT^yPåP:Qo[b_Kb`XcePHShetrhV[\pT¹~Y4ORk|hqdc]oRgGHkQkvR]^`flY_7HgVtxaZeaic˞d/S[[hf]a[eakO6XLbl_`ZX`kgطʵx_6JTGjfaTUQ[~OûƿrY;VEN}mcfSP`_|˱ŲrHRYP]ofaq`]lsRŷmYLdYXn}|uVTd_mE~sHbZYglr\YghrIĘàleUv[a~lsuz_Zfv>÷s\;hodwa|tvrdhfhwİ|DGjjs}|ok}psplm^ӚrI]fniu`aociwU҅i\a[lhs}znHsj`pbrꉩ~WQYnmpvy;EYnu}SѣTWDg}z`MITbtDžS_EYqbUNNQt䚫RNEM^wɧnJPJZ_y淿bK7@\rs~^TLQgh}ްǥbWIAQlh`\MW\sq˹~OSCNopaeDVYxsvѲOE9IWrjmQ]OhqxeWDC\d}nn]aeuvzħ[]DX[n{~zsY^[ml~Ƣc^BJ^^typojjns۞^^QCU}olugrZm}}뙹`KJUXju}WlenZjsҩū`YLSPm|nhVe`g}}ۣpRF>T\mfW\QbeurϣVP2Sds~uNITTE`ȳbaFIZq`LHQ^o}VL>Tampi[CP[nkSJZct}^DH^sqtlI@LpqqWCGayhnz\Vg}nhvk|xi^s{|e[XnpvvnqvjZ[iyfmvkfrnhy{yjclq{x{wnkhztzktur}u{v~yrnnwvwzpmtjz{zttqupu|zuzyotustlsx|vvsrnrvgq{wyzptq|oyyt~|{|tjpql}}wpe_wptpp]gtmut{Zfoyj~~dYlUxswmkzxyrmpWo|{z~}tw[i|zq}vvy{r{x{|oj`dy~vjaor|yxxzo~ovywtvmkgxollgq}~~xswxuvzwuimhl|rdays{}~z{wvolxitpmkkyv|q}epn\nijqtptti{{{ytytzhupftvyrsanhj}yz~ffngrove|{qlhfg{nvyinpovxv|rwp}z~}v|o~t{t}swus|x{qs|y|o~ww~|t}tx}r}wvy{~wy{v|}zwx{~|v|~}uwrwyx}}}tv|}yvrrw}zvrvy~~{|{v{xuzzxt{qovt|vtswwqpw|x~tstkou|{}wyzw{qw{v{w|~~vr{vu{~vxwuv{}}ox~sz{|{|pq}yo|}{}{{sv}wzx}xz|x~~vvw|y{~~vvwwx}~zx{{zwzytvx|{|x{{}tw{z|}|{}{z|}xuy{|||}}z|z~~~}}~|{yv}w|}xxx~xww{wrtx~~|z}{}}}{xxtz{}zsx|{|yrt~}{xx~|vxz~xx~}~z|vtt|}z{{zw{~|xxxtvz~~z{{{~|{yw{{~wstxxz|wxxxxxxzyvww{~z|{|~}{{|}~{{}~~{{zz{~}}{{}|}}~|z}xw{}y||szx{}{x{x~~|{z}{{{}yzw{}z}{|zx}{{{}}}|xwx~~z~zxw{}yz||{||}}|z|}~{~xxxvx}~~{{}~||zxvvz~}{zx||~~x}xvqrxx|yuy{wx~~xtqsv{}}}wtxwuy|{ztttyyzzut}}}~}~xxx{{wz|{~{{|z~}{z|}}}|{}zz~~|}}{}yvwy~}}}~~}|zwz|~}~}}y|~~|{}}|yx{~}{{}~{}~{{{z|}zy{|~{{{{}{wz~|z}||}z|}}~~}~~=}MAIN@    hcljljenlpknhgfsrootzrx}yzzxt}jn}}{mlosqupg^_XYYdkdVJIALUaaenpwwuzywwyy}~sywru  !"#$%&'()*+,-./01234qzulmlv{zkjjmb\XMMOW_nmnokohkkfgbfhhkj^a_`fhmmkdkqjqmfdouqnooru}|x{xxtwql~|mimrstxnd_U[Z^pkeUPGEO_dilot{zxxsvx|}{utwpitmvtigkqttkekje[VONTVamjqlkmkjieccdfkkid]^`BBB EB|3DEEBUW?EU B+n3F" 00zF)m30?ELBUUB?W T3F9up* ``@EUUP3C??EA}D*B?TEUP) 0#FBB C_ @! K3L2??EBoD*U_B >W*B4EDUW UTF*PB@%$3L0O?EBFPBB `?U(E@C4EB UP )@|3DD(_FBBap}_FU@B m<0 ED*D `UJF*@B)K|1 DBPU@D 0UZF -0-E `UjFD  ?_PBP0I E UBD 8`U@B 0E ^UT*ED  ?UB R ?D xx`~_@+BE ?*B@/C0D _ DD `p0}B+l <džBE ?|D)PL$D~*D?B@ լ<B 0?jF`xB@B P/RL0?xqP @ Dx8J><9xq?TPxxկC3 BÇV@/D ~~H @k*>340/_T+/ Vx8B bCBF8 PBD@  @@/m FO ԫD fO0PETD B љ/ -,PHoDpDUFT @%}<@8p-/Y PD f1:@FP 2$ÂP D}BPB =/F-,< JTiC / ,B B/iBK%/@/YD ÇB! 0(|0 pツy@&w8WK0qLJ =?<@D>?FF ) A F,xsB@>,B &<><LxB }kWD!/P40 3<<s, Cz3  BFD /B34< Љ?3D"BF /$4 @@C"3KB BF<0PBJ8B 04< ?@M3D֯UUuE?@ B&?0mo'8?+UWPB E*0? 3<< ??? 1D@B;FoA B'<?32 ,< BsEBC2L t0o=?6DBP?+ z-Q/@gq/Bk@?Ѝ0?_ PT @880&? D ª @ l<D G;KBD  ?F B @~D _Fq,xB P+ /CDB FBBh pÏ +,s 4FFD 7PÌ88B @oDD@zDYFH @W@B I-DR+>R!PD?_EdД $D +B;@DJEB 8P@PB 9<T B|s @B{BW@??8pqDE W ɼBB0 D<8 T@̚cP>D / EDB EU"$B 8ÀPB-8pB;EF 0o_B soB@ FB &<=?84EBL<E_DfDFBll˾E?D`Dm @ ?4DD > 2?@_@__D@,D/B*@2<κ,E`88 *EODm? < //@BB-y?;B   .B)Z<@ D<Ͽ L?/B+|/O?"@ ! I |_4O8BZIg^-U@8<PF`>_D<(@B@E@ WD?>|X T _Ϗ>|ϏB`@D`EhBDO?<(Bc@E Ǐ<ÀBXTBWD  _<X0 BUT_DD PB*EEB(E RVV0*BBE DD(P D UP* V^B*BBDEEZV$BE aH* B Z^pP E aV)T DFZW{B@@ExB @/ZW@Eh+D@Ezj$B  FahH~BFժ^jB4KEYh_B @D*PB?^lBFD/HD`U@B-UWD 0?ED/BD @ ^VD 0/EDa`a8 $FE*@UUD FEXyx`~ > BD 0VVE0 ~B03?E`BB$BUjE FBW@@BDD BUVpD0 B xyB ?EB>UzD,Ppxaxx{BD:UZ$D KB à B,B?D U DB?KB- BBDUU_  >xBd B?D00 WpTB|>(x~B&8BED\ @ /  B?D00,W @BoBLJB@`BE?DB<eDpBDB U]<B x DD ~;?B!@BB"ԿB BUx @lB@D?DVBHPB I`BDB[B @_0B?B@uԿ?Dֿ,WBifP/@BFB^ 0$0?T?BB_?DB 0j0?? y*WԿBF D U^B<  >H+PU/@BF?DB,@B0?ڿBl@sAB ?`oT}/F @ BB [Dϵ d`+?DB @ B c?K5) B }`+_<0 B0B ?+BPB @/r+F?DDF G?T-X {? 0DBZ @*F?D B F ? D @@E0 PBUB F-B ZX  EEp?D" F !@? e$WKE? @@EDߘBx>DD 4?DD%TB~( -E?B BD!R6wD (?DD@BE@?sD <?B@B`D4//߅R2@??D?DB!QVE0W/ l@D? @$ BRE*!| q/@?D@` Bԫ_B$tBoF 0L%@%F@BB _J `l ɘD $D`B  B <ٳWDJF@?UQP0BBG;2d9??F@ ?EUUBDK 3</F[00ETW0DPf-UDB?D`hDDD0'w:*ʏ?0`D`x?DB3>?Eտ@ / DEB/xT B/@B4 UT@C DD+>~D (`+B@BFBBPBBPBDB_B߀B`BTEEB O@WDD/BB** ?BH  BB D BB?DDD DhDUUbB @BZP B D EFB   ABDjE8?BoB @BZDFDpD _B @@DEEB _DhEB UP%DD*FDDB QEu~B ~8BD0DRB @*PD{DFBD8ЀBBT D`B0DpBBB @*]WDB `_BEE_BDhDРBDDDEDDDM? DE DaD@UߨD DD UD0_E }UE @?$TjD@B? kFBDP?F? ֿD ?*FBDP ?JDDBUF /׀@BDِc FDFEQEDBU@dPBJEFB??/A)TDBF*@B? T&LP@_B*DEx?BUP$ͤ TD @~UUF@*@DfM-FBX*BϿB @iBDBB*UE E U*zUEUB@E@iBDBU_UHEUBF?B&ODT`_F+B_@_HdDWFDBF?|< !o&bЫuPԿB_F*P+DT(JfMQDWF PBBF??| jKMB |UEUP/?E϶*B!D TDO`?FO??BT+[BMDU_?* ?F<88lH@-PD<<SBB U 0FxqBH>0D><  i.Pٰ@Bg8?UOB `x~ OD?O@BBD̉4I B@B0ֿ+/O?B&10@@/@,0$,UT0 rK?/D?B?EE ̙30Œ 0Ф&38?B/>$B?d0I BBoB3< ?^D/T/DUTD330?L,,4- @sx/B/?DD s@ 0@6,1y?BD @@ʪB++`_'9   ss `B  ꪫ33p? <,0-HsqB@ OF/?UBWկ@(Blߴ<,@B@д H 0V26  ?+UU &#7T  8F<l??x@Ϋ E?@B'|4BC@ H0 xd-*FB8?T+?}+K 0K4<  0<`/UE ?B/(??+<, 444 0?; @EB9D#P?/@e= C,q<D@F 4U@+?? -tM04 @-0 KE?-WJ< H|< ,s,B,@kԯ?>@C$ r< B@D_NUh_B#|< 8c<@ @Dw@,BE)Bx< @p< 8s?@?D0p?* */- A3,Ѓf@<+D` pߡ2)?< C<P9`<Ï?EPFBnEBА< EPD,>.B 6,F@/B_DB̀o@ cp$Dy8Ͽ  I| B `< `?ҭB0B y @Kln B?B{T^Bд @<B xB PBPH)Dgq f B0 >@B9<]/F!HR> x@?D8>E 24+@2_@B !?_F 9pBE-kP?<F<?zED믮O<BP B ED |ZX PB_ꢊ( hh` E(F JZx B Phh|B*EF@ ZzZUPBBDz(hZ *T! D `@U jz^ P$E aUT E VZ/BD$`^@ ?j^ @@EhZ/FVj@ $EXXB BEנB04BEahX_BĀA^^8 B EgaDD`U@B%W^B ?E8D?BjPBWZD@DX( @/D@ EW^D @$FD xah`~ BB B/UD ?EDÁpg`HFB`BB^^E DD^B=BD ZUD@(U+~Bf@EBB>V0D, `ByBD 0zW@DByB a6fB?D >^,D BB BBUz0OB  B @B?D00  BxzB !y@ DB UU B 0~8yB6pB?D000? BOBB DBBUB @B?LJ @DB04 ?B -B@B@D8~BUU߿ixDpBADB0,UUq @@UoB@BW-,B'0!@BD/B BWꯀ0QWB?PB 1ֿUB j H0tBBB  00UU=^@ ~ېBB_@Wׯ0BB y/PkBF@D $g׿@B0$oD̀/@D @)PU/@FEB BUдY@@*@)D BB?B?D `+EBBEҿhP5>h?Kܿj0F@ 0DSBJPTB `/RFEBD/EI ـ~@ F|0D PDF#V zM @+FE@BE@BԭmX>UE00+PBTB F DihF +EUUK8+E+{w(?D/UU/@EDD ?H@@EEFD0DE?D *K@B`WBEUTB+D@B[P?EF*B0*?@@ @p B`` @ꖠBB?EW-BpBQ*ڀBPBDDBUBBo?E@BBBUj~?`D, FB@@B ZEEB U( *pF^?0D 0EH }Ԁ)@QD* E_D( DUB BB,D `DB )P UDEFDB @BBB D JBB PE$(?BB*FxB8 DBBP@BEF PBDB_@FD^ PT0` DBEFD `D_BڀE_@s@BEE ?PB?F@B *E@BA U BDFU WBE@ dFBD_@qB ?BBE_@B @@DEDE UEFEE?BBTB REEDDE|B+@*AE@BD D@_?ªUPgP BBB? UfyE ~DE*BD??z5i  UTFU@P"YE F@BPUE?? W EF@ B]E*XPI@EBUU~UTET(/EF??<" VfKDBU__E*T DEJX`CEW P/`F?<UTAUjUTB+?E|*ZJ`I+EUUF*TBFo<!Uiٙ+//W@B/?E@ ZiE T*B FBo JyBybDo=UPD P FmB*^ה;EUzF@BKFϼoJk{dD/_EUT(D <<T(VBKEPB ))&`?F