2IMGSHEP@@@ 8L xC)pJJJJ IH(ȱH:=IH[H`@H^H 2 9 @   I/H`JLNGȄBȄF aK ' faaFF  RJm# KKJ qJ )J ۈJJm  JFȱJGJKaȄM ' 5aaNNJFLGJ`aa8aa XL LG &PRODOS`DaElH$?EGvѶK+`L XX LU ŠϠĠӥS)*+,+`F)) (*=GJFjJJA QE'+ '== `@ STSP8QSS8 m P o R(8RWAP2020.1x6' @&PRODOS }<  DA.UTILITIES'!2x,NDA!2x.CDA@!2x1'STARTUPD [x&DOGPAW @=6'READ.ME6xx,BASIC.SYSTEM(*+.BASIC.LAUNCHER,,FINDER.DATAx5yFINDER.ROOTyy  !"#$%&L !C_" %k"l" (#M8( % ) L*"m"n" (_7, )7(P0 ( @X p 8  u"!_"f"0 ~&f"0 %o"p" (,) &q"r" ( %L*")0I0hx H( + %Щ ߩu"L! )L! 8'  )ɀ)4,- U JNT) u"Ls"t" ( !` ^"M)Fi/ b"3 h"i"j" e" iL X>"L;"ίΠ`v""""""*$ Fk%YeQP!/RB}QBiBB}\ }FEL,#> ȏ6 . ) ɘ"    L:#:#ŠϠĠԠ  m# m# J Qڨ)̰}] нȱ ̀𩠙 i V N c ɘ\   VG+ #X ɛL ' 0% '8 Jm ʈ0  0ŠϠĠ͢Š͠͠ϠŠŠϠĠخ͠ ͍B B(8`=YYZLYLYLY뿭` 8!@8` %MNЩUMߩ  L 5   8 0 8  `0 / X& & +&&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@)@qvȱ@Hȱ@Ah@@cqe J) LL LJiB LJ) BxNhHHHHL(  ްƠx@BEOD  ް(`( C)CJJJl`B g-`J,~@~@}J@` ߩ%S @ ~`E hhhߺ0 h ߐ( ߐ ߐ  0 HϭߍLпllllhh8` Q)T'P#) ɺiL? )?      `l@Hȱ@IױHXATȱH ɯȩ׍̎5H)/@a)_ .0 :A[8@`,뎎׮Б` L ` @>O)I38 I`aם`K8`@Nȱ@O@ IiNȽבN)/ȩ/N`@[ WHJjjjhA D'KI؍0JHi 뎁`C8` @ 3N@) K莭 ⭪i`0 ]; 뮁ٝ٘ 0 W,0 .H hȑNWȮّNW8`ٍّNΨ0NN` G8`F@ 0 H LK8`6 7I8`FHGH hGhF܌ բFܽܕF芝ܝ 밶67 8܅I m9IHHyHȘI Lܝ` @_@ g@Ю׍O)mיOʈ@mȱ@_ȱ@iklbJtKuO)5OI0ܢܽ eL'A* 7`aFG (CD Lz܅IN mAIH` pm mI0LM AOHJFKG 밳JK 밨C%܈@" T)Ii)܍N*܍A'ܮ( 4 䭐 $H %HFFHGHG 됬`R8`)` AHO` 'Q'܅IHHOOЍO@`8 ` ͉% ΉQ8`܅I `L܍MN h8D`F` alH)HFȍJHGK $%܍&܍!ܢ8* J8` L ܝ:)I 'ܝ6`B8iNFLGM`B܅IH3H ( )ȱHΨ`Ί8AeHI SB60I ٙGٙEFJCʈ h猪`8m0`,0H hi PȽΨhٍ0GF8yאFG  $0 K01 E8`1ݺ00 ] 0ʩ 谼 谷`12)1`0`Ȏi 0U`)8`Ψ` W |G 4A)H ܝʈh٭0٭)ܝ٭*ܝ٥F٥G٭'ܝ٭(ܝ`)َ 8ʈ` 0ٝ)i `8`R ꍌvw zNمFمG < Ό0 FGL鮁0 ٭w٭vٽ8`H8`  ,v w 8` vw `ٽJJJJ`H͌hn)NjNjNjN. GH͌ z;٭ *Nۙ۰ڙک `Z8` G# ,`w .w .w .w8۰*Jv۩ ٰvw`JJJJ;i z묁͖ zٍ0  `H8` `ٍyٍiB0H0FG h0`FG `ϩBxED0C ް(`(8`ؑ@`M8`8@ؐʈI묂)v8vv L} LةC8`؍)@ i)v8vyJ ^ ؅F Ls) +%J(a .FإGؐ.` .JHIH IL3FHGI ҭJjHIHB>IؙJJ [: IL}HIHI`JKJK`FHIG ( Ȣ؝}؈JL)eKM`)` J vJ͛ $0 ΊJFJL8`JGBJ T FإG`BH TFإG`,H hHB؅F  ؅GxDE؍00C ް(`(8` zL+J  :"L zH  : 9ؙ` @ P8`K8`B8` H؈OJJJJحm) ) )Ю ЪG `F $ ᭔ع+ؠ 6H  Rh8` 䮁ٽ ٬ؠ@` ( H )8`)i п` H h)N$% LL L L 6 &pJ덟 )@።NJOK 6iKKΞΞ IJΟ JФ̭JjHFIH HIGxKE ް((H hH h8`8@ȭ@L6쬂8NNO 8 ؍JL`RΞʱLN1MOMEKP/MEKΞL;L-M O,p莝eNNO(`JNKOL 6/ &P L8 } [ؑJ`L@ȱ@ `@Nȱ@O`؝}}vIvؐ` jzؽ}؝v j ) j؝zv؈` ` H Th)N@ ;; L  6$ )bJ ] ) H 8hL )  )حJjIwHIvH؊ PLKΞʱNLMO MЈMEKݸP%MEKΞL( O, PeNNO J(` C  7 2JvHIwHI؊ LI  .` A Hv ع Hw ؙ؊ؠIhHIhH  iع `  عiعi` )؍0CGHFHBFGx ް(8hFhG`@4͔ L @Ai ׭2` . R#ع؍0 ]讁)`.@+ i 8` L )߹0 )p )@ ) ȩ ؝H0JK 방 LMJKFG 嬂؍b؍c؝d ؝_ vO) vO )حI͖ z`H@h`h``N8`  ) ;⬂Ȣ؝z@zݚ@ʈLJ KIJHȢݚ h魚)Jn 8 δ ؍ ؍ \H8 ع)ꭱJJJJ Ȣ؝I؈ 6h(8H = h(8Hh(`ؑ@`@ȱ@ ` B@8ZO h鮁ٍٍٍoHٍn8bhcOJJJJO)O@` %I -m) 0@O)N8` @LL =@ /ȹP8` i` =ם0 /B =)( ȹ`8m8m@8` G8`F Pm)@N8`O)@J /טyרםOO)׍O`a 밑 LȹL@ȅH@IL,0` G קּ= ]H.m)N 0 H`aO)@LP8` \᮰ ֩OCDC z L䬁yٙ٭yٙ٩`K GE`FaG 6%&N    ܮ `J HH hh` 0 @ LGL r`̴Yܝ ݝ0̴ȩFG   0` ܅F݅G ` { rͬ 밽܅F݅G ` {* r% L`L뮰HH hFhG܍ݍ 8 `FHGH  hGhF`ݹܙ݊`@Bɼ>K@J5 {9X(K {XXK تKo`V8`no` D on {I9XX`)HJJJh`OeNeO࿰ {9XАO`@ȭ@` ON aNJKO`HхhꭋILhH),fx8 (8` ԍ`@Ae J m00[roIIJK,-NOPQRSu' @   !"#$Ԡ͠(C)1983-87APPLELKL`BLL ެެެެެެެެެެެެެެެ(C)APPLE'83xLLM Mh@8nЍLޭ 0J @,,LRP׽8H  ): e: y8鰕:Jjjj<)yאi8i;i(*=>hPם8`;Zx3QZYXXWV[HEVhEhH)IWHPHHHAHHHLaVEWLӿ`` ֽ ְ& .Vӈ  JJJJH 8h Ei 8EX`'8`jӍWӥC)p> pӥCYӍY 轊( ( ӈBV ( ӭp0 \BkJ ՠ@iӦ> Ӑi'j:ZH i@ioZZH h ѐȭnWǥBJ Ӱ8XӦ>` Ր+>*L o % ԽYӍZӭoӝY 3Ѡ шNZ`rZLkӭZӍq8r7IZӐiZkӐk 8 ѹs ӭq ѹ| kн Z)*>>` @ $(,048<@DHLPTX\`dh 0ުlptx| 0($ p,&"op8`kkV꽌ɪɖxlӽ*kӽ-kәmMlӈ 꽌ɪ`8` ZԍsԍԍԍԥDEԌ8TԌ8WpԌqԠ 7I꽌ɪ꽌ɭ蠪:љVE:8`]ѾV]H)]ѾV]ҙ)]ѾT]ҙ)] >8hUD` ԝY`> Hh݌(`HCJJJJ)*h`8LխӅ:HhHh Ո թ թ ՘VYҪҦ>:Y)Ң`;R?AJ;<ȰY)Ң`Y?)Ң`ȐҰ ;HhHh=Ң`Hh `Hh`DEiȍ0֌18V%֌&8V֌֠)HV)hH)hHIhդD?DRIDQD)҅; ?JDQD]ՎՎՎ`MY pӭY)p  ӭp`C)`BFGV 8``  / XʩXύX X %   % ɍRH hɛɘɉɈ $ Ld :Ldې)ɮ۰ɺ' Ld  : X ( % ɛ$ɘɉ ɈL :Lɍ)ې)ɮ۰ɺH h 'L  ġLL ̹L)'L ȳL O'F ʻ ̹(((L $ʩ $$ $L `ީ % K@D EFby LҠؠӠ΢ϠԩҠŠƠԠԠŠӢɯϠҠůȠԠĠ  0h)ύh0HHHH " ׍hhhhhhh .hh8`JIMJAYKERRY&MIKEDA.UTILITIESvx,' 'P8CDA("x,'DA.SELECTK"x,'INSTALL.DAl"x,'MEMPEEK[ x,'MASTERY x,'CTRLNOW[ x,'P8CDAvx,' '')P8CDA.DOC)/['1 (,P8CDA.SYSTEMB [' '(*+,-./0123456789:;<=>?@A =============================== DAL Systems Documentation for P8CDA v1.1 P.O. Box 287 North Liberty, IA 52317 by David A. Lyons 22-Dec-87 =============================== ---------------- 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 useful 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 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. 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. 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 -------------------------- CDEFGHIJL@"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.ACCSDA.SELECTvx,' '',DASELECT.DOCL $3 $3 K(DASELECTS0KMNOPQRO=====|====|====|====|====|====|====|====|====|====|====|====|====|====|====|====What is this program, anyway?=============================HFDASelect allows you to choose the programs in the SYSTEM.SETUP folder DBand the desk accessories you want to be loaded when your computer IGboots. It's like an earlier program ("SETUP.SELECT") in this respect, Ebut it differs in the method used to choose the programs to be run.How does it work?=================DBStarting with ProDOS 16 version 1.6 (included with the Apple IIGS HFSystem Disk version 3.2), any startup file in the SYSTEM.SETUP folder CAor any desk accessory with bit 15 set in its AUX_TYPE field will FDnot be loaded by the System Loader at boot time. DASelect provides 1an interface between you and that AUX_TYPE bit.How do I use it?================FDJust launch DASelect from any program launcher capable of launching ECProDOS 16 programs (e.g., Launcher, Launchbox, Finder, or ProSEL). JHDASelect will present you with a list of the programs in your DESK.ACCS GEand SYSTEM.SETUP folders on your boot volume (except for TOOL.SETUP, ECwhich should _always_ be loaded, or you won't have all the toolbox ECpatches loaded for programs which use them). Desk accessories are FDlisted in a window on the left side of the screen, and system setup FDprograms are listed on the right side. Pressing the left and right HFarrow keys will shift the focus of attention between the two windows. GEPressing either the space bar or the RETURN key will enable the desk DBaccessory or system setup program if it is currently disabled, or GEdisable it if it is currently enabled. The up and down arrows allow FDyou to choose the file to enable or disable. The "current" file is B@marked by a diamond-shaped character immediately to the left of ECthe filename. Finally, pressing the ESCAPE key quits the program, 6after you've confirmed that you really want to exit.GENote: Since you've already booted your computer to run this program, JHDASelect won't (can't, really) make any changes to the desk accessories DBalready in memory; you will have to reboot your computer in order !for the changes to take effect.===========================IGI hope this program is as useful as it has been entertaining to write. JHIf you have any comments or suggestions or (heaven forbid) bug reports, Dsend them by GEnie mail to DBTHOMPSON. Thanks for using DASelect!TUVWXYZ[\]^_`abcdefghijkI!@ ,@ """#\$;8  [tr)H8zpI0tr))pn +;i k;8 [I&${i""\",02d6{i\4{i,"w88pI0[2{i,"2^i: ` {i`H "IH:ɸH:ɹ%HIH:ɶH:ɷ##8{iH.H"ȩT.H"HHhiHhhHHhh䪧hiHH{i`HH"hiHH"HHHH/HHHhiHHH"""T: VȥX&ZG) HI) HH)z(ZF) HE)z*ZO) HQ) HP)z,ZN) HM)z₥" {i "+;ikTOOL.SETUP;8 [HH "H "trpnH"xH ixHhhhhH"xH ixHhhhh zxH iHhhhh zxH iHhhhh   zxHhh vv+;ik*/SYSTEM/DESK.ACCS*/SYSTEM/SYSTEM.SETUP;8 [H "i H "i H "+;ik;8 [H "H "H "+;ik;8 [iHH""d"dH " H "iH8H" H "H ""d "+;ik;85 [H " H "H "HH" "HH"C"dF "I"dL "d"dg "HH""d ""d "HH" "-HH" "HH{",HH{"HH" "+;i5kLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL_Z______________________________.DASelect: Desk Accessory/System Setup SelectorJ,K: Move pointer M, SPACE: Toggle statusH,U': Select window ESC: Exit program Desk Accessory Enabled System Setup Enabled;Copyright (C) 1988 David B. Thompson. All rights reserved.;8+ [{iHH H"',"HH" ")'H)"h")i)H ")) "+;i+k0123456789ABCDEFError $ encountered.;8 ["H Hh H  hhi"", +;ik;8 ["H HHh#h# hhi"", +;ik;8  ["#H #Hh)H)ʠhhI!% $+;i$k;8  ["#H #Hh)H)ʠhh!% $+;i$k;8H [{iHHI H"{i-HH_ H"MHKH"OQ{i-H "rQOhiH "QOhiHH"H8  {iH"dQOH"  w "d H "IQHP+;iPkIIIIIIIIIIIIIIIIIIIIII D;8  [# #/8HH"#6 "R ">HHeH"_  !# "+;i"kNo desk accessories found.No system setup files found.;8 [vHv iH".Hv iH" "d H "+;ik[;8" [,"HH" "H ""f^8Y!! QH`"&...............................&.H "HH"H "+;i"kReally quit (y/n)? ;8$ [H"p "HH"H "v H" v H" v H"U v'v HHv iH"_ $v H/Hv iH"_ dvH zxHhhI#H"p vH"p vH zxHhhI#H"p vH"p v HHhh=H"p v HHv iHhhhhv iHHv 8v H8zpI0v v " 88pI0  " v iHhh "vH"z v iHhhv H"p 9v HHhhH"p v HHv iHhhhhv iHv iv 8pI0v vH"z H"p k"  H"p QN8 H`"a+;i$k;8 [""lH"z H"z "H " H "+;ik{;8[:ڥ: e dHHH"e8Y UqdHHH hhh h h [A8ҥ){ei+k"d e 8  :eee J   (`HHKHH"Hhhk ;[HH H h hh HHH hhh    +;i kKiH" GHHihh`8` ;[  )   +;ik{;8[:ڥ HH H H IH"(v H H H h h h  I  $J        {i+k ""hhkHiH;8  [  " "O$>"DFȩȗ na i  U GE"  "FF e i  " "8  0 E " "F)i+;ikiHHH H "hhkHH; [ȗȗȥȥȩ i+zzzzk{;8[:H""{i+k"kH" H"h")@DHHHHH; [" "  ȷݠ ȷ" ȷ+;i k  Jk ;[I4" )d9  ")   +`"L$K   H H "K;[c:zZګHi " kInsufficient bank zero memory "TH"\KError occurred at line  "H"  in procedure  ""2 "r  " " Line Names " ---- ---- " <H"   ""2 "r1 ;[ 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"c"v+hhkHHH8H; [  " % Q8  0 "F "F "e i @< "F "F   "Z "F"c+;i kHH8H; [ȷȷ HH"+hhhhk:JJJJkH; [" ȿ" "+hhkK& k{;8[:ڥJ       {i +kKHH"Hk ;8[:IȅIFejf0I{ih[k{ih[@k; [ "w HHH"2  +hhhhk; [  )8 I"-! H HI i " +;i kH ( &"L (Qi ;[ ߸  8(I  ȗ(  @+hhkHi H ;[ "+hhk"n #$!t$rHtKr\p_n DGMUgwtrpnxxxx)x,xEzHxVYrzuxzxvv0ARydd&47:=dMPZCCdFFIIdLLdddg g"%(d,/9<?BdFIS^beoz~6 K N U Y e p t w        > B ,   , v I y I   _  _       d  w " w % d7     6  6   R  R   _ z v v   v     d   !FQNQ&S.U.W.Y.[.]._.a.c.e.g.i.k.m.o.q.s.u.w.y.{.}..........&.p v"( 2v8;A HvNQWU [vcvilvv{_ vv_ vzxp vp  vz!xNp Uv\p cvilp vvvvv "v(+3v9<~vvz vvp vp v #4v<?RvY\`vetvyvvz p  p a  /3l;z Cz GVdU[THbfilw|'(6 "D$Fc"i sF "F /7RXou&* <@@DTX ^" " $( +.= Wgo|  /2<?K2 OrSVss 2 r`cgvFF&F0FCPFXc "  "  v{H   w   ! 2 L -!y |    ! INSTALL.DAvx,' '')INSTALLDAm03f*l-INSTALLDA.DOC f+lnopqrstuvwxyz{|}~'% ,@ cKJ )" [ (    P" L[HH-" "HH7-" "HH-" "HH-" ""H"h*"`>>@\N1X==About Install DA\N256==Help Mode\N281V*?/.>> File \N2==Load a Desk Accessory\N280*Ll==Close\N255==Quit\N262*Qq.>> Edit \N3D==Undo\N250V*Zz==Cut\N251*Xx==Copy\N252*Cc==Paste\N253*Vv==Clear\N254.>> Goodies \N4==Switch Graphic Modes\N279*MmH "HH"hh HHHL"h h)! h)H"*"H"H"h h^Y^  h )HMh 2: 8  |"H,"""""""""""$`h`?HH2"h{h}}H{HJ3"H"h}H{H "` 3tRyP f%q(c) Copyright Tom Stechow 1988 [f  06 Mar 88 N Y .!Distribute freely but don't sell.CVNh--> FreeWare <--[,fz Version 1.06 A having to reboot your computer!+6%from any disk or subdirectory without+ +&Install New & Classic Desk Accessoriesgj INSTALLDA7Install Desk Accessoryx OK|M| f <,wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwDODDDDDDODDDDOODOOOOOODODDDDDDDODDDDDDODODOOOOODDOOOODDODOOOOOODODODOODDOOOODDDDDDDDDODODODDODDDODOOODOOOODDDDDDDOOODOODODDOOOODODODOOODDOOODODDDDDODODDODDDDDDDDDOOOOODDOOOODOODOODODDDOODDDDDDDDDDODDDODDDDODDDDDDODDODDODDDDDDDDDDDOOOOOODDDDOOOOOOOOOOOOOOOODODDODODODODODDDODODDOH"h`KzU4y1999qLNumber :8m ProDOS Error;)| OKH"h`$~o8 <GThe CDA was not installed./-:#accessories allowed.$ /Pmaximum number of classic desk$You may have exceeded the<Install CDA ErrorM`X OKH"h`[yC J5 Out of memory%[Cannot install desk accessory'Z2  OK HH""HHTH"(C`c """c9HHHHHPi "-H6"Error during load Error was $hhhhhHHHH"hhHHeɸ" "-H"Installing a NDA Error was $HH""."HH-" ""H"h*""""`Select Desk Acc to install :" `" `C""H"7H"(Cannot start Memory Manager Error was $hHHH HH "7H"(Cannot get memory for Tools Error was $P+"AH,"2Cannot Dereference Direct Page Handle Error was $PLHiPJHNHHH"4H"%Error starting QuickDraw Error was $PHiP@JHH"8H")Error starting Event Manager Error was $"H H:"H"H"""$Loading Tools. One moment please...`""""(8H")Error getting boot disk name Error was $" EL8IH":Unexpected error obtaining boot device number Error was $H<"hLBk "0H"!Error Loading tools Error was $HHPHiP"HH"9"HHPHiP"HHPHiP"HH"""PTiP"` L[\CPlease insert diskContinueCancel\"""""""""HH"""`")8=Hv".We returned from our Quit call!!! Error was $HHJ5-  "hhHH\3"HH3"HH=3"`$*e$e0; UCancel*t0Select the menu item you would like help with...,Help Mode In EffectH#'"h0#(% 'HH "8` 8 ڽ  0m8Jm m@J8Jmmmi i 8J8#iFHHH%"hhHHH"hJ 8J8  mHH"HH "hhHHHH "HH3"HHHH "H"hHH "HH"`6B)This item quits the current application.eThis item switchs between 320 and 640 modes. Allowing testing of New Desk Accessories in both modes.This item will install the selected Classic or New Desk Accessory. Note: A maximum of 11 Classic Desk Accs. can be installed. Also, only the first 15 - 17 New Desk Accs. can be selected from the Apple MenuThis item places you in help mode. Subsequent menu selections will display the help dialog for that item. You will remain in help mode until you push the Cancel button in the help mode dialog box.=This item displays the application's Version number and Date.PQ[ OK % )  ȷ) " m m -)    m  `ZH eiHڭ H"h  z`  ` "`x"z"_" \ `x"z"`K0 " P" L[HH"h"h"" "."H"HH"H"HL"h  ""`HJ"#"h`N#*#V# `+ '#OKFB#Currently AvailableFn#This feature is not&K###2#Currently Available1#This feature is notS*| $OKJ J""JIJLHJHHH" "@JH"""%")"""W I JJJHIH" JJJHH"*"hhПhh9" "` J )"[( P"!$[.1J7M7fi03ADQdgm)|"""""""""""$#&1{5}8}<{@JEHMPl}p{tRyP ".\h+^jf z U 4%1@Lamo8 #DP{ yC)5O[HTCC``cccii*6-6X\fjvz}ex{HH P P ,#,`PcLkPnJrNvHPPJH``NQTWZ]`csBy |HPPHHPPHP PH.P1T8PCF[X\\BHajvmvJ55--\\  =#=IUht##''#%' <KNQ TW^ahlpsz}J    !%58LPTX_bhl0tx|     ( + . 9 < ? B E H K N U d i n r u x { ~              ."x"5"z"8"_"?"_"Q"x"X"z"p"P"s"v"["""""""""""""""""J"""""#"#"##*##V##'#6#B#b#n###########$$$J$J4$J:$J=$LA$JH$H`$J$J$JInstallDA Documentation (C) Copyright Tom Stechow 1988 TES Systems InstallDA will allow you to install both new and classic desk accessories when you would like to, rather then having to reboot. This can be especially handy if you like to use different desk accessories with different applications or are using a 3.5 inch drive as your boot device and have a lot of desk accessories and fonts. InstallDA is copyrighted FreeWare. You have my permission to upload this program to any bulletin board as you see fit or give away as many copies as you would like. The only requirement is that the copyright notice is not removed and proper credit be given in the online notice about the program. To use InstallDA simply double click on the InstallDA icon from Finder or open the application from Launcher. After you have launched InstallDA all you need to do is use the Load Desk Accessory menu selection under the File menu or press open-apple L. Selecting this will bring up the standard file open dialog box. This box works the same as it does for other desktop applications. Only Classic Desk Accessories, New Desk Accessories and Folders (subdirectories) can be opened. Double click on the desk accessory that you would like to install or highlight your selection and click on the open button. Please be aware that there is a limit of 11 Classic Desk Accessories and 249 New Desk Accessories, of course if you run out of memory first these numbers may be less. If you need more than 11 Classic Desk Accessories, I suggest you check out Glen Bredon's Master CDA. Normally, only the first 16-17 desk accessories are visible under the Apple menu. If you find yourself needing more, check out Two Apples by Tim Swihart or wait for Master NDA due out in April from your's truly. If you need it, help is available under the Apple menu for each menu item. This selection will place you in help mode. After you are in help mode most menu selections will bring up a dialog box explaining it's function. When you want to exit help mode press (click) the cancel button in the help mode dialog box. Possible future enhancements may or may not include. Installation of Desk Accessories directly from Finder. On screen viewing of the events pending in the event queue. Tool status for all tools. Mouse tracking relative to the front window. These enhancements if added will mainly be for debugging purposes in developing New Desk Accessories and will most likely turn this into a shareware product. Notes to programmers. InstallDA can be used as a test desktop for your development of a New Desk Accessory. It provides a minimum desktop with no additional tools. This desktop includes the following tools: QuickDraw, Event Manager, Window Manager, Control Manager, Menu Manager, LineEdit, Dialog Manager, Scrap Manager, and the Desk Manager. If you need any other tools it is your NDA's responsibility for loading them. This is not a bug in InstallDA, rather it is in keeping with the Apple guidelines for NDA's to insure maximum compatibility with other desktop programs. I hope to be uploading some code in about a month showing how to handle the loading of tools from inside an NDA and handling of the AppleWorks bug affecting new desk accessories. You can switch between 320 and 640 mode to make sure you DA works in both modes. Unfortunately many NDA's available do not work correctly in both modes, I hope this will help you test your NDA in both modes. APW and Orca/M users can change the filetype back to EXE and install InstallDA in you command table. I have patched the Control-Y vector to attempt to regain control if the NDA you are testing crashes. If you have a crash press control-Y (do not press control reset) and if all goes well you should end back in the APW shell. If not you will have to reboot, which you would have to do in the first place. Future programs from TES Systems Watch for Master NDA coming soon (late April,88). InstallDA as a NDA itself. A desktop environment Control Panel. Several New desk accessories to be known as the Information Series to include: 1. Mouse tracker (global,local,and content) 2. Font manager tracker 3. Memory usage 4. Window manager tracker 5. Prefix tracker MEMPEEKvx,' ''MEMPEEK[5+MEMPEEK.ASM}[ MEMPEEK.MAKEE[:MEMPEEK.MAC[3 ,@ 0"k******************************************************************************* * * * Memory Peeker Install, by Guy T. Rice * * * * This incredibly complex program adds the Memory Peeker CDA contained in * * your IIgs ROM to your Desk Accessories menu. Just copy the Temporary * * Startup/init File (TSF) into your SYSTEM.SETUP directory. * * * ******************************************************************************* keep mempeek mcopy mempeek.mac Install START native jsl $FF1800 rtl END asml mempeek.asm filetype mempeek $B7 copy -c mempeek 4/system.setup MACRO &lab native &mode &lab ANOP clc xce AIF C:&mode=0,.a &mode MEXIT .a long MEND MACRO &lab long &lab ANOP rep #%00110000 longa on longi on MEND MASTERvx,' ''&MASTER7i.MASTER.BUILDERV-*MASTER.DOC -)GS07.DESK"A[7u ,@ uMaster CDA list #1JK _"k ~0)))8m0 ș0`\\``KHH H"hh M0  +MM7""""d0 & x 0Z zȢ ȗ &Z੠_ LL  $)LL 0  Oɋy i vɊ{ɍɛ߂uE _,M0$",L0"""hh c%)0" x x| x   ,M0$",L0"""hhkE:::IIE`E _ EEKKKKIII`ߠ%i`Ii6K _hEnGH hK `0 i&:ʀZȗ&z  ,H i?IJ0`60cO" W"h2*e "h-e tg) `0 Hh0`0,M0"0@80"h)hhq}>hhc`8`)`JK ﺠM ⺠򠠠M QehknERW] &+18=BIXy -2RXeeUOWJ" ---------------------------: Master CDA builderQ by Glen E. BredonW xCommercial rights reserved.~Edit the DATA lines to putin the CDAs you want in themaster list, then run this. ---------------------------  d84096: n(176)31ĺ"Program too large.":G xP$(100)^ (4)"pr#3":(12)z 32)"MASTER CDA MAKER" :33)"by Glen Bredon" : (4)"bload master.da,t$b9,a$2000" PNT(819269)9:NUM8192PNT60 SIZ(48859)256(48860) DIC8192SIZ18 P$(I):P$(I)"END"1000] "Checking CDA #";I1;" ";P$(I)v (4)"verify ";P$(I) DIC,246:DIC1,3:DIC2,0 DIC3,PNT:DIC4,PHI DIC5,I2:DIC6,0:DIC7,0:DIC8,0 DICDIC8 SIZSIZ8:PNTPNT3:PNT255PNTPNT256:PHI1/ "II1:I100210{ SHI0:SLO((SIZ1)5121):(819215)1SHI(SIZ256):SLOSIZ256SHI 8192,SLO:8193,SHI :"Give a unique number to this master list (0-9):";N$ (N$)11020 N$"0"N$"9"1020 NUM,(N$)("0")4 $:"Name to call this file:";P$? .1100U 8(4)"verify ";P$k B(4)"delete ";P$ L216,0:(4)"create ";P$;",t$b9" V(4)"bsave ";P$;",t$b9,a$2000,l";SIZ J1I (4)"bload ";P$(J1);",t$b9,a$2000" 819234,J1 OLDOLDSIZV SIZ(48859)256(48860):(819215)1SIZ(((SIZ1)512)1)512 (4)"bsave ";P$;",t$b9,a$2000,b";OLD;",l";SIZ J :"All done. Remove, if necessary, those CDAs from the SYSTEM/DESK.ACCS" "directory and put <";P$;"> there." 2------------------------------UPut names of CDAs you want inxthe master list here in thesedata lines. The last dataitem must be "END" to tellthe program where to stop.Remove any items from thelist that you don't want."DOrder the data statements inhthe order you want the modulesin the master list. ------------------------------"CALENDAR.DA"("TYPEIT.DA"2"DUMPIT.DA"<"RAT.CALC.DA"F"NOTEPAD.DA"P"TYPEWRTR.DA".Z"SPEEDSWITCH.DA"Cd"SLOTSWITCH.DA"I':T'"END" 󠱠䠲Ơ宠ӠƠԠ͠렲򮠠Ơ򮍪Ү 󮠠󮠠Ү򍱰쮠ɠ΍Ҡ廠󮠠Š󮠠쬠㮬󮠠䮠̠ԮҠ٠仠Ү宍àҮҮҮҬҮ¹堢֢ 堤¸Үҍ쮍ҮҮҮ卢 宠ɠ堢 󮱢ͯˮӠ젨 婮宠Ů ɠ󮠠嬠T ,@ TMaster CDA list #1JK _"k ~0)))8m0 ș0`\\``KHH H"hh 100#""""d0 & x 0Z zȢ ȗ &Z੠_ LL  $LL 0  3ɋsɊ _ kɍɛ߂o) _",00"""hh B%)0" \ \ \ q q q",00"""hhk):::--)`) _ ))////---`ߠ%i`-i6/ _h)n+H h/ `0 i&:ʀZȗ&z  ,, i?IJ0`60B." 6"h2*D "h-D oF) `0 Hh0`0"0@80"h)hhq}ChhB`8`)`JK ﺠM ⺠򠠠BFwDjDgDI6<.9.6B,/+)_/----////)})x_r)m)j-e-])<0+q&q!q\\\ B0_)3yqLFA41nkh~eWQ_J!$' ,@ Visible Bell: now normal"!kK_silent""hh" 4) ,"knormalHH"" 4)4 ,"kH4)4 AkZH4)4k"!%-39?BE`djm( ,@ Hex/Dec/Bin Converter'  H  " " " " " " "A " "_ " "u " " " " " ""h) k1 UL2 L3 [L4 #LNumber Conversion Utility 1. Hex to Dec 2. Dec to Hex 3. Hex to Bin 4. Bin to Hex Enter value: $ Decimal equivalent: Enter decimal value: Hex equivalent: $ Binary equivalent: Enter binary value (16 char):  "0  $"h. "0.H %"4 '" <>4 "` "0  $"h.  "0.H )"h0h22H0H #"  "` "0  $"h.0.H $"h0  "0 +  D1   " "  "+h`0j60`6 "0  $"h.  ".0jnH)  00 hJJJJi700220220 460 "h`DT`DT`Ek' y|AA__uuU&)1[4<#?VY  \_  $6'6N Q   ,@  Type file.- " " "h8h6kK6H8H " " " " " "   "᜷ )\ ޭZ ) ɍɠi@H " "ᩎH "m " 7l "`# ")? " ""h ɍBɕɛɈʩ H "0`ɮɺ )۰?Њ1`)x "Kn0Y  Xk0a "+ "  ID0 N "F "; " ""h80`"C0" "IL8ILH"(h= HJJJJ h) ɺi0H " `0 `Š宠ɠ򠣤 䮙ߍژߍژߍژߍژߍژߘ̘"h,(u "hu w  Hhɛ0`ߍژߍژߘژԠߘژߘژ㩠ߘژߘژߘژߘ̘Š庠KJ0L8 M1RIT\ H SIL8ILH [(hkk\wMu@u=u vnkhe\;;8;.F+F!NN ++aa3)&! 7 )| y - . ,@ Rational CalculatorKHHd &  W ɍ  0 0 ) ɛK* I ), 0 0   0   0      v0) 1|9 0hhk(& %  )   Ɉɛh`툷ɮ% Z H H "h h hhz ,% 8& 1)  `1 `I *I) ,% 0ɮ ȍ% & ɯ * L6Iɯ[ Z H H "h h h hz  )m  i ȍ  L6 L2Ȍ'  ɈɛT`ɯ Z H H "h h hhz 1   `I I) * LII Z H H "h h h hz  З)m  iȍ LI $ 0   Z $ 0   &#  ݩ    Ȁ0ɰ# ,# 0$   0` d'@Bʚ;ɨɨP P`              (          (  ?ɿ? ɗɗ H H H H "h h h h $ Z @B K;ʭ H H " H H "h h hh" _0  00` H H' "h h  H H H H "h h hh    !   `      H H H H "    hhh h  ­   ! H H H H "h h H H H H "h h hh`ix`Z0"h,( "h  0Hh)(z`T;    H h    D    HDh    S` L. I8n` @ L   L                   !          H H H H "h h hphn H H H H "h h h?h=        ML hL   !L  L          H H H H "h h h`h` H H! H H "h h h/h/ H HHH "h h hyhy H HHH "᭷MI/h8  h  08    hm  hm  h~h|z                   D`h(0bȀ 0`͡ҪE @b ̠ҍߍLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLߍLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLߍ+-*/K𠠠Jؠ썠HU٠!ؠ占 젠MߍN\\㩠\\NLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL[[[[[[[[[[U S Q O M bK I @G E C A ? = E; 9    b                                              ~  {  x  u r g  d  `  ]  X U P J  G  A  >  2  /  +  (  !                       !         z v r  n _ \  Y V  S P M J G D A > ; 8 5 2  / , ' $ !                                                v r  f  b  ^  Z K H  E B  ? < 9 6 3 0 - * ' $ !     !                                @{xurolifc^[XUROLIDA<9630-*'$!   ~ {x ur olkeb^[ XU RO LI FA> ;8 52 /, )%!        w s o k b ^ R N J F 7! 4 1 . ) & "                   !               w s a\_Q M A = 2 .    Z$             }z wtqk he b_ \Y VSPJ GD A> ;8 52/) &#        $ # # | yv s nk he `# X U R O H$ ?Z< 9 6 3 %$ I            I* )       { g d JC' ?2:65 2 ) %        6* & % % )    & %  { i e Q% 7.) + ( % " % 9 ) v    * |) ytqbTW D ,@ SHR C1 SaverK"6Gc H  &"ှ"&"" k "k:HHHHHHHH$"hhhh`Screen.0  $03;?BKfmps{CTRLNOWvx,' ''CTRLNOW[ +CTRLNOW.ASM[ CTRLNOW.MAKEE[6+CTRLNOW.MAC[5E ,@ E0$"0h:h;h<h0$9"k"0"k:;"<,9/9******************************************************************************* * * * Control NOW!, by Guy T. Rice * * * * This STR (Permanent init/startup) file modifies the Control Panel so that * * changes made inside take effect immediately. So when you change from a * * slot to a port, or you change your serial port settings, you don't have * * to reboot the computer in order for the changes to take effect. They * * take effect NOW! Just copy this file into your SYSTEM.SETUP directory. * * * ******************************************************************************* keep ctrlnow mcopy ctrlnow.mac Install START native PushLong #0 ;Space for result PushWord #$24 ;TOCTRL.PANEL _GetVector short pla ;Save old setting sta >ToCtrlPan+1 pla sta >ToCtrlPan+2 pla sta >ToCtrlPan+3 pla long PushWord #$24 ;TOCTRL.PANEL PushLong #ToCtrlPan ;New setting _SetVector rtl ToCtrlPan jsl $FFFFFF ;Filled in above sep #$30 clc jsl $E10094 ;Set up parameters rtl END asml ctrlnow.asm filetype ctrlnow $B6 copy -c ctrlnow 4/system.setup MACRO &lab _GetVector &lab ldx #$1103 jsl $E10000 MEND MACRO &lab _SetVector &lab ldx #$1003 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 &C AMID "&SYSOPR",1,1 AIF ("&C"="#").AND.(S:LONGA),.immediate lda &SYSOPR pha MEXIT .b pha MEXIT .immediate LCLC &REST LCLA &BL &BL ASEARCH "&SYSOPR"," ",1 AIF &BL>0,.a &BL SETA L:&SYSOPR+1 .a &REST AMID "&SYSOPR",2,&BL-2 dc I1'$F4',I2'&REST' MEND MACRO &lab native &mode &lab ANOP clc xce AIF C:&mode=0,.a &mode MEXIT .a long 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 NDAvx,' 'ASSORTED""x-ALARM.CLOCK""x-ANACLOCK""x-DESKPAT""x-MINIUTILITY"&x-RINKY="&x-SHOWTEXTJ",x-TWO.APPLESg"/x-MEMORY[ x-BG.MUSIC[ x-SAVERx6x.CLOCK[ x.ASSORTEDvx,' '-CONTROL.PANEL<v9t)CONFUCIUS0$-DIGITAL.CLOCK1|85:+CHRONOGRAPH4F p*(CALENDAR<F\+*CALCULATORJ8l!J%ASCIIF&SCREEN41+SCREENSAVER854)SHOWTOOLS D*SYSTEMLOCK 6)DOODLEPAD Fp* :V ,@ main V Control Panel\H** ;8[iHH"0N  "$&(*,.02468:<(>2@iBDFHJLHH "hHHK" {i+k Control Panel ;8[iHH " {i+k ;8[iHH"h݆߯HH"ۥ1HH""HH"! HH"ݢ"<963+8" 0 H` {i+;ik ;8[i" {i+;ik ;8[i(s _" ]"< :""(%s _" ]"<!:"",(:s _" ]"06:""{i+kRam DiskSlotsSound ;8[i{iHHH"{iH"Ǐɏ8pI  8$pI %P  `"H "h `""7 8pI  8pI %P  `"H "h `"" +8pI  8;pI %P  `"H "h `"" HH""{i+;ik ;8[iH "h "H "hץ^wׅ#d:" "#d:"{iH"h{iH"ׅՂH."hեե:HHH"hH"::ՂH."hթ 8pI եHHH"hH"ՂNH."hե8pI0Tթ8pIե::HHH"hH"::Յ8pI::ՂH."hե8pI6HHH"hH"ՂՅVH."hH."hՂ)8 0 q H` ~2* 8pI Յש8pIץ8pIdש8pI#d:" "#d:"{iH"h{iH" "H@ "h "hHۢ ","{i+  ;ik  ;8[iH "h "H "hۥ^wۅd:""d:"{iH"h{iH"ۅقH."h٥٥:HHH"hH"::قH."h٩ 8pI ٥HHH"hH"قNH."h٥8pI0T٩8pI٥::HHH"hH"::م8pI::قH."h٥8pI6HHH"hH"قمVH."hH."hق)8 0 t H`  5 - 8pI م۩8pIۥ8pId۩8pI۩8pId:"~~"d:"{iH"h{iH" ","{i+  ;ik  ;8[iH "hH "H "hH "hH "H "hߩx᩠,HH{iH "hۆۢ"iߩxA{iH H "ۢ8"iߩ_x㩪{iH H "ߩF{iHH "ߩs㩪{iHH "ߩZ9 {iH H "ߩxZ㩓 {iH H "H"hץׂFHע."hע/"ע/" 8pIwH "H "ۢ "{i+kPitchVolumeCancelOkay ;8[iH  "h  "H  "hӥdץd٩ש<ߩx᩠,HH{iH "hۆۢ"KߩZA{iH 55H "ۢ8"Kߩ_Z㩪{iH ..H "ߩF{iH))H "ߩs㩪{iH$$H "ߩ+F{iH ##H "ߩx+㩠{iH ""H "H"hեՂgHբ."hբ/"ӂBHբ."hբ/"dӂ 8pI^  "ۢ "{i+kSlowFastCancelOkay ;8[iߩxᩴ㩐HH{iH "hˆˢ"}ߩ7ᩌi{iH :):)H "ˢ8"}ߩᩌ{iH 3)3)H "Zߩi{iH2)2)H "FߩP{iH1)1)H "Zߩ(iK{iH0)0)H "Fߩ(PK{iH/)/)H "F :"))"HH"hU:"Y<"xY<"`<"Y<"Y<"U<"U<""HH"hF:"B<"xB<";<"B<"B<"F<"F<""HH"hU:"Y<"xY<"`<"Y<"Y<"U<"U<""HH"hF:"B<"xB<";<"B<"B<"F<"F<""HH< "HH< "HH "HH "HH"HH"HH"HH"RI:"))"s:"))"#s:"(("H6 "hH7 "h"h ť HH"h"zzφϦ"hHH"h"zzӆHH"h"zz׆٥ŢHϦ"h"hۆ\:"{iH"h{iH"7\:"{iH"h{iH":"((":"{iH"h{iH"#:"(("#:"{iH"h{iH"-:"(("-:"{iH"h{iH"<:"(("<:"{iHɢH"h{iH"H"h- 8 ǥ8pI08pIDžŭHH"`    $\ :"((" \ :"{iH"h{iH"`    $7\ :"((" 7\ :"{iH"h{iH"H "h8pI 8pI0å8 ǥ8pIDžť`    $\ :"((" \ :"{iH"h{iH"`    $7\ :"((" 7\ :"{iH"h{iH"ZHH"8pIdǂ8pIHH"i ǥ`    $\ :"((" \ :"{iH"h{iH"H "h8pI 8pI0åi ǥ`  $\ :"((" \ :"{iH"h{iH"&HH"8pIɅǂB8 ť8pI0HH"`    $7\ :"u(u(" 7\ :"{iH"h{iH"H "h8pI 8pI0å8 ť`    $7\ :"j(j(" 7\ :"{iH"h{iH"HH"8pIdłg8pI!HH"i ť8pIŅǥ`    $7\ :"a(a(" 7\ :"{iH"h{iH"`    $\ :"V(V(" \ :"{iH"h{iH"H "h8pI 8pI0åi ť8pIŅǥ`    $7\ :"K(K(" 7\ :"{iH"h{iH"`    $\ :"@(@(" \ :"{iH"h{iH"[HH"8pIɅł!80 'H` "p$ 8pI6 "z "z6 "7 "ˢ "{i+k       Largest SelectableUsed Ram Free Memory Total MemoryMinimumMaximum RAM Disk SizeRAM Disk SettingsCancelOkay ;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 ;8[irddddddddddddddddddH! "hH" "hH# "hH$ "hH% "hH& "hH' "hH( "hԛ! "ԝ" "ԟ# "ԡ$ "ԣ% "ԥ& "ԧ' "ԩ( "H! "hH" "hH# "hH$ "hH% "hH& "hH' "hH( "hdd dd dd ddddd dd˩ dɩ˩PтuӂmՂeׂ]قUۂM݂E߂=͂5ς-8$ 0 SH` !)1 nzod Y!N"C8-8$ 0 H`mx {xHH{i{H "hssHH"{dsHH{i{H H "{6sHH{i{H H "{"sHH{i{HH "{ZsHH{i{H Hԫ "{i{H K"sHH{i{H Hԯ "{i{H K"sHH{i{H HԳ "{i{H K"sHH{i{H HԷ "{i{H K"sHH{i{H HԻ "{i{H K"sHH {i{H HԿ "{i{H K"sHH {i{H H "{i{H K"{,sHH {i{H Hԭ "{i{H K"sHH {i{H HԱ "{i{H K"sHH {i{H vvHԵ "{i{H K"sHH{i{H llHԹ "{i{H K"sHH{i{H bbHԽ "{i{H K"sHH{i{H XXH "{i{H K"sHH{i{H NNH "{i{H K"{dsHH{i{HGGH "{i{H K"sHH{i{H@@H "{i{H K"sHH{i{H99H "{i{H K"sHH{i{H22H "{i{H K"sHH{i{H++H "{i{H K"sHH{i{H$$H "{i{H K"sHH{i{HH "{i{H K"{s<sHH{i{H H "{i{H(K"sHH{i{H H "{i{H(K"sHH{i{H H "{i{H(K"sHH{i{H H "{i{H(K"sHH{i{H H "{i{H(K"sHH{i{H H "{i{H(K"sHH{i{H H "{i{H(K"sHH {i{H H "{i{H(K"sHH!{i{H H "{i{H(K"sHH"{i{H H "{i{H(K"{is6sHH#{i{HH "{7sHH${i{HH "{i{H(K"sHH%{i{HH "{i{H&K"sHH&{i{HH "{i{H-K"sHH'{i{HH "{i{H(K"sHH({i{HH "{i{H(K"sHH){i{HH "{i{H(K"sHH*{i{HH "{i{H(K"sHH+{i{HH "{i{H(K"sHH,{i{HH "{i{H(K"sHH-{i{HH "{i{H(K"H"h%   %{ 2dKHH{i{H "hwwHH""" :""H "hIwHH "   0 sHH/"d -sHH/"dsHH/"dsHH/"dsHH/"dqsHH/" dB  %{ 2dKHH{i{H "hwwHH""" :"zz"H "hIwHH "    0 sHH/" d sHH/"Mr jde]UME=5-8$ 0 H`X`hmu} W8N0F H`0_0_.......;;;;;;;;;; 8pIYԛԝԟԡԣԥԧԩ"sHH "{i+k4The Printer Port and AppleTalk Cannot Both Be Active4The Printer Port and AppleTalk Cannot Both Be Active 7 6 5 4 3 2 1SCANROMRAM Startup SlotSlot 7Slot 6Slot 5Slot 4Slot 3Slot 2Slot 1 Your Card Your Card Your Card Your Card Your Card Your Card Your Card Appletalk Disk Port Smart Port Mouse Port Text Display Modem Port Printer PortSlot ConfigurationCancelOkay ;8[i! "" "# "$ "% "& "' "( "{i+;ik(S) ^)5AQFOR\cgjmry }  !#%')+-/13579;=$?+A2C9E@GGINKRMX[ekOpQtQyOOQQO QO0Q5OAE0IQNOZ~ @GNUY\lpsy{&}-1y4yDHyKy[lps}v)kikk 0;d)KN^b<qkkd)kk7y:yJUd)eyhyx|:QO0.2 5 ?P_a5u#B  : O l q q s u w ~y { 2}  *       a52 B Q ] /l w    1 5 8 B S b a5x      & E      = R o t t v  x z | ~ 5   - ~ ~%4a5JZeooommmL`%(@jm   9Ukom)755".%.=g)j)$$## 5"8"O`y v:):) 3) 3)%O2)R2)j1)1)0)0)/)!/)9IL)O)Yej_ma}[ ]+;K[k{WY )3?DSGUWgwa_][YWU S14a8_CF]J[UXY\WgjUnSy))))((0!,1@t0Q\1oz1t0t0a5a5!($(.>N5dtw(z(5((5 #(&(0@Y5oa_((';Ia5_((a5 d)((a5 ] ` (c (m   a5  a _  ] [ J!M!(P!(Z!n!|!a5!!d)!"$"('"(1"E"S"a5i"o"]s"[~""Y"W"##u(#u( #4#B#a5X#b#d)#$j($j( $!$/$a5E$K$YO$WZ$$U$S$$%a(%a( %!%/%a5E%%%V(%V(%%%a5%%d)&&K(&K(&&&a5&B'E'@(H'@(R'f't'a5''U'S''''' '"'p$'0(0(((6(W)`)i)~))))))))G3d)3/3/33q40w434043A57D57R>$>5>???k??s??{???????????????r@w@w@?y@?{@@}@@@@@&@@1@@<@@G@@R@@@AUAU1AcAxUfAxU~AAeUAeUAAXUBXUB0BKBMUNBMUeB~BB@UB@UBBB5UB5UCC5C*U8C*UOChCC UC UCCCUCUCD6D U9D UPDiDDUDUDDDTDTDE ET#ET:ESEnETqETEEETETEE FT FT$F=FoFTrFTFFFTFTFF GTGT(GAG\GT_GTwGGGTGTGGGTGTH.HIHTLHTdH}HHTHTHHHTITI0IKITNITeI~IITITIIITITJJ5JT8JTOJhJJTJTJJJTJTJKKT"KT9KRKmKTpKTKKKTKTKLT"LT:LSLnLTqLTLLL{TL{TLL MxTMxT'M@M[MuT^MuTvMMMrTMrTMMMoTMoTN-NHNlTKNlTcN|NNiTNiTNNNfTNfTOO+OOOOOOO1TO1TOOd) PiPPPP'QVQQQR RR RS#RS-R7Rd)ZRRR@UB6DFHJLHH "hHHK" " " '"n n "P P "N ' ' '"  "(""" !"  xx$"``"CC"B  "" "     ! #" " "" #" ww" ii"MM"44" """""""ff""YY "66#"" "" """ pp " GG)"ECA? {i+k    (when stooping to help a small computer."A human never stands so tall as Avoid temporary variables."the shape of a house."I bought used paint.. It was inand now he's gone."I poured spot-remover on my doghave friends of both sexes.""Binary: possessing the ability to characters."!Dreams are the touchstones of ourNational Defense is at stake."Be security conscious--But I don't know what to add."!I bought some powdered water. Butyou throw it away?"Is anything really trash beforeinitialized before use."Make sure all variables are is the past."The best prophet of the future"Stupidity is ignorace with pride."!Ignorance is a lack of knowledge.dish he hadn't ordered.""He looked at me as if I was a side to tread."Fools rush in where angels fearOpen the pod bay door, Hal."anything you tell him."#User: A programmer who will believe The Killer Ducks are coming!!!!" Christmas."!Give your child mental blocks for 'Be virtuous and you will be eccentric."3 to 5 minutes."&Please insert another $.25 for another Assasians do it from behind."and another to submit to it."&It is one thing to praise descipline, lengthwise." Bureaucrates cut red tape... "Mr. Confucius" ;8[iHH " {i+k ;8[i.HH""HH"wHH"h݆߯HH""ݢ"963+8" 0 H`3 n {i+;ik ;8[i" {i+;ik ;8[i":"U U ":" ":" "H"h"hH":" " eH":" eH":"^<"H"h"h{i+k"Q Z !Copyright (C) 1987 : Roby Sherman ;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@QEOQY4[bf i lqx |  !#%')+-/135 79;=#?*A1C8E?GFIMKQMWZdY4jOoQsQxOY4SS   SS   SS   SSn n  SSP P  N SSS' '  SS    SS$ (,S0S3S69? CGSKOUSWW[_Ycg[ko]sSvSy| S SSxx S!S!`` SSCC BS"S S "" S#U#W#Y# [#!]#S !S $'- 1S$4S$7:@ DS GS JMS WS&ZS&]`f jS mS pwswy }S'S'ii SSMM S(S(44 SS S)S) SS S*S* SS  S+S+$ (S+S.f1f7 ;S,>S,AYDYJ NSQST6W6] aS-dS-gjp tSwSz} S.S. SS S/S/ SS S0S S pp S%S%GG ES C S2AS?S3!O'Q2 Q O Y4 ? QD OP Y4T G X Q] Oi Y4y Y4 Q O Y4 G  Y4  3  n         ! , ^ Y4o Y4s U v U  Y4 Y4   Y4 Y4   Y4 Y4 G Y4 Y4   Y4 W4 S S+ Y4< Y4@ W4M SP S` Y4q Y4 Y4 Y4 G W4 #   Y4      G$G*y |     Y4 ;[ cegik): c +;ik;8 ;[     : F!H! ie H  HH H"+ H) H1 H" :    A+;ik;8" ;[(@**d(*)ȷȷ)ȷ)Ȅe2 4  )  )a4 ,@ ~global a4 ;[ cegik): c +;ik;8 ;[     : F!H! ie H  HH H"+ H) H1 H" :    A+;ik;8" ;[(@**d(*)ȷȷ)ȷ)Ȅe2 4  )23 ,@  < Clock\H** :a "hHHK"kN22>Clock HH "kZ hhkA`K"᭹HH" "` ;[ M+`aab`KHH" HH"`" )  :""`k  !-a0a>EIN]eA   '+6IMMOQSaUWaYb[]_fjux|56789:; ,@ main '"u Chronograph \H** ;8[iVHH"WN"N  7FFHCJLNPHH "WhHHK"W V HH"Wh{i+k Elapsed Time: ;8[iHH "W V {i+k ;8[i,HH"W"WHH"WtHH"Wh݆߯HH"W"Wݢ"W963+8" 0 H`d {i+k ;8[iV"" V {i+k ;8[iKHH"WhHH"dh߆{iLHߦ"h<"zzH"h{i{iLT{iLHKߦ"h"zzH"h{iv{iLT{iLHߦ"hK"zzH"h{ia{iLT{iLHߦ"h"zzH"h{i{iLT)3E{iH{iLH"{i{iLTv)3C{ivH{iLH"{iv{iLTa)3A{iaH{iLH"{ia{iLT?{iH"o=;ʆ̂6ʯ8 : {iaH4{ivH2{iH-{iH+{iH{iLH "{iL{iLT :"W{iLH"W{i+k  ::daysday1000 ;8[ik#T{i+k#Copyright January 1988 - Joel Prail ;8[i{i+kHHH ;[H HHH HH '"  Ȁ 8: ))e:  +hhhk ;8 [  d) e )e     ;e iHZ"TzhkH"hk ;[0   +  ;ik H;[ I I IIʀ&&ff !  8  FfFfͥ  IIzzzzzz+k8k ;[   :0 )   h)+H   ;i(k'"u 4V@EQWWZcjq ux{ FHJLNPWWVW /4@WGVpuWWWWWWWd  3V?"JVmWv{d'3;jv~EECC'A*ABZ?]?ior=w;68:4422--++W!WUYk`akyTY ,@ ~global Y=>?@ABCDEFGHI ' ,@ main '$ x  Calendar \H** ;8[ij  " ;i"PN "$&(*,.02468:<>@BDFHJLNPRTVXZ \8pI " hi ii ^" hi ii ^`bdfhHH "khHHK"k j {i+k ;8[ijHH "k j {i+k ;8[iHH"kh݆߯HH"k.HH"k"HH"kݢ"k<963+8" 0 H`\ {i+k ;8[ij"  j {i+k ;8[iƩȩʩ̩ΩЩҩԩ֩ةکܯ{iT{i T{iT{iT{iT{iT{iT{iT{i Tp{iT[{ix TF{in T18( 0 H`.CXm {iHk{iHH"` h{iH{iH" {iTm" h:" zdީ:8pI0: uƅޥeeޅ" h  8pI %   " h %   : Ə o" z" h{i+k19 December November October September August July June May April March February January ;8[i :"k, "k :"k`8 H <"k٩۩ݩ8pI0+{iH" hH:" hi H" hH:" hi iHJ"k{iHS"k8pI0{iH"` h{i{iT" hi::::H{iH"kh8H:" hiH:"k{iH"k{iHV"k٥݂ۯ8pI0=ݩ8pI0{iH" hH:" hi H" hH:" hi iHJ"k{iHS"k{iH"` h{i{iT" hi::::H{iH"kh8H:" hiH:"k{iH"k{iHV"k٥݂ۂߥi:8pI     % ۯ:8pI0{iH" hHߥ" hHJ"k{iHS"k{iH"` h{i{iT" hi::::H{iH"kh8H" hiH:"k{iH"k{iHV"k٥ۂ {iH^8Z8 H`8\H^8ZHJ"k{iHU"k{i T" zH{iH"kh" z8٥:::H:"k{iH"k{iHV"k{i+k(c) 1987 Simple SoftwareSun Mon Tue Wed Thu Fri Sat ;8[i{i+kHHH ;[ HHHHH &"  Ȁ8: ))e:  +hhhk ;[;8 ")) )))));i+k ;8 [  d) e )e     ;e iHZ"LzhkH"hk H;[ I Iʀ f  8 F F I+k H;[IIʩ FeI+k$ x  1j@CFILORUX[^ a d g j tP{   "$&(*,.02468:<>@BD FHJL"N&P-R1T8V<XCZJ\R`h y^ ^`bdfhkkjj&+7k?jgkqvkkkk\ ,j8 Cj]bfk "*7?LTaiv~xxnn.CXmkk`   , 37 >F T  &/7<@GK PW[ `k, , k k`#kV b r ~ kk`  k +k?kE^kx    k k ` 0 P kc t k k  k   , N \ k k k `   k   k k & kK ^P ZY `^ \c ^h Zt k k      k  k k k| L m ,@ ~global mKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~77= ,@ )* Calculator\H** CalculatordN'(,(s"9:2< ; (OK#Insufficient Memory for Calculator.KH"h>k;8 [K%zHH"hh;@BH " 3"H"h)D HH"Xh2h4 ,24 4H2HK"%F " +;ikHH"4H2H"DHH""6RTR" + 6""`6"D<0" <0"6T","7"6S"`K%$4H2H "  ">H"k%)){)}))))`KP;8 [P + ;ik` `1 NȷLHHLHNH4H2H"h`HLHNHJHHH"h`HJHHH"hc ` `H"k+`4H2H"`FIF ` `s'Hq'H"'H'H"ᯋ'H'H"'H'H"ᯣ'H'H"'H'H"᯻'H'H"'H'H"(H(H"(H(H"%H%H"%H%H"4H2H"4H2H"`'H'H"s'Hq'H"'H'H"ᯋ'H'H"'H'H"ᯣ'H'H"'H'H"᯻'H'H"(H(H"(H(H"%H%H"%H%H"4H2H"4H2H"`4H2H" 4H2H"4H2H"`;8 [HH>H "hh+;ikHH>H "h4h4`;8 [HHZ "hh+;ikH"h `D<$(<D `<$<, ` " ( H) "`  w,`+CALCULATOR by Tom Hoke, (C) StyleWare Inc.MemRadRec ** Data Error **`HH"4H2H" . o H("h&$8&8D8H"::H:"᭷R1=1=SIN@L@LCOSO[O[TANR>DAsinAcosAtan". ".M+1= 1=M-@L @LMoutO[ O[MinO[O`[RND1\=u1=@\Lu@L+/-Ox[O["LnO[O([ZEE"."`.RADDEG1=1`=RCL@L@`LSTO"\.u".RECXEQ1x=1="1=1(=Z"x.".""."(.Z@xL@L"(@L@(LZ) OFF?@5?5h!@?? d7 Store in: Recall from: Working... ;8 [w)y) w,y))) w,)w)1^ *** ) =/B ..) =/3 .)w) /w) , 2-{)})) +;ikv,v,,,,,,,,,,,,,1/////41w,,1'2A2[2132u2- .--433131K/0$1@.y..0.;1`"6 ,)*` (0) q- {)}))8`w)i. ,8`})) .}) ,8`)e)) ,+ ,)8`*{)(0(2) )&){)(*0 {)((*(0 q-`*)* "**( "*`*(*** "*) "`)!* ")`!*) "ᜁ)`) -`)!* "`) K/ -`)!* "`)I)*`)I)((H(H "8`((H(H "8`)*("08`)*("08`w)8H".)`w)8H"/)`;8 [ e +*) +;ik;8 [ e )+* +;ikw) `8`)-H(eH"00(++(-(0 q-8`) "`w)8)))) "{)}))8`) / 2-)`/50//0b0`)) "`)) "`)) ")) "`)) ")) "`)) ")) "`;8 [00+  ;ik;8 [00 +;ik))) ")))"4)`))"5 /`{)}))**("0  ** 0`H"k+* ,6 $1`) "`) "`) "`)) "`)* "*) ")) "`) 1) "`) 1) "`) 1) "`) "ᭃ) 1`)* ")* " K/)) "*) " 1 u2) 1)) "ᭃ) 1`)* ")* " 1 K/)) " 1 2) 1*) "ᭃ) 1`) "`) "`) "`HH%"h)h))) ") ")* ") ")* "* "*) ") ")) ")) "`)) "`)* "*) "`;8  [ %6+ ;i8kHH4H4H"86hhm4m4  4i 44i44H4H"r6+ ;ik;8  [ ,6+ ;i8kHH4H4H"86hh48 444m4m4  4H4H"r6+ ;ik4x`4`8`;8 [  +  ;ik;8 [ )+  ;ik44k /,@d^Fsswssf1A a 1,J 40Ҥ)>}IBHghUx BK_Vj@22DJfP=?ssf}U3Ows{MJaTݚ>D%$H&")b"]E]`Ouj#H173Z$ZKXLl˻]ݲ]3333)?^Um$'hyU UκT֮j@)"DʚВqJ$D183YQP\ff2S3333(R^T٢>@%( [g&-֧a yHDo\HBwiCOQ'Ā3:sL3R?UUm:ޤ$(iY{B9! pc @@`>|@@@s⍀D $&+,047;?CGKOSWXZ]adhmquy}  !%)-159=BFJNQRUYY]aeimquy} $(,17;?DILPTY^bfgkqtx}""""""""""""""""""""""""""""""""DDDDDDDDDDDDDDDD 0?P_* ^'&>7%AO@TBa3rDuzX242442%F 42D6R6T R R+3D8<;<G<J<T6W6x6{6%42>%)){)}))))PP  1!#%')+-/7N>LBHEHHLLNP4U2fLjNtJyHJHk+42FFs'q''''' '''"'.'3'?'D'P'U'a(f(r(w(%%%%4242''s'q''''' '''"'.'3'?'D'P(U(a(f(r%w%%%4242424242><>Q4U4dZgZD<$< <$< ())w,42.o ((&$&D"<((! $? 6<AD[^iy)o{)v(y((0((0(((((() D" | | )  D% "2 5 @ )E L DU "b e p y)v {)} ( ( 0  ( ( 0 h (    ) ) * *   * * ( ( h * )   ( ( 0 D 4 2# %& %) %, %G <J <U %Z %` 4e 2j %m %p %s % < < % % 4 2 % % & & < < % % 4 2 & & & & < <( %, %1 46 2; &> &A )&D )&_ <b <m %q %v 4{ 2 +& +& ;& ;& < < % % 4 2 =& =& M& M& < < % % 4 2 O& O& _& _&. <1 << %@ %E 4J 2O a&R a&U q&X q&s <v < % % 4 2 s& s& & & < < % % 4 2 & & & & < < % % 4 2 &! &$ &' &B <E <P %T %Y 4^ 2c &f &i &l & < < % % 4 2 ( ( ( ( = = % % 4 2 & & & &<<%#%(4-22&5&8&;&V<Y<d%h%m4r2w&z&}&&<<%%42&&''<<%%42''' '%<(<3%7%<4A2F )I )L)O)j=m=x%|%42''%'%'<<%%42''''7'7'<<%% 429'9'I'I'9<<<G%K%P4U2ZK']K'`['c['~<<%%42]']'m'm'<<q's'42u'u''' < <''#4(2-'0'3'6'Q<T<_'d'j4o2t'w'z'}'<<''42]']'''<<''42u'u'' '&<)<4'9'?4D2I'L'O'R'm<p<{''42''''<<''42''''<< % %42''"(%(@<C<N%R%W4\2a(d(g(j(<<%%42((+(+(<<%%42G(G(W(W(==%!%&4+20/(3/(6?(9?(T=W=b%f%k4p2um(xm({}(~}(==%%42(())==%%42-)-)=)=)#=&=1%5%:4?2D)G)J+)M+)h=k=v%z%42Y(Y(i(i(==%%42?)?)O)O)==%% 42Q)Q)a)a)7=:=E%I%N4S2X([(^(a(|==((42((((==%%42((((= =%%4"2'(*(-(0(K<N<Y(^(d4i2n(q(t(w(<<((42c)c)s)s)<<%%%%42% %%%,</<:%?%E4J2O%R%U%X%s<v<%%42%%&&<<%%42&&&&<< %%42 !&#!&&)&))&D<G<R%V%[4`2e3&h3&k;&n;&<<%%42E&E&M&M&<<%%42W&W&_&_&<<!%%%*4/24i&7i&:q&=q&X<[<f%j%o4t2y{&|{&&&<<%%42&&&&<<%%42&& & &'<*<5%9%>4C2H&K&N&Q&l<o<z%~%42(((()=)=%%42&&&&<<%% 42&&& &;<><I%M%R4W2\&_&b&e&<<%%42&&''<<%%42 ' ''' < <%%!4&2+).)1)4)O)=R)=]%a%f4k2p's'v%'y%'<<%%42/'/'7'7'<<%%42A'A'I'I'<!<,%0%54:2?S'BS'E['H['c<f<q%u%z42e'e'm'm'<<q's'42}'}'''<<''4 2''''6<9<D'I'O4T2Y'\'_'b'}<<''42e'e'''<<''42}'}''' < < ' '$ 4) 2. '1 '4 '7 'R <U <` 'e 'k 4p 2u 'x '{ '~ ' < < ' ' 4 2 ' ' ' ' = = % % 4 2!'!'!( !(%! =(! =3!%7!%%(C%(I%4N%2S%(V%(Y%(\%(w%<z%<%(%(%4%2%k)%k)%s)%s)%<%<%%%%w+w)z+y)+w,+y)+)+)+w,+)+w)+*+*+*+)+=/+.+)+=/+.+)+w)+/+w)+,+2-+{)+})+)+,v,,v,,,,,,,,,,, ,,",,$,,&,,(,,*,,,,,.,10,/2,/4,/6,/8,/:,4<,1>,w,@,,B,1D,'2F,A2H,[2J,1L,3N,2P,u2R,-T, .V,-X,-Z,4\,3^,3`,1b,3d,1f,K/h,0j,$1l,@.n,y.p,.r,0.t,;1x,6|,,,),*,(,),q-,,{),}),),w),,,}),),}),,,),),),,,,,),*,{),(,(,,)-)-) -{)-(-*-{) -(#-('-**-(/-q-3-*6-*9-)<-)?-*B-*O-*R-*U-*X-*[-(^-(n-*u-*x-({-(~-*-*-*-*-*-*-*-*-)-)-)-)-!*-!*-)-!*-!*-)-)-)-)---)-)-!*-!* .).K/.-.).).!*".!*1.)7.)<.*A.)G.)L.(O.(R.(V.(c.(f.(i.(m.(}.).*.*.(.(.0.).*.*.(.(.0.w)...).w)./.).+*.)/)/+*>/w)L/)R/(U/(\/0d/(m/(t/(y/q-~/)/)/w)/)/)/)/)/)/)/{)/})/)/)///2-/)///50/////0/b0/)/)/)/)/)/)/)/) 0) 0)0)0)0)"0)%0)(0)60)90)<0)?0)L0)O0)R0)U0)c0)f0)i0)l0)y0)|0)0)0)0)0)0)0)0) 1)1)1)1)1)14 1)%1)(1)+1).1)11571/<1{)?1})B1)E1*H1*K1*N1(Q1(T10X1^1c1*f1*u1{1k+1*1,61$11)1)1)1)1)1)1)1)1)1)1)1)1*1*1*1*2)2)2)2)2)2)(2)-2102)32)B2)G21J2)M2)\2)a21d2)g2)v2)y2)2)212)2)2*2*2)2)2*2*2K/2)2)2)2)2*2*2)2)212u22)212)2)2)3)3)313)3)3*"3*/3)23)53*83*E31H3K/K3)N3)Q3)T3)a31d32g3)l31o3*r3*u3)x3)3)313)3)3)3)3)3)3)3)3)3)3)3)3)3)3)3)4*4*4)4)"4)%4)(4*+4*84*;4*H4*K4*N4)Q4)^4)a4)n4)q4)t4)w4)4)4)4)4)4)4)4)4)4)4)4*4*4*4*4)4)4%65454586%54,54S54Z54]54c54f54j54n5r65,654545865454545454546464 6r6&64-646464 ,@ main !LW Ascii \H** ;8[i  N"$&(*,.02468:<>@BDFHJLNPRTVXZ\^#`2bdfhjlnHH" "Ꮘh  HHK"Ꮘ    8H"^z : xiHJ"Ꮘ{i+k Ascii Chart ;8[iHH"Ꮘh HH"ᏈpJ"ᏈpU"Ꮘ{ib TH{iH"Ꮘh"^zP8H$:"Ꮘ{iH"Ꮘ{iV TH{iH"Ꮘh"^zP8HD:"Ꮘ{iH"Ꮘ{iOTH{iH"Ꮘh"^zP8Hd:"Ꮘ{iH"Ꮘ{iFTH{iH"Ꮘh"^zP8H:"Ꮘ{iH"Ꮘ"Ꮘ HH "Ꮘ  {i+kSoftwareSimple (c) 1987 by Copyright ;8[i[HH"Ꮘh݆߯ HH"Ꮘ  "H"  ۥۂ HH"Ꮘ" HH"ᏈxU"Ꮘ o :8pI0-HH" o HH"Ꮘ50 HH"ᏈHH"ᏈHH"Ꮘ ׆٥مѥׅHӢ"Ꮘhեբ"hեՂZoHӯ HH"ᏈhH";i 3$ ݢ"Ꮘ<963+8" 0 H`| {i+k ;8[i"  {i+k ;8[iHJ"ᏈHH HHHH "Ꮘh{i+k ;8[i H:"Ꮘ"Ꮘ7H:"Ꮘ"ᏈdH:"Ꮘ{"ᏈH:"Ꮘ="Ꮘ{i+kAsciiHexDec ;8[i {iH"{i{iT8pI 0 8pI 0%D {iH{iH"hH"hhHH{iH"W 5     {i+kDEL0DLEDC1DC2DC3DC4NAKSYNETBCANEM SUBESCFS GS RS US 0NULSOHSTXETXEOTENQACKBELBS HT LF VT FF CR SO SI ;8[i{i T  "^zi)  {ieH"^hi)  {ieH{iH"HH{iH"W{i+k0123456789ABCDEF ;8[i :"Ꮘ{iH"h{iH"Ꮘ7:"Ꮘ{iH " ;ih{iH"Ꮘd:"Ꮘ{iH ";ih{iH"Ꮘ{i+k ;8[i8pICH"Ꮘhݥ8pI߯ 8pISeߏ8pIxH~"ᏈHH" eH"Ꮘ88pI߯ H"ho eߏ8pI8pI>xIH~"Ꮘ8Ho :H" eH"Ꮘ Iߥe8pI ݯ eߏ8pIxU"Ꮘo :8pI0-HH" oeH"Ꮘ ߥe߅88pI 88ݯ eߏ88pI 8xU"Ꮘo :8pI0-HH" oeH"Ꮘ$!80 H` @  {i+;ik ;8[iɁHHH"ᏈhHHH"ᏈhxU"Ꮘ o :8pI0-HH" o%Hs HHH"Ꮘh{i+;ik ;8[i{i+kHHH ;[ HHHHH &"  Ȁ8: ))e:  +hhhk ;[ u v :T+  ;i k ;8 [  d) e )e     ;e i ;[907301 )80'e     +  ;ikHZ"lzhkH" hk H;[ I Iʀ f  8 F F I+k H;[IIʩ FeI+kcck!L W.BK"R$VY\&a(h*l,s.z02468:<>@BDFHJLNPRTVXZ\ ^`b!d(f/h6j=lAnG"J"TZ_ ci o t ^   xx$. 3?CpFp\`pcpmxbb^VV^#7BOJO^f^FF^  %19 H  xx  $ ,:?D JOSW`g lx ),3 8DIMRV]fo|$0;UX^rx } &-9={@{JQ_p      8 WM R      ^B ^x  W     ) 9 L h           x x    $ ; B `  e i o  s w ~        x x            $  *  . 2 9 = R V xY xc g k o t  |                 (04x7xAEIMR Zhmr x} @    #(49=x@xJN RVZ^c ky~ s s _uevutvtPlY  ,@ ~global M@ ,@ m'8DS--Screen Saver\H** "k"kHZ"/kH"k;8  [{iHNH"v N ȩHhh ȩ "$&(*H,hh02ȩ6ȩ:ȩ>2@2B}D,IHFhhHJhhHH "[ hhHHK"[ HH"[ hhHH"[ {iHHnH"{iHH|H"{iHH~H"H"[ H"[ 2HH:"[ {iH"[ dH(H:"[ {iH"[ 2H<H:"[ {iH"[ 1u!NHH "[ H"[ +;i kBrought to youbyMichael Crawford;8 [H "[ +;ik;8 ["+;ik;8. [IH"[ h,HH "[ h,8pI0 m@mNo qusʎyw}{ʎmIʎʎHHoH "[ hhHK"[ HH"[ hhH"[ H"[ HH "[ ʎ"[ 0uH" {i HH+H"m8mH"[ d$d&H"[ $H&H:"[ {i H"[ " I  8mpI0  "o  Hm8zpI0" I((8pI0( "o((H8zpI0 $(&H"[ H(H:"[ {i H"[ ****'HNHH"[ htH"[ *"[ 9"[ "[ HH "[ E****1u"8 H`" {{{"`+;i.kIIgs;8 [H"[ +;ik;8 [+;ikx {;8[:ڥ H H H h h h  I  $J        {i+k{;8[:H" " {i+k{;8[:ڥ"k{i+k"0][k ;[I4" )d9 / /  ")   +`= C K H" ] H"h") " \ H" \ Ki Error occurred at line "i H" in procedure "j ""Ge g  " " Line NameG " ---- ----c "e g "Aȩȗ na i  U GE~| "F e i  "D "D8  0 E |~ ")i+;ikiHHH] H "hhkHH; [xȗzȗȥȥȩxz xzi+zzzzkHHHHH; ["3|~  ȷݠ|ȷ~ ȷ+;i kKg e e HH"k; [8""+hhkHHH8H; [  "D % Q8  0 " " "De i @< " "   "DZ ""+;i kHH8H; [xȷzȷ HH"+hhhhk:JJJJkH; ["3|ȿ~|~+hhkIH7IHZ; [*8e쪥I+zzzkh@k; [ "{HHH" +hhhhk; [  )8 I"1 H HI i " +;i k0 i[[[[(k0[(kH( &"L(Qi ;[ ߼ 8(I ȗ(  @+hhkHi H ;[ "+hhk'8D S)m.:m?FmN/Um[wv [ [ [  #[ 3n6n=N|Q|Xi~l~s[ [ [ [ [ [ [ [ R[ UXd[ [ [ &[ *EmNmToZq]u`smypwv}|{m +.3o6oB[ FJMP\[ behx[ |[ [ [ [  ++mm [ +[ A[ T[ W lmom o[ &[ 9[ adp[ tw}[ [ [ [ [    { {{`9<H[      k 0 ] [ /  /  / 9 = ? C G K y } ]        i    i     j  j  # G' e * g U G X G q c t c ~ e  g  i     j  j   G   x z | 0  AK 3U |Y ~j Ap w  ~ |  D D|~"M] xzxzxz3|~(|0~Kg Pe Ze gD7A[DDxzK3R|Z~b|h~{18i<[@[K[P[r[} ,@ &i##ScreenSaver\H**K}kHH "h"]"}""""""="]" }" " " " ""="]"]"]"]"]"]"]"]"]" ]" ]" ]" ]" ]"]"]"4)4}kK}4ୁHH "]"}""""""="]" }" " " " ""="9""}kkKZ zk`` "hHH"`Michael Hackney!N @0&i *}36BEW]Z]g}j}wz==]]}} '*7:G=J=W]Z]g]j]w]z]]]]]]]]]]]]]]]]]] ]]]']*]7]:]G]J]Xe}m}ry}]]}}== ]]}}+.;>KN[^kn{=~=} m ,@ M STV\H** By: Keith Rollin. Copyright (c) 1986-1987, Apple Computer, Inc. All Rights Reserved. (I've always wanted to say that!)K4 NC "  K" kKHH "kK 7Z ;[+hh"᭵HH"79"kk88 XHH ;[+hh: `  `88HH "hh`HHHH "hh`"hhk8`` `HHHH"h) ``HHHH"h `Ɂ  ` ` `"HH"hmJJJ}H"0} 8i:" `HH"hHHHH"h .`HHHH"h`d2HHHH"hHHH" +`hh`HH"HH"᭵HH "᭵HH"᭵HH"  X:" `h*h,h"h$h&K$H"H"h&$(78CCmm8H$H"H" .,H*Hk g"hh8HHH~"ᭊHH;"ᭊHHh" ``HH"  : HH" HH"`:"`    `mJJJ`) +);` m[ [H:" ][H:" `KKh)HH\ &" H"` "h` h) 0h)*J 0 (P "`HH"hI`HH0"HH ;[+hhhh""`N 6 Show Tools Versions  . ]U\m  " 3 B V i z  # 8 K \ xx. Unnamed Tool 1. Tool Locator 2. Memory Manager 3. Miscellaneous Tools 4. QuickDraw II 5. Desk Manager 6. Event Manager 7. Scheduler 8. Sound Manager 9. Apple Desk Bus10. SANE11. Integer Math12. Text Tools13. Used Internally14. Window Manager15. Menu Manager16. Control Manager17. Loader18. QuickDraw Auxilliary Tools19. Printer Driver20. Line Edit21. Dialog Manager22. Scrap Manager23. Standard File24. Disk Utilities25. Note Synthesizer26. Note Sequencer27. Font Manager28. List Manager MNCC7)7,99;=?ACEGIKOSVY]`cXy   /3QUgknqtkw{  "&26<}M}TW^adgjmpz. %+,0;?JNY]hlwzX}*,"$&$"&CC$ ".,*/@DGJQTX\gkvz)+)$,36[<[G]M[Xehp\s\),69GW\m "$&(*, . 0" 23 4B 6V 8i :z < > @ B D F H J L# N8 PK R\  ,@ main & System Lock\H** ;8[i0<(2*,.HH( "5h1313 0 HH"5h3H1H"5"5"5<(*K,d.3H1H( H "5<(x*K,.3H1H( H "5 :"5q"5:"5_"5#(*2,.3H1H(^H "53H1H9"53H1H"5 H"5h8pI3H1H "5  ] " %q  T3H1H""53H1H\ "53H1H#"5:"5H"5 " H"5h8pI3H1H "5   " %}d bN3H1H""53H1HG "53H1H#"5   {i+kEnter the password:Set the password:Simple Software System LockCancelOK ;8[i3H1H"53H1H "5"5 0 {i+k ;8[i(P3H1H"5963+8" 0 9H` {i+k ;8[i0" 0 {i+k ;8[i{i+kHZ"zhkH"Uhk ;[   :0 )   h)+H   ;i(k& 30E(L*S,Z.`(c(v5{13130531555(*,.31 ( (-53(:*A,H.L3Q1Y(\(be}55qq55__5(*,.31((^^ 531$5'3,185K5OWe3j1r u 5]]      31531\\5315$5'H*H459O5S[i3n1v y 5    31531GG 5 31 5-3153155031 5499;=?ACEGIl0x0U7 ,@ ~global 7^ ,@ DAOpen ,,"L"l""""" "," L" l" " " "" ",",",",",",",","," ," ," ," ," ,",","4L)4 N"hL4,"L"l""""" "," L" l" " " "" "k2,,LL$l'l47DGTWdgt w ,,LLll  ,,,,$,',4,7,D,G,T,W,d,g,t,w,,,,,,,,,,,,,,,,,LNN%L/,2,?LBLOlRl_bor  ,,LLll "   ,@ main  Doodle Pad \H** ;8[iHH"hHH""^"NfHH"HH"{i+k ;8[iHH"N"Nv>x@zB|D&:<FHHH "hHHK"  {i+k Doodle Pad ;8[iHH "  {i+k ;8[i$,HH""&HH"HH"hHH"HH"hώϐ"HH"HH"hHH"7"nT"HH"7"nT"HH"HHHH*"HH"hHH"7"nT"HH"7"nT"HH"^HHHH*""&3+8" 0 >H`933 {i+k ;8[iJ"HH"HH"H!"  v22,}J"nKJ" J"HP "hHHH "hHHH "hHH"hHH"HH"^"N^TPR@TnVpXrZt\HH"N"n&"7"nT"HH"HHHH*"{i+k ;8[iHO"h/I%7"nT"IHH:"!7"HH<"I7"T"{i+k ;8[i "H "h  H"h  HH""HH""  {i+k ;8[iN#T{i+k#Copyright January 1988 - Joel Prail ;8[i{i+kHZ"zhkH"Zhk ;[0   +  ;ik <AFJO[ahloy|^^NNff #'v+>/x3@7z;B?|CDG&J&M:R<YF`Hfisx}  &$)5DINRWcot{nn nn#/5:?DVlqvznnnn&9>>@9BDFH3J3LNq}vvnn$(4INS_ty~^^N^N^PRTn VpXrZt"\&+7:N=NGJnMnWdgnjntw|nn #/2HKP\_x{~ 8<NCDNZ ,@ ~global &ENIGMA \;t ,EX.DECIS.MKR!@Z%GRASSt%HAVOK$|/ $INFO($&KILROY#"z!(MEMCHECK5F p**MENUTIMEHM<Fp*+MENUTIMEHMSBFp*%MOUSEH$u" )MOUSEINFO[F p*'NODOS16b9p[6#&ONLINE Fp*\ ,@ "~! Enigma\H** k ;[KK"HH "hhHHK" "p" ++kK!HH "HH "k ;8  HH"HH" ";i +k`   `y+HH""$"I HH"":""HH"`H H H"_h`HHHHH"h"HHH" h H" H"  HFO"h$HHHH"p8<HHH "hHHH "hili H"-#HHHHH"h"S `F<HJLvlB --- 8HH%""H"h)bk ;8[6:>b di H"h  HH\"X"i;i+k Z TXH"hNN kEnigmaK} <<<<nv~ -.;<IJWXefstwwDDUUffDDff33 OKNewQuitN yi ?????----------------------------------------------------------------------HHHH. "hhHHHH& "hhHHHH "hhkHH"HH">U">S"" "-k ;8H"HH"6S"d gHHH "h iH:"HHH "hii HH"";i+k ;8 H"HH"< HHH "hi i S"᭙ Υ Υ > HHH "hili i 7 i i 8 8 X"Q H"h H H\" X"᭣ i J" [;ik> ;[H"W [;ik ;[ H"W [;ik ;8[d/ NPH{i HHHO"hdʤ  [;i k"W k ;8[ H"h NPK M O Q 0"HHT"6"HHS"MK M O Q 7"K S"K M O Q 7"K S"6"  [;i kHHHH#"h l k r """:HH"HH"6U"6S""`" "`;"D Fi FJi J" " "` `"HH"HH"6V"P"kb HHH "hl         HHH "h X  O k ;[K i i    8 N H"h N HH H"᫥ [;i k ;8d{iH"z "eee e HH"HHH,"h 8 8   x  " e eeeHH"HHH,"h 8 8  HHH-" H HHH" HHHH"HH"HH";i+k ;8[H"h KHH" ;i+k ;8)" pkHH"hhee" ' H HHH"   [;ik(F@(7d(foooffwDOOOwDwDPDOOODDDOOODD"~ !7FhlCbNnRvV~Z^bfj {.&S>`>6 | l B G Z   K & K  6 6& 6j p  G +@Kc):EILQVZehsy!!#%'),0;JNajn"&4IO`mrw  #&),/25;>JQ^pz sw~  37DHVc?CQWory  ,6=J]gnqt fx)VZilnp)HKTgjvy&+3;CFJMPSagms(!%*.38=DJTZ]cfloux|  &;|-1ko@FY]f{yOsw{Tt @ ,@ 3DP_--Executive Decision Maker\H** "k"}kHZ"kH"k;8 [:"}ڥ: "}cڥ:"}ci!HHH"{ :"}ک: "}cک:"}ci!HHH"{:"}ک: "}cک:"}ci!HHH"{:"}ک: "}cک:"}ci!HH$H"{:"}ک: "}cک:"}ci!HH+H"{:"}ک: "}cک:"}ci!HHG"H"{:"}ک: "}cک:"}ci!HHiH"{:"}ک: "}cک:"}ci!HHH"{:"}ک: "}cک:"}ci!HHH"{:"}ک: "}cک:"}ci!HH&H"{:"}ک: "}cک:"}ci!HH%H"{:"}ک: "}cک:"}ci!HH H"{:"}ک: "}cک:"}ci!HH H"{:"}ک: "}cک:"}ci!HH3H"{:"}ک: "}cک:"}ci!HHI H"{:"}ک: "}cک:"}ci!HHUH"{:"}ک: "}cک:"}ci!HHm H"{:"}ک: "}cک:"}ci!HHzH"{:"}ک: "}cک:"}ci!HHH"{:"}ک: "}cک:"}ci!HHH"{:"}ک: "}cک:"}ci!HHH"{:"}ک: "}cک:"}ci!HHH"{:"}ک: "}cک:"}ci!HH'H"{:"}ک: "}cک:"}ci!HH)%H"{:"}ک: "}cک:"}ci!HHN'H"{:"}ک: "}cک:"}ci!HHu(H"{:"}ک: "}cک:"}ci!HH$H"{:"}ک: "}cک:"}ci!HH%H"{:"}ک: "}cک:"}ci!HH%H"{:"}ک: "}cک:"}ci!HH H"{:"}ک: "}cک:"}ci!HH (H"{:"}ک: "}cک:"}ci!HHHH"{:"}ک: "}cک:"}ci!HHVH"{:"}ک: "}cک:"}ci!HHqH"{:"}ک: "}cک:"}ci!HH'H"{:"}ک: "}cک:"}ci!HHH"{:"}ک: "}cک:"}ci!HHH"{:"}ک: "}cک:"}ci!HH%H"{:"}ک: "}cک:"}ci!HHH"{:"}ک: "}cک :"}ci!HH 'H"{:"}ک: "}cک :"}ci!HH4H"{:"}ک: "}cک :"}ci!HHB#H"{:"}ک: "}cک :"}ci!HHe&H"{:"}ک: "}cک :"}ci!HHH"{:"}ک: "}cک :"}ci!HHH"{:"}ک: "}cک :"}ci!HH#H"{:"}ک: "}cک :"}ci!HH H"{:"}ک: "}cک :"}ci!HH H"{+;ikAfter weighing all the options,You have decided against it.Even though everybody else likes it,Something tells you it would be a bad idea.This is about the dumbest idea youHave ever seen. Forget it.The facts speak for themselves.And the facts say NO WAY.At first glance, the idea seemed good.On closer examination, you see flaws.Do not do it.You feel the timing is not rightAnd decide against it.Just say no.My advice is simple - NoDO NOT DO IT!You must be joking.The answer is obviously NoYou have reviewed all the factsAnd do not like what you see.No is the only possible answer.There is not enough information to makeAn intelligent decision at this time.Wishy-Washy is the way to go this time.Put off the decision until a later date.The facts seem sketchy. You think itis wise to put off making a decision.Have patience on this one. Wait untilThe time seems right.You can not make up your mind right now.GO FOR IT!!!!!Your gut instinct says Yes.Why not? You only live once!The time seems right to make this move.YABBA DABBA DOO!!(That means yes)It is damned if you do, damned if youdo not. Why not do?A careful review of the facts tells youto answer yes.That is a big ten four, Good Buddy!This is an opportunity of a life time!Do not pass it up!Sure. Do it. I think.Luck has handed you a great chance.Go for it!Why not??;8 [q o H"B}*"B}9"B}"B}+;ik;8  [{iHNH"]|N ȩHhh ȩ "$&(*H,hh02ȩ6ȩ:ȩ>2@2B}D,IHFhhHJhhHH "B}hhHHK"B}HH"B}ho hq HH"B}{iHH]H"{{iHHkH"{{iHHmH"{H"B}H"B}<HH:"B}{iH"B}nH(H:"B}{iH"B}<H<H:"B}{iH"B}1u1u1uHH "B}q o H"B}+;i kBrought to youbyMichael Crawford;8 [y w u H "B}y +;ik;8 [y "}y +;ik;8D [y Iw"l"/{i@HH"]|B@HH"{H"B}h((8pI0 @N  B@ ʎ         ! # % ' + ) - / ʎ3 1 5 9 7 = ; A ? C E G I IʎM K ʎQ O HH H "B}hu hw w u HK"B}y w u HH"B}ho hq w u H"B}ʎi g m "B} HHH"{ "qs s  *H7"B}*H*"Hs *"cHdH*"H*is "cHHJ"B}HT"B}** H7"B}{ H"B}**i{ H*{ )) **H { )H{ )cH{ )c8d"H"|**: ,** "|I "qi&H&8"Hs &"cHH&"Hs &"cH(HJ"B}HY"B}&: {ci,&: ,i"&: ,H8$$*8*pI0"i "H&8"Hs &"cH"H&"Hs &"cH"iHJ"B}HH H~"B}$$$'**i&: ,m HNHS H"B}hk  k m  %"8 H`"}m '{ H"B}**i{ H*{ )) **H { )H{ )cH{ )c8d"H"|"|I*"qi ( GH H"B}hH8"qHH:"B} H"B}*H*:"}ڥ : "}cڥ&:"}ci!H"B}hH8"qHH:"B}*:"}ڥ : "}cڥ&:"}ci!H"B}i**J***1u***1u***1u***1u***1u***1u***1u***1u***1u***1u"+;iDkExecutive Decision MakerAre we that impatient?;8 [w u H"B}+;ik;8 [+;ik[( {;8[:ڥ H H H |h h h  I  $J        {i+k{;8[:H""}{i+k{;8[:ڥ"̅{i+k"k ;[I4" )d9 }} ")   +`$}*}2}H"D}H"h")z}~}H ;[Fe+k"}\}H"~\}KP}Error occurred at line } "P}H" in procedure } "Q}"L"IL} N} " " Line NameI~ " ---- ----e~ "L} N}"Cȩȗ na i  U GE~ "ށF e i  "F "F8  0 E ~ "ށ)i+;ikiHHHD}H "hhkHH; [zȗ|ȗȥȥȩz| z|i+zzzzkHHHHH; ["5~  ȷݠ~ȷ ȷ+;i kKN}L}L}HH"k; [8""Ԃ+hhkHHH8H; [  "F % Q8  0 "ށ "ށ "Fe i @< "ށ "ށ   "FZ "ށ"+;i kHH8H; [zȷ|ȷ HH"+hhhhk:JJJJkH; ["5~ȿ~+hhkIH7IHZ; [*8e쪥I+zzzkh@k ;8[:IȅIFejf0I{ih[k{ih[@k; [ "܅HHH"L +hhhhk; [  )8 I" H HI i " +;i k0 ʅ(k0(kH( &"LE(Qi ;[  8(I ȗ(  @+hhkHi H ;[ "+hhk3DP _5:FK}RZag}}}!!{}}}#!&!.18{C}P}b}n!q!y|{}}}!!{}}}!!{$}1}C}O!R!ZG]Gd{o}|}}!!ii{}}}!!{}}$}0!3!;>E{P}]}o}{!~!{}}}!!{}}}!!&{1}>}P}\!_!gjq{|}}}!!33{}}}!!II{}}1}=!@!HUKUR{]}j}|}!!mm{}}}!!zz{}}}!!!),3{>}K}]}i!l!tw~{}}}!!{}}}!!  {},}>}J!M!UX_{j}w}}!!)){}}}!!NN{} }}+!.!6u9u@{K}X}j}v!y!{}}}!!{}} } ! !  ! {, }9 }K }W !Z !b e l {w } } } ! !   { } } } ! ! H H { } }, }8 !; !C VF VM {X }e }w } ! ! q q { } } } ! !   { } } } ! !$ ' . {9 }F }X }d !g !o r y { } } } ! !   { } } } ! !   { }' }9 }E !H !P S Z {e }r } } ! ! 4 4 { } } } ! ! B B { } } }& !) !1 e4 e; {F }S }e }q !t !|   { } } } ! !   { } } }! !{'}4}F}R!U!]`g{r}}}!!{q o B} B}B}%B}F]|B}B}B}o q B}]] {k k'{8m;mB{QB}_B}qB}B}B}B}B}B}AB}Dq Go SB}y w u B}y y }y y l/ ]|#{/B}JSY _ f i v y         ! # % ' + ) - / 3 1 5 9 7 = ; A ? C E  G I $M 'K 4Q 7O < ? KB}Ou Sw Vw Yu eB}ky nw qu B}o q w u B}i g m B}  {qs s  B}$s )6;Fs I]B}`coB}B}{ { B}{ { { { { {  |6|CqMP[^cs huzs B}B} s #/49s >UB}X[uB}m S S B}k  k m  }m { { B}+{ .{ 5{ ^{ i{ x{ ||q   B}qB}  B}}"}3}?!B!MB}R\qalB}u}}}!!B}ow u B}{|o||}|̅||||}|}|} }$}&}*}.}2}`}d}D}v}z}z}~}}}}}}~}}}P}}}}}}P}}~}~}~Q}~Q}!~L%~I)~L},~N}W~I~Z~I~s~e~v~e~~L}~N}~P}~~~~~~Q}~Q}~L~I~~~~z|~2"CM5W~[lCry~ȀށFF~$ށOD}z|z|āzʁ|5~*~2MN}RL}\L}iłԂF9ށCށ]FށށFށރz|M5T~\d~j #(܅,/;LfʅӅޅEPqt ,@ 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@PBDFHJLHH "hHHK" H4"hH""hH"hH"hH"hH "hH"h8pI0@H"hH"hH"hH"hH+"h{i+k !!HAVOK!! ;8[iH"h8pI0<H"H"H"H"+H"4H")""H"H"H"H" H"HH " {i+k ;8[i.HH""HH"HH"h݆߯HH""ݢ")"963+8" 0 H`#nqttttt {i+;ik ;8[i" {i+;ik ;8[i"":"cc":"<"8pI )A"8pI0 )"8pI4H""H"8pI""" "H"h8pI04"""" 8pI +"8pI""" "8 pI +"H"h8pI04""""{i+k (C) By Roby Sherman ;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 QOo   #!*#1%8'?)F+M-Q/X1_3c5j7n9u;y=?ACEGIKMoOQQOoOQS_S[#S(Y3S8WCSHUSSXSdo~SmSkSiSgSaom !k!$i)!3g8!BaG!Q_V!c!m[r!|Y!W!U!S!QOoQOo   QOo.o8Q=OIoM \oi!#nqttttt o.o?oCcFcPoaorov]!]!]]]]]!]!]!!)!6!Bo^!k!x!!]!]!!!!] !o1!>!K!X!o   &M*M0&&o ;[ cegik): c +;ik;8 ;[     : F!H! ie H  HH H"+ H) H1 w ,@ ~global w ;[ cegik): c +;ik;8 ;[     : F!H! ie H  HH H"+ H) H1 H" :    A+;ik;8" ;[(@**d(*)ȷȷ)ȷ)Ȅe2 4  ) !" ,@ *7q##Alter File Info\H** K +k0" rHHM U  "h  H HK""h h h h l"  E H H H H""#"(+k K + H H "" I H H"+k KZ Gz+k[\a\\]]]]]``` H H"`k "h  H "h h  H Hhh  i["h"h$  "`l n Z H HZ3"hiح H H"" I` `"% Qhh H Hff'H%H " H H+H/" H H"zZ"ᩀ ),  @ ),   ),   ),   g  g W  g   g W H H" t i VLIG H H H."hIH H H H/" 8 )M ) I q zs u zw" H HM"qV"" g  "h" H HM"qV""#"ȱ`ȱ`+ H H+H/"Ⴏ%hh"%1+Bhh"h Tڭ H H iH/"` 8 * ) m9)m  L LW0A P0`3hh hh 8 8 5 hh   hh h ` `"- """ H iH"့"`)89)   JJJJJ) m=) 8=) ̢  J)d )d ) ƒڢ  H H iH -13H1H "` <; H h) H :   T H H iH )13H1H "`H  " m h)  ` 0  ` ` "!a   `g""a   )" 轺/ -a8 ٽ  i' )&! i3 ȭ5 "#a` i F 轺/ `l #  "h h""H HR3""H H3""H H"5  "h5 "H H " H H"`n5 "h5 "h5 "h`RV lAlter File Informationv:?e*Fb~ &B^z">Zvt (gWO?o'iC-Kn Created: i`-hn Modified:C}K 12 : 00 PM`}h 12 : 00 PMCKJ 9 / 8 / 46 `hJ@10 / 31 / 87 :}C/:C/:C/:C/:C0/ W}`/ W`/ W`/ W`/ W`0/L}U3LU3LU3LU3LU03i}r3ir3ir3ir3ir037  i File to be modified:ff  None selected Z BADB!Z ^ASP!+Z zAWP+5Z BAS b BINb! CDA!b+ CMD+b5 DOC  "DRV! >EXE!+ ZFON+5 vFOT J LIB!J NDA!+J OBJ T P16T! PIC!T+ PNT+T5 :RTL  VS16! rSRC!+ STR+5 SYS l TOL!l TSF!+l TXT+5l VAR+5J 6PASizR#D.R.Hill, MaineFrame Software, 1987xN Change File Infox Restore File Infoh<|F& Delete Allowed(F|P& Rename AllowedP|Z& /BackUp RequiredZ|d& W Write Enabledd|n& } Read Enabled S  Select Filed 2A  Try Again2A CancelP-Diskette is write protected!ProDOS 16 error 7;,hIf you have an X-10 Powerhouse, you need MaineFrame Software's, IIGS control program, "X-TENd!" Call us at (207) 799-8812. <,, 12 1 2 3 4 5 6 7 8 9101112 1 2 3 4 5 6 7 8 9101100010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899/DRH.GS.MASTER/FILE.INFOSpecify the file to modify:{ k p5533399777 $ AFK @   Qi)AYqD_ ;8[:IȅIFejf0I{ih[k{ih[@k*7 q0 GrLM OM RU UU v y        E        I# & * @GG[I\KaM\O\Q]S]U]W]Y]b f           l n   , 0 @IFIT%Y \Q_Qh l s'w%  +   )  )  )  )  g   #g&W, /g2 8 ;g>WA E Pt S [jz ~       ) )Iqzsuzw   q qg  % ( H L WqZq+  +%%%BB       :9E J O RWY h3k3t w    5           "; ? b9ru==    -1310 <F LT\cTf j n v {)~131         a   ga   # & ) 1 8? DN U X b i s v  3 5 a     l l  R R  8 5 ; 5 H 5 ] a { 5 ~ 5  5  5  5  5     l p t vx :|     ? e  * F b ~      & B ^ z      " > Z v       t      ( g$ W( O, ?0 4 8 < @ D H L P T oX '\ ` d h l      4@[/s////////3/K3c3{333333 3#3/736BR^nz"2>NZjv.:JVfr*6FR#/KWq} ^h%AK{Q ]kc 5533 3 9 9777  $ ! #A%F'K) + -/@1 IQKiMOQSUWY[)]A_Yaqcegikmo$%&'()*+,-./01234 ,@ main < KiLrOy\H** ;8[iHH"0N  "$&(*,.02468:<2>@pBDFHJLHH "hHHK" {i+k"KILROY" ;8[iHH " {i+k ;8[i.HH""HH"sHH"h݆߯HH"ݢ"963+8" 0 H`'adggggg {i+;ik ;8[i" {i+;ik ;8[i""=:""""5:"5<"2*:"P*<"H"h8pI0 H"z1Hn"zX" H!"zH5"zX" HN"zHb"zX"67"T"H7"z&HK"z7"Y"7"X"H("zH:""HU"zH:""{i+k** (c) Roby Sherman ;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! .:Q?OK]U\`cfkr v } !#%')+-/1357 9;=?$A+C2E9G@IGKKMQT^]dOiQmQrO~]OQQO]QO ] QO"]2]<QAOM]\]'adggggg]!]2]69C]Q]_]p]]]]][[S[ UW[ YSS]S[# (U/W3[; @YDSGSQ]XS\[d iUpWt[| YSS]SUWY]SS]S[ UW[ Y ]SS]*].S1S;]?[G W][^h]l[t ]]] (H.IE E a e kaa] ;[ cegik): c +;ik;8 ;[     : F!H! ie H  HH H"e ,@ ~global e ;[ cegik): c +;ik;8 ;[     : F!H! ie H  HH H"+ H) H1 H" :    A+;ik;8" ;[(@**d(*)ȷȷ)ȷ)Ȅe2 4  )6789:;O ,@ main O( al, Memory Check \H** ;8[iRHH"SN"sN 7BFDCFHJLHH "ShHHK"S R {i+k Memory Check ;8[iHH "S R {i+k ;8[i|,HH"S":HH"SnHH"Sh݆߯HH"S":ݢ"S3+8" 0 H`M {i+k ;8[iR"  R {i+k ;8[iH"ShH"ShHH"Sh߆HH"Sh ߩ"[h"zzۆdө d{iH{iH "{iH"7"S{iHT"S :"S"S"S"S7"S{iH{iH "{iH""hթ{iHT"Sn :"S"S"S"SϢ"SѢ"S{i+kusedfree ;8[i)#T{i+k#Copyright January 1988 - Joel Prail ;8[i{i+kHZ"=zhkH"hk ;[0   +  ;ikcck H;[ I I IIʀ&&ff !  8  FfFfͥ  IIzzzzzz+k H;[IIIIʀFf ee&IIhhhh+k;8 ;[  {iH "{iH{i H " +;ik( a l5RAFRSX[dskrvy| BDFHJLSSR)S0RY^jSm:qvSSS:SMR" -ROS]SlS~S[S SS&S3S69CSPSxSSSSSSS))e=nU ,@ ~global U=>?@Ab ,@ main b'(3< MenuTime HM \H** ;8[iRIN":N BDFHJLNPHH "ShHHK"S R {i+k ;8[iHH "S R *"S{i+k ;8[i|,HH"S"(HH"SnHH"Sh݆߯HH"S"(ݢ"S3+8" 0 H`1j {i+k ;8[iR"*"S R {i+k ;8[iHH"ShHH"ShH"SH"ShH"ShH"Sh{iH)"SH"Sh8pI0{ł>"S"S"S{iH"Sé8pI0$êÆ))  d H{iH"Sh8H :"S{iH"Sɢ"Sˢ"SǢ"SԿ:"S"S{i+k ;8[i#T{i+k#Copyright January 1988 - Joel Prail ;8[i{i+kHZ"!zhkH"hk ;[0   +  ;ik'( 34RCFO:V]dBkDrFyHJLNPSSRS RS=BNSQ(UZfSuS~S(S1jRSR>SPS^SiSwSSSSSSSSXSnSSSSSSS,!5U ,@ ~global UCDEFGc ,@ main c()4 MenuTime HMS \H** ;8[iRIN";N BDFHJLNPHH "ShHHK"S R {i+k ;8[iHH "S R *"S{i+k ;8[i|,HH"S")HH"SnHH"Sh݆߯HH"S")ݢ"S3+8" 0 H`2k {i+k ;8[iR"*"S R {i+k ;8[iHH"ShHH"ShH"SH"ShH"ShH"Sh{iH)"SH"Sh8pI0{ł>"S"S"S{iH"Sé8pI0$êÆ))  d H{iH"Sh8H :"S{iH"Sɢ"Sˢ"SǢ"SԿ:"S"S{i+k ;8[i#T{i+k#Copyright January 1988 - Joel Prail ;8[i{i+kHZ""zhkH"hk ;[0   +  ;ik() 45RDGP;W^eBlDsFzHJLNPSSRS RS>COSR)V[gSvSS)S2kRSR?SQS_SjSxSSSSSSSSYSoSSSSSSS-"6U ,@ ~global UIJKLMNOPQRSTUVWXYZ{ ,@ main { Mr.Mouse\H** ;8[iHH"0N  "$&(*,.02468:<2>@PBDFHJLHH "hHHK" {i+k "Mr. Mouse" ;8[iHH " {i+k ;8[i.HH""HH"wHH"h݆߯HH""ݢ"963+8" 0 H`,jmppppp {i+;ik ;8[i" {i+;ik ;8[i"":"""":"<"H"h8pI0 ""H "z H"zS"H"zH#"zS"H "zH "zS"H"zH:"H<"H<""2 :""2:"" ""C :"{iHH"h{iH"""C:"{iHH"h{iH""  "{i+k  Y=X=(C) By Roby Sherman ;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#L W0<QAOMgW^behmt x  !#%')+-/135 7 9;=?&A-C4E;GBIIKMMSV`gfOkQoQtOgOQQOgQOgQO'g7gAQFORgVeg,jmpppppg*g;g?"B"Lg]gngzgeeggSe UWe YSSgSe  UWe" 'Y+S.S8g?SCeK PUWW[ec hYlSoSygcec ccgcgcgaa__]][[|g gg!+g9gGgXge]jZpcscoccggg[Zccoccg  gPYbgw}@]  }j p} }:=K^Q`Wbvg ;[ cegik): c +;ik;8 ;[     : F!H! ie H  HH H"+ H) H1 H" :    A+;ik;8" ;[(@**d(*)ȷȷ)ȷ)Ȅe2 4  )  )HHHeH"o ,@ ~global o ;[ cegik): c +;ik;8 ;[     : F!H! ie H  HH H"+ H) H1 H" :    A+;ik;8" ;[(@**d(*)ȷȷ)ȷ)Ȅe2 4  )\]^_`a ,@ main & Mouse Info \H** ;8[iRHH"SN"N B DFHJLNPHH "ShHHK"S R {i+k Mouse Info ;8[iHH "S R {i+k ;8[i|,HH"S"AHH"SnHH"Sh݆߯HH"S"Aݢ"S3+8" 0 H`T {i+k ;8[iR" R {i+k ;8[i{iH "S"SH"Shע"S{iH{iH{iH{iH":;i{iH"h{i{iT{iH"h{i{iT :"Sy{iHt{iH"h{iH"SK :"So{iHj{iH"h{iH"Sע7"S{iH{J"S{iHT"S{iHL"S7"S{iHS"S8 pI 0eׅ$8pIAe8 ?@%:"S"S{i+k Y =  X = ;8[i#T{i+k#Copyright January 1988 - Joel Prail ;8[i{i+kHHH ;[ HHHHH &"  Ȁ8: ))e:  +hhhk ;[;8")) ;i+k ;8 [  d) e )e     ;e iHZ"DzhkH"hk ;[0   +  ;ik& 3R?DPSVYbiptwz BDFHJLNPSSR$0S7R`eqStAx}SSSASTR)4R^ShSwSS:Syy t#t2hFSVSYo\ohjkjzhSSSSSSSTS`SDU ,@ ~global Ucdefghijklmnopqrstuvwxyz{|}~7V ,@ main V NoDos\H** ;8[iHH "hHH"h" :"x{iHGG"{iH--"{iH  !"{iH!"{iH"f{iH"M{iH"4{iH"{iHpp"{iHMM#"{iH//"{iH "{iH"h{iH{iH"{iH{iH"k'+@DEFGHINP"S3I {iH" H "8"H"h "HH"{i+;ikContinueError number: Error : Parameter out of range.Error : File is already open."Error : File is not write-enabled.Error: Disk is full.Error: Duplicate file name.Error : File not found.Error : Volume not found.Error : Path not found. Error : Invalid PathName syntax. Error : Disk is write protected.Error : ProDOS I/O error.Error : ProDOS is busy. ;8[iA:"" K:""A:"{i+kF F ;8[i"(,J"HH "hHH"h߆" :"" :"``"#:"<<" 2:""<:""F:""P:"" _:""i:""s:"rr"}:"MM"P_J" HHH "8"H"h "ߢ"{i+kOkay$are copyrighted by TML Systems, Inc.!Certain portions of this software(c) 1987 TML Systems, Inc.Written in TML Pascal. operation.!the OPTION key when you select an#Standard File Operations, hold down$If this application does not support#type the first letter in it's name.%To activate an option, click on it or$NoDos16 - By Steven Disbrow (c) 1987 ;8[iHH"h׆HH "h݆ݢ":"HH"#:"' ' " # # H "   H "ݢ8"H"hۥۂ  d     ݢ "ע"{i+;ikNo!Yes!Are you SURE you want to do this? ;8[iHHHH" HH"h͆HH "hӆӢ":"HH"#2J"H " H " H "Ӣ8"H"hѥHH"     Ӣ "͢"{i+;ikCancelOkay ;8[i{iH  "{iH ")ߩ߅8pI0Hᨷ)  {eH{iH"hBH)  {eH{iH"hi |{i+;ikabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ ;8[id)  ᨷ)  {iHHH8H"hhHH{iH" HH" {i+;ik ;8[i)  ᨷ)  {iHHH"hhHH{iH"HH"  {i+;ik ;8[iHH"HH"{i+;ik ;8[iHH"h׆dHH "h߆ߢ"d J"''H " J"H "2'J"!!H "(5J"H "8BJ"H "CPJ"H " H " H "ߢ8"H"hۥ"""  " %   \""""d{iH"{iH{iH"t{i{iH"ݥ "q{iH"HiH{iH"# HiH" ߢ "ע"{i+;ikCancelOkayFile name: (MUST be specified)Path: Volume name: ;8[iHH"HH"HH"HH"HH"HH"tHH"WHH":HH" HH" HH" HH" HH"HH"HH"oHH"RHH"5HH"HH"HH"HH"HH"HH"HH"jHH"MHH"0HH"HH"HH"HH"HH"HH"HH"eHH"H||HH"+xxHH"HHH"h{i+;ikPICPNTNDACDASYSRELVARBASIVRINTCMDPASEXERTLS16LIBOBJSRCASPAWPADBRPIRPDDIRSOSWPFDA3BA3FOTFNTBINPDATXTPTXPCDBAD ;8[i/"{i5H"(22  {i5H "5n{iKˆ{iH"33 3"9т 1  1  1 111z1_1D1)1111111l1Q161111111y1^1C1(1 111111k1P{i0H"h{i1H{i0H"#%8K^q     /BɰUɱhɲ{ɳɴɵɸɹ, {i1H{i1H{i0H``"{i1H"0HXX{i;HNN{i1HLL{i0H"{i0H"hoH{i1H"h{iH"33 3"5BB{i;H44{i0H"{i0H" "  " "{i+;ikOperation cancelled.Operation cancelled.Operation cancelled. was changed. The file . to type Change Please specify a new file type:PICPNTNDACDASYSRELVARBASIVRINTCMDPASEXERTLS16LIBOBJSRCASPAWPADBRPIRPDDIRSOSWPFDA3BA3FOTFNTBINPDATXTPTXPCDBADSelect a file to change... ;8[iK"{iOH"(22""{iOH "O{iUH{iOH{iNH"""NAO)8pIH""{iUH""{iLH"{iLH"h{ieH{iOH"LL LH"k{iUH""{iLH"{iLH" K:"{iOH""{iLH"{iLH" t"t""5c"c"{iOHU"U"{iLH"{iLH" A"A"" -"-""{i+;ikOperation canceled.Operation canceled. is too long.Error: The name Operation canceled.. was renamed: .I am about to rename Type a new name for:Select a file to rename... ;8[iL"{iOH"(22z$z${iOH "OHd$d${iUHb$b${iMH"{iMH"h^{ieH"MM M"5\$\${iUHR$R${iMH"{iMH"/{iUH@$@${iMH"{iMH" ,$,$"{i+;ikOperation canceled. was not deleted. deleted.File .I am about to delete Select a file to delete... ;8[iHH"hHH"HHHHi&i& "hHH"HHHHX&X& "hHH"HHHH@&@& "hHH"HHHH8&8& "hHH""{i+kHelp...Change a file's type...Rename a file...Delete file... ;8[iHH"ႰNh'h':<2>B @,DFHJLHH "h HHK""{i+kNoDos16 version B 3.01 ;8[iHH " {i+k ;8[i dd HH"h݆߯HH"Ѡӥ)  )  тHH"HH"HH" ن۠{iH"H{iHO"h % D  d I%5 HH""HH"  H{iHO"h % R  r I%5 HH""HH" 1 H{iHO"h % C  c I%5 HH""HH" H{iHO"h % H  h I%0 HH""HH" C@=HH")8 0 &+H`d(*d(5+*.(5+* ,)!80 _+H`)(:+:+:+ ݢ"{i+;ik ;8[i, ,,, (,}"(6P_SSbZSbHH "{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;8  ;[dd\:"hi ) A[i     + ;ik;8 ;[$&{iH"Z P$&") d d dd{iH"$&{iH"(+$#;i"k;8$ ;[HH,*"hH,*."h222202 2 2 22 2.)aHHH" "h!#%#2%2# {iH" 22+&2%1;i0k;8 ;[$$D$dd{iH"$$$$$ $$ + $#;i"k;8( ;[HH0."h! " "666646 6 6 66 62)AHHH" "h!#!%!'%6'6 66H0.2"h)6)66646 6 6 66 62)\HHH" "h!#!%!'%6'6) {iH" 666dd{iH"+*6)5;i4k;8 ;[  $ dd{iH"   + ;ik;8 ;[$$>${iH"$$HH""+ $#;i"k;8 ;[$& " {iH"+$#;i"k;8 ;[ "{iH"+ ;ikk;8 ;[  9 $& d {iH"L  +$#;i"k;8 ;[  9 $& d {iH"L  +$#;i"k;8 ;[$$?$$H ""h{iH"M $+$#;i"k;8 ;[  / {iH" H"zz$&+ ;ik ;[) +;ik;8 ;[$$$$$) d {iH"L $+ $#;i"k;8  ;[&&& d {iH"!&&  &!L &+"&!%;i$k ;[) +;ik ;[ HH"+;ik ;[ HH"+;ikHH ;[   ȥ  "+ ;i kHH ;[  )   "+;ikHH ;[  | ~ ȯ w y ȯ{   "+ ;i ktruefalseHHHHH ;[HHHHH &"  Ȁ 8 : ) )e:   "+  ;ikHHHHH ;[HHHH HH '"  Ȁ 8 : ) )e:   "+  ;ik;8) ;[//3 (3*(5 *{i(H9H7H{iH "{i(H{iHHH "5/1"++7*6;i)kHZHH ;[ 80,* )e)     HH"%  ȷ ȷ HH" +kHH ;[   ") "+  ;ikHH ;[   "  ) "+ ;i kHHHH ;[":e   Ȁ :    +  ;ikHH ;[   "%HHeHژ8 ("h "+ ;i kHH ;[   " ,HHHeHژ8 )"hh "+ ;i k;8* ;[0002"LHH{iH{i H{i H "{i H6H4H "02"+,4+3;i*kZHH ;[ "N)   Ș "Ȁػȷ)  Ȁ阠+hhhhkZ ;[ )? HH"% ȷȷ HH"+kZ ;[ ) )   +k;8 ;[d)  : H"h{i H)"{i H "H{i H{i HO"h)HH:" HH")j{i H)"H i H:" @HHg"{i HHH H H~"h"H 8 H:"HH "h)5HH "h)!HH ") PP "+;ikg;8< ;[BBH"h{i H)"{i1H "H{i H{i1HO"h)HH:"d{i H)"  i{iHV"᩼ {iHV"᩼ H({iH "hͥ) {iHU" H i H:"႑v8pI=) {i H)"H H"8hH H:" 8 i{iHU"H"  B5 HHg"{i1HHH H H~"h"H 8 H:"Ⴋd;HHH "hhh=H ""h9) 4;Ȅ;  "= "BN&; " " ";;Ȅ;  9 ";f) B +>B=A;i@kc;8 ;[d)  : HH " " +;ikprinter: console: keyboard: x&', ,/s2sGG----  --- -!$*-:=C-SpVp\-lMoMu-//--8.-~y|O_S{V{n{q{``<<36MPgjrrMM{{{{HHss '  ' + . 4 # 7 # V Y _  b  e - s s { { { {    7 : @ C     $ -1 4 : - 0 0 N/ -   l- =N/U-Y\el-n*  ss {{-{0{6'9'Q{T{q{t{z}{{{{!!{{{{{ {={@{FIa{d{{{+.?BSVsvy|l-l-.-:m?>P WZ]`cfu.--ADMl-^ajl-{~l-l-l-l-l- l-),5l-FIRl-cfol-l-l-l-l-l-l-.1:l-KNWl-hktl-l-l-l-l-l-"l-36?l-PS\l-mpyl-l-l-l-l- l-||'l-8x;xDl-\+:_,9 < zc?~          #(>CY^ty16LQgl $)?DZ_uz27MRs8-``I  XX N NLL*.7N4^^?bt {B~B44.  8 _O \ "_ " " " I  " " " " . !UE"!>! N!"Q!"`!.!"!"!.!t"!t"!c"!c"!U"!U"!.!A"!A" "-""-""_##z$#z$?#d$B#d$N#b$Q#b$`#.m##E## #\$#\$#R$#R$#.#@$#@$#. $,$ $,$$Q$O$Q$O$c$c$i&$i&%% %%%Q"%O'%S*%S-%X&0%X&Z%_%c%h%v%Q{%O%[%[%@&%@&%%%%%Q%O%k%k%8&%8& &&&&&&Q&O&&&h'&h'&&&&&&&;&=&?&C&A&E'G 'I'K'M' ','O1'Q:'@'QE'OQ'$U'O['Q''Q'O''Q'O0(Q5(OA(QF(OR(QW(O(c(c(,(()"))1)S4)S:),)))+ )))[)[),+*0*>*E*J*g*kj*kp*,***B***Q*O!+&+&+d((+**+d(,+5+.+*0+.(2+5+4+*Z+_+_+)(a+:+c+:+e+:++,++,++,++,+++s+w+u+y+c+g+e+i,S ,W,U,Y",[),_0,]7,a>,kE,oL,mS,qZ,a,h,o,v,},,,,,Q,O,',+,----9-Y-?-Z-6,7V3$7V3r777387v83|878r;8r;??????@@U0@V36@U;@U@|?@M?A|?A]H=A @WA@^A]HB?`B?dB]HB @BoUBoUC@C]H_D?D?D?D]HE?E]HxEY?|E]HES?E]HE]HE?F]H]F?qF]HF]HF 4F?F]HG?G]H*G4G?G]HG?-H]HoHHHHH3K I3K>IIDIILIITIIZIIbIIpI3KJ3KJ3K K3KK`GKKKKKKKKKdNKNLdN)LNVLdNLMLNMMRMNMMMNMdN6NdNNGNNNNNNNN.dCurrent Volumes Online: ;8[in Hl H "፿ {i+k ;8[i,n Hl H"፿ "n Hl H"፿ tHH"፿ h݆߯n Hl H"፿ "ݢ"፿ 963+8" 0 5H`  {i+k ;8[i "W {i+k ;8[i :"፿ "፿  8pI0< "Yhi H:"፿ 0e  {iH ReH{iH"{iH"፿ *, "Yhi H:"፿ {iH ,H*H"h{iH"፿ "Yhi H:"፿ {iH HH"h{iH"፿ {i+k + Volume Name Free Total ;8[iR i#T{i+k#Copyright January 1988 - Joel Prail ;8[i{i+kHHH ;[H HHH HH '"  Ȁ 8: ))e:  +hhhk}xsn i d _ZUPKFA<72-(# "#'( )*" k ;8 [  d) e )e     ;e iHZ"zhkH"Qhk ;[0   +  ;ik H;[IIʩ FeI+k*W *7 Cn Hl T Zp ]p f1mp tr x?{?~t v       p p  l n n l  l n  <<AFl Sl Wl Zl ]R bT fsR{R~V X R R *,R,R,^ *` ,Z   \ dn il u | n l  n l   n l    05579 ;=?ACEh tW   Y RR.B J*O,jY{ ,* Y  SR Wi^R _i #,Q ,@ ~global %PANIC&5 &PREFIXF p* ,@ main  PANIC\H** ;8[iH"h8pI0 @HH"N   "$&(*,.02468:<>@BDFHJLHH"hH"""T"""H"hiH :""HH "hHHK" {i+k"File Edit AMEX NYSE NASDAQStock Analyzer (C) Roby Sherman ;8[i*"HH " {i+k ;8[i.HH""HH"wHH"h݆߯HH""ݢ"963+8" 0 H`K {i+;ik ;8[i" {i+;ik ;8[iQQ"=="++"""H"h"h((8(""S"(H(:"H<"i8(((H:"8(HH<"iɌ(H"h("hi<HH:"H"h "hoH"h"hoH"h"h88pI8(pI)HH<"8<8pI/HH:"8(H<<"<:"" eH"(:"{iHH"hd"hi(H"h{iH"":"{iHH"h"hH"h{iH""<:""{i+kLast month's point activity Pts. Pts.Stock : Wredal IndustriesIntel ElectronicsDelgado TransportData Transfers, IncApple Computer, Inc ;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 y 5kKSUSYeQjOvk   !#%')+-/ 1'3+52769=;A=H?OAVCZS^EeGlIsKwMkkUYWS[kkUUkkkkk *k03=kCOHQLQQO]kaOgQrkQOkQ!O-k1$5Q:OFkVk`QeOqku$kK 1k4k7Q:Q@DkGkJ=M=SWkZk]+`+fjkmkpsy}kkk5_UYWS[kkUUkii ki k$i,i0S8iDiKiWk[Sdipkti|iiik5gigkk5iik5gg k5gg'g8g<gQgUiZgfkjSsiigkSkkk_kkkkk5'=kADNk_ktk|5kkkk}km55gjx~k ;[ cegik): c +;ik;8 ;[   s ,@ ~global s ;[ cegik): c +;ik;8 ;[     : F!H! ie H  HH H"+ H) H1 H" :    A+;ik;8" ;[(@**d(*)ȷȷ)ȷ)Ȅe2 4  ){ ,@ main {' x Show Prefix \H** ;8[ilHH"mN"N "$7\F^`bdfHH "mhHHK"m l {i+kCurrent Prefixes: ;8[iHH "m l {i+k ;8[i,HH"m"DHH"mtHH"mh݆߯HH"m"Dݢ"m963+8" 0 H`Q {i+k ;8[il" l {i+k ;8[i"b :"m{iH"{iH"m8pI0" "8hiH:"m0e  {eHd{iH"{iH"me{i+k  * ;8[i#T{i+k#Copyright January 1988 - Joel Prail ;8[i{i+k}xsn i d _ZUPKFA<72-(# "#'( )*"mk ;8 [  d) e )e     ;e iHZ"AzhkH" hk ;[0   +  ;ik H;[IIʩ FeI+k' 4l@EQmWZcjq ux{"$\^`bdfmml!-m4l]bnmqDuzmmmDmQ l,7lQTW\`cfbym|m8m"%(d+d:Nmrx~mA  o ,@ ~global oALARM.CLOCKvx-' '/ALARMCLOCK.DOCSs& *ALARMCLOCK(;K8ALARM CLOCK V2.0 NDA by Michael Crawford Copyright 1988 Developed Using Orca/Pascal Here is an NDA that I find kind of useful, especially on information services and BBS's. It's a pretty standard alarm clock. It uses SysBeep to let you know when a designated time has arrived. When you first open it, you will see the current date and time on the first line. On the second line is the time that the alarm is set to, 00:00:00 PM at first. On the next line are three boxes you click inside to set the correct alarm time. The first sets the hours, 1 thru 12 (or 0 thru 23 if you using the alternative clock on the control panel). The next box is for the minutes (sorry, you can alone go forward. I didn't think you'd be that lazy.). The last box is to toggle between AM and PM. On the next line is a box to actually turn the alarm on or off. The final line is a snooze button. Pressing this button at ANY time will automatically add 10 minutes to the alarm set time. Version 2.0 fixes two bugs that were in the original version, one rather glaring. One involved AM/PM. When you hit snooze between 11:50 and 11:59, the AM/PM didn't toggle like it should to be at the correct new time. The more glaring problem involved the hours of 10,11 and 12. The alarm simply did not work during these hours. Both problems are fixed and I think that should take care of it. If you like this program, and/or would like the latest version with a copy of the documented source code, just send $10.00 to: Michael Crawford 4091 Green Meadows Ypsilanti, Mi. 48197 (313) 973-1904 I also welcome any comments or suggestions, both at the above address, and on Genie at M.CRAWFORD4. (t ,@ t V< AlarmClock\H** X -)3+5-7/i 9<,8<9-77HH+H)H"h3h5k<Z0 ;8< "dHHHH "hhhh'+-@) /{{/iq))a +V)-H/?')3- 5")79 = "?"="h;i+0kHH"  %"K"kKiH"hHP "h"t"?"%  "'@@ f )$"[H"% "k ;8d"-"" " "7 ;i+kKE'HH"᭴HH"" "" HH "ᜡ"kK " kAfBAAAAAAAkHH"᭴HH"" "k ;8H"᭴HH"᭸ "";i+kAAAAA ;8 [  HHHHH"hPHHHHH"h{HHHH#"hh  wjvi"hL" H H HO"h ֥H"H"H;i +k ;8[)(8 ": 0H";i+k"kHH"N HL H:"/"R HP H:"/"^ H\ H:":"b H` H:":"j Hh H:"n Hl H<"" " " " " " z Hx H:"| "'".f Hd H:":"" " " r Hp H:"v Ht H<"᭍ H H:" "᭙ H H:" "᭴HH"᭴HH"k ;8[)>HH" .HH"HH"HH"HH"HH";HH"'HH"ႚ&HH"HH"lHH"HH"HH"HH"HH"HH";i+kHH "hhBH"hHH"HH4"᭴HHK"k AlarmClockN(ii  3%%3 % @@AAlarm SettingsK Snooze:KZmin n Restore Set)3A On4>F. Off)}3R Daily4}>x  Future DateR ]n SnoozeR] Next Day & . 6 > F N V ^ f n v ~ : J " 2    :%J %"%2%%%CFKV " 2: J %"%2:%J %J  k ;8HHH ") h) ) h))h)h    " ;i+k ;8[ H" ;i+k ;8[ )' )  AMzPMsID ) H" ( 8 H{iH &" H{iH &"  H HU" H" H:"{iH"  H HV"  [;i kdHH""7"kHHHH ") h) ) h) ) h) hkV HT H:"/"Z HX H:"/"" " " kq(" " " k : :H H H"" " kHH" %=";"kHH"@ f ' U" "K=;HH" kHH"f @ ' "."K=;HH"kHHHH "h)/)-h))h+h m//<+8  F  N  V  ^  f  n  v  ~   vz~q(* B ^ z2 X   o AbW?AAAAAAAAAWAAA AAoXc7#'+/3'7';'?CG,O'S'W'  A3f'}7AGRj#<@CFILORYehlty} %05@KYdix!$',18CKdqt LPx| !%/3CG]`cfs!,0EI^bw{ 37BFQUcmq"&48FJU`doz~  3>BNY]koz~ pw| Igpt!*/3HL" $'-7:=DGOS^nuy+ !0:>EMQVZaimrv}$ %)47=@CFNQTX\gkvz[fptt| *.9=U`isw""-069<@PSV^adloru $),47:=IQU`cilor~ -0;EOUX`i~B &)/28>DGJPSY\bhknqtwz}G %+.47=@CIORUX[^adgjmpsvy|E !'*0692@BDFHJLHH "hHHK" {i+k Analog Clock ;8[iHH " {i+k ;8[i5HH""HH"wHH"h݆߯HH""ݢ"963+8" 0 H`p {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-<":"":""Y:"  """""{i+k By G. GrantFeb/88V.1.569312 ;8[in8 pI "hio8pI8 i:::o-:"<"9800( H`>>>>>>>>>>>>>>>> z8pI8 i.:::8pI!8 "h88Po-:"<"78.0& H` z8&pI8 "ho8P%8pI 8% P8:::o-:"<"78.0& 8H` y85pI 8-"h-848pI84 "hio-:"<"78..0& H`\\\\\\\\\\\\\\\ {i+;ik ;8[io-:"|#<"%(<"-<"2<"|7<"o<<"b7<"U2<"H-<"U(<"qb#<"]o<"I8@08 R H`$ H \ p  $ H \ p  {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&  RlflzllSQl    $+!2#9%@'G)N+U-\/`1g3n5r7y9};=?ACEGIKMOlQSSQlQS 3S8QDlLU|SQlSQllSQllp "$&(Ye&pejUUlU!U@lDUGUSldlulllllll++l l ))l+l/'2'<lMlQ%T%^lolllllll  l'..% Ull>>>>>>>>>>>>>>>>-Rlal{ ll388:<>@BDFHJLNPRT|ll\\\\\\\\\ \ \ \ \ \ \? lC jW lk l l l l l l l l l l3 lM R R $ T H V \ X p Z \ ^ ` b d f h  j $ l H n \ p p r t v x z | ~    ` B l       5\9\?55l ;[ ):  +;ik;8 ;[     : !! ie H  HH H"+ H) H1 H" :    A+;ik;8" ;[(@**d(*)ȷt ,@ ~global t ;[ ):  +;ik;8 ;[     : !! ie H  HH H"+ H) H1 H" :    A+;ik;8" ;[(@**d(*)ȷȷ)ȷ)Ȅe2 4  ){$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.5'); MoveTo(174,18); DrawString('Feb/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 } DESKPATvx-' ''DESKPAT&g+DESKPAT.DOCg*  ,@ main "M$/ DeskPat\H** ;8[i4H2H"Ꮗ@ˆ{iH"H"nE˩{iH"ˆͩϩ{iH"{iH"N68:<>@BDFHJLNPRTVXZ\^`bdfhjlnpr(t(vxz|~HH6 "Ꮗh244H2HK"Ꮗ24  {i+kDeskPat DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD */finder.def ;8[i4H2H "Ꮗ  kφ{iH"p^͆ϩѩdddd{iH"?˩Qφ{iH"{iφѩө{iH"ϩ{iH"φѩө{iH"{iH"{i+k */finder.def */finder.def */finder.def ;8[iHH"Ꮗh݆߯4H2H"Ꮗۥ14H2H"Ꮗ"4H2H"Ꮗ! HH"sݢ"Ꮗ<963+8" 0 MH`"%(+++++ {i+;ik ;8[i"Mk  H"n0H"nPH"npH"nH"nHk"nHJ"nH)"nH"n0H"nPH"npH"nH"nHc"nHB"nH!"nHHJ"ᏇXxHJ"Ꮗ{i+;ik FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 99999999999999999999999999999999 88888888888888888888888888888888 77777777777777777777777777777777 66666666666666666666666666666666 55555555555555555555555555555555 44444444444444444444444444444444 33333333333333333333333333333333 22222222222222222222222222222222 11111111111111111111111111111111 00000000000000000000000000000000 ;8[i{iHYPw_J"Ꮗ eH0"Ꮗ{iHT"Ꮗ{iHL"Ꮗ0"Ꮗ{iHS"Ꮗ{i+k ;8[i,"Ꮗ8pI0H  8pI0J) eH0"Ꮗ{iH iH iHJ"Ꮗ{iHT"Ꮗ 8pI0J) eH0"Ꮗ{iH iH( iHJ"Ꮗ{iHT"Ꮗ 8pI0J) eH0"Ꮗ{iH( iH8 iHJ"Ꮗ{iHT"Ꮗ ) eH0"Ꮗ{iH8 iHH iHJ"Ꮗ{iHT"ᏇႸ0"Ꮗ8pI0< iH:"ᏇG iH<"Ꮗ8pI0> iH:"Ꮗ iHG<"Ꮗ{iHP5_J"Ꮗ0"Ꮗ{iHT"Ꮗ{iHL"Ꮗ0"Ꮗ{iHS"Ꮗ8pI0 eH0"Ꮗ{iHX iHg iHJ"Ꮗ{iHT"Ꮗ  eH0"Ꮗ{iHh iHw iHJ"Ꮗ{iHT"Ꮗ/0"ᏇS"Ꮗg:"ᏇgG<"Ꮗ8pI0<X iH:"Ꮗv iH<"Ꮗ"1t:"Ꮗ":"Ꮗ":"Ꮗ"{i+keffect.pattern to takeReboot for new ;8[i8"5z8X"5z e"1{i+;ik ;8[i8"5z8"5z{iH iH iH iH iHJ"Ꮗ"5ze"5hߥ ٥߂^)قu٢"hقY٢"hق=٢"hق!80 H` ۥ8pI-8 8pI0 ۥ ۟,"Ꮗ eH0"Ꮗ{iHT"Ꮗե0"Ꮗ{iHS"Ꮗ{iHP5_J"Ꮗ0"Ꮗ{iHT"Ꮗ{iHL"Ꮗ0"Ꮗ{iHS"Ꮗ{i+;ik ;8[i{iHHH"{iH"ᏇH{iHO"Ꮗh ",H{iHO"Ꮗh"{i+;ik ;8[i{i+k;8 ;[d)  : H"h{i H)"{i H "H{i H{i HO"h)HH:" HH")j{i H)"H i H:" @HHg"{i HHH H H~"h"H 8 H:"HH "h)5HH "h)!HH ")  "Ꮕ+;ik.}xsn i d _ZUPKFA<72-(# "#'( )*QSU";i(kHHH ;[ )f A [8Ai a {8ai 80))  J ) J) +  ;i k ;[   :T+  ;i kHZ"xkH"wk H;[ I Iʀ f  8 F F I+k##kHH ;[  )   "+;ikHZHH ;[ 80,* )e)     HH"^% TȷUȷV HH"2+k;8 ;[$$$$$) d {iH"L $+ $#;i"k"M$ //;4@2LS@V@forwz}n68:<>@BDF HJLN"P)R0T7V>XEZL\S^Z`abedlfshwj~lnprtvxz|~66244224 Z4_2ksyk|k^^QQ9F424242sHMMO"Q%S(U+W+Y+[+]+Mn00nPPnppnn kknJ"J%n),1)4)7n;>CFInM0P0UX[n_PbPgjmnqptpy|nnccnBBn!!nZ^hk{ O R b       * > F          2 F V Y c     + / 2 < P j n q {         ) W k { ~        1#'*036GKNTWZkorx{~5515&5gp55   arv59<FZx{.>QDSJUi(x1w-^:TAUHVT2 ,@ ~global Finder Desktop Pattern Editor NDA From the top: The DeskPat NDA is a first attempt at a pattern editor for the Finder's desktop pattern (as well as a first attempt at programming the GS). Before going into the operation of the NDA a quick tutorial on patterns for those interested. About patterns: Patterns, like most other features of the GS, take on different characteris- tics based on the current screen resolution. Since the Finder operates in 640 mode, each pixel of the 8 X 8 grid is composed of a 2 bit number, rather than a 4 bit nibble that would be used in 320 mode. The method that the Finder uses to display 16 different colors in 640 mode is called dithering. Thus by treating the pattern as a 4 X 8 grid, a combination of 16 different colors can be used to build the desktop pattern. About the NDA: The NDA has 4 main areas: The pattern display in the lower left section, the current color selection in the lower right section, the pattern edit area in the upper left section, and finally the color selection area. To choose a color, simply click in the square of the color you wish to use. The current color selection box will then change to display your selection as the current color. To then set pixels in the pattern, click in the pattern edit area. The current pattern square below will then show you what the change you have made will look like. Limitations: Currently there are several limitations to the program. The first is that when you close the NDA window, it saves the pattern. At some point this should be changed to allow you to indicate if you wish to save the new pattern or not. The other is that you have to reboot the machine before the new pattern takes effect. History: The basic program DSKTOP.FIX by Jay Long was the original impetus to write this NDA. As he suggested, it would be nice to have a NDA to change the desktop. Also, with a bit of a background in Mac programming and use, I thought it was a bit lacking not to have any of the Control Panel like setting capabilities for the GS. Hopefully some of you will find this NDA usefull. If you do, or if you do not, feel free to send praise, comments, and hopefully complaints and suggestions. Shayne Bradley 8536 S.W. 107th Ave #A6 Miami, FL 33173 (305) 595-3640 Genie: S.BRADLEY MINIUTILITYvx-' ',MINIFILE.DOCZ4 +MINIUTILITY#2Z4  !" MiniFile Utility V1.0 an NDA for the Apple IIGS by Mark Geisinger (c) 1988 MiniFile is a NDA that addressed the problem of most software not specificaly designed to do so have poor file manipulation capabilities, if any at all. Even some power utilities, such as the Finder, can be cumbersome when dealing with large volumes and several subdirectory layers. MiniFile currently provides you with three basic file housekeeping functions. You may: Rename a file: Change a file's name. Move a file: Moves the directory pointers to the file. The file itself is never moved. Sometimes refered to as a "smart copy". Delete a file: Remove a file from disk. Error checking is done on every tool or operating system call made. If an error occurrs, a dialog box will be displayed showing the error number (in decimal) and the program location or tool call in which it occurred. A future version may make the error reporting less cryptic. I have tested the NDA extensively since its inception (with my own hard drive) and have encountered no problems with this version. If you do find that any bugs exist, please let me know. Feel free to distribute this version of MiniFile Utility, however the author (thats me..) retains all rights. Comments or suggestions may be sent to: Mark Geisinger CIS [76440,76] GEnie M.GEISINGER $%&'()*+,-./0123456789:;<=% ,@ main =% MiniFileUtility\H** ;8[i{iHHH"{iH` :J"HH{iH "h݆{iH"h{iH{iH"{iH{iH"{iHJJ"{iH{iH "{iH{iH"{iHJ"{iH{iH "{iH))"{iHXJ"{iH {iH "{iH"{iHCJ"{iH{iH "{iH  "{iH?J"{iH{iH "H"hݢ "{i+;ik Error Number: has occurred. OK ;8[i{iHJ"HH{iH "hۆ{iH[["{iHaVaJ"{iH{iH "{iHXX"{iHHSJ"{iH{iH "{iHQQ"{iH|<GJ"{iH{iH "{iH??"{iH_!J"{iH{iH "{iH.."{iH\J"{iH{iH "{iH''"{iHy(3J"{iH {iH "H"hۢ "{i+k OK MiniFile UtilityV1.0 (c) 1988an NDAbyMark Geisinger ;8[id2 "I͆{iH"*"H"{i+kGetFileInfo(DeleteParms) ;8[id2 " ͆ςx2 "Fц{iH"*"H"{i+kChangePath(ReameParmsParms)Enter new File Name ;8[id2 " ͆ςx2  "Fц{iH"*"H"{i+kChangePath(MoveParms)Choose Copy Destination ;8[i{iHJ"HH{iH "hۆ{iH#"{iH7;GFJ" {iH{iH "{iH"{iH82=J" {iH{iH "{iH"{iH%0J" {iH{iH "{iH~~"{iH%J"{iH{iH "{iHmm"{iHJ"{iH{iH "{iH\\"{iHJ"{iH{iH "{iHPP "{iH7GRJ"{iH {iH "{iHFF "{iH7U`J"{iH {iH "{iH:: "{iH7cnJ"{iH {iH "{iH++"{iHKHVJ"{iH {iH "{iH$$"{iH`0kJ"{iH {iH "H"h٥قۢ """"ۢ ""z"ۢ ""SNۢ "":5ۢ "#80 H`h< {i+kDELETE which file:MOVE which file:RENAME which file:CANCELAbout MiniFile Delete File Move File Rename FileMiniFile UtilityV1.0 (c) 1988byMark GeisingerPlease enter your choice:"__________________________________ ;8[iI{iHN"N өթש٩۩ddHH{iH "hHHK" "{i+k ;8[iHH " {i+k ;8[iHH"{i+;ik ;8[iHP "hH"h]HHH "h"HH" ?"H"h "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 I1iQQ11Q%Q>1^QQ))1QQ  12QfQs v |1QQQQWQvQ[[1QQXX1QPQ]Q`Qf1QQ??1Q$Q1.4.:1ZQQ''1QQ QQ}QQQ$QQQ1QQ*+Q.Q=@JQNZ]psvyQ$QQQ1QQ*,Q/Q>AKQO[^q t wzQ$QQQ1QQ*A Q` Qs v | 1 Q Q   1 Q: QG J P 1p Q Q ~ ~ 1 Q Q m m$ 1D Qx Q \ \ 1 Q Q P P 1 QL QY F\ Fb 1 Q Q : : 1 Q Q- +0 +6 1V Q Q $ $ 1 Q QQQ!Q$Q'*014>QAQDGM1\Q`jQmQpsy1QjQ.Qh<L:Q@MEOIONMZQcLiMoOu LOMQLOMQQ)Q=RQXH]JnQrwJ|HQLLQQQ$Q9O?PjpIU?,2??   % %%"%%$%8%Q ;[ ):  +;ik;8 ;[kۅmۅ     :  ie H  HH H"+ H) H1 H" :    A+;ik;8" ;[(@**d(*)ȷȷ)ȷ)Ȅe2 4  )  )Y ,@ ~global Y ;[ ):  +;ik;8 ;[kۅmۅ     :  ie H  HH H"+ H) H1 H" :    A+;ik;8" ;[(@**d(*)ȷȷ)ȷ)Ȅe2 4  )RINKYvx-' '%RINKY> =)RINKY.DOXG=?@ABCDEF ,@ main % RinkySaver\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"h8pI0Ad٩HH"hHH"hH"-HH%"h//HH"@? t ."ddH"hI3{i3H{iH "l{iH "{iH"pi(H"hI3{i3H{iH "b{iH "{iH"piY;957""')tH"h ;ŭ 9 ū 7 ũ 5 ŧ - H"{iHX"@:H "-hiB@:H "-hiB@:H "-hiB@:H "-hiB@:H "-hiB-@@))')8pI+)t---8pI-<@8pI@@ ? ?@=<=8pI==:H "-hiB=:H "-hiB=:H "-hiB=:H "-hiB=:H "-hiBH"{iHX" 8pI0ee8pI0Ԝ"-hee8pI0Iee8pI0ee8pI0Ԛ"-hee8pI0IeeH {iH"h"*"9"""."dd {iHS"{i+k rh@ST @ ;8[i{i+k;8 ;[H({iH "h+;ik ;[) eH0"+;ik"kHZ"kH"Nk ;[0   +  ;ik H;[IIʩ FeI+k;8 ;[  {iH "{iH{i H " +;ik% 2P $)5jw !Fellpbb1pel~ -8-P-h--\-t------ '5WN  ,@ ~global """"""""""""""""""""""""""""""""33333333333333333333333333333333DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUffffffffffffffffffffffffffffffffwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwHI RinkySaver 1.0 New Desk Accessory by Joel A Quejada CIS: 73717,615 GEnie: J.QUEJADA1 US Mail: 439 Woodward St. #103 Austin, TX 78704 Please send any comments or suggestions to any of the above addresses. RinkySaver is a "screen saver" NDA for the Apple IIGS. This NDA can be accessed through any application that uses the the apple menu. Copy the file "RINKY" into the DESK.ACCS folder of your boot disk. That's all there is to it! As of now, the NDA is designed to run on the 640x200 screen (it will work on the 320x200 screen, but it might look a bit weird!) Enable the NDA by selecting it from the Apple menu. The NDA will clear the screen to black and will display a "Slinky" (TM) looking figure on the screen, "crawling" around the screen. Simply press any key on the keyboard or press the mouse button to return to whatever you were working on. Have fun! Joel Quejada SHOWTEXTvx-' ',SHOWTEXT.DOCK- \J(SHOWTEXTR(\JLMNOPQ SHOWTEXT Show Textfile v1.1, by Guy T. Rice SHOWTEXT Version 1.1 note: This version is essentially the same as version 1.0, except that it adds the ability to view AppleWorks Word Processor (AWP) files. Version 1.2 note: This version fixes the "Cancel" button in the Standard File dialog. (It didn't work in the old version.) SHOWTEXT is an NDA that will let you view a text file (TXT, SRC, or AWP) from any application that supports New Desk Accessories. It was written because of the prompting of Mark Geisinger for an NDA that would do this, without the problems his own NDA (TextREADer) had. SHOWTEXT offers numerous advantages... First of all, it is much faster. You don't have to hold down the mouse for several seconds in order to scroll up a full page. A simple click will get you a new page. If you want to get somewhere fast, you can give several clicks in a row, and the screen won't even update until you're done, and then quickly brings up the exact page you wanted without displaying the pages inbetween. Secondly, you can scroll backwards as well as forwards! Click on the top half of the page to go a page backwards, or click on the bottom half of the page to go forward a full page. (Remember, multiple clicks will go backwards or forwards several pages quickly.) Finally, SHOWTEXT supports more programs and text files. You can use SHOWTEXT even in programs that don't normally use Standard File Toolset. (It will load the tools itself if the application didn't load them.) Probably the single biggest advantage in this is that it works in Finder. Also, SHOWTEXT can display text files whether the high bit is set or clear. (TextREADer would display garbage on files with the high bit set.) Of course, no program is perfect. SHOWTEXT will truncate any line that is longer than the width of the screen. This is normally not a problem, since most TXT or SRC files and all AWP files have returns at least once every 80 characters. However, some files (such as those created with AppleWriter or FreeWriter) do not. This will be fixed in a future version if people think it would be worth it. If you like this little NDA, and have ideas or praise (I thrive on praise), you can always leave me mail on GEnie or in my real mailbox. My GEnie mail address is GUY.T.RICE, and my real address is listed below. Any and all suggestions are welcome. My mailbox is always open... 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 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 STUVWXYZ[\]^_`abcdefr_@ ,@ Y (9ET--Show Textfile\H** "k " k HZ" k H" k;8 [4{iHHH"eUH{iH"X+;ikSHOWTEXT: Fatal system error $;8& [IoH"XhnHHv $H"eUNe" ʎ&$(*,.20468:<>@BDFʎJHLPNTRXVZ\^~`IʎdbʎhfHHH "XhjhlljHK"XHHHnHH "Xh] h_ _ ] [ Y HH"XH"Xhi i nH[ HY H"SH"XHH H"eU p : q : q : q H "X(H(HHHpHk H "Xk 芍RHH HH"eUm 芍R"W{{"W}  HH HnHH "Xhe hg g e c a c a "W"WljHM"XHQH:"XHH H"eUH"X,ʆ" ʆ" H" 8hh: iHhhhh}HH" "TH88pI0ʊ#Gc Ha H" hchc"@_Hc Ha H" hchcHhchc"@_ $c Ha H" hchc H"Z_c Ha H" hchcHhchc H"Z_$JJJJJJJJhi" Hhchc: iHhhhh" Hhchch h"$JJJJJJJJc Ha H" hchcHhchc H"Z_c Ha H" hchcHhchc H"Z_i" Hhchc: iHhhhh" $HhchcHhchch h"!" Hhchch h"&HH" "TH88pI0ʊ#c Ha H" hchc"@_$$8pI0&$8$c Ha H" hchc$H"Z_$ H$ # $c Ha H" hchc$H"Z_$ +i: iHhh "" Hhchch h"1iHH: iHhhhhHH (H (H (H7 (H_ (HH"/S"eU"RTHHi: iHhhhhlj+;i&k Show Textfile v1.2, by Guy T. Rice Select file to display:Please wait... ;8 [<ljH "X_ ] H"Xg e H"Xi "XH"X+;ik;8" [ljH"X)'%)ljHM"X8pI0ʊHi8pI0ʊ#c Ha H: HhchcHhchchhH: Hi: H8hh8hh"S H8 "]i H:"XH H"XH"XiH8pI0ʊ#w Hn8zpI0&80:: 87iiH8zpI0 i 8#)"(+;i(k;8 [" +;ik;8 [+;ikEx  H"Yhhhk{;8[:ڥ: e dHHH"$Ue8Y TqdHHH Xhhh h h SA8ҥ){ei+k"Yd e 8  :eee J   (`HHKXXHH"[✅XXhhkKiH"UTT TGHHTTXXTXTXTiTThhTT`8` C hhhhk ;[  )   +;ik{;8[:ڥ H H H Xh h h  I  $J        {i+k "!V"2WhhkHiH;8  [  "] a[c[O$>"2W[[ȩȗ na i  U GEc[a[ "WF e i  ")] ")]8  0 E a[c[ "W)i+;ikiHHHXH "hhkHH; [][ȗ_[ȗȥȥȩ][_[ ][_[i+zzzzkWWW"XkHHHHH; ["]a[c[  ȷݠa[ȷc[ ȷ+;i kaXgXoXH"T]XH"h")XX ;[I4" )d9 YY ")   +`H"4Z\YKXError occurred at line (Y "᭍XH"] in procedure `Y "X")^"i]X X " " Line NameY " ---- ----Y "ᭉX X@BDFJHLPNTRXVZ\^`dbhfXjllj+X1BnWX[] __ b_ e] t[ wY XXi i n[ Y SX  eUpqqqX"%6p9p>k Ak MXPk ]`hRkRt w eUm RRW{{{W}   nXe g g  e c a  c #a &),/5W9<BWFlIjUXgXjmv y eUX T!8c <a O@_Tc Xa @_c a Z_c a Z_(+qc ua Z_c a Z_ Tc a @_c a Z_1c 5a KZ_Y`clo         7  7  _  _ # /S' eU+ RT/ 3 7 D G ] ` lc j  l j X  _  ]  X g  e  X i  X X  l j X? lB jN XQ V k  c  a        S " ]2 XE XH K W Xu           * 4 SYYS$UzSTSXSSSY\TXaTX~T[TXTXTUTTTTTTTTTTTXTXTTTXTTTXTTTTTTTTTTzUX V!VV2WWXsW][{W_[W][W_[W][W_[WWWWWWWXW]Wa[Xc[6Xa[>Xc[]XaXcXgXkXoXXT]XXXXXXXYXYXYY4ZYYYXAY(YDY(YNYX[Y]pY`YsY`Y}YXYXY)^Yi]YXYXYYYYYYYYYXYXYXZ] ZZ ZZZXZX%Z)^)Zi]6Z^Z9Z^Z[\[[[)]\W&\W@\)]g\Wq\W\)]\W\\\][\_[0]]7]a[?]c[G]a[M]c[X]][[]_[a]a[m]Xr]X|]X][]^^^^n^ ^^ ^^^)^C^$_p^^s^^^^^^_^TWO.APPLESvx-'  '-TWAP.V1.2.DOCh [g*TWO.APPLESy[gijklmnopqrstuvwx Two Apples NDA is (C) Copyright Tim Swihart, 1988. Version 1.2 - February 24, 1988 Finally, after nearly a year and a half, it's here!!! A way to access more than fifteen or sixteen NDA's at a time!!!!! This New Desk Accessory will insert a second apple menu into the menu bar of your favorite programs and will insert up to the next sixteen New Desk Accessories into that new menu! This gives you access to over THIRTY NDA's at once under most programs!!! To ensure that this desk accessory will appear as one of the first few (so that you can select it while you only have one apple menu), follow these simple instructions: 1) Remove the first NDA from the SYSTEM/DESK.ACCS folder of your boot disk. I suggest you use the FINDER and simply drag the NDA into the SYSTEM folder so that you can return it to the SYSTEM/DESK.ACCS folder AFTER you've installed TWO.APPLES.NDA. 2) Copy the file TWO.APPLES.NDA into the SYSTEM/DESK.ACCS folder on your boot disk. 3) Recopy the NDA you removed in step one into the SYSTEM/DESK.ACCS folder. 4) Reboot from that disk. To activate this NDA (and install the second apple menu), simply select "Two Apples" from the first apple menu of any desktop based program (such as Apple's Finder, Multiscribe GS, Deluxe Paint II, Hodge Podge, etc.). A dialog box with my copyright message (and the address to send your Shareware fee to) will be presented. Just click on the "OK" box and look closely at the upper left hand corner of you menu bar. If you had at any unreachable NDA's in the first menu (this number will vary from application to application), then you will see TWO apple menus instead of the traditional one. ************* READ THE NEXT PARAGRAPH CAREFULLY ********** Two Apples is designed to figure out how many NDA's are installed that can NOT be reached in the first menu. If you do not have at least one unreachable NDA, then all you'll get is the dialog box and Two Apples will disable itself in the first Apple menu. From the GS's Finder, you must have at least fifteen NDA's installed (only one of which is unreachable). From applications with only NDA's and an "About..." item in the first menu, you will need at least sixteen NDA's installed. You can have sixteen items in each Apple menu, so the number of non-NDA items from sixteen to figure out the minimum number of NDA's required before Two Apples will insert the second menu. This number obviously will be different for various applications. You can buy NDA's from Styleware (on their Deskworks disk), Simple Software, etc. You can also find some free NDAs and Shareware NDAs on BBS's or get them from your local users group. When the second apple menu is installed, it disables the "Two Apples" selection in the first apple menu. This is done for your protection since some pretty strange things could happen otherwise. When you close this NDA, it will enable "Two Apples" again, so there is no need to worry about not being able to access it when you need it. Their are only two ways to close this NDA. They are: 1) Quit the application (save your work first). 2) Toggle between 320 and 640 modes. Deluxe Paint II users can select SCREEN FORMAT from the PICT menu, then click the button that is not highlighted, then click "OK". There is no need to worry about the right hand menu falling off the edge of the screen when you select this NDA since the GS's Menu Manager prevents the pull-down portion of a menu from leaving the edges of the screen. However, the name of the menu may be slightly missing. Deluxe Paint II's "FONT" menu becomes "FON" when you install the second menu, but everything under that menu is still FULLY readable! The NDA's that appear under the second apple menu are selected in the exact same way that you would normally select an NDA. Treat them just like you treat the items that are in the first apple menu. Things don't get much easier than that!!! Remember, Two Apples NDA is (C) Copyright Tim Swihart, 1988 and all rights to it are reserved. This program is Shareware, try it out for a week or two and if you want to continue using it, then send the five dollar Shareware fee to: Tim Swihart P.O. Box 122512 Fort Worth, TX 76121 Two Apples NDA was developed using APW C v1.0 (running under ORCA/M GS) and is in no way connected with, or endorsed by, Apple Computer, Inc. Of course, Apple and GS are trademarks of Apple Computer, Inc. Support for Two Apples NDA can be found on GEnie by emailing a letter to: [TSwihart]. I can also be found on a few local BBS in the Fort Worth area. ********************* VERSION 1.1 ********************* What's new with version 1.1? Well, a registered user noticed that version 1.0 had a problem when run under programs that had more than two items in the first apple menu that were NOT NDAs. I investigated and discovered the the cause that night. This problem has now been corrected in version 1.1. Also, when run under programs with only one non-NDA item in the first menu, version 1.0 would have the same NDA at the bottom of its menu that was at the bottom of the first apple menu. This was a side-effect of the first problem and will not happen with version 1.1. Finally, when run under applications with more than two non-NDA items in the first menu, Two Apples would skip a few NDAs in the second menu - even if there was room for them! This was also a side-effect of the first problem and has been eliminated in the new version. Now, when Two Apples is run under an Application with only one non-NDA item (usually the "About..." item) in its first apple menu, you will have access to the first thirty-one NDAs in your SYSTEM/DESK.ACCS folder!! That's fifteen under the first menu and sixteen under the second apple menu. If you registered as an user of version 1.0, then this upgrade is free. If you have not yet sent in your five dollar registration fee, then do so now!! Please be sure to tell me which version you have so that I can notify you of updates as they become available. ********************* VERSION 1.2 ********************* What's new with version 1.2? Well, it seems that under version 1.1, if you had NO unreachable NDA's, you were only supposed to get a dialog box and the menu item for Two Apples was supposed to be disabled. I inadvertantly put the disable routine in the wrong spot and it did NOT get called under this condition. This allowed you to repeatedly select Two Apples which will cause all sorts of nasty things to happen. To fix it, I simply moved the disable routine so that it runs before the dialog box is presented instead of allowing it to get skipped. Remember, Two Apples is designed to let you access the NDA's that have fallen off the bottom of your screen. If you can reach all of the NDA's that are installed at that time, then Two Apples is NOT supposed to put in a second menu (because the second menu would be empty). ***************** LEGAL SCHTUFF ***************** Apple, APW C, GS, Hodge Podge, and FINDER are all trademarks and/or copyrights belonging to Apple Computer, Inc. ORCA/M GS is a trademark of The Byte Works. Multiscribe GS and Deskworks are trademarks of Styleware, inc. Deluxe Paint II is a trademark of Electronic Arts. The use of these trademarks is NOT intended to imply support and/or affiliation with any of these companies. You may distribute this program freely as long as it is NOT MODIFIED and as long as you include the DOC file. If your user group wants to put it on one of their Disks-of-the-Month (DOMs), then they are free to do so, but EVERYONE who uses this program, even if you had to buy the DOM it came on, is expected to register!!!! Also, I'd appreciate it if the user group would send me a copy of the DOM that this program is on as a way of saying, "Thanks, Tim." Enjoy!!! z{|}~:A ,@ ~globals : Two Apples \\H** 1 ,@ main  ;8[i{i+k ;8[i" "zzz{i+k ;8[i"g+-"zzz{i+k ;8[i%"'".z*"'){i+k ;8[i88oH"Th8Hh8H8"_hHhH "'"zzz"zzz{i+k ;8[iHH7H "'h{i+k ;8[i"zz_H  "'h"mz"mzHꪧH";iV"'"'  "'{i+k ;8[i"F))/:"zz7H!"'"Nz{i+k ;8[i"F)0)/HP "'h7"zz5-+"Nz{i+k ;8[iH"'h) H "'h  "' "'H"'h "'{i+k ;8[iH%"'hiHihdd8 pI0F)HH"Th)d0H1"')H0"'8pI0>{i+k ;8[id".z"<H"'hH"'h8e888pI0H31H-"' "'8UpIN8pI0?HeH%"'h8HhH%"'"'H"'h*"'{i+kHhkHkcck H;[ !  &  zz+k ;[ȗȗ+k;[[HH Z;[ȷȷ hhhz+k &),FgJ+M-SVY'.')T_B'MY\_7''mm@'^'x'F))/::7'NF))/'7  5-+$NU'clru''''#'R'T''.!<5'I'31'''''*';'H9A ,@ ~arrays >>@\XN37 == Remove \N400 .JSTwo Apples NDA v1.2 S(C) Copyright Tim Swihart, February 24, 1988. Send $5 Shareware fee to: Tim Swihart P.O. Box 122512 Fort Worth, TX 76121OKxEP7Two ApplesMEMORYvx-'  '&MEMORY[ (MEMORY.P &[ ' ,@ main '"< Memory\H** ;8[iRHH"SN"N BDZFHJLNPHH "ShHHK"S R {i+k Memory ;8[iHH "S R {i+k ;8[iNݥ.HH"S"HH"S:"3+8" 0 H`R {i+k ;8[i /R " R {i+k ;8[i{iHHH"{iHHH"H{iH"Shӥ8pI  ӥ8e:"S{iH"S:"S{iH"SK"S{i+k** ;8[iHH"ShˆͯHH"SHH"Sh"gzzφHH"Sh"gzzӆHH"Sh"gzz׆H6 "Sh" h HϦ"h"hۆݩnߩ ({iH"?h{i{iT{iH ";i{iH"?h{i{iTi {iH ";i{iH"?h{i{iTi {iH ";i{iH"h{i{iTi{iH ";i{iH"?h{i{iTi {iH ";iˢ"S{i+k Used Memory: Ram Disk: Max. Block: Free Memory: Total Memory: ;8[i{i+kHHH ;[ HHHHH &"  Ȁ8: ))e:  +hhhkHHH ;[H HHH HH '"  Ȁ 8: ))e:  +hhhk ;[   :T+  ;i kHZ"BzhkH"hk ;[0   +  ;ik H;[ I Iʀ f  8 F F I+k H;[ I I IIʀ&&ff !  8  FfFfͥ  IIzzzzzz+k8k" /R;@LSSV_fmqtw| BDFHJLNPSSR!-S5RbgsSw{SRR R6LaSwSSSSS S&S3S?gRS^gqS}gS ?  7?[^t?0?TWmSBU ,@ ~global U{$DeskAcc 60 -1 'Memory' } {$LongGlobals+} { August 9, 1987 } { Memory NDA written by: } { Floyd Zink, Jr. } { CIS 73147,2717 } { Genie F.ZINK } { This is public domain. You can do whatever you want with it. } program MemoryNDA; USES QDIntf, GSIntf, MiscTools, ConsoleIO; TYPE str20 = string[20]; VAR myWindOpen: boolean; myWind: NewWindowParamBlk; myWindPtr: WindowPtr; procedure DrawContent; forward; { All routines other than } { the 4 required NDA routines } { must be declared forward } {--------- The 4 required NDA routines ----------} { DAOpen, DAClose, DAAction, DAInit } function DAOpen: WindowPtr; begin if myWindOpen then SelectWindow(myWindPtr) else begin fillchar(myWind,sizeof(NewWindowParamBlk),0); with myWind do begin param_length := sizeof(NewWindowParamBlk); wFrame := $C0A0; { All params 0 execpt for these } wTitle := @' Memory '; wPosition.top := 30; wPosition.left := 30; wPosition.bottom := 90; wPosition.right := 195; wPlane := -1; wStorage := nil; end; myWindPtr := NewWindow(myWind); { Open NDA } SetSysWindow(myWindPtr); { Make a system window } end; DAOpen := myWindPtr; { Return pointer } myWindOpen := true; { Set flag to true } end; procedure DAClose; begin CloseWindow(myWindPtr); { Close NDA } myWindOpen := false; { Set flag to false } end; procedure DAAction(Code: Integer; Param: Longint); var what, modifiers: Integer; begin case Code of DAEvent: { Only handle update events } begin what := EventRecordPtr(param)^.what; if what = updateEvt then begin BeginUpdate(myWindPtr); DrawContent; EndUpdate(myWindPtr); end; end; DARun: DrawContent; DACursor, { Do nothing for these } DAMenu, DAUndo, DACut, DACopy, DAPaste, DAClear: Code := 1; end; end; { of DAAction } procedure DAInit(Code: Integer); begin if myWindOpen and (code=0) then DAClose else myWindOpen:=false; end; procedure DrawContent; var htab, vtab, width, ram : Integer; total, free, max, used : LongInt; currPort: GrafPtr; st : str20; procedure DoStr(prompt,st:str20;htab,vtab,width:integer); var len:integer; begin len:=StringWidth(st); { Get width in pixels of st } if len>width then { Too wide !! } begin st:='**'; len:=2; end; htab:=htab+(width-len); { Right justify } MoveTo(5,vtab); DrawString(prompt); MoveTo(htab,vtab); DrawString(st); DrawChar('K'); end; begin currPort:=GetPort; SetPort(GrafPtr(myWindPtr)); total:=(totalmem div 1024); free:=(freemem div 1024); max:=(maxblock div 1024); ram:=readBParam(54); { Read Min. Ram Disk } ram:=(ram mod 256)*32; used:=total-ram-free; htab:=110; vtab:=10; width:=40; st:=LongIntToString(total); { Convert integer to string } DoStr('Total Memory:',st,htab,vtab,width); { Display info } st:=LongIntToString(free); vtab:=vtab+10; DoStr('Free Memory:',st,htab,vtab,width); st:=LongIntToString(max); vtab:=vtab+10; DoStr('Max. Block:',st,htab,vtab,width); st:=IntToString(ram); vtab:=vtab+15; DoStr('Ram Disk:',st,htab,vtab,width); st:=LongIntToString(used); vtab:=vtab+10; DoStr('Used Memory:',st,htab,vtab,width); SetPort(currPort); end; begin { No main program with NDA's } end. BG.MUSICvx-'  ''BGMUSIC[E,+BGMUSIC.DOC [E'&AUXSET[E @ ,@ +<HW--Background Music\H** "dk"kHZ"kH"[k;8  [I>H"K hHHH" N^`dbʎhfjlnptrvxz|~ʎ22?IʎʎHH^H "K hhHK"K H"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 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 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  @ ,@  " "\;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)VYiSAVERvx-'  '%SAVER ;t SAVER.DATAKK  ,@  & Screen Saver\H**KaH"hQH^ "hHHH "h*h,"""w k*"*"H"H!"k ;[KHHV "h.h00H.HK"HH0H.H  "h2h4HH0H.H  "h6h8HH0H.H$  "h:h<HH0H.H.  "h>h@HH0H.H8 (#(# "hBhDHH0H.HC 44 "hFhHHH0H.HN xixi "hJhLHH0H.H Y  "hNhPHH0H.H ` H "hRhT0H.H"0H.H".0+k0H.H""kk ;8 <0;/".;i+k7_7777d78H3 H H"h503.kH3 H H0H.H"hkH H H5H3H"hk5T3R25H3H"HH5H3H#"h3h53kIH5H3H"kk HH"0H.H"""kKHH"0H.H"0H.H""0H.H""k0H.H"S"᭾HH:"" ) 2"U"6"kUUUUs8"k8"kZK0< "Y 0k-0k 0k"5 HH"h"h$""##"HH "h&h(&2'3 %"k$H"H" (H&H"kHh\Hh\" )" "4)4k 4  " " k"  " " k" CE!H "h" F2" &"  " " k(#N( Screen Saver Set Delay: m}$s$.s.8s8BsBLsLVsV`s`js s 30 seconds1 minute 2 minutes 5 minutes 10 minutes 15 minutes 30 minutes1 hourActive*/system/desk.accs/saver.datag g <dxF -(<< D #Z OKPlease insert the boot disk. &V  U[ $ . EK8 C N 5 ;Y  ` ;7?_C7G7K7O7SdW7[8a33 8+8%}          Z g  g      LWlpDHMQX^g48=AHNW$(-18>Gtx}#&),d{~  $(>JNqu .ILQZ]`cjmv{  :O\nsw{/YV)-CLOCKvx.'  '%CLOCK[+)CLOCK.ASMu;[CLOCK.BUILD<[$ )CLOCK.MACX[$ > ,@ > l<##Clock\H**K$BHH "h ""H HK"$HH"hhkK$"H H "$HH"kKZ zktQ```HH""H H"& ". "H.&O"hHH"hɦ,HH"hɦHH""`HH""H H" "` ;[  +``"H H" "H H"`)`HH"`2" 2)2 HHHH "hhhh): \舀\LȀ  :"2" :"H""x""Copyright (c) 1987 Gary B. Little"`K$"H H "$kCalendar/ClockN!4 -- Sunday Monday Tuesday WednesdayThursday Friday Saturday  l $$+.: ="E"I W$dhp$u"y $tQ" &&....&&!16;?["_ j" " 2222\#\(L>2A2jxmx$" $******************************************* * This is the source file for a New Desk * * Accessory (NDA) which displays the * * current date and time in a window on * * the GS desktop. After assembling, use * * the APW FILETYPE command to change the * * file type code of CLOCK to $B8, then * * transfer CLOCK to the SYSTEM/DESK.ACCS/ * * directory of the ProDOS 16 boot disk. * * * * by Gary Little April 5, 1987 * * * * (This program is adapted from a similar * * one in the Desk Accessories chapter of * * my "Exploring the Apple IIGS" book, to * * be published in July, 1987 by * * Addison-Wesley.) * * * ******************************************* LIST OFF SYMBOL OFF ABSADDR ON INSTIME ON GEN ON KEEP CLOCK ;Code file MCOPY CLOCK.MAC ;Macro file Period GEQU 60 ;Ask for "run" action every second EventMask GEQU $FFFF ;Handle all events NDA_Clock START DC I4'NDA_Open' ;Open the NDA DC I4'NDA_Close' ;Close the NDA DC I4'NDA_Action' ;Perform NDA action DC I4'NDA_Init' ;Startup/Shutdown the NDA DC I2'Period' ;Periodicity of "run" action DC I2'EventMask' ;Permitted events DC C'##' ;Name in menu item form DC C'Clock' ;Text for NDA name DC C'\H**',I1'0' ;ID field + terminator ; Open the NDA if it has not been previously opened. This routine ; must return a pointer to the NDA window on the stack, just above ; the 3-byte return address. The Desk Manager reserves this result ; space just before calling NDA_Open with a JSL instruction. NDA_Open ANOP Result EQU $05 ;Result stack offset after JSL, PHB PHB PHK PLB ;data bank = code bank LDA ClockOpen ;Clock window already open? BNE Ignore ;if so, branch PHA ;Space for result PHA PushPtr WindowDef _NewWindow ;Create and open NDA window PLX ;Pop pointer (low) PLA ;Pop pointer (high) STX WindowPtr ;Save pointer to window STA WindowPtr+2 STA Result+2,S ;Save result on stack (high) TXA STA Result,S ; (low) PushLong WindowPtr _SetSysWindow ;Mark this as a DA window LDA #$FFFF STA ClockOpen ;Set "open" flag PHA ;space for result PHA _GetCursorAdr PopLong OldCursor ;Save pointer to regular cursor Ignore PLB RTL ; Close the NDA if it is not already closed: NDA_Close ANOP PHB PHK PLB ;data bank = code bank LDA ClockOpen ;Is the clock window open? BEQ Ignore ;No, so branch PushLong WindowPtr _CloseWindow ;Get rid of the window STZ ClockOpen ;Mark clock as closed PushLong OldCursor _SetCursor ;Restore application cursor PLB RTL ; Perform the NDA action: NDA_Action ANOP PHB ;Save data bank PHK PLB ;Make data bank = program bank PHY ;Save incoming parameters PHX ;(event record or menu info) ASL A ;x2 to step into table TAX JSR (ActionTbl,X) PLX ;Fix up the stack PLY PLB RTL ActionTbl ANOP DC I2'NoAction' DC I2'NDA_Event' DC I2'NDA_Run' DC I2'NDA_Cursor' DC I2'NDA_Menu' DC I2'NDA_Undo' DC I2'NDA_Cut' DC I2'NDA_Copy' DC I2'NDA_Paste' DC I2'NDA_Clear' NoAction ANOP RTS NDA_Menu ANOP RTS NDA_Undo ANOP NDA_Cut ANOP NDA_Copy ANOP NDA_Paste ANOP NDA_Clear ANOP ; On exit A=0 if edit command wasn't handled; non-zero if it was. ; You will usually want to say it was handled, because the application ; will not be active and so shouldn't be dealing with edit commands. LDA #$FFFF ;Say we handled it. RTS ; Display a wristwatch cursor if the cursor is over top of ; the content region of the window. This routine is only called ; when the DA window is the front window. NDA_Cursor ANOP PHA PHA _GetPort ;Save current GrafPort PushLong WindowPtr _SetPort ;Make clock window active GrafPort PushPtr PortRect _GetPortRect ;Get the port rectangle (local coords) PushPtr MousePosn ;Return mouse position in GrafPort coords _GetMouse ;Get cursor position PHA ;space for result PushPtr MousePosn ;pointer to mouse coordinate PushPtr PortRect ;pointer to content region rectangle _PtInRect PLA ;Is it in content region? BEQ NDA_Curs1 ;No, so branch ; Switch to watch cursor, but only if it's not already active: PHA PHA _GetCursorAdr ;Get current cursor pointer PLA PLX CMP #WatchCurs ;Is it the watch? BNE NDA_Curs0 ;Definitely not CPX #^WatchCurs ;Is it the watch? BEQ NDA_Curs3 ;Yes, so do nothing NDA_Curs0 PushPtr WatchCurs BRA NDA_Curs2 ; Switch to application cursor, but only if it's not already active: NDA_Curs1 PHA PHA _GetCursorAdr ;Get current cursor pointer PLA PLX CMP #WatchCurs ;Is it the watch? BNE NDA_Curs3 ;No, so don't do anything CPX #^WatchCurs ;Is it the watch? BNE NDA_Curs3 ;No, so don't do anything PushLong OldCursor ;Switch to application cursor NDA_Curs2 _SetCursor NDA_Curs3 _SetPort ;Restore GrafPort RTS ; This subroutine is called once every "Period" ticks: NDA_Run ANOP PHA ;Space for result PHA _GetPort ;Save current port PushLong WindowPtr _SetPort ;Switch to clock window for drawing JSR ShowTime ;Display the new time _SetPort ;(Pointer still on stack) RTS ; X and Y (pushed on stack) contain pointer to event record NDA_Event ANOP TheEvent EQU $05 ;1 (base) + 2 (JSR) + 2 (PHD) PHD TSC TCD ;Align d.p. with stack LDA [TheEvent] ;Get "what" code CMP #9 ;Anything we support? BCS TE1 ;No, so branch ASL A ;x2 to step into table TAX JSR (EventTbl,X) TE1 PLD ;Restore direct page RTS EventTbl ANOP DC I2'NoEvent' ;Not supported DC I2'DoMouseDwn' ; Mouse down DC I2'DoMouseUp' ; Mouse up DC I2'DoKeyDwn' ; Key down DC I2'NoEvent' ;Not supported DC I2'DoAutoKey' ; Autokey DC I2'DoUpdate' ; Update DC I2'NoEvent' ;Not supported DC I2'DoActivate' ; Activate DoMouseUp ANOP DoMouseDwn ANOP DoKeyDwn ANOP DoAutoKey ANOP NoEvent RTS DoUpdate ANOP PushLong WindowPtr _BeginUpdate ;Visible region = update region JSR ShowTime ;Display the current time PushLong WindowPtr _EndUpdate ;Restore entire visible region RTS ; If NDA window is deactivated, return to original cursor. DoActivate ANOP LDY #14 ;Access modifiers field LDA [TheEvent],Y AND #$01 ;Isolate activate/deactivate flag BEQ NDA_Off ;If 0, deactivate RTS NDA_Off PushLong OldCursor _SetCursor ;Switch to previous cursor RTS ShowTime ANOP PushPtr TheTime _ReadASCIITime ;Read the clock SEP #$20 ;8-bit A register for byte accesses LONGA OFF LDY #19 ST1 LDA TheTime,Y AND #$7F ;Convert to standard ASCII STA TheTime,Y DEY BPL ST1 REP #$20 ;Back to 16-bit A register LONGA ON ;Get the name of the day of the week: PHA ;Space for 8 bytes of result PHA PHA PHA _ReadTimeHex PLA ;Pop minute/second PLA ;Pop year/hour PLA ;Pop month/day PLA ;Pop day of week (high byte) XBA ;Put day of week in low byte AND #$0F ;Strip unused bits DEC A ;Convert 1..7 to 0..6 (1=Sunday) ; Look for the Nth entry in the table: TAY LDX #0 SEP #$20 ;Use 8-bit accumulator LONGA OFF Find_DOW CPY #0 ;At correct name? BEQ Move_DOW ;Yes, so branch FE1 LDA DayTable,X BEQ FE2 ;Branch if at end of name INX ;Move to next character BRA FE1 FE2 INX ;Move to start of next name DEY ;Decrement day-of-week counter BRA Find_DOW ; Transfer the name to the buffer area: Move_DOW ANOP LDY #0 SR1 LDA DayTable,X BEQ SR2 ;Branch if at end of name STA TheDay,Y INX INY BRA SR1 SR2 REP #$20 ;Back to 16-bit accumulator LONGA ON PushWord #2 ;horizontal PushWord #9 ;vertical _MoveTo PushPtr TheTime _DrawCString ;Draw the time string PushWord #10 ;horizontal PushWord #19 ;vertical _MoveTo PHA _GetForeColor ;Save foreground color Pushword #5 ;Dark Green letters _SetForeColor PRINTG 'Copyright (c) 1987 Gary B. Little' _SetForeColor ;Restore foreground color RTS ; Startup or shutdown the NDA. On entry, A=0 for DeskShutdown, ; A is nonzero for DeskStartup. NDA_Init ANOP PHB PHK PLB CMP #0 ;Starting up? BNE NDA_Init1 ;Yes, so do nothing LDA ClockOpen ;Clock window open? BEQ NDA_Init1 ;No, so branch PushLong WindowPtr _CloseWindow ;Close the window (releases memory) STZ ClockOpen ;Set "closed" flag NDA_Init1 PLB RTL ; The data area begins here: NDA_Title STR 'Calendar/Clock' ;Window title WindowDef ANOP DC I2'EndWind-WindowDef' DC I2'%1100000010100000' ;Window with close box, title DC I4'NDA_Title' ;Pointer to window name DC I4'0' DC I2'0,0,0,0' DC I4'0' DC I4'0' ;Origin at (0,0) DC I4'0' DC I4'0' DC I4'0' DC I4'0' DC I4'0' DC I2'0' DC I4'0' DC I4'0' DC I4'0' ;(Handle our own updates) DC I'30,33,52,284' ;Dimensions of window DC I4'-1' ;Put clock window in front DC I4'0' EndWind ANOP WindowPtr DS 4 ;Pointer to window record ClockOpen DS 2 ;Used as a flag PortRect DS 8 ;Content region rectangle MousePosn DS 4 ;Current mouse position (local) TheTime DS 20 ;ReadASCIITime returns 20 bytes here DC C' -- ' TheDay DS 9 ;Day of week inserted here DC C' ' ;Add padding DC I1'0' ;(terminator for DrawCString) DayTable ANOP DC C'Sunday ',I1'0' DC C'Monday ',I1'0' DC C'Tuesday ',I1'0' DC C'Wednesday',I1'0' DC C'Thursday ',I1'0' DC C'Friday ',I1'0' DC C'Saturday ',I1'0' OldCursor DS 4 ;Pointer to application's cursor record ; This the is the cursor record for a "wristwatch" cursor: WatchCurs DC I2'12' ;Rows in cursor image DC I2'3' ;Cursor width (in words) DC H'000000000000' ;The cursor image DC H'000FF0000000' DC H'000FF0000000' DC H'00F00F000000' DC H'0F00F0F00000' DC H'0F00F0F00000' DC H'0F0FF0FF0000' DC H'0F0000F00000' DC H'00F00F000000' DC H'000FF0000000' DC H'000FF0000000' DC H'000000000000' DC H'000FF0000000' ;The cursor mask DC H'00FFFF000000' DC H'00FFFF000000' DC H'0FFFFFF00000' DC H'FFFFFFFF0000' DC H'FFFFFFFF0000' DC H'FFFFFFFFF000' DC H'FFFFFFFF0000' DC H'0FFFFFF00000' DC H'00FFFF000000' DC H'00FFFF000000' DC H'000FF0000000' DC I2'6,8' ;Hot spot (y,x) END ASML CLOCK.ASM FILETYPE CLOCK $B8 COPY -C CLOCK 4/DESK.ACCS  MACRO &lab _SetPort &lab ldx #$1B04 jsl $E10000 MEND MACRO &lab _GetPort &lab ldx #$1C04 jsl $E10000 MEND MACRO &lab _GetPortRect &lab ldx #$2004 jsl $E10000 MEND MACRO &lab _MoveTo &lab ldx #$3A04 jsl $E10000 MEND MACRO &lab _PtInRect &lab ldx #$4F04 jsl $E10000 MEND MACRO &lab _SetCursor &lab ldx #$8E04 jsl $E10000 MEND MACRO &lab _GetCursorAdr &lab ldx #$8F04 jsl $E10000 MEND MACRO &lab _DrawCString &lab ldx #$A604 jsl $E10000 MEND MACRO &lab _GetMouse &lab ldx #$0C06 jsl $E10000 MEND MACRO &lab _NewWindow &lab ldx #$090E jsl $E10000 MEND MACRO &lab _CloseWindow &lab ldx #$0B0E jsl $E10000 MEND MACRO &lab _BeginUpdate &lab ldx #$1E0E jsl $E10000 MEND MACRO &lab _EndUpdate &lab ldx #$1F0E jsl $E10000 MEND MACRO &lab _SetSysWindow &lab ldx #$4B0E jsl $E10000 MEND MACRO &LAB PushWord &Value LCLC &CHAR &CHAR AMID &Value,1,1 AIF "&CHAR"="#",.IMMEDIATE &LAB LDA &Value PHA MEXIT .IMMEDIATE &CHAR AMID &Value,2,100 &LAB PEA &CHAR MEND MACRO &lab PUSHLONG &Value LCLC &CHAR &CHAR AMID &Value,1,1 AIF "&CHAR"="#",.IMMEDIATE &lab LDA &Value+2 PHA LDA &Value PHA MEXIT .IMMEDIATE &CHAR AMID &Value,2,100 &lab DC I1'$F4' DC I2'(&CHAR)|-16' DC I1'$F4' DC I2'&CHAR' MEND MACRO &lab PushPtr &Label &lab DC i1'$F4' DC i2'(&Label)|-16' DC i1'$F4' DC i2'&Label' MEND MACRO &lab PopLong &DataAddr &lab PLA STA &DataAddr PLA STA &DataAddr+2 MEND MACRO &LAB STR &String &LAB DC I1'L:&String' DC C"&String" MEND MACRO &lab _ReadAsciiTime &lab ldx #$0F03 jsl $E10000 MEND MACRO &lab _SetForeColor &lab ldx #$A004 jsl $E10000 MEND MACRO &lab _GetForeColor &lab ldx #$A104 jsl $E10000 MEND MACRO &lab PRINTG &text &lab PEA x&syscnt|-16 PEA x&syscnt LDX #4+256*166 JSL $E10000 BRA end&syscnt x&syscnt DC C"&text" DC i1'0' end&syscnt ANOP MEND MACRO &lab _ReadTimeHex &lab ldx #$0D03 jsl $E10000 MEND MELTDOWN[ x.PAINTI(x.LOCATOR"[ x.MELTDOWNvx.' '(MELTDOWN[ *MELTDOWN.P =[7MAKE[* C ,@ main C$ Meltdown\H** ;8[iI~{iHN"N өթש٩۩ddHH{iH "hHHK"  "y{i+k ;8[iHH "  {i+k ;8[iHH"{i+k ;8[i / "  {i+k ;8[i"H"h8pI0Ad٩HH"hHH"hH"H"h"hH"h"hߥ8pI{iH~"H {iH"h"*"9""{i+k ;8[i{i+kHZ"zhkH";hk ;[0   +  ;ik H;[ I Iʀ f  8 F F I+k$ 1Oy %1Wdl ?Vmw; ,@ ~global {$DeskAcc -1 -1 'Meltdown'} {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} set echo LIKELY compile {Parameters} meltdown.p link meltdown keep=meltdown.nda filetype meltdown.nda NDA copy -c meltdown.nda .D1/system/desk.accs/ copy -c meltdown.nda .D3/system/desk.accs/ unset echo PAINTvx.' ')BRUSH.CMD [{- )PERSP.CMD  [{. 'PLT.CMD[{/ 'TBX.CMD [{2   ,@ )d4##Brush Commands\H**K1HHD "hHHK"kKHH "ᜒkKZ zk``` ` ;[  +``HH"᭖HH"``H"h)  HH"HH""᭖HHM" :"H"᭚H"""""HH:"ڽ}H{H"hi hͩHH:"ڽHH"hi hͩrHH:"ڽHH"hi ɚͭH""HUH:"ڽHH"hi hͩH'H:"ڽHH"hi hͩrHH:"ڽ H H"hi ɚ:"᭜H""P"""`kBrush CommandsN5; (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 #6I\o "$&(*,.08@H)d 4-4D7DCFNR`hmq|26Vkn}{ 7RZgk  PPH5~{#6I\o "$&(*,. 08@H  ,@ /j##Perspective Commands\H**K?1HH "hACCHAHK"?kK?CHAH "?kKZ zk``` ` ;[  +``CHAH"CHAH"``H"h)G I GIHH"HH""CHAHM" :"H"GH""K"""EHEH:"ڽHH"hi J:""""GH"""EHEH:"ڽHH"hi J""TEHEH:"ڽHH"hi Ɇ"ᩆEHEH:"ڽHH"hi ɤͭGH""TEHEH:"ڽHH"hi ɤ",EH|EH:"ڽHH"hi J"ᩆEHEH:"U"hi ɤ:"IH""W"""`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 u<Yv'/7?GMO/j 3?:=IALCTCXAf?n?sCwA?CACAGIGI8C<A\GqKtKEEGEE)-aEiEvzEEGEE 5E=EJNuE|EUUIWWu<Yv'/7?GMOB ,@ B+f##Palette Commands\H**K51HH "h799H7HK"5kK59H7H "5kKZ zk``` ` ;[  +``9H7H"9H7H"``H"h2)= ? =?HH"HH""9H7HM"H""" ;H;H:"ڽpHnH"hi ɋͭ=H"" ;H;H:"ڽHH"hi Oͭ=H""Y;H;H:"ڽHH"hi ɋͭ)LRh4h62*\" h4h62* \"h4h62*z"h4h62* z"Lhh\"hh\"bhhz"hhz":"?H""C"""`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 A[]wy(*57;=?wwwwwwwwww  ODDDDOOODDDDOOODOOOOOOOOOOOOOOOOOODO  +f /569E7H9P9T7b5j5o9s7~597972 =?=?:9>7k;s;pn=;;=;; :BERHRL4P6S2V2Y*\*o r v4z6}22**4622**4622**!%(+.1DbGbKORUX[nquy|?CCnAr[v]zw~y(*57;=? ! ,@ +f##Toolbox Commands\H**K1HH "hHHK"kKHH "kKZ zk``` ` ;[  +``HH"HH"``H"h)  HH"HH""HHM"H""" HH:"ڽHH"hi ɟͩ HH:"ڽHH"hi ɟͭH"" HH:"ڽHH"hi ɟͩ HH:"ڽUHSH"hi ɟ:"H""t"""`kToolbox CommandsN;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 %7I[m!3EWfx #&),/258;>ADGJMPSVY\_behknq+f /69EHPTbjos~ 48emz~%-:U>Sezt}t%7I[m!3EWfx  ##'&+)/,3/72;5?8C;G>KAODSGWJ[M_PcSgVkYo\s_wb{ehknqLOCATORvx.' ''LOCATOR#[8 "+LOCATOR.ASM'"[y9"BUILD.LOCATOR:B[~"+LOCATOR.MAC;Q[y+"$%& ,@ (c##Mouse Locator\H**Kx1HH* "hz||HzHK"xkKx|HzH "xkKZ zk``` ` ;[  +``|HzH" |HzH"``HH"HH""~ "|HzHM" :"C"Position: v = ~H &"""h = H &"" :"H""""Copyright (c) 1987 Gary B. Little""`12345 kMouse Locator 1.0NP!f(c ,x3*6*BzE|M|Qz_xgxl|pz{x|z|z ~~|z5C8CT~X[knx{.()*+,-./0123456789******************************************* * "Mouse Locator" New Desk Accessory * * * * by Gary B. Little March 25, 1987 * * * * This NDA displays the current position * * of the cursor in the local coordinates * * of the front (highlighted) window. It * * is ideal for helping to position items * * in a dialog box. * * * ******************************************* LIST OFF SYMBOL OFF ABSADDR ON INSTIME ON GEN ON KEEP LOCATOR ;Code file MCOPY LOCATOR.MAC ;Macro file EventMask GEQU $FFFF ;Handle all events NDA_Code START DC I4'NDA_Open' ;Open the NDA DC I4'NDA_Close' ;Close the NDA DC I4'NDA_Action' ;Perform NDA action DC I4'NDA_Init' ;Startup/Shutdown the NDA DC I2'0' ;Periodicity: 0 = fastest DC I2'EventMask' ;Permitted events DC C'##' ;Name in menu item form DC C'Mouse Locator' ;Text for NDA name DC C'\H**',I1'0' ;ID field + terminator ; Open the NDA if it has not been previously opened. This routine ; must return a pointer to the NDA window on the stack, just above ; the 3-byte return address. The Desk Manager reserves this result ; space just before calling NDA_Open with a JSL instruction. NDA_Open ANOP Result EQU $05 ;Result stack offset after JSL, PHB PHB PHK PLB ;data bank = code bank LDA WindOpen ;NDA window already open? BNE Ignore ;if so, branch PHA ;Space for result PHA PushPtr WindowDef _NewWindow ;Create and open NDA window PLX ;Pop pointer (low) PLA ;Pop pointer (high) STX WindowPtr ;Save pointer to window STA WindowPtr+2 STA Result+2,S ;Save result on stack (high) TXA STA Result,S ; (low) PushLong WindowPtr _SetSysWindow ;Mark this as a DA window LDA #$FFFF STA WindOpen ;Set "open" flag Ignore PLB RTL ; Close the NDA if it is not already closed: NDA_Close ANOP PHB PHK PLB ;data bank = code bank LDA WindOpen ;Is the NDA window open? BEQ Ignore ;No, so branch PushLong WindowPtr _CloseWindow ;Get rid of the window STZ WindOpen ;Mark window as closed PLB RTL ; Perform the NDA action: NDA_Action ANOP PHB ;Save data bank PHK PLB ;Make data bank = program bank PHY ;Save incoming parameters PHX ;(event record or menu info) ASL A ;x2 to step into table TAX JSR (ActionTbl,X) PLX ;Fix up the stack PLY PLB RTL ActionTbl ANOP DC I2'NoAction' DC I2'NDA_Event' DC I2'NDA_Run' DC I2'NDA_Cursor' DC I2'NDA_Menu' DC I2'NDA_Undo' DC I2'NDA_Cut' DC I2'NDA_Copy' DC I2'NDA_Paste' DC I2'NDA_Clear' NoAction ANOP NDA_Menu ANOP RTS NDA_Undo ANOP NDA_Cut ANOP NDA_Copy ANOP NDA_Paste ANOP NDA_Clear ANOP ; On exit A=0 if edit command wasn't handled; non-zero if it was. ; You will usually want to say it was handled, because the application ; will not be active and so shouldn't be dealing with edit commands. LDA #$FFFF ;Say we handled it. RTS ; Don't change the cursor: NDA_Cursor ANOP RTS ; This subroutine is called once every tick period: NDA_Run ANOP JSR ShowCoord ;Display mouse coordinates RTS ; X and Y (pushed on stack) contain pointer to event record NDA_Event ANOP TheEvent EQU $05 ;1 (base) + 2 (JSR) + 2 (PHD) PHD TSC TCD ;Align d.p. with stack LDA [TheEvent] ;Get "what" code CMP #9 ;Anything we support? BCS TE1 ;No, so branch ASL A ;x2 to step into table TAX JSR (EventTbl,X) TE1 PLD ;Restore direct page RTS EventTbl ANOP DC I2'NoEvent' ;Not supported DC I2'DoMouseDwn' ; Mouse down DC I2'DoMouseUp' ; Mouse up DC I2'DoKeyDwn' ; Key down DC I2'NoEvent' ;Not supported DC I2'DoAutoKey' ; Autokey DC I2'DoUpdate' ; Update DC I2'NoEvent' ;Not supported DC I2'DoActivate' ; Activate DoMouseUp ANOP DoMouseDwn ANOP DoKeyDwn ANOP DoAutoKey ANOP NoEvent RTS DoUpdate ANOP PushLong WindowPtr _BeginUpdate ;Visible region = update region JSR ShowCoord ;Display the current coordinate PushLong WindowPtr _EndUpdate ;Restore entire visible region RTS ; If NDA window is deactivated, don't do anything DoActivate ANOP RTS ; This is the interesting part of the accessory: ShowCoord ANOP PHA PHA _GetPort ;Save current GrafPort ; Get mouse position relative to front window: PHA PHA _FrontWindow ;Get front window _SetPort ;Make it the active GrafPort PushPtr MousePosn _GetMouse ;Get mouse position PushLong WindowPtr _StartDrawing ;Draw in NDA window PushWord #10 ;horizontal PushWord #9 ;vertical _MoveTo PRINTG 'Position: v = ' PushWord MousePosn+0 ;Vertical position PushPtr Convert PushWord #5 PushWord #-1 ;Signed _Int2Dec PushPtr Convert _DrawCString ;Draw the coordinate PRINTG 'h = ' PushWord MousePosn+2 ;Horizontal position PushPtr Convert PushWord #5 PushWord #-1 ;Signed _Int2Dec PushPtr Convert _DrawCString ;Draw the coordinate PushWord #10 ;horizontal PushWord #19 ;vertical _MoveTo PHA _GetForeColor ;Save foreground color Pushword #5 ;Dark Green letters _SetForeColor PRINTG 'Copyright (c) 1987 Gary B. Little' _SetForeColor ;Restore foreground color _SetPort ;Restore original GrafPort RTS Convert DC C'12345' DC C' ' DC I1'0' ; Startup or shutdown the NDA. On entry, A=0 for DeskStartup, ; A is nonzero for DeskShutDown. NDA_Init ANOP RTL ; The data area begins here: NDA_Title STR 'Mouse Locator 1.0' ;Window title WindowDef ANOP DC I2'EndWind-WindowDef' DC I2'%1100000010100000' ;Window with close box, title DC I4'NDA_Title' ;Pointer to window name DC I4'0' DC I2'0,0,0,0' DC I4'0' DC I4'0' ;Origin at (0,0) DC I4'0' DC I4'0' DC I4'0' DC I4'0' DC I4'0' DC I2'0' DC I4'0' DC I4'0' DC I4'0' ;(Handle our own updates) DC I'80,33,102,284' ;Dimensions of window DC I4'-1' ;Put NDA window in front DC I4'0' EndWind ANOP WindOpen DS 2 WindowPtr DS 4 ;Pointer to window record MousePosn DS 4 ;Current mouse position (local) END ASML LOCATOR.ASM FILETYPE LOCATOR $B8 COPY -C LOCATOR 4/DESK.ACCS <=>? MACRO &lab _MoveTo &lab ldx #$3A04 jsl $E10000 MEND MACRO &lab _DrawCString &lab ldx #$A604 jsl $E10000 MEND MACRO &lab _GetMouse &lab ldx #$0C06 jsl $E10000 MEND MACRO &lab _NewWindow &lab ldx #$090E jsl $E10000 MEND MACRO &lab _CloseWindow &lab ldx #$0B0E jsl $E10000 MEND MACRO &lab _BeginUpdate &lab ldx #$1E0E jsl $E10000 MEND MACRO &lab _EndUpdate &lab ldx #$1F0E jsl $E10000 MEND MACRO &lab _SetSysWindow &lab ldx #$4B0E jsl $E10000 MEND MACRO &LAB PushWord &Value LCLC &CHAR &CHAR AMID &Value,1,1 AIF "&CHAR"="#",.IMMEDIATE &LAB LDA &Value PHA MEXIT .IMMEDIATE &CHAR AMID &Value,2,100 &LAB PEA &CHAR MEND MACRO &lab PUSHLONG &Value LCLC &CHAR &CHAR AMID &Value,1,1 AIF "&CHAR"="#",.IMMEDIATE &lab LDA &Value+2 PHA LDA &Value PHA MEXIT .IMMEDIATE &CHAR AMID &Value,2,100 &lab DC I1'$F4' DC I2'(&CHAR)|-16' DC I1'$F4' DC I2'&CHAR' MEND MACRO &lab PushPtr &Label &lab DC i1'$F4' DC i2'(&Label)|-16' DC i1'$F4' DC i2'&Label' MEND MACRO &LAB STR &String &LAB DC I1'L:&String' DC C"&String" MEND MACRO &lab _Int2Dec &lab ldx #$260B jsl $E10000 MEND MACRO &lab PRINTG &text &lab PEA x&syscnt|-16 PEA x&syscnt LDX #4+256*166 JSL $E10000 BRA end&syscnt x&syscnt DC C"&text" DC i1'0' end&syscnt ANOP MEND MACRO &lab _SetPort &lab ldx #$1B04 jsl $E10000 MEND MACRO &lab _GetPort &lab ldx #$1C04 jsl $E10000 MEND MACRO &lab _StartDrawing &lab ldx #$4D0E jsl $E10000 MEND MACRO &lab _FrontWindow &lab ldx #$150E jsl $E10000 MEND MACRO &lab _SetForeColor &lab ldx #$A004 jsl $E10000 MEND MACRO &lab _GetForeColor &lab ldx #$A104 jsl $E10000 MEND CDAvx.' 'ASSORTEDA"x/@ASCII[ x/@CLOCK.V1.1[ x/@DISKINFO[ x0@INTDETECT'[ x0@NIFTYLIST8[ x0@NOTEPADIx0@PASSWORDIx0@PWFIX[ x1@SHRTIM[( x1@ASSORTEDvx.' @'*SLOTSWITCHB\& A%GSCATE {'A(VISIBELLPVA*TYPEWRITERS A&TYPEITW 7A(TOOLSHED_ d4ATEXT.BLANKgЮASPEEDSWITCHh A'SCCREGSi [({0A'RATCALCz96A+PRINTSCREEN&AMT.REMOVERU[.ACD ,@  SlotswitchSKd'H "hJ&# 0 0d& P|Ȁ0 0E l Ȁ J Ƚ\ Hhɛ<Ɋɋ$ɍTE0y٥-0 FF*HH "#(k @JK򮠠M宠úix`$0)`)?`T\lp|^S FGHIJKLMNO ,@ /hard.disk GS CatalogK""h" "  )"#"""/""᜾  )00+"*   "!$  "h) #" k .g  8 ," Ţ  ,"ဠ  | ɛvɍHɊLɋRۭ ODO4  ͦг83MNL  LLL,"LLL)M)/L L4/8mͼ TH hͰ  L,"L"N\L)/MM̀ L L*"6   Ξ86@N`"4`   f ά NۭT=κμ   f  άNάۭT "N  Ψ L  L OJ̨̦ `v)  \ +,H ""ᩤ   ) + bH &"ᭂ   n  f  ^` Y xH ""ᭂ  `) ) ) ) )L ",   3  Z  v    8 o " L " 5   a   ", N""   k- ʽ 7< o " L  n.*, Y 9.0 Y  ^ "F  6   "(" k   "  k  ֩J "'" kE o " L L~  ", """ Ξ   L  CK    L"@ L)M) M N  N P T"NH  h L Z T L)) `   L  )ɀ` "hhJhJ H   h` f L  `    ̢ H h ̢ ȭ`   :   ɍ," `F  " )  ` `H)h)`  " (     5 o " `H '"ᭂ    L H &" L H &"ᭂ )ɠiL  )` L H) h)H) @ h)h @HhBH h KP` )H) @ h)h @HhK` J} ( H `((((PPPP".9A.~r РĠԠΠԠҠ РРàʠ ӱ̠ŠҠƠ̠֠àԠàԠĠӠĠıIJijĴĵĶķĸбԠҠӠҠ̠ӠΠ'(./EJRWX= 1 T 1 = G G d 1 ӠӠ򠱮 GS Catalog Catalog Prefixes Volumes Quit Ӡ砠庠䠠ﺠɠOkayӠ堠堠    L+~ VY\_ehknqt( "%+SV^adkntw+ /6:=BGJMPSV[^fil0  #&),58CQ[^dgjpsvy} 5;CFLV_ox{#&+.8AKZblsv{- !$'*25=@FIQcfknqtz}, ,/)ɠʽ)ɠhڊ8OiPD O0 h8PIha O   ` @6H8H " " ڽ O @ "h8h6b d"0 " " "h8h6ko " M "O  H "`0"   UT0`򠭠à̠ĠHSU򮍠՘M~M{kh1@'$@{j/[TSSSE:02111+(0% C{vlc`gf XYZ[\]^  ,@ Type file43  " " "h8h6kK6H8H " " " " " " ( < "` $ " " " l P lp   ) ɍɠ=i@H " "ᩎ# Ο l P lp|, w ɪ ɻ  $ɢɻ8 詠  ɠ, $ 8  #&mH " `GZ  " " " " z; "`g #g "g )? " ""h ɍBɕɛɈʩ H "0`h ɮɺ )۰?h Њg g 1𗜡 )ʽg I a0Ρ `) *x ."K n 0Y .  Xk0 "n "  ID0  " "~ " ""h80`"C0 " "IL8ILH" (h =g  HJJJJ h) ɺi0H " `0  `Š宠ɠ򠣤 䮙ߍژߍژߍژߍژߍژߘ̘"h,( "h.!` `Hhɠɛ0`2@`ߍژߍژߘژԠߘژߘژ㩠ߘژߘژߘژߘ̘Π򮍍Š庠KJ0L8 M1RIT\ H SIL8ILH [(hkk; 4  g    ~~{~qndaV SP DnAn1.& !.   .  g  g g h h Og Eg Bg =g ,)#z ZZGG        ~t p^ Y G B 2l+l( % "    ll    <(3 4`abcdef ,@ Tool Shed 1.0kK "hh "  0#00 0)0'  ڭ Эiͳ HH"k e " " "H " H " H " H "H "98 Arrow Keys: move up/down Escape: return to CDA menu "H "H "ᅀᅂᅈᅊᅄᅆᅌᅎ  `:`H) ȷ h0"0H "H "0/ Tool Shed 1.0 Written by Jason Harper  "" "H "H "0"0`εH "H "H "H "OiH "H "H "H " H "0 ͳ`[TOP]# "᥂HH3 #"᥆HHD #"᥊HH\ #"᥎HHm #"& "ᯨ)\T)H፛)HH #"w ""* *ProDOS 16 is not available "`System TPT: $xxxxxxxx WAPT: $xxxxxxxx User TPT: $xxxxxxxx WAPT: $xxxxxxxx ProDOS 16 entry point is $xxxxxxxx H "᭷ 0System "User "H *"hhX)H\ &"M "᭹0) h)HH ")  y h H ")H)H "hh:Hc &"ᥖHH| #")H)H " #"c ")  y hACTIVE " inactive "᭷ͳ [BOTTOM]6 "` tool set $xx (nnn): xxx tools FPT is at $xxxxxxxx WAP is $xxxxxxxx Status: +9CQin  " 0 ? P _ l Tool LocatorMemory ManagerMiscellaneous Tools QuickDraw II Desk Manager Event Manager Scheduler Sound ManagerApple DeskTop Bus ToolsSANEInteger Math Tools Text Tools{internal use}Window Manager Menu ManagerControl Manager System LoaderQuickDraw aux. routines Print Manager Line EditDialog Manager Scrap Manager Standard FileDisk UtilitiesNote SynthesizerNote Sequencer Font Manager List Manager0 h "h "ᮕ `H Version "hH) 0H ".H "hH) 0H "h prototype "`k.28 ; EKNQb69< ? ILVY *#-#=3@3SDVDi\l\mm&&ww X\\MM#9GQy U ipcc||ccy ",0@6C6+9CQin  " 0 ? P _ l }       F ,@ F ScreenBlankEK"H)"4H)4h4h"kk Ej ,@ j Speed: fastAK  "h)IH  " 6I6K 60bd kslowfast^ [dXUbA jklmnopqrstuvwxy@ ,@  SCC Peeker'"x"3" k"k;8 [#NHH"d"&"&qNHH"d"&MHH"d"& NHH"d"&Z@HH"d"&"&2HH"d{iH""kH) HH"d{iH""k^ HH"dHH"\HH"dH"HH"\"&V6HH"d{iH""kHH"H "H "+;ikSCC 8530 Peeker, by Guy T. Rice Written in ORCA/PascalThis CDA allows you to look at and modify the values contained in any SCC 8530register. It uses the Modem Port registers, not the Printer Port. It is notnecessary to have Modem Port selected in the Control Panel. Using this insideof a terminal program can be very educational! (And fun too...)1=Read a register, 2=Write to a register, 3=Quit: Register: Register = Value: ;8 [+;ik;8 [+;ikKHH "$H"H ".H,H " HHH "*H(H&H "4H2H0H "kK  6HH "hhHH "h"h$HH "h,h.HHH "hhh HHH "h&h(h*HHH "h0h2h4 " " "5 "Z "Z "k; [H H H h h h8" 0 "@ H Hi  H"i " +;i k{;8[:ڋK )  "N +%-0:N "N HH ("h"{i+k "N kSb ;[I4" )d9 $$ ")   +`4 "k! K  )k&#K)   n nkHZHH ;[dH   && U  T h+hhzh`((((PPPPHZHH ;[ d0JUIT0+hhzh` 6  `)   `H" \K Error occurred at line  " H"\ in procedure  " ""V   " " Line Name= " ---- ----Y "  < H"\ " ""Vo ;[ 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 H"A H"h")H L K " "  k K;8 [0;5 7 "=;?0dd94 J i  !44 4 ɍ4 4 4 ɾɮ 4 ɼɬd 44Hd J h Wd 3 4 5:4Iȹ44:4Hd J h: 99 H9 4449 Hd J h h4 4  `L 0H ""h0)? a    `0ZH;? " H "hz0`8(044 4  `444ș444`0;i +kxK&kK   HH"k8   8` `HZ) |H`zh8`,"``'Ȯ =HH  =hz ```O`  O``P``%)0<W^ov OO`HZHH ;[ d0JU T0+hhzh`HZHHHHHH ;[  dd  & U & T  +hhhhhhzh`; [8""+hhkHHH8H; [  "G % Q8  0 "r "r "Ge i @< "r "r   "GZ "r"+;i kHH8H; [ȷȷ HH"+hhhhkH; ["ȿ+hhkHHHHH; ["  ȷݠȷ ȷ+;i k:JJJJkKZ> " <>0<5 ><<0)zkK0<<5>0kHi H ;[ "+hhk; [ "HHH" +hhhhk; [  )8 I"@ H HI i " +;i kH( &"L:(Q ;[  8(I ȗ(  @+hhk; [ 88 )+hk; [0880+hhk ' x3" ) .=#@#QdU&Y&]q`qqdu&y|d&  d&ZZd&&dk+.?dLPk^ard\d\&dk $$"/.3,> BFQ*U(Y&d4h2l0|6"$,. &(*02 46595FZIZVZYZq@ N &),4N ;>AWl rN { $$$'4*4znn?DQot6w   \      V    K = N = g Y j Y t  w  |   \        V     . A2  D H H L R Z ^ a e m x {   ; 5 7   = ; ? 9 4 J   i   4 4 4  4  4 4 % 3 48 H \ 4a 4i l J r   4 5 4 4 4 4  J   9 9 9  4 4! 4$ 9) 5 8 J ? K 4U 4X _  g | ?   ; ?   4 4 4  4444!4&45xEHNZ _ i v|=  =#'5:>DGJPU\`ehktx~%)0<W^ov(18;@ksyGKrUroGrrGrNU]ek> <>< 5><<*<-<055>`chlo{@:Ef{|}~ ,@ Rational CalculatorKHHd &  W ɍ  0 0 ) ɛK* I ), 0 0   0   0      v0) 1|9 0hhk(& %  )   Ɉɛh`툷ɮ% Z H H "h h hhz ,% 8& 1)  `1 `I *I) ,% 0ɮ ȍ% & ɯ * YIɯ[ Z H H "h h h hz  )m  i ȍ  Ȍ'  ɈɛT`ɯ Z H H "h h hhz 1   `I I) * I Z H H "h h h hz  З)m  iȍ ) $ 0   Z $ 0   &#  ݩ    Ȁ0ɰ# ,# 0$   0` d'@Bʚ;ɨɨP P`              (          (  ?ɿ? ɗɗ H H H H "h h h h $ Z @B K;ʭ H H " H H "h h hh" _0  00` H H' "h h  H H H H "h h hh    !   `      H H H H "    hhh h  ­   ! H H H H "h h H H H H "h h hh`ix`Z0"h,( "h  0Hh)(z`T;    H h    D    HDh    S` L. I8n` @ 7  #                  !          H H H H "h h hphn H H H H "h h h?h=        Mh   !          H H H H "h h h`h` H H! H H "h h h/h/ H HHH "h h hyhy H HHH "᭷MI/h8  h  08    hm  hm  h~h|z                   D`h(0bȀ 0`͡ҪE @b ̠ҍߍLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLߍLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLߍ+-*/K𠠠Jؠ썠HU٠!ؠ占 젠MߍN\\㩠\\NLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL[[[[[[[[[[U S Q O M bK I @G E C A ? = E; 9    b                                              ~  {  x  u r g  d  `  ]  X U P J  G  A  >  2  /  +  (  !                       !         z v r  n _ \  Y V  S P M J G D A > ; 8 5 2  / ' $                                              v r  f  b  ^  Z K H  E B  ? < 9 6 3 0 - * ' $ !     !                              @{xurolifc^[XUROLIDA<9630-*'$!   ~ {x ur olkeb^[ XU RO LI FA> ;8 52 /, )%!        w s o k b ^ R N J F 7! 4 1 . ) & "                   !               w s a\_Q M A = 2 .    Z$             }z wtqk he b_ \Y VSPJ GD A> ;8 52/) &#        $ # # | yv s nk he `# X U R O H$ ?Z< 9 6 3 %$             * )       { g d JC' 5 2 ) %        * & % % )    & %  { i e Q% 7.) + ( % " % 9 ) v    * |) ytqbTW D2 ,@ 2 Print ScreenkK " " " " " " "mڿ )ɠ H ")ɠ H "(д "0Ж "c "kH0h@ ɀ8@h >@=` ɀ3i@`H "& " " "$`i@H "! " "X " " "Y " ""`((((PPPP 80N D8+Print Screen CDA, by Guy T. Rice8- Written for the Imagewriter II  47hkx~ ,@ MouseText Remover: now OFF$#kK'n"0A A0N n"FFkZrH H 0k)xx I@ `$#(-n0nHNTnWndjyrA&MARVIN  A+IMAGEWRITER t A+HEX.DEC.BIN[( A&DUMPIT [.3!APICSAVER[. A(CALENDAR 5A*AREA.CODES"B3A ,@ MarvinWH"kW e ,@ main e "4"" ;8[i" ;iHH "h ";iHH "h " " " " " "{i+k ;8[iHH "H H H "HH "HHH "{i+k ;8[i"u "I "H "  " " " " " " "H"ho" hf "- "  " " "v "k "Y "q  "] " " "'80 1H`6Jo  " "H ""h"{i+kHit a key to exit into a bit of a decline.9ten million--they were the worst, too. After that I went7The first ten million years were the worst. The second8Didn't I tell you I've got a brain the size of a planet?I won't enjoy it. depressed.5don't know why I bothered to say it. Oh, God, I'm so5Pardon me for breathing, which I never do anyway so I'Parking cars--what else, you dumb dumb?"Wait a minute--I've got one ready.8Would you like me to stick my head in a bucket of water?6I think you ought to know, I'm feeling very depressed.#===================================#Marvin, the Paranoid Desk Accessory" to the Galaxy, by Douglas Adams.]<[Marvin's words are from my memory of The Hitchhiker's guide+ by David A. Lyons [CompuServe 72177,3233]):(This is a trivial public domain CDA written in TML Pascal ;8[i{i+;ik ;8[i{i+k ;[;8 " ;i+k ;[;8 " ;i+k HHH;[ H ;"H"hHHH "hhH "HHHH "hhe: kHH"HH"") H;[ I Iʀ f  8 F F I+k4 "%( ;AFJMP S Viot   !&26;@LdhukuuyI|IHH  #)0 8f;fEL-O-Y] ` jqt~vvkkYY  ,1163J5o79;=BEOSV`ov>EYe} ,@ ~global > @,@ Set IW2 Options,"+"S"k"k;8 [H "A "A "A+;ik;8 [H "A "A "A+;ik;8 [ d  +;ik;8$ [ d" ))芅+;i$k;8( [$d& d"$)) +;i(k;8 ["p " "" " " "" " "% ". "C "Y "j "w " """"80"8 "An "A "AN "A "AE "A "Ap "A "AP "A "Ae "Aw "Aq "A[ "AQ "A? "A0.8  PH`"?\y$3"+;ik#ImageWriter II Control Utility V1.0 Copyright 1988 by Bill RuffChoose option:&(printer ON and SELECTED, ESC to exit)&-------------------------------------- 1. Extended2. Pica3. Elite4. Pica proportional5. Elite proportional6. Semicondensed 7. Condensed8. Ultracondensed9. Kill buffer;8 [+;ik;8 [+;ikK~H|H "ᭈHH "᭒HH "᭄HHH "᭎HHH "᭘HHH "kKrxzt  vHH "h|h~HH "hhHH "hhHHH "hhhHHH "hhhHHH "hhh " " " " " "k#)1H"J CH"h")y} "k"\ ! K  )k&#K)    kHZHH ;[dxHxx B t t&& U  T xhx+hhzh`((((PPPPHZHH ;[x Bd0rJUIT0+hhzh`v   v`)  t `H"! \ KOError occurred at line  "OH" in procedure M "P"'"_ K M " " Line Name " ---- ---- "K MAGTXeivz  39 1;`m&NQWchr* %,0>CGMPSY^einqt} 1:ADIt| qH#'3]{#,8EMe_cHy} T^x W^fntA( ,@ Hex/Dec/Bin Converter'  H  " " " " " " "A " "_ " "u " " " " " ""h) k1 UL2 L3 [L4 #LNumber Conversion Utility 1. Hex to Dec 2. Dec to Hex 3. Hex to Bin 4. Bin to Hex Enter value: $ Decimal equivalent: Enter decimal value: Hex equivalent: $ Binary equivalent: Enter binary value (16 char):  "0  $"h. "0.H %"4 '" <>4 "` "0  $"h.  "0.H )"h0h22H0H #"  "` "0  $"h.0.H $"h0  "0 +  D1   " "  "+h`0j60`6 "0  $"h.  ".0jnH)  00 hJJJJi700220220 460 "h`DT`DT`Ek' y|AA__uuU&)1[4<#?VY  \_  $6'6N Q  | ,@ | Dump file.- " " "h8h6kK6H8H " " " " " "   "`r $ " " "ᜩ 5 P 5p t v  5 P 5p oڊ) | b 0  ) x 5ڽb ) ɠH "^mNb  "v u t t it v x "`#r  " " " " )m "`< #< "< )? " ""h ɍBɕɛɈʩ H "0`= ɮɺ )۰?= Њ< < 1`)z *x "Kz n{ 0Y  { Xk0m "7 " z z ID0 Z "R "G " ""h80`"C0" "IL8ILH"(hz =< ||  " 0x x `HJJJJ h) ɺi0H " `0 | | `Š宠ɠ򠣤 䮙ߍژߍژߍژߍژߍژߘ̘"h,( "h.!` `Hhɠɛ0`2@`ߍژߍژߘژԠߘژߘژ㩠ߘژߘژߘژߘ̘Π򮍍Š𺠠KJ0L8 M1RIT\ H SIL8ILH [(hkkZy| &)5Vbejv i -WZ]`LYhI| |< vhN*GRZ7m < #- . ,@ SHR C1 SaverK"6Gc H  &"ှ"&"" k "k:HHHHHHHH$"hhhh`Screen.0  $03;?BKfmps{ ,@ CalendarKHHd     [0"h,( "h   0  Hhɛ4Ɉ+ɕ"ɊɋЙ0 0 0hhk0   ` =m.0   ' ` i#8= 0   `0 llɾ Hmh mi!8  :i &   1  >dd >  >    ߗ! j j0=8 0 J Hh I" J K j jJ K !iȩ[0 l4 ȩ@`H Ȣh`0 0T! _(`0 0_! (`ȗȗȗ` 8 id )I*>(` 0"(`ix` M M0 "hh)il h hhh  (`0   (8`qzzqli fb _ \YVQG D 73 /* >  n`O52/"  KjjKI =~yjvjdT C>5>'> ^ XU RN IFA> 96+=$    =  yj]ZB[52 /,)% "    ,@ Telephone Area Codescj/  Telephone Area Codes   Scroll: K J Page: A-K J Save Position: 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 [   }  '+k ""h)`Ss ') k    # v% # G - - q-%%##  "   q-%- < 4%.+++ G### - - q-%%%  "   q-%- "("""`    " "  "   " ""h)hhb  q` " " " " " " " "H hHh !  5 " " " "MکH "0ڀ " "O  "- G "Mک_H "0ڀ "O "`0 N!"#0`0 P!"#0`+H +hHh` HH# qhh:H` " "-%) % "+ ^ - " '  - " O  "`H{)+h8++ ^`HeH "`e HzZ ) H "N "z`: All locations+HJ$"zh((`:0Z% 0 "0h{0`  " ` "'4)"4) 4 ` '")4 ` %`2}201New Jersey: Hackensack/NewarkOk202District of Columbiac203Connecticut} 204Canada: Manitoba /205Alabama206Washington: Olympia/Seattle207Maine208Idaho209California: Fresno/Sonora 212New York: New York City3213California: L.A./Long BeachS214Texas: Dallas/TexarkanazQ 215Pennsylvania: Allentown/Phila.?216Ohio: Akron/Cleveland/YoungstownF 217Illinois: Decatur/Springfield=218Minnesota: Bemidji/Duluth z 219Indiana: Gary/South Bend )301Maryland. 3302Delaware? c303ColoradoU 304West Virginia~ 305Florida: Ft. Lauderdale/Key West 306Canada: Saskatchewan {307Wyoming ~ 308Nebraska: Scottsbluff 309Illinois: Bloomington/Peoria 312Illinois: Chicago/Waukegan5 313Michigan: Ann Arbor/DetroitZ 314Missouri: Hannibal/St. Louis| . 315New York: Syracuse/Utica O316Kansas: Dodge City/Wichita  317Indiana: Indianapolis/Kokomo 2318Louisiana: Lk.Charles/Shreveport 319Iowa: Cedar Rapids/Dubuque& U 401Rhode IslandF 402Nebraska: Lincoln/Omaha^ ^ 403Canada: Albertaw z404Georgia: Atlanta 405Oklahoma: Enid/Oklahoma City 406Montana 408California: Monterey 409Texas: Beaumont/Galveston 412Pennsylvania: Pittsburg* 413Massachusetts: WesternQ /414Wisconsin: Green Bay/Milwaukeez 415California:San Francisco/Oakland 416Canada: Hamilton, Ontario 417Missouri: Joplin/Springfield S418Canada: Sept Iles, Quebec 419Ohio: Bowling Green/Toledo 501Arkansas@ | 502Kentucky: Bowling Green/Lou'villO 503Oregonx  504Louisiana: Bat. Rouge/N. Orleans s505New Mexico O 506Canada: New Brunswick 507Minnesota: Albert Lea/Rochester 509Washington: Walla Walla 512Texas: Austin/San Antonio3513Ohio: Cincinnati/DaytonS 514Canada: Lachine, Quebecq 515Iowa: Ames/Des Moines516New York: Eastern Long Island517Michigan: Lansing/SaginawI518New York: Albany/Schenect'y/Troy 519Canada: Windsor, Ontario601Mississippi'602Arizona=603New Hampshire^5 604Canada: British Columbias 605South DakotaJ606Kentucky: Lexington 607New York: B'hamton/Elmira/Ithaca& 608Wisconsin: Madison/Dodgeville 609New Jersey: Camden/Trenton)<612Minnesota: Minneapolis/St. PaulK'613Canada: Kingston, Ontariom614Ohio: Columbus/Mt. Vernon 615Tennessee: Knoxville/Nashvillex 616Michigan: Battle Creek/Gr.Rapids617Massachusetts: Eastern618Illinois: Alton/Mt. Vernon 'q619California: La Jolla/San Diego<q701North DakotaK702Nevadao703Virginia: Arlington/RoanokeZ 704No. Carolina:Asheville/Charlotte705Canada: Sudbury, Ontarioo707California: Ft. Bragg/Santa RosaC709Canada: Newfoundland'712Iowa: Sioux City/z713Texas: HoustonW 714California: Anaheim, Costa Mesaq715Wisconsin: WausauK716New York: Buffalo/Rochesterw 717Pennsyslvania: Harrisburg/Lanc."718New York: Western Long Island@ 801UtahS802Vermont 803South Carolina? 804Va: Ch'ville/Norfolk/Richmond [805California: Ventura{806Texas: Amarillo/Lubbock 807Canada: Port Arthur, Ontario808Hawaii^809Puerto Rico/Virgin Islands812Indiana: Evansville m813Florida: Winter Haven/[814Pennsylvania: Altoona/ErieJ 815Illinois: Kankakeep 816Missouri: Kansas City/Sedalia3817Texas: Fort Worth/Temple818California: Pasadena/Van Nuysp819Canada: Val D'Or, Quebec 901Tennessee: Jackson/Memphis 902Canada: Nova Scotia/P.E.I. I904Florida: Daytona Beach/Jax'villekK906Michigan: Upper Peninsulaz907Alaska912Georgia: Savannah/Macon 913Kansas: Kansas City/Topeka? 914New York: Poughkeepsie/Wh.Plains* 915Texas: El Paso"916California: Sacramento/TahoeCW918Oklahoma: Muskogee/Tulsa  919North Carolina: Durham/Raleighk    "9 " Q " ""hhhcj lor}ux''k ##G--q-%%##'*q--9-<SZ+gl+s+x{G###--q-%%%q--$*-0=@PSVfi l q# +7<!IL5O5Y\-GOO(++2 7+DNa#dqru-%+^+++^}@NCNn+')')% 2}2O4kOcQc}e }/ 33S5SzUQ z|?F = z    ) .  3. ? 0 c? U A U ~ W ~    {  ~       5  5 Z 7 Z | \ . | ~ O     2    &  U & F ( F ^ H ^ ^ w ` zw y          *  * Q , /Q z S z |     S       @  | @ O B O x Q  x z s  O       33S5 SqU qsI ''=)=^?5 ^s` suJ &  )<)K+'KmMmo x 'q'<)q<K>KoMoqZ oC'/z/W1 WqYqsKw "@ S ? ?[A[{]{} ^ m /[/J1 JpL pr3p  I"IkKKkzmz| ? * ""C$WC E lor99QQASCIIvx/' @'%ASCII"[76 )ASCII.PAS" [70 ASCII.MAKEC[71 u@ ,@  ASCII Chart("'""k"k;8 [  "> 8pI0^ "i@H " " " "i HJJJJ)chh)H "i H)chh)H ""J "i HiJJJJ)chh)H "i Hi)chh)H "iH"J+;ik;8 [1d@ " " " " "", "Z " " " "A " " "1 2 " 1 "C " "H " "", "Z "R "_ " "",dGiH"  "iH" ",iH" eH{"4| "eiH{"4| "ei H{"4| "ei0H{"4iH" ", "Z " " " "_ " "", " ": " "",+;ik;8( [$d& d"$)H8zpI0$)) +;i(k;83 [{i H" {iHZ " " "6 {iH _" " "6 1 "ፚ "ፚ " "1 1{" 2{"1I1{"K+;i3kSP $ $M_____________________________________________________________________________> ASCII Table V1.1 Press ESC to quit, any other key for page ... _MLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLK | | | M MLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL0123456789ABCDEF;8 [+;ik;8 [+;ikK HH "*H(H "4H2H "&H$H"H "0H.H,H ":H8H6H "kK  <HH "hh HH "h(h*HH "h2h4HHH "h"h$h&HHH "h,h.h0HHH "h6h8h: " " "; "` "` "k{;8[:ڥ: e dHHH" e8Y u 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 " " hhkHiH;8  [  " O$>" ȩȗ na i  U GE "F e i  " "8  0 E  ")i+;ikiHHHH "hhkHH; [ȗȗȥȥȩ i+zzzzk; [H H H h h h8" 0 ". H Hi  H"i " +;i kHHHHH; ["  ȷݠȷ ȷ+;i k|H"H"h") ;[I4" )d9 ** ")   +`: "k! K  )k&#K)   t tkHZHH ;[dH   && U  T h+hhzh`((((PPPPHZHH ;[ d0JUIT0+hhzh` <  `) )  y`H"\KError occurred at line  "᭨H"J in procedure  ""z"  " " Line NameC " ---- ----_ "᭤ <H"J  ""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 overflow; [8"3"F+hhkHHH8H; [  " % Q8  0 " " "e i @< " "   "Z ""3+;i kHH8H; [ȷȷ HH"+hhhhk:JJJJkH; ["ȿ+hhkK&kKHH"k`^8 ` ^` b8` `HZ>) fH`zh8`,"``'Ȯ HH b hz ```O`  yO``P``ks| OO`HZHH ;[ d0JU T0+hhzh`HZHHHHHH ;[  dd  & U & T  )+hhhhhhzh`Hi H ;[ "+hhk; [ "HHH"z +hhhhk; [  )8 I". H HI i " +;i kH( &"L((QM ;[  8(I ȗ(  @+hhk ('#*/GJJ J,;>eChC|HH,RR,  ,7 C4]4w44 , ,!:$:8,   6 7 ; ?6 XeK *(42&$"0.,:86+.17:=<CPT a(e*r2v4"$&,.068:;;`` ` `= ^ u |   @ E b h k                  4        " a g q       - 5 P V m s    .  QYx|~***-:0:ttEJWuz<})yJ z#&QCTCm_p_z}Jz037Fp (3PX */`2^9`<A^D`GbW>`cfuz~by   k"s$|&(*,.02468:<kv )$(NQVZ]iz.(3T{$optimize -1} {$ClassicDesk 'ASCII Chart' StartUp ShutDown } program ascii(output); uses MscToolSet, TextToolSet; procedure StartUp; const CURSOFF = 6; CLRSCR = 12; NORMAL = 14; INVERSE = 15; MTOFF = 24; HOME = 25; MTON = 27; ESC = 27; var lbord, rbord: string[4]; hexchars: string[16]; firstpage: boolean; procedure dopage(pageno: char); var ch, offset: integer; procedure dochar(ch: integer); begin if ch = 32 then write('SP') else if ch < 32 then write('^', chr(ch+64)) else write(' ', chr(ch)); write(' $', hexchars[((ch >> 4) & $0F) + 1], hexchars[(ch & $0F)+1], ch:4, ' $', hexchars[(((ch+128) >> 4) & $0F) + 1], hexchars[((ch+128) & $0F)+1], ch+128:4) end; begin if pageno = '1' then offset := 0 else offset := 64; writeln(chr(HOME), chr(MTON), ' ', '_____________________________________________________________________________', chr(NORMAL)); write(chr(INVERSE),'Z',chr(NORMAL),' ',chr(INVERSE),'A',chr(NORMAL), ' ASCII Table V1.1 Press ESC to quit, any other key for page '); if pageno = '1' then write('2') else write('1'); writeln('... ', chr(INVERSE), ' _', chr(NORMAL)); writeln(chr(INVERSE), 'Z', 'LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL', '_', chr(NORMAL)); for ch := 0 to 15 do begin if ch = 8 then writeln(lbord, ' | | | ', rbord); write(lbord); dochar(offset+ch ); write('|'); dochar(offset+ch+16); write('|'); dochar(offset+ch+32); write('|'); dochar(offset+ch+48); writeln(rbord) end; writeln(chr(INVERSE), 'Z', chr(NORMAL), ' ', chr(INVERSE), '_', chr(NORMAL)); writeln(' ', chr(INVERSE), 'LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL', chr(NORMAL)); end; { GetKey -- return the ordinal value of the next key typed by the user} function GetKey: integer; var keyboard,strobe: ^byte; {keyboard and strobe pointers} begin keyboard := pointer($00C000); strobe := pointer($00C010); while keyboard^ < 128 do ; GetKey := keyboard^ & $7F; strobe^ := 0; end; {GetKey} begin hexchars := '0123456789ABCDEF'; lbord := concat(chr(INVERSE),'Z',chr(NORMAL),' '); rbord := concat(' ',chr(INVERSE),'_',chr(NORMAL)); firstpage := TRUE; SetOutputDevice(1, pointer(3)); InitTextDev(1); write(chr(CURSOFF), chr(CLRSCR)); repeat if firstpage then dopage('1') else dopage('2'); firstpage := not firstpage until GetKey = ESC; end; procedure ShutDown; begin end; begin end. cmpl ascii.pas filetype ascii cda copy -c ascii */system/desk.accs CLOCK.V1.1vx/' @'*CLOCK.V1.1[ .CLOCK.V1.1.ASMb"[ CLOCK.V1.1.MAKEY[ .CLOCK.V1.1.MAC[1 ,@ Classic Clock v1.1k " " " ""h) 15"hh  1 2#39Q"#"k"#"k3"#"k#" HH"k Classic Clock v1.1, by Guy T. Rice <1> Full date/time <2> Time only (with seconds) <3> Time (without seconds) <4> Turn off Select option: 0"ʿ)?? 02k0"ʿ)??  02k0x"ʿx)??  0)?' '2k7:U cz  33 6x9xHxa******************************************************************************* * * * Classic Clock v1.1, by Guy T. Rice Written with APW * * * * Note: This is a minor revision of my Classic Clock CDA. This version * * gives you three different clock modes to choose from, each showing a * * a different amount of information, and thus taking up more or less * * space on the screen. * * * * There seem to be plenty of Clock NDA's out there. Analog clock NDA, * * Digital clock NDA, and one written in every language out. Seems to me * * that it's about time we got a real USEFUL clock, one that's a CDA. Well, * * here it is. It uses one-second interrupts, and displays the time in the * * upper right-hand corner of your screen. Just in case your application * * reads the screen for some reason, this CDA modifies the screen in banks * * $E0 and $E1, and does not mess up the normal screen in banks $00 and $01. * * The time is printed in the format you select in the control panel. On * * the 80-column screen, the characters appear in every other column, with * * white spaces in between. This is so things look fine on the 40-column * * screen. Questions about this or any other program of mine can be sent to * * me on GEnie. My mail address is GUYRICE. * * * ******************************************************************************* keep clock.v1.1 mcopy clock.v1.1.mac ******************************************************************************* CDAheader START str 'Classic Clock v1.1' ;"Just for the taste of it..." dc i4'CDAstart' dc i4'CDAshutdown' END ******************************************************************************* CDAshutdown START rtl END ******************************************************************************* CDAstart START PushWord #1 ;Pascal driver PushLong #3 ;Slot 3 _SetOutputDevice PushWord #1 ;Output device _InitTextDev PushLong #WhoDidIt ;String Ptr _WriteCString PushWord #0 ;Space for result PushWord #$80 ;Echo on _ReadChar pla and #$007F sta >WhatToDo cmp #$31 ;ASCII "1" blt CDAstart cmp #$35 ;ASCII "5" bge CDAstart lda >OffValue ;See if OffValue already set bne SetupClock ;Skip next segment if so PushLong #0 ;Make room for result PushWord #$15 ;Code for 1sec interrupts _GetVector PullLong >OffValue ;Save normal value SetupClock anop lda >WhatToDo cmp #$31 beq TurnOn1 cmp #$32 beq TurnOn2 cmp #$33 beq TurnOn3 brl TurnOff TurnOn1 anop PushWord #$15 ;Code for One-second interrupts PushLong #ShowClock1 ;Address of 1sec int. handler _SetVector PushWord #6 ;Enable one-second interrupts _IntSource rtl TurnOn2 anop PushWord #$15 ;Code for One-second interrupts PushLong #ShowClock2 ;Address of 1sec int. handler _SetVector PushWord #6 ;Enable one-second interrupts _IntSource rtl TurnOn3 anop PushWord #$15 ;Code for One-second interrupts PushLong #ShowClock3 ;Address of 1sec int. handler _SetVector PushWord #6 ;Enable one-second interrupts _IntSource rtl TurnOff anop PushWord #7 ;Disable one-second interrupts _IntSource PushWord #$15 ;Code for One-sec interrupts PushLong >OffValue ;Address of old handler _SetVector rtl OffValue ds 4 WhatToDo ds 2 WhoDidIt dc i1'12' dc c'Classic Clock v1.1, by Guy T. Rice',h'0D0A0A' dc c'<1> Full date/time',h'0D0A' dc c'<2> Time only (with seconds)',h'0D0A' dc c'<3> Time (without seconds)',h'0D0A' dc c'<4> Turn off',h'0D0A0A' dc c'Select option: ' dc i1'0' END ******************************************************************************* ShowClock1 START ;Routine is called in 8-bit native mode Long ;Set 16-bit native mode PushLong #TimeBuffer ;Get the current time _ReadASCIITime ldx #20 ;Copy 20 bytes onto the screen CopyLoop dex dex lda >TimeBuffer,X ;You can change where the clock and #$3F3F ;appears on the screen by changing sta $E00414,X ;the address in THIS line lda #$2020 sta $E10414,X ;and in THIS line too... cpx #0 bne CopyLoop Short ;Restore 8-bit native mode lda #0 ;Clear interrupt sta $E0C032 clc ;Carry clear means we handled it rtl TimeBuffer ds 20 END ******************************************************************************* ShowClock2 START ;Routine is called in 8-bit native mode Long ;Set 16-bit native mode PushLong #TimeBuffer ;Get the current time _ReadASCIITime ldx #17 CopyLoop dex dex lda >TimeBuffer,X ;You can change where the clock and #$3F3F ;appears on the screen by changing sta $E00417,X ;the address in THIS line lda #$2020 sta $E10417,X ;and in THIS line too... cpx #9 ;Stop at byte 9 bne CopyLoop Short ;Restore 8-bit native mode lda #0 ;Clear interrupt sta $E0C032 clc ;Carry clear means we handled it rtl TimeBuffer ds 20 END ******************************************************************************* ShowClock3 START ;Routine is called in 8-bit native mode Long ;Set 16-bit native mode PushLong #TimeBuffer ;Get the current time _ReadASCIITime ldx #15 CopyLoop dex dex lda >TimeBuffer,X ;You can change where the clock and #$3F3F ;appears on the screen by changing sta $E00419,X ;the address in THIS line lda #$2020 sta $E10419,X ;and in THIS line too... cpx #9 ;Stop at byte 9 bne CopyLoop Short ;Restore 8-bit native mode lda >TimeBuffer+18 ;Add missed byte and #$3F sta $E00427 lda #$20 sta $E10427 lda #0 ;Clear interrupt sta $E0C032 clc ;Carry clear means we handled it rtl TimeBuffer ds 20 END ******************************************************************************* asml clock.v1.1.asm filetype clock.v1.1 cda copy -c clock.v1.1 4/desk.accs/classic.clock  MACRO &lab _GetVector &lab ldx #$1103 jsl $E10000 MEND MACRO &lab _IntSource &lab ldx #$2303 jsl $E10000 MEND MACRO &lab _ReadAsciiTime &lab ldx #$0F03 jsl $E10000 MEND MACRO &lab _SetVector &lab ldx #$1003 jsl $E10000 MEND MACRO &lab _InitTextDev &lab ldx #$150C jsl $E10000 MEND MACRO &lab _ReadChar &lab ldx #$220C jsl $E10000 MEND MACRO &lab _SetOutputDevice &lab ldx #$100C jsl $E10000 MEND MACRO &lab _WriteCString &lab ldx #$200C jsl $E10000 MEND MACRO &lab pulllong &addr1,&addr2 &lab ANOP AIF C:&addr1=0,.a AIF C:&addr2=0,.b LCLC &C &C AMID &addr1,1,1 AIF "&C"="[",.zeropage pullword &addr1 sta &addr2 pullword &addr1+2 sta &addr2+2 MEXIT .a pullword pullword MEXIT .b pullword &addr1 pullword &addr1+2 MEXIT .zeropage ldy #&addr2 pullword &addr1,y ldy #&addr2+2 pullword &addr1,y MEND MACRO &lab pullword &SYSOPR &lab ANOP pla AIF C:&SYSOPR=0,.end sta &SYSOPR .end 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 &C AMID "&SYSOPR",1,1 AIF ("&C"="#").AND.(S:LONGA),.immediate lda &SYSOPR pha MEXIT .b pha MEXIT .immediate LCLC &REST LCLA &BL &BL ASEARCH "&SYSOPR"," ",1 AIF &BL>0,.a &BL SETA L:&SYSOPR+1 .a &REST AMID "&SYSOPR",2,&BL-2 dc I1'$F4',I2'&REST' 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 DISKINFOvx/' @'(DISKINFOm[z ,DISKINFO.ASM 6+[z ,DISKINFO.MAC![z   ,@ T Disk InfokKHHH "HHH " " " " "HH " "᯼)2 " Sorry. ProDOS 16 is not active. "0/Disk Info by Gary Little : ProDOS 16 version    ":9Device Volume Name Disk Capacity Free SpaceQ ";:------ ----------------- ------------- -------------1S">f\ q u  "Press any key to Quit: H ""h " " " "k(2H P " h'/R8[   S JW "[no disk in drive]| "[not a ProDOS disk]H "[ProDOS error $ "" "] "^T " HHFH '" "' " blocks- LHJH '" "l " blocks` "Here are the system prefixes:  "*/ = "(4T ".. 0H " "/ = " .e "..`"*<<H) H ". "h) H ",<c " (prototype)` "The current application is "'8e " ". The system has HH"hz NjH &" " "K of RAM memory.`eTePT.D1f $ ` "` CQFQS>quPP!9<ASIWLWn|q|TTHF ''36L:J>AQT^lalvy4TT...ee..<$<P<UcXcru8ee0e4T8e>PBT  ******************************************************* * This is a Classic Desk Accessory called "Disk Info" * * * * It displays information about all the active disks * * in the system when ProDOS 16 is active. * * * * To install it, copy the program file to the * * SYSTEM/DESK.ACCS/ directory of the boot disk, then * * reboot the system. * * * * by Gary B. Little March 15, 1987 * ******************************************************* LIST OFF SYMBOL OFF INSTIME ON GEN ON KEEP DISKINFO MCOPY DISKINFO.MAC CH GEQU $000024 ;Cursor horizontal position Disk_Info START ; this is the mandatory CDA header: STR 'Disk Info' ;Name of CDA DC I4'CDA_Start' ;Main entry point DC I4'CDA_Exit' ;Shutdown entry point CDA_Exit ANOP RTL ;Nothing special to do CDA_Start ANOP PHK PLB ;Data bank = program bank PHA ;space for results PHA PHA _GetOutputDevice ;Get output device info ; the result is left on stack; used on exit. PHA ;space for results PHA PHA _GetInputDevice ;Get output device info ; the result is left on stack; used on exit. PushWord #0 ;BASIC output type PushLong #3 ;Slot 3 for output _SetOutputDevice PushWord #0 ;BASIC input type PushLong #3 ;Slot 3 for input _SetInputDevice PushWord #0 ;0 = input device _InitTextDev ;initialize keyboard input PushWord #1 ;1 = output device _InitTextDev ;initialize video (clears screen) PHA ;space for result PHA _GetOutGlobals ;Get output global masks ! the result is left on stack; used on exit. PushWord #$FF ;AND mask (do nothing) PushWord #$80 ;OR mask (set high bit) _SetOutGlobals LDA $E100BC ;Get operating system ID AND #$00FF CMP #1 ;ProDOS 16? BEQ DoHeader ;Yes, so branch PRINTLN 'Sorry. ProDOS 16 is not active.' BRL Do_Exit DoHeader PRINT 'Disk Info by Gary Little : ProDOS 16 version ' JSR ShowVers JSR CRLF JSR CRLF PRINTLN 'Device Volume Name Disk Capacity Free Space' PRINTLN '------ ----------------- ------------- -------------' LDA #'1' ;Start with device .D1 STA TheDevice+3 Do_Volume _VOLUME Vol_Parms ;Get volume information BCC Show_Info CMP #$11 ;Invalid device? BEQ Do_Misc ;Yes, so all done CMP #$10 ;Device not found? BNE Show_Info ;No, so branch Do_Misc JSR DoApplic JSR DoPrefixes ;Show names of prefixes Do_Exit JSR CRLF PRINT 'Press any key to Quit: ' PHA PushWord #0 ;no echo _ReadChar PLA ! Input parameters for these were left on the stack earlier _SetOutGlobals ;Restore global masks _SetInputDevice ;Restore input device _SetOutputDevice ;Restore output device PushWord #1 ;1 = output device _InitTextDev ;Re-initialize RTL ;Display information for the volume: Show_Info CMP #$28 ;The second 5 1/4" drive is missing? BEQ Vol_Next ;Yes, so ignore error PHA ;Save error code LDA #1 JSR TAB PushPtr TheDevice _WriteString LDA #9 JSR TAB PLA ;Get error code BEQ DoSizeInfo ;Branch if no error CMP #$27 ;I/O error? BEQ NoDiskMsg ;Yes, so assume disk not there CMP #$2F ;Volume not found? BEQ NoDiskMsg ;Yes, so branch CMP #$52 ;Foreign operating system? BEQ ForeignMsg ;Yes, so branch BRL SeriousMsg ;Bad news, so branch DoSizeInfo JSR ShowSize ;Show blocks max / blocks free Vol_Next JSR CRLF SEP #$20 ;8-bit accumulator LONGA OFF INC TheDevice+3 ;Bump device name REP #$20 ;16-bit accumulator LONGA ON BRL Do_Volume ;Go get next volume NoDiskMsg PRINT '[no disk in drive]' BRL Vol_Next ForeignMsg PRINT '[not a ProDOS disk]' BRL Vol_Next SeriousMsg PHA ;Push error code PRINT '[ProDOS error $' PushPtr HexConvert PushWord #4 ;four digits _Int2Hex PushPtr HexConvert _WriteCString PushWord #']' _WriteChar BRL Vol_Next ; Display "total blocks" and "free blocks" ShowSize PushPtr TheVolume _WriteString LDA #29 JSR TAB PushLong Total_Blks PushPtr LngConvert PushWord #5 PushWord #0 ;unsigned _Long2Dec PushPtr LngConvert _WriteCString PRINT ' blocks' LDA #45 JSR TAB PushLong Free_Blks PushPtr LngConvert PushWord #5 PushWord #0 ;unsigned _Long2Dec PushPtr LngConvert _WriteCString PRINT ' blocks' RTS ;Read and display the system prefixes: DoPrefixes ANOP PRINTLN 'Here are the system prefixes:' JSR CRLF PRINT '*/ = ' _GET_BOOT_VOL GBV_Parms ;Boot directory PushPtr TheVolume _WriteLine STZ Pfx_Number ;Start with 0/ Show_Pfx LDA Pfx_Number ;Get binary number ORA #$30 ;Convert to ASCII PHA _WriteChar PRINT '/ = ' _GET_PREFIX Pfx_Parms PushPtr ThePrefix _WriteLine INC Pfx_Number ;Move to next prefix LDA Pfx_Number CMP #8 ;Past limit yet? BCC Show_Pfx ;No, so branch RTS ;Display ProDOS 16 version number: ShowVers ANOP _GET_VERSION GV_Parms LDA VersionNum PHA ;(Save a copy on stack) XBA AND #$7F ;Isolate major version ORA #$B0 ;Convert to ASCII PHA _WriteChar PushWord #'.' _WriteChar PLA ;Get version # back AND #$FF ;Isolate minor version ORA #$B0 ;Convert to ASCII PHA _WriteChar BIT VersionNum ;Check prototype bit BPL ShowVExit ;Branch if it's not 1 PRINT ' (prototype)' ShowVExit RTS ; Show the name of the current application: DoApplic ANOP PRINT 'The current application is ' _GET_NAME GN_Parms PushPtr ThePrefix _WriteString PRINT '. The system has ' PHA ;space for result (long) PHA _TotalMem ;Get memory size PLA ;Memory size (low) PLY ;Memory size (high) STY MemSizeH ; Convert to K by dividing by 2^10 (1,024): LDX #10 ;Shift 10 times DivLoop LSR MemSizeH ;Shift 32-bit number ROR A DEX BNE DivLoop PHA ;Push size in "K" units PushPtr IntConvert PushWord #4 PushWord #0 ;unsigned _Int2Dec PushPtr IntConvert _WriteCString PRINTLN 'K of RAM memory.' RTS ; Parameter blocks for ProDOS commands: Pfx_Parms ANOP ;GET_PREFIX Pfx_Number DC I2'0' ;Prefix number DC I4'ThePrefix' ;Pointer to space for prefix GBV_Parms ANOP ;GET_BOOT_VOL DC I4'TheVolume' ;Pointer to boot volume name GN_Parms ANOP ;GET_NAME DC I4'ThePrefix' ;Pointer to application name GV_Parms ANOP ;GET_VERSION VersionNum DC I2'0' ;Version number returned here Vol_Parms ANOP ;VOLUME DC I4'TheDevice' ;Device name to use DC I4'TheVolume' ;Pointer to returned volume name Total_Blks DS 4 ;Size of volume Free_Blks DS 4 ;Free blocks on volume DS 2 ;File system ID TheDevice DC I1'3' ;length byte DC C'.D1' ;name TheVolume DS 17 ;Volume name returned here ThePrefix DS 67 ;(len)/(name64)/ ; Data areas for number conversions: LngConvert DS 5 ;Long --> dec conversion DC I1'0' HexConvert DS 4 ;Int --> hex conversion DC I1'0' IntConvert DS 4 ;Int --> dec conversion DC I1'0' MemSizeH DS 2 END ; TAB positions the cursor at the horizontal ; position passed in A. TAB START SEP #$20 ;8-bit accumulator LONGA OFF STA >CH ;Save new horizontal position REP #$20 ;16-bit accumulator LONGA ON RTS END ; Call CRLF to move the cursor to the left edge ; of the next line on the screen. CRLF START PEA $8D ;Move cursor to left of next line _WriteChar RTS END "#$%& MACRO &LAB PushWord &Value LCLC &CHAR &CHAR AMID &Value,1,1 AIF "&CHAR"="#",.IMMEDIATE &LAB LDA &Value PHA MEXIT .IMMEDIATE &CHAR AMID &Value,2,100 &LAB PEA &CHAR MEND MACRO &LAB STR &String &LAB DC I1'L:&String' DC C"&String" MEND MACRO &lab _ReadChar &lab ldx #$220C jsl $E10000 MEND MACRO &lab PushPtr &Label &lab DC i1'$F4' DC i2'(&Label)|-16' DC i1'$F4' DC i2'&Label' MEND MACRO &lab _WriteString &lab ldx #$1C0C jsl $E10000 MEND MACRO &lab _WriteChar &lab ldx #$180C jsl $E10000 MEND MACRO &lab PUSHLONG &Value LCLC &CHAR &CHAR AMID &Value,1,1 AIF "&CHAR"="#",.IMMEDIATE &lab LDA &Value+2 PHA LDA &Value PHA MEXIT .IMMEDIATE &CHAR AMID &Value,2,100 &lab DC I1'$F4' DC I2'(&CHAR)|-16' DC I1'$F4' DC I2'&CHAR' MEND MACRO &lab PRINT &text &lab PEA x&syscnt|-16 PEA x&syscnt LDX #$1C0C JSL $E10000 BRA end&syscnt x&syscnt DC I1'L:&text' DC C"&text" end&syscnt ANOP MEND MACRO &lab PRINTLN &text &lab PEA x&syscnt|-16 PEA x&syscnt LDX #$1A0C JSL $E10000 BRA end&syscnt x&syscnt DC I1'L:&text' DC C"&text" end&syscnt ANOP MEND MACRO &lab _Long2Dec &lab ldx #$270B jsl $E10000 MEND MACRO &lab _WriteCString &lab ldx #$200C jsl $E10000 MEND MACRO &lab _VOLUME ¶ms &lab jsl $E100A8 dc i2"8" dc i4"¶ms" MEND MACRO &lab _Int2Hex &lab ldx #$220B jsl $E10000 MEND MACRO &lab _SetOutGlobals &lab ldx #$0A0C jsl $E10000 MEND MACRO &lab _GetOutGlobals &lab ldx #$0D0C jsl $E10000 MEND MACRO &lab _SetOutputDevice &lab ldx #$100C jsl $E10000 MEND MACRO &lab _GetOutputDevice &lab ldx #$130C jsl $E10000 MEND MACRO &lab _InitTextDev &lab ldx #$150C jsl $E10000 MEND MACRO &lab _SetInputDevice &lab ldx #$0F0C jsl $E10000 MEND MACRO &lab _GetInputDevice &lab ldx #$120C jsl $E10000 MEND MACRO &lab _GET_PREFIX ¶ms &lab jsl $E100A8 dc i2"$0A" dc i4"¶ms" MEND MACRO &lab _WriteLine &lab ldx #$1A0C jsl $E10000 MEND MACRO &lab _GET_BOOT_VOL ¶ms &lab jsl $E100A8 dc i2"$28" dc i4"¶ms" MEND MACRO &lab _GET_NAME ¶ms &lab jsl $E100A8 dc i2"$27" dc i4"¶ms" MEND MACRO &lab _GET_VERSION ¶ms &lab jsl $E100A8 dc i2"$2A" dc i4"¶ms" MEND MACRO &lab _Int2Dec &lab ldx #$260B jsl $E10000 MEND MACRO &lab _TotalMem &lab ldx #$1D02 jsl $E10000 MEND INTDETECTvx0' @'INTDETECT([!'-INTDETECT.ASM) x[ 'INTDETECT.MAKE2V[ '-INTDETECT.MAC3[ ' ,@ Interrupt Detector: OFF! k " " " N 4"hh"N HH"FFk7+Interrupt Detector, by Guy T. Rice0\! <?Uot{~*+,-./01******************************************************************************* * * * Interrupt Detector, by Guy T. Rice Written with APW * * * * This program allows you to hear interrupts by clicking the speaker * * every time one occurs. This can be very useful in debugging interrupt * * driven application programs. It can also reveal interesting information * * about other programs, such as the "bug" in the IIgs's Alternate Display * * Mode CDA. (When you turn it on, it starts up VBL interrupts. When you * * turn it off, it does not restore the former state. It leaves them on.) * * You can hear the one-second interrupts used by the Control Panel when you * * go inside. Try this inside a IIgs desktop application...sounds cool... * * * ******************************************************************************* keep IntDetect mcopy IntDetect.Mac ******************************************************************************* CDAheader START str 'Interrupt Detector: OFF' dc i4'CDAstart' dc i4'CDAshutdown' END ******************************************************************************* CDAshutdown START rtl END ******************************************************************************* CDAstart START PushWord #1 ;Pascal driver PushLong #3 ;Slot 3 _SetOutputDevice PushWord #1 ;Output device _InitTextDev PushLong #WhoDidIt ;String Ptr _WriteCString ldx #0 ldy #10 LeLoop dex bne LeLoop dey bne LeLoop lda >CDAheader+22 cmp #" N" beq TurnOff TurnOn anop PushLong #0 ;Push 4 bytes for result PushWord #$0004 ;Push code for main interrupt handler _GetVector PullLong >OffValue ;Store old value PushWord #4 ;Push code for main interrupt handler PushLong #NewInt ;Push address of new handler _SetVector lda #" N" ;Set text to "ON " sta >CDAheader+22 brl AllDone TurnOff anop PushWord #4 ;Push code for main interrupt handler PushLong >OffValue ;Push address of old handler _SetVector lda #"FF" ;Set text of "OFF" sta >CDAheader+22 AllDone anop rtl WhoDidIt dc i1'30,23+32,11+32,6' dc c'Interrupt Detector, by Guy T. Rice' dc i1'0' END ******************************************************************************* NewInt START sta $E0C030 ;Bump the speaker dc h'5C' ;Opcode for JML, address in OffValue OffValue ENTRY ds 4 ;4 bytes to hold address END ******************************************************************************* asml IntDetect.asm filetype IntDetect cda copy -c IntDetect 4/desk.accs/IntDetect.cda 4567 MACRO &lab _GetVector &lab ldx #$1103 jsl $E10000 MEND MACRO &lab _SetVector &lab ldx #$1003 jsl $E10000 MEND MACRO &lab _InitTextDev &lab ldx #$150C jsl $E10000 MEND MACRO &lab _SetOutputDevice &lab ldx #$100C jsl $E10000 MEND MACRO &lab _WriteCString &lab ldx #$200C jsl $E10000 MEND MACRO &lab pulllong &addr1,&addr2 &lab ANOP AIF C:&addr1=0,.a AIF C:&addr2=0,.b LCLC &C &C AMID &addr1,1,1 AIF "&C"="[",.zeropage pullword &addr1 sta &addr2 pullword &addr1+2 sta &addr2+2 MEXIT .a pullword pullword MEXIT .b pullword &addr1 pullword &addr1+2 MEXIT .zeropage ldy #&addr2 pullword &addr1,y ldy #&addr2+2 pullword &addr1,y MEND MACRO &lab pullword &SYSOPR &lab ANOP pla AIF C:&SYSOPR=0,.end sta &SYSOPR .end 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 &C AMID "&SYSOPR",1,1 AIF ("&C"="#").AND.(S:LONGA),.immediate lda &SYSOPR pha MEXIT .b pha MEXIT .immediate LCLC &REST LCLA &BL &BL ASEARCH "&SYSOPR"," ",1 AIF &BL>0,.a &BL SETA L:&SYSOPR+1 .a &REST AMID "&SYSOPR",2,&BL-2 dc I1'$F4',I2'&REST' MEND MACRO &lab str &string &lab dc i1'L:&string',C'&string' MEND NIFTYLISTvx0' @'-NIFTYLIST.CDA9 >[:8*NLIST.DATAY%>F[-$8)NLIST.TXT~6 [P98)NLIST.APW G[X: 8:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXv+ ,@ Nifty List$ K$ %k'H'H"" " " " " H+ HkH "hH " " " " "` h h K)"HHH "HH "HHH "HH " _! "'H'H " R! ""p'; {  [ % " E ڌ 00 1Ld HH "Ld$; iOx= M ="YLetter following "=" is not a command. A blank does nothing. The "=" command describes the next command instead of executing it. The "/" command sets the current bank, as in the Monitor. If you type 5 or 6 digits of an address, you don't need a "/". Example: FE/0L The L command disassembles memory starting at the given address. Examples: FF1800L L 2/100W#L Tool calls, ProDOS 8 calls, and ProDOS 16 calls will all be identified BY NAME in the list, when known. You can edit the NLIST.DATA file to include newly released or discovered calls, or to include User tool names (for the E10008/E1000C entry). Quit takes you back to the CDA menu. ESC also quits. M toggles between 8- and 16-bit Memory operations for the List command (see also ">"). X toggles between 8- and 16-bit indeX operations for the List command (see also ">"). V prints a table of all toolsets currently in ROM or RAM. Each line in the table has the following form: 02 + v0102 RAM=02 ROM=2D WAP=00000000 === memory manager === All the numbers are in hex. "+" means the toolset is active, and "-" means it is inactive. The version number and a count of the number of functions in RAM and ROM are given. Prints the name and entry point for a tool, which is specified by number. Example: 0902T If the function number is 0, the info is printed for every tool in the toolset. Example: 0002T or just 2T "?" prints help. Just try it. Prints information on a handle. See also W and I. Owner pathnames are available for some handles when ProDOS 16 is active. The "flags" field of a handle is the sum of the following values: 8000 = locked 4000 = fixed 0p00 = purge level (0 to 3) 3=most purgable 0010 = can't cross bank boundary 0008 = can't use special memory 0004 = page aligned 0002 = fixed address 0001 = fixed bank Prints info on all handles belonging to a particular memory manager ID. (The AuxType--the second nybble of the ID--is ignored.) 0 prints info on ALL allocated handles. Examples: 1001i 0i A002i The first digit of an ID identifies it as owned by one of the following: 0 = memory manager 1 = application 2 = control program 3 = ProDOS 4 = a toolset 5 = desk accessory 6 = runtime library 7 = loader 8 = firmware 9 = tool locator A = setup file F = (used by system) See also W and H. Determines what handle an address belongs to, and then prints info on that handle. See also H and I. "*" drops you into the Monitor. Use Ctrl-Y or Q to return. BEHAVE YOURSELF while you're in the monitor! If you don't know what you're doing, take your disks out of the drives. Don't tromp on too much memory, and DON'T go into Applesoft! Things will get mucked up. The "#" command is like retyping the last useful address printed by the T, I, or H command. Example: 0101T, then #L The address will be the entry address for a tool or the starting address of a memory block. S)tatus prints memory use statistics. If ProDOS 16 is active, it also prints the ProDOS 16 version, the current application's name, and the name of the boot volume. "@" sets the current address to the two-byte value found at the given address, leaving the bank number alone. Example: 0/36@L "^" sets the current address to the three-byte value found at the given address. Example: E1/1^L ">" sets the value of a nifty list variable. Type the value, ">" and then the variable. The following variables are defined: L Language card bank (0 or 1) S Slot for output (set to 3 when you enter Nifty List) u 1=V and T deal with user toolsets; 0=system toolsets x 1=8-bit index registers; 0=16-bit index registers m 1=8-bit A register; 0=16-bit index register a 1=automatically track SEP/REP instructions (0=don't) h 0=allocated handles; 1=free handles; 2=purged handles (for I) Examples: 0>L 1>S Type a (") followed by a string to display info on all known tools whose names contain the string. Examples: "Rgn "Version P displays current parameter settings. Use ">" to set them. # =/LQMXVT?HIW*#S@^>"Pc]^5?n}UMbuS` ` h ` hH k h ` "`variable name should follow ">" .!ƹ ) GL `S _`U 2!0!`2!0!`X J `M J `A J `H  `I ` "m x L a h L)0 1  0 > h  LParameter settings: 2!\\᯺) L"'qx " "(U " "*9 "᭰) 0 . ) 0 P  `Current application: Boot volume: ProDOS 16 version: Free RAM: Total RAM: Largest free block:  "HH"h T "HH"h T "HH"hLTRP NRnPRHPH '" "K L "` `! "L ;[H\0+hL8Li\\ I ` I ` .! 80! ''` HHHH'H'H;[ hhhhhh+`Z zȷ` mie i  i i K` L0'  0  080`0` `)  L  0! C ( HH2!HH "i i h h)LH  "h)0! C L Toolset:  HH2!H )H " ;[::+hh 0  i`H zh` D>ڭ     v h   >   0! C ` "HH2!HH " h h`WAP= H"` H"+-*?HH2!Hڢ " ;[ \+hh`XZ$:! ȷ)XZX "X  "ZLRAM= ROM=  ) ᨿHZ; [)ͻ  L+hh``HH Hڢ" hh! "` h<hh Hڢ"  Lx "`not handle H; [               +hh`HHH" "LhhLhhhhL! "` t ` ) `h.! g >.!O .! LH xLH.!.!   ` LH x.!LH .!`q .!`H ""h)`.!` )0A: GA4G/8  ) . m  H h`az)_`H" "`! "hLF ` :     ^ Z     n 8 m  ` ^` a)  ) ` a)  ) ` H*  `499>   a ` v)H) hH) h)   0Ș ` a   m  `H c' ' 'L 2  a0 0   LH   m i ` ` )ɀ m i ` (H(H "` )H)H "` k)`hH୮  ڭ H H;[+hh` / H hHJJJJ h) 0:i   HZ)H "zh`  . ` 0LFH"h'H(^ "hl)`)`8`  a) )` ^  "-` )# a aɿ a C  ` a$ a aɨ\ )LC `JJJiH H H8  ^ɢ aH ah h hLC h h h` aH a C  ` ''` 'H'H;[ j hh+` ȷ% "`ie   "`~F */system/desk.accs/nlist.data (Was unable to load */SYSTEM/DESK.ACCS/NLIST.DATA) Nifty List V2.0 [ShareWare--type "?"] Type "?" for a list of commands. Use Ctrl-Y or Q to return not allocated handle addr size flgs ownr path ------ ------ ------ ---- ---- ---- Copyright (c) 1987 David A. Lyons [CompuServe 72177,3233] v2.0 Nifty List is not in the public domain; it is ShareWare. Please give copies to everyone you know. To legally use this program after a ten-day evaluation period, send $15 to the address below. DAL Systems will mail you a copy of the most recent version. Paying users of older versions of Nifty List may use this version at no extra charge. DAL Systems P.O. Box 287 North Liberty, IA 52317 Comments and suggestions are welcome. Watch for more ShareWare from DAL Systems. Commands: L)ist, m, x, >, ", #, =, @, ^, Q)uit, V)ersions, T)ool info H)andle info, I)d info, W)here, *=monitor, S)tatus For a short description of a command, type "=" followed by the command character. SPACE freezes and unfreezes the screen, and Apple-. or ESC aborts. ---unknown--- NL> 0K HH";[+ ' %(`"'''''"'''''HH'i 'iHگ'HHH "Ph'h'"p''i ''i'"'!"' &'H'H""`'''' "'` 'H'H;[ &hh+` ڷ)* Z z &` ')*ȷ) `Z D'zZȷ) 0Ȼ')*zȗ'` S'h`):)H h`''''k 'H'H;[''hh+k4!ADCANDASLBCCBCSBITBEQBMIBNEBPLBRABRLBVCBVSBRKCLCCLDCLICLVCMPCOPCPXCPYDECDEXDEYEORINCINXINYJMLJMPJSLJSRLDALDXLDYLSRMVNMVPNOPORAPEAPEIPERPHAPHBPHDPHKPHPPHXPHYPLAPLBPLDPLXPLYREPROLRORRTIRTLRTSSBCSECSEDSEISEPSTASTPSTXSTYSTZTAXTAYTCDTCSTDCTRBTSBTSCTSXTXATXSTXYTYATYXWAIWDMXBAXCEPLPP)P)P)Q)Q)Q)S)S)P)Q)P)P)U)P)W)Z)])_)c)g)i)s)m)P)P)P)([#,X,Y),X)),Y]],Y,S),Y,S )$ )(O )  )&1)/O@)@@)` *)%)#))N )!!)')BLN@)AA)a!@$ `(  : &[:6@@:@`*%#)!!:!'@BPAA:Aa<$X ('@ % &-%0@@%@` *%#)&@!%!'B3K`A%Aa>$,K(H ; &4;=C@;@` *%#)H!!;!'BB8MDA;Aa *D$ KD(G D F D&R.G@D@F@D`*D%D#D)G!D!F"D'UDBSTH@DAHADa$"$#"($ " # "&J"I5$@"@#@"`*"%"#")$!"!#""'"BQV$A"A#B"a$9,(   &W@@@`*%#)+ !!'B2ECAAa?$C,?( ?  ?&?(Y@?@@?`*?%?#?)*@?!!?'A?B7Z!D?AA?a $$ %'','T Y    _!!' '.R!1R!;p'@ D G K O R%U%_Eb e hm uy 1d d$; iOx= M    ="Y1c3]5^759;?=?AnC}EUGMIKMOQSbUuWY[S_ c f i l ohr v y |  hk    .! G   _ 2!0!2! 0!J !J$ -J0 9 D K TWd gm pv y  2!x x#&08?BLU[^gjruT3T69NTURXP^RaPgRkPor     !! %,3O_it{\     .! 0!''''    ;KAFINY~   0!C 2!    0!C  !)2!- BH NQVY\_fitz{~>0!C 2!B2!Q\]X`ZwX|ZXXZ     3!6!A N Q _ b e hkxnx    !!    # &t) , / 2 6 < F.!I[.!e j.!mpHsxvHy.!~.!Hx.!H.! .!.! G      # & + 19 < ? B VH"YH"d!g!rFy   ^Z n     ^a  a  *  ,4.9092>B HN QaT]v)d m   a   '''2 a  H       % , 3 9(=(I O)S)bku   F^^&l,/`LQo^ aaaC  aaaC     ^ a a   C  # + a0 a: C @ D I 'M 'U 'Z 'd j r ~ % %  %%%'%%%'%'%'%'%'%'&' &' &'&'&'&'%&'<&'A&'E&p'I&'Q&'T&'[&'c&'o&'v&&y&'~&'&'&'&'&'&'&'&'&&&&&' 'D'+''A''K'S't''x''|'''''''''''''4!(P)(P)(P)(Q)(Q)(Q))S))S))P) )Q))P))P))U))P) )W)$)Z)()]),)_)0)c)4)g)8)i)<)s)@)m)D)P)H)P)L)P)Z[\]^_`abcdefghijklmnopqrstuvwxyz{|}0040 P8:AllocInterrupt 0041 P8:DeallocInterrupt 0042 P8:hmmm... 0043 P8:hmmm... 0065 P8:Quit 0080 P8:ReadBlock 0081 P8:Writeblock 0082 P8:GetTime 00C0 P8:Create 00C1 P8:Destroy 00C2 P8:Rename 00C3 P8:SetFileInfo 00C4 P8:GetFileInfo 00C5 P8:OnLine 00C6 P8:SetPrefix 00C7 P8:GetPrefix 00C8 P8:Open 00C9 P8:NewLine 00CA P8:Read 00CB P8:Write 00CC P8:Close 00CD P8:Flush 00CE P8:SetMark 00CF P8:GetMark 00D0 P8:SetEOF 00D1 P8:GetEOF 00D2 P8:SetBuf 00D3 P8:GetBuf * ProDOS 16 0001 P16:Create 0002 P16:Destroy 0003 P16:??? 0004 P16:ChangePath 0005 P16:SetFileInfo 0006 P16:GetfileInfo 0007 P16:??? 0008 P16:Volume 0009 P16:SetPrefix 000A P16:GetPrefix 000B P16:ClearBackupBit 0010 P16:Open 0011 P16:NewLine 0012 P16:Read 0013 P16:Write 0014 P16:Close 0015 P16:Flush 0016 P16:SetMark 0017 P16:GetMark 0018 P16:SetEOF 0019 P16:GetEOF 001A P16:SetLevel 001B P16:GetLevel 001C P16:GetDirEntry 0020 P16:GetDevNum 0021 P16:GetLastDev 0022 P16:ReadBlock 0023 P16:WriteBlock 0024 P16:Format 0025 P16:EraseDisk 0027 P16:GetName 0028 P16:GetBootVol 0029 P16:Quit 002A P16:GetVersion 002C P16:DInfo 0031 P16:AllocInterrupt 0032 P16:DeallocInterrupt * System tools 0001 === tool locator === 0101 TLBootInit 0201 TLStartUp 0301 TLShutDown 0401 TLVersion 0501 TLReset 0601 TLStatus 0901 GetTSPtr 0A01 SetTSPtr 0B01 GetFuncPtr 0C01 GetWAP 0D01 SetWAP 0E01 LoadTools 0F01 LoadOneTool 1001 UnloadOneTool 1101 TLMountVolume 1201 TLTextMountVolume 1301 SaveTextState 1401 RestoreTextState 1501 MessageCenter 0002 === memory manager === 0102 MMBootInit 0202 MMStartUp 0302 MMShutDown 0402 MMVersion 0502 MMReset 0602 MMStatus 0902 NewHandle 0A02 ReAllocHandle 0B02 RestoreHandle 1002 DisposeHandle 1102 DisposeAll 1202 PurgeHandle 1302 PurgeAll 1802 GetHandleSize 1902 SetHandleSize 1A02 FindHandle 1B02 FreeMem 1C02 MaxBlock 1D02 TotalMem 1E02 CheckHandle 1F02 CompactMem 2002 HLock 2102 HLockAll 2202 HUnlock 2302 HUnlockAll 2402 SetPurge 2502 SetPurgeAll 2802 PtrToHand 2902 HandToPtr 2A02 HandToHand 2B02 BlockMove 0003 === misc tools === 0103 MTBootInit 0203 MTStartUp 0303 MTShutDown 0403 MTVersion 0503 MTReset 0603 MTStatus 0903 WriteBRam 0A03 ReadBRam 0B03 WriteBParam 0C03 ReadBParam 0D03 ReadTimeHex 0E03 WriteTimeHex 0F03 ReadAsciiTime 1003 SetVector 1103 GetVector 1203 SetHeartBeat 1303 DelHeartBeat 1403 ClrHeartBeat 1503 SysFailMgr 1603 GetAddr 1703 ReadMouse 1803 InitMouse 1903 SetMouse 1A03 HomeMouse 1B03 ClearMouse 1C03 ClampMouse 1D03 GetMouseClamp 1E03 PosMouse 1F03 ServeMouse 2003 GetNewID 2103 DeleteID 2203 StatusID 2303 IntSource 2403 FWEntry 2503 GetTick 2603 PackBytes 2703 UnPackBytes 2803 Munger 2903 GetIRQEnable 2A03 SetAbsClamp 2B03 GetAbsClamp 2C03 SysBeep 0004 === QuickDraw II === 0104 QDBootInit 0204 QDStartUp 0304 QDShutDown 0404 QDVersion 0504 QDReset 0604 QDStatus 0904 GetAddress 0A04 GrafOn 0B04 GrafOff 0C04 GetStandardSCB 0D04 InitColorTable 0E04 SetColorTable 0F04 GetColorTable 1004 SetColorEntry 1104 GetColorEntry 1204 SetSCB 1304 GetSCB 1404 SetAllSCBs 1504 ClearScreen 1604 SetMasterSCB 1704 GetMasterSCB 1804 OpenPort 1904 InitPort 1A04 ClosePort 1B04 SetPort 1C04 GetPort 1D04 SetPortLoc 1E04 GetPortLoc 1F04 SetPortRect 2004 GetPortRect 2104 SetPortSize 2204 MovePortTo 2304 SetOrigin 2404 SetClip 2504 GetClip 2604 ClipRect 2704 HidePen 2804 ShowPen 2904 GetPen 2A04 SetPenState 2B04 GetPenState 2C04 SetPenSize 2D04 GetPenSize 2E04 SetPenMode 2F04 GetPenMode 3004 SetPenPat 3104 GetPenPat 3204 SetPenMask 3304 GetPenMask 3404 SetBackPat 3504 GetBackPat 3604 PenNormal 3704 SetSolidPenPat 3804 SetSolidBackPat 3904 SoildPattern 3A04 MoveTo 3B04 Move 3C04 LineTo 3D04 Line 3E04 SetPicSave 3F04 GetPicSave 4004 SetRgnSave 4104 GetRgnSave 4204 SetPolySave 4304 GetPolySave 4404 SetGrafProcs 4504 GetGrafProcs 4604 SetUserField 4704 GetUserField 4804 SetSysField 4904 GetSysField 4A04 SetRect 4B04 OffsetRect 4C04 InsetRect 4D04 SectRect 4E04 UnionRect 4F04 PtInRect 5004 Pt2Rect 5104 EqualRect 5204 EmptyRect 5304 FrameRect 5404 PaintRect 5504 EraseRect 5604 InvertRect 5704 FillRect 5804 FrameOval 5904 PaintOval 5A04 EraseOval 5B04 InvertOval 5C04 FillOval 5D04 FrameRRect 5E04 PaintRRect 5F04 EraseRRect 6004 InvertRRect 6104 FillRRect 6204 FrameArc 6304 PaintArc 6404 EraseArc 6504 InvertArc 6604 FillArc 6704 NewRgn 6804 DisposeRgn 6904 CopyRgn 6A04 SetEmptyRgn 6B04 SetRectRgn 6C04 RectRgn 6D04 OpenRgn 6E04 CloseRgn 6F04 OffsetRgn 7004 InsetRgn 7104 SectRgn 7204 UnionRgn 7304 DiffRgn 7404 XorRgn 7504 PtInRgn 7604 RectInRgn 7704 EqualRgn 7804 EmptyRgn 7904 FrameRgn 7A04 PaintRgn 7B04 EraseRgn 7C04 InvertRgn 7D04 FillRgn 7E04 ScrollRect 7F04 PaintPixels 8004 AddPt 8104 SubPt 8204 SetPt 8304 EqualPt 8404 LocalToGlobal 8504 GlobalToLocal 8604 Random 8704 SetRandSeed 8804 GetPixel 8904 ScalePt 8A04 MapPt 8B04 MapRect 8C04 MapRgn 8D04 SetStdProcs 8E04 SetCursor 8F04 GetCursorAdr 9004 HideCursor 9104 ShowCursor 9204 ObscureCursor 9304 SetMouseLoc 9404 SetFont 9504 GetFont 9604 GetFontInfo 9704 GetFontGlobals 9804 SetFontFlags 9904 GetFontFlags 9A04 SetTextFace 9B04 GetTextFace 9C04 SetTextMode 9D04 GetTextMode 9E04 SetSpaceExtra 9F04 GetSpaceExtra A004 SetForeColor A104 GetForeColor A204 SetBackColor A304 GetBackColor A404 DrawChar A504 DrawString A604 DrawCString A704 DrawText A804 CharWidth A904 StringWidth AA04 CStringWidth AB04 TextWidth AC04 CharBounds AD04 StringBounds AE04 CStringBounds AF04 TextBounds B004 SetArcRot B104 GetArcRot B204 SetSysFont B304 GetSysFont B404 SetVisRgn B504 GetVisRgn B604 SetIntUse B704 OpenPicture B804 PicComment B904 ClosePicture BA04 DrawPicture BB04 KillPicture BC04 FramePoly BD04 PaintPoly BE04 ErasePoly BF04 InvertPoly C004 FillPoly C104 OpenPoly C204 ClosePoly C304 KillPoly C404 OffsetPoly C504 MapPoly C604 SetClipHandle C704 GetClipHandle C804 SetVisHandle C904 GetVisHandle CA04 InitCursor CB04 SetBufDims CC04 ForceBufDims CD04 SaveBufDims CE04 RestoreBufDims CF04 GetFGSize D004 SetFontID D104 GetFontID D204 SetTextSize D304 GetTextSize D404 SetCharExtra D504 GetCharExtra D604 PPToPort D704 InflateTextBuffer D804 GetRomFont D904 GetFontLore 0005 === desk manager === 0105 DeskBootInit 0205 DeskStartUp 0305 DeskShutDown 0405 DeskVersion 0505 DeskReset 0605 DeskStatus 0905 SaveScrn 0A05 RestScrn 0B05 SaveAll 0C05 RestAll 0E05 InstallNDA 0F05 InstallCDA 1105 ChooseCDA 1305 SetDAStrPtr 1405 GetDAStrPtr 1505 OpenNDA 1605 CloseNDA 1705 SystemClick 1805 SystemEdit 1905 SystemTask 1A05 SystemEvent 1B05 GetNumNDAs 1C05 CloseNDAByWinPtr 1D05 CloseAllNDAs 1E05 FixAppleMenu 0006 === event manager === 0106 EMBootInit 0206 EMStartUp 0306 EMShutDown 0406 EMVerson 0506 EMReset 0606 EMStatus 0906 DoWindows 0A06 GetNextEvent 0B06 EventAvail 0C06 GetMouse 0D06 Button 0E06 StillDown 0F06 WaitMouseUp 1006 TickCount 1106 GetDblTime 1206 GetCaretTime 1306 SetSwitch 1406 PostEvent 1506 FlushEvents 1606 GetOSEvent 1706 OSEventAvail 1806 SetEventMask 1906 FakeMouse 0007 === scheduler === 0107 SchBootInit 0207 SchStartUp 0307 SchShutDown 0407 SchVersion 0507 SchReset 0607 SchStatus 0907 SchAddTask 0A07 SchFlush 0008 === sound manager === 0108 SoundBootInit 0208 SoundStartUp 0308 SoundShutdown 0408 SoundVersion 0508 SoundReset 0608 SoundStatus 0908 WriteRamBlock 0A08 ReadRamBlock 0B08 GetTableAddress 0C08 GetSoundVolume 0D08 SetSoundVolume 0E08 FFStartSound 0F08 FFStopSound 1008 FFSoundStatus 1108 FFGeneratorStatus 1208 SetSoundMIRQV 1308 SetUserSoundIRQV 1408 FFSoundDoneStatus 0009 === desktop bus === 0109 ADBBootInit 0209 ADBStartUp 0309 ADBShutdown 0409 ADBVersion 0509 ADBReset 0609 ADBStatus 0909 Send (ABD) 0A09 Rcv (ADB) 0B09 RDmem (ADB) 0D09 ADBpoll 0E09 ADBrcv 0F09 ABSOn (ADB) 1009 ABSOff (ADB) 1109 RdAbs (ADB) 1209 Scale (ADB) 1309 RDScale (ADB) 1409 SRQpl (ADB) 1509 SRQmv (ADB) 1609 ClrSRQTbl 000A === SANE === 010A SANEBootInit 020A SANEStartUp 030A SANEShutdown 040A SANEVersion 050A SANEReset 060A SANEStatus 090A FPNum 0A0A DecStrNum 0B0A ElemNum 000B === integer math === 010B IMBootInit 020B IMStartUp 030B IMShutdown 040B IMVersion 050B IMReset 060B IMStatus 090B Multiply 0A0B SDivide 0B0B UDivide 0C0B LongMul 0D0B LongDivide 0E0B FixRatio 0F0B FixMul 100B FracMul 110B FixDiv 120B FracDiv 130B FixRound 140B FracSqrt 150B FracCos 160B FracSin 170B FixATan2 180B HiWord 190B LoWord 1A0B Long2Fix 1B0B Fix2Long 1C0B Fix2Frac 1D0B Frac2Fix 1E0B Fix2X 1F0B Frac2X 200B X2Fix 210B X2Frac 220B Int2Hex 230B Long2Hex 240B Hex2Int 250B Hex2Long 260B Int2Dec 270B Long2Dec 280B Dec2Int 290B Dec2Long 2A0B HexIt 000C === text tools === 010C TextBootInit 020C TextStartUp 030C TextShutdown 040C TextVersion 050C TextReset 060C TextStatus 090C SetInGlobals 0A0C SetOutGlobals 0B0C SetErrGlobals 0C0C GetInGlobals 0D0C GetOutGlobals 0E0C GetErrGlobals 0F0C SetInputDevice 100C SetOutputDevice 110C SetErrorDevice 120C GetInputDevice 130C GetOutputDevice 140C GetErrorDevice 150C InitTextDev 160C CtlTextDev 170C StatusTextDev 180C WriteChar 190C ErrWriteChar 1A0C WriteLine 1B0C ErrWriteLine 1C0C WriteString 1D0C ErrWriteString 1E0C TextWriteBlock 1F0C ErrWriteBlock 200C WriteCString 210C ErrWriteCString 220C ReadChar 230C TextReadBlock 240C ReadLine 000D === reserved === 000E === window manager === 010E WindBootInit 020E WindStartUp 030E WindShutdown 040E WindVersion 050E WindReset 060E WindStatus 090E NewWindow 0A0E CheckUpdate 0B0E CloseWindow 0C0E Desktop 0D0E SetWTitle 0E0E GetWTitle 0F0E SetFrameColor 100E GetFrameColor 110E SelectWindow 120E HideWindow 130E ShowWindow 140E SendBehind 150E FrontWindow 160E SetInfoDraw 170E FindWindow 180E TrackGoAway 190E MoveWindow 1A0E DragWindow 1B0E GrowWindow 1C0E SizeWindow 1D0E TaskMaster 1E0E BeginUpdate 1F0E EndUpdate 200E GetWMgrPort 210E PinRect 220E HiliteWindow 230E ShowHide 240E BringToFront 250E WindNewRes 260E TrackZoom 270E ZoomWindow 280E SetWRefCon 290E GetWRefCon 2A0E GetNextWindow 2B0E GetWKind 2C0E GetWFrame 2D0E SetWFrame 2E0E GetScructRgn 2F0E GetContentRgn 300E GetUpdateRgn 310E GetDefProc 320E SetDefProc 330E GetWControls 340E SetOrgnMask 350E GetInfoRefCon 360E SetInfoRefCon 370E GetZoomRect 380E SetZoomRect 390E RefreshDesktop 3A0E InvalRect 3B0E InvalRgn 3C0E ValidRect 3D0E ValidRgn 3E0E GetContentOrigin 3F0E SetContentOrigin 400E GetDataSize 410E SetDataSize 420E GetMaxGrow 430E SetMaxGrow 440E GetScroll 450E SetScroll 460E GetPage 470E SetPage 480E GetContentDraw 490E SetContentDraw 4A0E GetInfoDraw 4B0E SetSysWindow 4C0E GetSysWFlag 4D0E StartDrawing 4E0E SetWindowIcons 4F0E GetRectInfo 500E StartInfoDrawing 510E EndInfoDrawing 520E GetFirstWindow 530E WindDragRect 560E WindowGlobal 570E SetCOrigin2 000F === menu manager === 010F MenuBootInit 020F MenuStartUp 030F MenuShutdown 040F MenuVersion 050F MenuReset 060F MenuStatus 090F MenuKey 0A0F GetMenuBar 0B0F MenuRefresh 0C0F FlashMenuBar 0D0F InsertMenu 0E0F DeleteMenu 0F0F InsertMItem 100F DeleteMItem 110F GetSysBar 120F SetSysBar 130F FixMenuBar 140F CountMItems 150F NewMenuBar 160F GetMHandle 170F SetBarColors 180F GetBarColors 190F SetMTitleStart 1A0F GetMTitleStart 1B0F GetMenuMgrPort 1C0F CalcMenuSize 1D0F SetMTitleWidth 1E0F GetTitleWidth 1F0F SetMenuFlag 200F GetMenuFlag 210F SetMenuTitle 220F GetMenuTitle 230F MenuGlobal 240F SetMItem 250F GetMItem 260F SetMItemFlag 270F GetMItemFlag 280F SetMItemBlink 290F MenuNewRes 2A0F DrawMenuBar 2B0F MenuSelect 2C0F HiliteMenu 2D0F NewMenu 2E0F DisposeMenu 2F0F InitPalette 300F EnableMItem 310F DisableMItem 320F CheckMItem 330F SetMItemMark 340F GetMItemMark 350F SetMItemStyle 360F GetMItemStyle 370F SetMenuID 380F SetMItemID 390F SetMenuBar 3A0F SetMItemName 0010 === control manager === 0110 CtlBootInit 0210 CtlStartUp 0310 CtlShutdown 0410 CtlVersion 0510 CtlReset 0610 CtlStatus 0910 NewControl 0A10 DisposeControl 0B10 KillControls 0C10 SetCtlTitle 0D10 GetCtlTitle 0E10 HideControl 0F10 ShowControl 1010 DrawControls 1110 HiliteControl 1210 CtlNewRes 1310 FindControl 1410 TestControl 1510 TrackControl 1610 MoveControl 1710 DragControl 1810 SelCtlIcons 1910 SetCtlValue 1A10 GetCtlValue 1B10 SetCtlParams 1C10 GetCtlParams 1D10 DragRect 1E10 GrowSize 1F10 GetCtlDpage 2010 SetCtlAction 2110 GetCtlAction 2210 SetCtlRefCon 2310 GetCtlRefCon 2410 EraseControl 2510 DrawOneCtl 0011 === loader === 0111 LoaderBootInit 0211 LoaderStartUp 0311 LoaderShutdown 0411 LoaderVersion 0511 LoaderReset 0611 LoaderStatus 0911 InitialLoad 0A11 Restart 0B11 LoadSegNum 0C11 UnloadSegNum 0D11 LoadSegName 0E11 UnloadSeg 0F11 GetLoadSegInfo 1011 GetUserID 1111 LGetPathname 1211 UserShutDown 0012 === QuickDraw Aux === 0112 QDAuxBootInit 0212 QDAuxStartUp 0312 QDAuxShutDown 0412 QDAuxVersion 0512 QDAuxReset 0612 QDAuxStatus 0912 CopyPixels 0A12 WaitCursor 0013 === print manager === 0113 PMBootInit 0213 PMStartUp 0313 PMShutDown 0413 PMVersion 0513 PMReset 0613 PMActive 0913 PrDefault 0A13 PrValidate 0B13 PrStlDialog 0C13 PrJobDialog 0D13 PrOpenDoc 0F13 PrCloseDoc 1013 PrOpenPage 1113 PrClosePage 1213 PrPicFile 1313 PrControl 1413 PrError 1513 PrSetError 1613 PrChooser 0014 === line edit === 0114 LEBootInit 0214 LEStartUp 0314 LEShutdown 0414 LEVersion 0514 LEReset 0614 LEStatus 0914 LENew 0A14 LEDispose 0B14 LESetText 0C14 LEIdle 0D14 LEClick 0E14 LESetSelect 0F14 LEActivate 1014 LEDeactivate 1114 LEKey 1214 LECut 1314 LECopy 1414 LEPaste 1514 LEDelete 1614 LEInsert 1714 LEUpdate 1814 LETextBox 1914 LEFromScrap 1A14 LEToScrap 1B14 LEScrapHandle 1C14 LEGetScrapLen 1D14 LESetScrapLen 1E14 LESetHilite 1F14 LESetCaret 2014 LETextBox2 2114 LESetJust 2214 LEGetTextHand 2314 LEGetTextLen 0015 === dialog manager === 0115 DialogBootInit 0215 DialogStartUp 0315 DialogShutdown 0415 DialogVersion 0515 DialogReset 0615 DialogStatus 0915 ErrorSound 0A15 NewModalDialog 0B15 NewModelessDialog 0C15 CloseDialog 0D15 NewDItem 0E15 RemoveDItem 0F15 ModalDialog 1015 IsDialogEvent 1115 DialogSelect 1215 DlgCut 1315 DlgCopy 1415 DlgPaste 1515 DlgDelete 1615 DrawDialog 1715 Alert 1815 StopAlert 1915 NoteAlert 1A15 CautionAlert 1B15 ParamText 1C15 SetDAFont 1E15 GetControlDItem 1F15 GetIText 2015 SetIText 2115 SelIText 2215 HideDItem 2315 ShowDItem 2415 FindDItem 2515 UpdateDialog 2615 GetDItemType 2715 SetDItemType 2815 GetDItemBox 2915 SetDItemBox 2A15 GetFirstDItem 2B15 GetNextDItem 2C15 ModalDialog2 2E15 GetDItemValue 2F15 SetDItemValue 3215 GetNewModalDialog 3315 GetNewDItem 3415 GetAlertStage 3515 ResetAlertStage 3615 DefaultFilter 3715 GetDefButton 3815 SetDefButton 3915 DisableDItem 3A15 EnableDItem 0016 === scrap manager === 0116 ScrapBootInit 0216 ScrapStartUp 0316 ScrapShutDown 0416 ScrapVersion 0516 ScrapReset 0616 ScrapStatus 0916 UnloadScrap 0A16 LoadScrap 0B16 ZeroScrap 0C16 PutScrap 0D16 GetScrap 0E16 GetScrapHandle 0F16 GetScrapSize 1016 GetScrapPath 1116 SetScrapPath 1216 GetScrapCount 1316 GetScrapState 0017 === standard file === 0117 SFBootInit 0217 SFStartup 0317 SFShutdown 0417 SFVersion 0517 SFReset 0617 SFStatus 0917 SFGetFile 0A17 SFPutFile 0B17 SFPGetFile 0C17 SFPPutFile 0D17 SFAllCaps 0018 === disk utilities === 0118 DUBootInit 0218 DUStartUp 0318 DUShutdown 0418 DUVersion 0518 DUReset 0618 DUStatus 0019 === note synthesizer === 0119 NSBootInit 0219 NSStartUp 0319 NSShutDown 0419 NSVersion 0519 NSReset 0619 NSStatus 0919 AllocGen 0A19 DeallocGen 0B19 NoteOn 0C19 NoteOff 0D19 AllNotesOff 001A === note sequencer === 011A NSeqBootInit 021A NSeqStartUp 031A NSeqShutdown 041A NSeqVersion 051A NSeqReset 061A NSeqStatus 001B === font manager === 011B FMBootInit 021B FMStartUp 031B FMShutdown 041B FMVersion 051B FMReset 061B FMStatus 091B CountFamilies 0A1B FindFamily 0B1B GetFamInfo 0C1B GetFamNum 0D1B AddFamily 0E1B InstallFont 0F1B SetPurgeStat 101B CountFonts 111B FindFontStats 121B LoadFont 131B LoadSysFont 141B AddFontVar 151B FixFontMenu 161B ChooseFont 171B ItemID2FamNum 181B FMSetSysFont 191B FMGetSysFID 1A1B FMGetCurFID 1B1B FamNum2ItemID 001C === List Manager === 011C ListBootInit 021C ListStartup 031C ListShutDown 041C ListVersion 051C ListReset 061C ListStatus 091C ListCtlRecHndl 0A1C SortList 0B1C NextMember 0C1C DrawMember 0D1C SelectMember 0E1C GetListDefProc 0F1C ResetMember 101C NewList 0032 === Male Voice === 0132 MaleBootInit 0232 MaleStartUp 0332 MaleShutDown 0432 MaleVersion 0532 MaleReset 0632 MaleStatus 0932 MaleSpeak 0033 === Female Voice === 0133 FemaleBootInit 0233 FemaleStartUp 0333 FemaleShutDown 0433 FemaleVersion 0533 FemaleReset 0633 FemaleStatus 0933 FemaleSpeak 0034 === TML Speech Toolkit parser === 0134 SpeechBootInit 0234 SpeechStartUp 0334 SpeechShutDown 0434 SpeechVersion 0534 SpeechReset 0634 SpeechStatus 0934 Parse 0A34 DictInsert 0B34 DictDelete 0C34 DictDump 0D34 SetSayGlobals 0E34 DictInit 0F34 Say 1034 Activate * User tools 0000 === user tool loc === 0005 === BOX Edit (CONDUIT) === 0105 BOXBootInit 0205 BOXStartUp 0305 BOXShutDown 0405 BOXVersion 0505 BOXReset 0605 BOXStatus 0905 BOXNew 0A05 BOXActivate 0B05 BOXDeactivate 0C05 BOXUpdate 0D05 BOXIdle 0E05 BOXClick 0F05 BOXKey 1005 BOXPutText 1105 BOXGetText 1205 BOXCalText 1305 BOXLenText 1405 BOXDelText 1505 BOXDispose 1605 BOXSetSelect 1705 BOXText 1805 BOXFixMenu 1905 BOXDelete 1A05 BOXCopy 1B05 BOXCut 1C05 BOXInsert 1D05 BOXPaste 1E05 BOXClone 1F05 BOXInject 2005 BOXFromScrap 2105 BOXToScrap 2205 BOXGetScHand 2305 BOXIBeam 2405 BOXCaret 2505 BOXUndo * E1xxxx vectors 0010 Interrupt mgr 0014 COP mgr 0018 Abort mgr 001C System Death mgr 0020 AppleTalk interrupt 0024 Serial interrupt 0028 Scanline interrupt 002C Sound interrupt 0030 VertBlank interrupt 0034 Mouse interrupt 0038 1/4 sec interrupt 003C Keyboard interrupt 0040 ADB Response byte int 0044 ADB SRQ int 0048 Desk Acc mgr 004C FlushBuffer handler 0050 KbdMicro interrupt 0054 1/4 sec interrupt (II) 0058 External VGC int 005C other interrupt 0060 Cursor update 0064 IncBusy 0068 DecBusy 006C Bell vector 0070 Break vector 0074 Trace vector 0078 Step vector 007C reserved 0080 ToWriteBram 0084 ToReadBram 0088 ToWriteTime 008C ToReadTime 0090 ToCtrlPanel 0094 ToBramSetup 0098 ToPrintMsg8 009C ToPrintMsg16 00A0 Native Ctrl-Y 00A4 ToAltDispCDA 00AC OS vector 00C0 MsgPtr vector * [This file is based on System Disk 2.1]  ============== DAL Systems Nifty List 2.0 P.O. Box 287 ============== North Liberty, IA 52317 [CompuServe 72177,3233] Nifty List is a ShareWare Classic Desk Accessory. It disassembles machine code very much like the monitor's "L" command, except that NAMES are displayed for tool calls, ProDOS 8 calls, and ProDOS 16 calls. There are also commands for entering the monitor, displaying toolset version numbers (and other toolset information), and displaying memory manager information. Copy both files (NIFTYLIST.CDA and NLIST.DATA) into the SYSTEM/DESK.ACCS directory of a ProDOS 16 boot disk. The NLIST.DATA file supplied with version 2.0 contains information based on System Disk 2.1. If you have names for any tool calls that are not in the new file, please report them for inclusion in a future version. ---------------------------------------------------------------------- New features in v2.0: o Nifty List now runs from the DESK.ACCS directory rather than the SYSTEM.SETUP directory. This requires System Disk 2.0 or higher to work nicely. (Under previous system disks, NLIST.DATA will be loaded the first time you enter Nifty List, rather than at boot time.) o P displays current parameter settings. o New parameter: a)utoTrack forces disassembly to follow the states of the x and m flags as altered by REP and SEP instructions. This is useful in most, but not all, cases. Sequences such as PHP, REP #$20, ... , PLP, ... will confuse AutoTrack, because the PLP may affect the m and x flags. 1>a is the default; use 0>a to disable. o New parameters: m and x. 0>m sets 16-bit A, 1>x sets 8-bit index registers, etc. These are in addition to the m and x commands, which still toggle m and x on and off. o New parameter: which h)andle list. Determines whether H and I commands display the free list (0>h), used list (1>h), or purged list (2>h). o New parameter: u)ser tools. [Replaces the "u" command.] Use 1>u to make V and T display information about user toolsets, or 0>u for system toolsets. 0>u is the default. ---------------------------------------------------------------------- New features in v1.2: o The language card areas can be disassembled. Choose which bank to see with 0>L or 1>L. o Output can be sent to a printer in slot n with n>S o There is a (") command which displays all known tools whose names contain a given string. For example, "Tool displays the names, function numbers, and entry points for LoadTools, LoadOneTool, and UnloadOneTool. o Q and 3D0G work in addition to Ctrl-Y for returning from the monitor. Bug fixes in v1.2: o Version 1.0 did not restore the Ctrl-Y vector properly. [It "restored" the vector to the value previously found at $3F8..$3FA in the bank NiftyList itself was running in, rather than bank 0.] o The operands disassembled for PER and BRL were off by one (too high) in version 1.0. o Opcodes $01 and $37 were disassembled with the wrong addressing modes. The corrected disassemblies are ORA (nn,X) [not ORA nn,X] and AND [nn],Y [not AND (nn,S),Y]. All opcodes now disassemble correctly. ---------- end of NiftyList 2.0 description ---------- }O=====|====|====|====|====|====|====|====|====|====|====|====|====|====|====|===<}%============== DAL Systems&Nifty List 2.0 P.O. Box 2871============== North Liberty, IA 523171 [CompuServe 72177,3233]DNifty List is a ShareWare Classic Desk Accessory. It disassemblesDmachine code very much like the monitor's "L" command, except thatCNAMES are displayed for tool calls, ProDOS 8 calls, and ProDOS 16Fcalls. There are also commands for entering the monitor, displaying>toolset version numbers (and other toolset information), and(displaying memory manager information.JCopy both files (NIFTYLIST.CDA and NLIST.DATA) into the SYSTEM/DESK.ACCS%directory of a ProDOS 16 boot disk.JThe NLIST.DATA file supplied with version 2.0 contains information basedKon System Disk 2.1. If you have names for any tool calls that are not inEthe new file, please report them for inclusion in a future version.I------------------------------------------------------------ ----------New features in v2.0:G o Nifty List now runs from the DESK.ACCS directory rather than theG SYSTEM.SETUP directory. This requires System Disk 2.0 or higherH to work nicely. (Under previous system disks, NLIST.DATA will beF loaded the first time you enter Nifty List, rather than at boot time.)- o P displays current parameter settings.I o New parameter: a)utoTrack forces disassembly to follow the statesI of the x and m flags as altered by REP and SEP instructions. ThisE is useful in most, but not all, cases. Sequences such as PHP,G REP #$20, ... , PLP, ... will confuse AutoTrack, because the PLPD may affect the m and x flags. 1>a is the default; use 0>a to disable.I o New parameters: m and x. 0>m sets 16-bit A, 1>x sets 8-bit indexL registers, etc. These are in addition to the m and x commands, which' still toggle m and x on and off.F o New parameter: which h)andle list. Determines whether H and IG commands display the free list (0>h), used list (1>h), or purged list (2>h).E o New parameter: u)ser tools. [Replaces the "u" command.] UseF 1>u to make V and T display information about user toolsets, or4 0>u for system toolsets. 0>u is the default.I------------------------------------------------------------ ----------New features in v1.2:A o The language card areas can be disassembled. Choose which# bank to see with 0>L or 1>L.9 o Output can be sent to a printer in slot n with n>SB o There is a (") command which displays all known tools whose2 names contain a given string. For example, "ToolA displays the names, function numbers, and entry points for1 LoadTools, LoadOneTool, and UnloadOneTool.C o Q and 3D0G work in addition to Ctrl-Y for returning from the monitor.Bug fixes in v1.2:C o Version 1.0 did not restore the Ctrl-Y vector properly. [It= "restored" the vector to the value previously found atE $3F8..$3FA in the bank NiftyList itself was running in, rather than bank 0.]E o The operands disassembled for PER and BRL were off by one (too high) in version 1.0.F o Opcodes $01 and $37 were disassembled with the wrong addressingH modes. The corrected disassemblies are ORA (nn,X) [not ORA nn,X]F and AND [nn],Y [not AND (nn,S),Y]. All opcodes now disassemble correctly. ----------"end of NiftyList 2.0 description ----------NOTEPADvx0' @''NOTEPAD <5/NOTEPAD.PATCHER''!  ,@ Notepad\ K6H8H " " " " " "᭝ ! # O 8P " Z5 ZH "zȹ 3 눩 ""`7 h)ɛɿ,7  #ɠDɄɍ?ɉ,7 ɓɌ")ɕ3Ɉ@ɊɋAɐ 3 5 5 5 5 ;3 N3 3 3 N3 5 ۩5 3 ,7 0Q3 3   ,7 0,3 3 3 i ȩN83 :D ̀03 85  m :D  O ,3 5 5  5 i 8P8lITJTɕ2Ɉ=Ɋɋ=5 5 .5 i3 iON 3 3 "5  "5 ڼ= m i UȹTʟ ` " " "m i H " "0ۢ " " Z5 0` " " "h8h6k  3 3 Op5 W3 H ɠ ʽ ɠ ʈ h60 hȜ3 轝  3 05 5 3 5 5 5 H "`5 H m m3 h`K " ""h`n9  ",9  " "l "l )? " ""h ɍ?ɕɛiɈʩ H "Ƚm ɮɺ )۰/m ӊl 2l ) " : I (0K; x ("K; n<  < (0 " " ; u0 " " ""hxi"/FJF"ID 5J86"[*0[es "eH"s(h ; 4l l l  HJJJJ h) ɺi0H " `0  `ɠ򠣤 ߍژߍژߍژߍژߍژߘ̘ژ-庠Πàژ䠭󺍍à̠Ġ 宍򮍍̠宍Ġ宍 宍򠸠󮍠Ӡ뮍̠뮍Р򮍍((((PPPPP@0 p`P@0HiʍI8 \FIJF n2 `J8$ z ʀH ̈(hkk ͮ˯ïO  {g a]l Il /l *; sese[[5I/u; |yif^< YV< S; IA; #:  l l m m l l l yvlida\9 LIF9 '$3 m 5 5 5 5 3 5 5 3    3  3 5 3 3  ^UZ' #m    m = 5 5 3 3 s3 c5 ^5 S5 4 3 -l" 5 5 5  3  |m 5 3   3  3 3 3 7    3 3 7 3 z5 r5 o3 g3 b3 ]3 U3 O5 L5 I5 A5 >3 97 #7 7 3  5 Zx k b#]  ) Program to change default pathnameOfor saving/loading screen in theaNotepad CDA.g(mdyn44096xADR24096(4)"PREFIX/"(4)"PREFIX SYSTEM/DESK.ACCS"(4)"BLOAD NOTEPAD.DA,T$B9,A";ADRPNTADR85 (PNT)75(PNT1)1711000= "Please give FULL pathname of the"d "default filename to use for the" "notepad. The present one is:" PNTPNT(PNT)256(PNT1) LE(PNT):LE472000 I1LE ((PNTI)); :: "New pathname: ";N$ LE(N$):LE0260K (N$,1)"/"ĺ"Full pathname please.":260~ "LE47ĺ"Too long, 47 character maximum.":260 ,PNT,LE 6I1LE @PNTI,((N$,I,1))128 JI T ^"Done. Ok to save the patched file? "; hA$:A$"N"A$"n"ĺ"No":$ rA$"Y"A$"y"360/ |"Yes"X (4)"BSAVE NOTEPAD.DA,T$B9,A";ADR;"i :"Done.": :"This is an incompatible version of" "the notepad CDA. Please download the" "current one."  "Program error or damaged notepad.da,"% "this program aborted." PASSWORDvx0' @ 'PASSWORD"!PASSWORD.DOCb b T ,@ TPasswordΠK0 '((((PPPP'PZ' z0 `Hhɍɛ0])_`hhh0k[[[[[䮮[[[[[䮮   Password will allow you to leave your computer without anyone being able to change what your working on, short of turning off the machine. To activate it, go into the Desk Accessories (CDA) and highlight Password. Press return and you can't get back out of the GS Desk Accessory screen. To go back to your program you simply need to type in the following password EINSTEIN Joseph d. Pate Mar 2, 1987 12:09 P.M. Password was downloaded from CompuServe by Dave Zuk PWFIXvx0' @ 'PWFIX[1'PWFIX.S[1 PWFIX.M[1 .PWFIX.INSTRUCT[1 ,@ Color Map FixerkK0) ))Ȑ_ )))0kwA,p   <_ keep PWFIXCDA mcopy PWFIXCDA.M ****************************************************************************** * * * Color Map Fixer classic desk accessory by Jason Harper * * * * This CDA will set the Super HiRes screen colors to the default standard * * color set for 320X200 mode. It is intended for use with Paintworks Plus * * or other IIgs graphic programs that can occassionally be messed up by * * loading a non-standard graphic screen. This can result in a solid black * * or other color screen, if the file being loaded doesn't have a normal * * color map. * * * * How to Use * * * * Copy the file PWFIXCDA to the SYSTEM/DESK.ACCS/ subdirectory on the * * desired boot disk. This is safe to do on your Paintworks original disk, * * but I would suggest trying it on another disk first. The desk accessory * * will be installed whenever you boot that disk. Use the graphics program. * * If the screen ever gets wiped out, hit OpenApple-Control-Escape and * * select Color Map Fixer from the Desk Accesories Menu. You will see the * * current Super HiRes screen with the new color map. Press any key to * * return to the menu. * * * * Side Effects * * * * When you return to the application, the Apple symbol at the left of the * * menu bar (if there is one) will lose its color stripes and become grey. * * This is harmless, and in Paintworks can be fixed by hitting the space bar * * twice. * * * * Limitations * * * * As written, the Color Map Fixer will only work correctly with applications * * that use the 320 pixel wide grapics mode. Use with a 640 mode program * * will result in an inappropriate color map and virtually unreadable text. * * Since there aren't (to my knowledge) any 640 mode graphics programs out * * yet, this shouldn't be too much of a problem. * * * * How It Works * * * * 1. Enables Super HiRes mode so you can see what's happening * * 2. Changes the Screen Control Byte for each scan line to use color map 0. * * The resolution, interrupt, and fill mode bits are not changed. * * 3. Color map 0 is replaced with the standard colors for 320 mode. * * 4. The program waits for a keypress to continue. * * 5. Super HiRes is turned off and control returns to the DA menu. * * * * Notice * * * * Permission is hereby granted for you to use this source code as a * * skeleton for writing your own CDAs. Have fun! * * * * Jason Harper * * CompuServe 71450,516 * * * ****************************************************************************** CDAbegin start ;this table defines the name and... str 'Color Map Fixer' ;entry & exit points of the CDA dc i4'CDAentry' ;this program MUST be in a type $B9... dc i4'CDAexit' ;file for it to be recognized as a... end ;classic desk accessory CDAexit start ;this CDA has no shutdown routine rtl ;notice long return end CDAentry start ;CDA entry point using globals phb ;save current data bank phk ;make data bank=program bank plb SetMode8 ;this will be easier in 8 bit mode lda $E0C029 ;New Video register ora #$C0 ;set SuperHiRes & linearization bits sta $E0C029 ldx #0 ;set all SCB's to color map 0 setscbs anop lda $E19D00,x ;get current SCB and #$F0 ;leave mode bits alone sta $E19D00,x ;set to new value inx cpx #200 ;there's 200 of 'em. do them all. blt setscbs ldx #0 ;now set colomap 0 to standard values setmap anop lda stdcolor,x ;get value from my table sta $E19E00,x ;put it in color map 0 inx cpx #32 ;32 bytes per color map blt setmap keywait anop ;wait for a keypress to continue lda $E0C000 bpl keywait sta $E0C010 lda $E0C029 ;New Video register and #$7F ;turn off SuperHiRes sta $E0C029 SetMode16 ;put things back the way they were plb ;restore data bank rtl ;no, an RTS wouldn't work here end globals data stdcolor dc i2'$0000,$0777,$0841,$072C' ;these are the standard color... dc i2'$000F,$0080,$0F70,$0D00' ;table entries for 320h mode dc i2'$0FA9,$0FF0,$00E0,$04DF' dc i2'$0DAF,$078F,$0CCC,$0FFF' end MACRO &LAB STR &STUFF &LAB DC I1'L:&stuff' DC C"&STUFF" MEND MACRO &lab setmode8 &lab sep #$30 longa off longi off MEND MACRO &lab setmode16 &lab rep #$30 longa on longi on mend Color Map Fixer classic desk accessory by Jason Harper This CDA will set the Super HiRes screen colors to the default standard color set for 320X200 mode. It is intended for use with Paintworks Plus or other IIgs graphic programs that can occassionally be messed up by loading a non-standard graphic screen. This can result in a solid black or other color screen, if the file being loaded doesn't have a normal color map. How to Use Copy the file PWFIXCDA to the SYSTEM/DESK.ACCS/ subdirectory on the desired boot disk. This is safe to do on your Paintworks original disk, but I would suggest trying it on another disk first. The desk accessory will be installed whenever you boot that disk. Use the graphics program. If the screen ever gets wiped out, hit OpenApple-Control-Escape and select Color Map Fixer from the Desk Accesories Menu. You will see the current Super HiRes screen with the new color map. Press any key to return to the menu. Side Effects When you return to the application, the Apple symbol at the left of the menu bar (if there is one) will lose its color stripes and become grey. This is harmless, and in Paintworks can be fixed by hitting the space bar twice. Limitations As written, the Color Map Fixer will only work correctly with applications that use the 320 pixel wide grapics mode. Use with a 640 mode program will result in an inappropriate color map and virtually unreadable text. Since there aren't (to my knowledge) any 640 mode graphics programs out yet, this shouldn't be too much of a problem. How It Works 1. Enables Super HiRes mode so you can see what's happening 2. Changes the Screen Control Byte for each scan line to use color map 0. The resolution, interrupt, and fill mode bits are not changed. 3. Color map 0 is replaced with the standard colors for 320 mode. 4. The program waits for a keypress to continue. 5. Super HiRes is turned off and control returns to the DA menu. Notice Permission is hereby granted for you to use this source code as a skeleton for writing your own CDAs. Have fun! Jason Harper CompuServe 71450,516 SHRTIMvx1' @ 'STS[(, 'STS.MAC[((4'STS.SRCo[(*STS.INSTALL/[((6  ,@ SHR 10-sec Timed SaveWK0X"X\A,"#"kXZK0,"Z"zGDZ<Z"z&Z"zZ"z,"kSCREEN.A W$X'X;\At MACRO &LAB PUSHLONG &WHATTOPUSH LCLC &CHAR &CHAR AMID &WHATTOPUSH,1,1 AIF "&CHAR"="#",.IMMEDIATE &LAB LDA &WHATTOPUSH+2 PHA LDA &WHATTOPUSH PHA MEXIT .IMMEDIATE &CHAR AMID &WHATTOPUSH,2,100 &LAB DC I1'$F4' DC I2'(&CHAR)|-16' DC I1'$F4' DC I2'&CHAR' MEND MACRO &LAB _SYSBEEP &LAB LDX #$2C03 JSL $E10000 MEND MACRO &LAB _SETHEARTBEAT &LAB LDX #$1203 JSL $E10000 MEND MACRO &LAB _DELHEARTBEAT &LAB LDX #$1303 JSL $E10000 MEND MACRO &LAB _INTSOURCE &LAB LDX #$2303 JSL $E10000 MEND MACRO &lab _CREATE ¶ms &lab phx phy jsl $E100A8 dc i2"1" dc i4"¶ms" ply plx MEND MACRO &lab _OPEN ¶ms &lab phx phy jsl $E100A8 dc i2"$10" dc i4"¶ms" ply plx MEND MACRO &lab _WRITE ¶ms &lab phx phy jsl $E100A8 dc i2"$13" dc i4"¶ms" ply plx MEND MACRO &lab _CLOSE ¶ms &lab phx phy jsl $E100A8 dc i2"$14" dc i4"¶ms" ply plx MEND  Title 'Super Hires Timed Delay Screen Saving CDA' Keep STS DataChk On CodeChk On mcopy STS.Mac ; ; Super Hires Timed Delay Screen Saving CDA Written by Dale T Taylor ; WordPerfect Corporation ; Placed in the public domain, Apple Development ; September 10th,1987 CIS: 72447,3427 ; ; This CDA was written to overcome some technical problems with the ; IIGS tools which prevent access to the desktop at certain times during ; the operation of a program. (Mainly when menus are active) This ; allows one to obtain copies of screens that would otherwise be very ; difficult to get. The screens are saved in $C1 format and can be ; loaded into painting programs that support the 640x200 mode. ; ; What this CDA does: It saves a copy of the super hires screen to disk ; 10 seconds after the CDA is selected. This gives the user of the CDA ; time to get to the desired screen, and set it up properly before the ; 'picture' is taken. ; ; How it works: There are two parts to accomplish this task. The CDA ; portion installs a Heart-Beat task and resets it when necessary. It is ; the Heart-Beat task which gets invoked in 10 seconds (600 ticks) which ; actually saves the screen to a file on the default prefix (0/). The ; filenames start with 'SCREEN.A' and work to 'SCREEN.Z'. ; ; Necessary files: The files after the BNY unpacking should be; STS.SRC, ; which is this file and the source to the desk accessory. STS.MAC, which ; contains the macros this program uses to assemble. STS which is the ; assembled CDA, and STS.INSTALL which will change the filetype of a new ; STS file to $B9 before copying it to your DESK.ACCS sub-directory. ; ; ; Header required of all CDA's ; CDAHeadr START USING CDAData DC I1'21',C'SHR 10-sec Timed Save' ;CDA name DC I4'CDAStart' ; CDA Start address DC I4'CDASDown' ; CDA shutdown address ; ; The actual CDA starts here. ; CDAStart PHB ; save the DBR as it is PHK ; get the PBR PLB ; now set the DBR to the PBR REP #$30 ; 16-bit accumulator and registers LONGA ON ; tell the assembler what we just did LONGI ON ; tell the assembler what we just did PushLong #HBHeadr ; push the address of the HB Header _SetHeartBeat ; add the HB to the queue BCC CDAStar2 ; -all went well, continue CMP #$0303 ; -error, is it a TaskInHBQueue? BNE CDAStar1 ; -no, beep then LDA #600 ; -yes, get 10 seconds worth of ticks STA HBCount ; reset the counter LDA #'A' ; get the letter 'A' STA FILNAM+8 ; reset the filename BRA CDAStar2 ; reset complete CDAStar1 _SysBeep ; -error, tell about it CDAStar2 PEA $0002 ; enable VBL interrupt mask _INTSource ; enable the VBL interrupt PLB ; restore the DBR CDASDown RTL ; shutdown and CDA return point END ; ; This is the header for the heart-beat handler. ; HBHeadr START USING CDAData DC I4'0' ; space for link to next queue item HBCount ENTRY DC I'600' ; number of 60ths to count down DC I'$A55A' ; HB signature as required ; ; This is the actual code for the heart-beat handler. When this ; routine gains control, we are in native mode with 8-bit accum ; and 8-bit registers. ; HBStart PHB ; save the DBR as it is PHK ; get the PBR PLB ; now set the DBR to the PBR REP #$30 ; 16-bit accum and registers LONGA ON ; tell the assembler what we just did LONGI ON ; tell the assembler what we just did _SysBeep ; beep to tell-em we've got it HBStar1 _Create CRBlk ; try to create the file BCC HBStar2 ; -all went well, continue CMP #$47 ; -error, is it a file already exists? BNE HBExit ; -no, quit then LDA FILNAM+8 ; -yes, get the counter CMP #'Z' ; are we out of names? BGE HBExit ; -yes, exit then INC A ; -no, adjust up the letter STA FILNAM+8 ; set the new filename BRA HBStar1 ; loop for another try HBStar2 _Open OPBlk ; open the file BCS HBExit ; -error, exit then LDA OPBlk ; -okay, get the ref num STA WRBlk ; set the write ref num _Write WRBlk ; write the data now BCS HBExit ; -error, exit then _Close OPBlk ; -okay, close the file BCC HBExit2 ; -okay, no beep then HBExit _SysBeep ; -error, give a second beep HBExit2 PLB ; restore the DBR RTL ; were done END ; ; This is the data necessary to this desk accessory and the ; heart-beat handler. ; CDAData DATA FILNAM DC I1'8',C'SCREEN.A',I1'0' ; filename CRBlk DC I4'FILNAM' ; address of filename DC I'$C3' ; access DC I'$C1' ; filetype DC I4'0' ; aux type DC I'$01' ; storage type ; when zero, prodos will set the date/time by the system clock DC I'0' ; create date DC I'0' ; create time OPBlk DC I'0' ; reference number DC I4'FILNAM' ; pathname DC I4'0' ; i/o buffer WRBlk DC I'0' ; reference number DC I4'$E12000' ; data buffer (graphics screen) DC I4'$8000' ; requested count DC I4'0' ; actual tran count END filetype sts $b9 copy sts .d1/system/desk.accs t WAP HELLO BY DAVE WEIKERT & TOM WARRICK WITH MODIFICATIONS BY TOM DEMAY SLIGHT MODS FOR GS BY DAT  Ripped apart by T. Meyer 1/89 (4)"PR#3"::9:12)"WELCOME TO /WAP2020" ::D$(4):C(J)21J2:KS16368:KS,0: KS=$C010* D$;"PREFIX":"";PREFIX$0 (9 2100P < SUBROUTINES Z FHT41 KJ1K:HT(S$(J))2:S$(J)::: PHT34 U22:HT)"PRESS ANY KEY":K$ Z d GENERAL LABELS nWAP$"WASHINGTON APPLE PI, LTD." xADDR$"7910 WOODMONT AVE., SUITE 910"> CITY$"BETHESDA, MARYLAND 20814"Y 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: "5 G4$"To rerun this description, type"Q G5$"-/WAP2020/STARTUP"t G6$"And press the RETURN key" G7$"" VARIABLE LABELS Y$"1989" T1$"/WAP2020" T2$"Apple IIGS Desk Accessories Disk"  COPYRIGHT NOTICE + S$(1)"IF YOU HAVE NOT ALREADY DONE SO"U S$(2)"IT IS SUGGESTED THAT YOU MAKE"| "S$(3)"A BACKUP COPY OF THIS DISK" 'S$(4)"--------" ,S$(5)"THE COLLECTION AND ARRANGEMENT" 1S$(6)"OF THE PROGRAMS ON THIS DISK" 6S$(7)"ARE COPYRIGHTED, "Y$", BY" ;S$(8)WAP$/ @4:K8:70:80G J PRINT RECTANGLE ^ T:EIGHTY1ĺ:360 Y::41);:J18:40:2);::40:41): ^ PRINT TEXT h3:S$(1)T1$:S$(2)T2$:S$(3)" FROM":S$(4)WAP$:K4:70 r MENU |C$"12333":C2$"12333"%S$(1)"Enter Applesoft BASIC"QS$(2)"Return to your Start Up Program"rS$(3)"Read about this Disk"S$(4)" "13:C((G2$))(HT22):G2$:J13:HT20:" ";(C$,J,1);" - ";S$(J)::7(HT22):"PLEASE ENTER YOUR SELECTION: "; GET CHOICE #K$ZK0:J13:(K$(C$,J,1))(K$(C2$,J,1))KJ:K$|:K530,680,580,580,580:490 CATALOG 725: DISK DESCRIPTION DD$"BRUN /WAP2020/DOGPAW"XD$"DOGPAW /WAP2020/READ.ME"l340 START MENU PROGRAM D$"BYE"3 EXIT PROGRAM =HT21:4:HTC((WAP$)));WAP$:HTC((ADDR$)));ADDR$:HTC((CITY$)));CITY$:HTC((PHNE$)));PHNE$:HTC((CURRENT$)));CURRENT$:13:HTC((G4$)));G4$:15:HTC((G5$)));G5$:18:HTC((G6$)));G6$;20:HTC((G7$)));G7$:KS,0C: Os8ARAsetieRBLPN`ߍvRRsRtR LjRL7Os%< A= AA L7On@8AAAAAmAt" O bRLuOA ֍A8AA\B]BAARmAAAA_ / ɿȱ RAͣAbȘ cAL A cAȱ͜A ͞AmA`ei`AA?ABAC ,BLPN`BRجӠĠآɠ)Rʽɠ)R+STUPQLNɿLPN8LRRRRRRRRRRRRRs{RxRR4RRRRFRRLBRR`Ȣʈ=RRɠɍrɠ B QR BɫRR R Bɭ Bɤ,RR KRɍ ) KRR ЌRR BR8RΞRR1 !莮R1RM0R QRxR) R(R)mRRLCFRߍRFRR ORͰRR RRRR ĈRKD$G O bR宍LuO@ O bR宍LuOL7ORA=982 O bRԬР宍LuORmmiRniR8oRRpR8RQRRR8RR8RRRRRR IRsRtR ȈRL7ORR  J ZJ OL;E P 6I IRRRF LLERRR % " bR ɍɛLI KR,RRίR IR% "RRRR AḬRLQF)) ̯RRLtF  WIޑ KRLhKRɛ7ɍ>)RۍRRRLAGFHRFhRRL`HLIRLNHRRRn `ML|G I RURS 9 I % "R bR砭㾠 ɍɛLI KLERRmRRR8R R0Tɍ| x,R0ɀo歶R)R $KR8R mR i RL`HRȭRRLHRR εRεRR̮R) -e i R RεR WILEL`H ORF =N 9R{LIRR `RR`RR` ``R)?2`LR)2`L8RRRRR8R ` O bRLuORQLLXLR!RBR`L7ORRRRRRRRR ʈRLL7ORmRRRmRRR͍R R͌RR`RmRRmR` J8RRRRRRRR JR R RR` LIRMRȭRȭRȌR`R LIRȱRȱRȌRLJR ψRL7O`R ΈRL7O`RRRR JLZJLOLQRRR<>R=i?RmRBRmRC ,R qJLJLOLQRRȽɍ  KRQR(RRLE)a)` 9 I % " $ bRCHECK`PRINTER I I % " bR卍㾠 % "$LRiRRiR L!#" IRI JRɣ+ɍ2 ɍ8RJR!8R JRʩ퍽L Lп I LRR LRHJJJJ Lh) ɰ,RP`RL% "RFR${ eI bRξҠԠŻ{ bRžҠ( I$ bRӠŻþϠԠ͠ vI#( bR#R#`R$RQ *N"{% " B$ eI bRĠƠLvIR$RQ *N{% " B$ eI bRþϠŠŭLvIRQ *N{ % "$ eI bRӾϠΠҠԠLvI${% "FLJR L bR򍠠Ӯ宍 I` Os ύXX?k`1 =N 9 bR`R O bRӠ򠣤R bR O IL ̆R`RR,R J J J OLP8R J J ORLPR8R Qȱiq J8RRRRmRRmRRLJRR  P WI ^I0Qȱ ^IڈR8R~ P( P WIй WIR RR P`RR ^I I+ ^I WIR` `RmRRi?8RBRC ,RiRR`R8R8RRR(R I ^IRR J JR QDR QJJJ >RR) R QJJJJJJ R >RR)?J >R)ŒR Q) PR0L=Q J JRR QRȩR8R JRR QRRLQL9QRRRRRRR RL6I ^IΎRR. JRR`RR J8RRRRR JhhRR`! 8Ri` WI͡R R`hh ^I ) LjRHH`ң ,'. 3/22/89 WAP2020 Desk Accessories Welcome to the Washington Apple Pi, Ltd. Apple IIGS Disk WAP2020. This text file will explain a little about the software on this disk and how to use it. These programs MUST be removed from this disk to be run. See below. The Classic and New Desk Accessories described below will only be available to you after you install them on a GS/OS or ProDOS 16 boot disk. Classic Desk Accessories (CDAs) will always have a file type of $B9 when cataloged from Applesoft BASIC or a file kind of Classic Desk Accessory when files are listed by name in the Finder. New Desk Accessories (NDAs) will have a file type of $B8 in BASIC and will be called New Desk Accessories in the Finder. To install either kind of Desk Accessory (DA) the $B9 or $B8 file must be moved directly into the DESK.ACCS folder in the SYSTEM folder of the disk that you start your computer with (your boot disk). After you have placed these files into the DESK.ACCS directory, you should switch your IIGS off and then turn it on again (reboot the system). The CDAs that you installed should then be available by pressing the Control, Open Apple and Escape keys all at once. Pressing these keys should cause the Desk Accessories menu to appear with the installed DAs added to the list. The newly installed NDAs will be available by clicking on the Apple Menu in the top right corner of any Desktop type program. WARNING The DAs on this disk have been tested to some extent in the ProDOS 16 environment. Not all have been test with all applications programs. Also some combinations of DAs may be incompatible with one another. In using these DA, proceed with caution. Try one or a few at a time, making sure that they don't cause problems with your favorite program. Once you're comfortable with a few, add more slowly to avoid problems. Keep back-ups of everything! There is a limit to the number of DAs that you can have available at one time. Only so many will fit on the CDA and NDA menus - don't try to load them all. Also, DAs use up memory, so if you have a memory hogging application (such as AppleWorks GS or PaintWorks Gold) keep the number to a minimum. The WAP2020 disk has three subdirectories: CDAS, NDAS, and UTILITIES. There are 28 CDAs within the CDAS directory, 40 NDAs in the NDAS folder and 6 DA utilities. Some of the DAs both classic and new include documentation and source code files. If these extra files were available the DA and its associated files are collected in subdirectories with the same name as the DA. Be sure when you install the DA that you place only the $B8 or $B9 file directly into the DESK.ACCS folder. Don't move the entire folder into the DESK.ACCS folder, GS/OS won't be able to install it from there. CDAs ASSORTED - This directory (/WAP2020/CDA/ASSORTED) contains the following seemingly random collection of CDAs. SLOTSWITCH - This CDA allows you to change the slot and port configuration without having to reboot the system. VISIBELL - Instead of "bonging" when errors are made this desk accessory causes the IIGS's screen border to flash. TYPEWRITER - Allows you to type short messages using the IIGS and your printer as a "typewriter." TYPEIT.DA - by Glen Bredon, prints text files, requires pathname TOOLSHED - Gives a listing of the installed tools and their version numbers. TEXT.BLANK - Blanks the screen in order to avoid "burn in" of a single screen left on to long. SPEEDSWITCH - Allows user to toggle from fast to normal mode. SCCREGS - Displays the registers of the SCC 8530 chip that controls the modem port. RATCALC - A simple calculator with several registers. PRINTSCREEN - Prints the text screen. MT.REMOVER - Replaces mousetext with the old //e ROM characters. Good for using old software that doesn't use mouse text characters. MARVIN - The Paranoid DA. Try it. IMAGEWRITER - Sends the appropiate control and escape sequences to an ImageWriter to set different types of printing. HEX.DEC.BIN - Translate hexadecimal numbers to decimal to binary and back. DUMPIT - Dumps files in hex and ASCII to the screen or printer. PICSAVER - Captures the SuperHi-Res Screen to files called SCREEN.0, SCREEN.1, etc. in the root directory of your boot disk. CALENDAR.DA - Displays month calendar, scroll months and years with four arrow keys AREA.CODES - Displays a scrollable list of area codes for entire United States. Sorted by area code and location. GSCAT - Mouse and window based cataloging and volume testing utility. ASCII - This directory contains 3 files: ASCII, ASCII.PAS, and ASCII.MAKE. The ASCII file is a CDA which displays an ASCII character table. The other files contain source code. CLOCK.V1.1 - This directory includes 4 files: CLOCK.V1.1, CLOCK.V1.1.ASM, CLOCK.V1.1.MAKE, and CLOCK.V1.1.MAC. DISKINFO - Includes three files: DISKINFO, DISKINFO.ASM, and DISKINFO.MAC. DISKINFO. Displays information about contents of all drives. INTDETECT - Contains INTDETECT, INTDETECT.ASM, INTDETECT.MAKE, and INTDETECT.MAC. The INTDETECT CDA is handy for programmers dealing with interrupts. A click sound is emitted when an interupt occurs. NIFTYLIST - Contains NIFTYLIST.CDA, NLIST.DATA, NLIST.TXT, and NLIST.APW. Another handy one for programmers. Disassembles and lists chosen areas of RAM. NOTEPAD - Includes NOTEPAD and NOTEPAD.PATCHER. This is a handy notepad for saving small notes to a text file. PASSWORD - This directory includes PASSWORD and PASSWORD.DOC. The DOC file explains how to use this CDA to prevent usage of your machine when you're out of the room. PWFIX - The PWFIX folder contains the PWFIX DA and PWFIX.INSTRUCT which is a text file with documentation. Source code and macros are included. This DA allows PaintWorks Plus owners to fix the pallettes when they have accidentaly created unreadable screens. SHRTIM - STS is the DA in this folder. Source code is included. This CDA takes a snap shot of the SHR screen 10 seconds after the CDA is chosen. This allows you time to arrange the screen before it is saved. NDAs ASSORTED - This directory contains 43 different NDAs for your collection. CONTROL.PANEL - Provides access to some control panel functions from the NDA menu. CONFUCIUS - Provides words of wit and wisdom at appropiate times DIGITAL.CLOCK - Small window shows time. Can be left open while using application. CHRONOGRAPH - A elapsed time display for up to 10 days. CALENDAR - A simple calendar showing the current month. CALCULATOR - A full featured scientific calculator with a display that can be copied to the clipboard. ASCII - Shows a list of ASCII codes SCREEN - Blanks screen to prevent "burn-in." SCREENSAVER - Blanks the SHR screen. SHOWTOOLS - Presents list of installed tools with version numbers. SYSTEMLOCK - Freezes system until password is repeated. DOODLEPAD - Simple sketch pad with cut and copy. ENIGMA - Guessing game. EX.DECIS.MKR - Executive decision maker. GRASS - Watch the bottom of the SHR screen. HAVOK - Click on the Havok window close box to stop the chaos. Very scary. INFO - Allows you to change file types and creation and modified times and dates of files. KILROY - Circa WWII. MEMCHECK - Uses fuel guage to represent amount of RAM memory remaining. MENUTIMEHM - Adds a clock to the top left of the desktop menu bar with hours and minutes. MENUTIMEHMS - Same as the last but includes seconds. MOUSE - Gives coordinates of mouse on screen. MOUSEINFO - Gives coordinates, button status, and info about area being pointed at. ONLINE - Provides users with volume names of devices online. PANIC - Displays a fake stock plot to cover that game you've been playing when your boss/wife/mother walks in. PREFIX - List the default prefixes and the associated unit numbers. ALARM.CLOCK - Set a buzzer and blinker to go off at a designated time. This folder includes ALARMCLOCK.DOCS, a documentation file, and the ALARMCLOCK CDA. ANACLOCK - ANACLOCK is an analog clock DA which includes source code in ANACLOCK.PAS. DESKPAT - This DA changes the color and pattern of the desktop. Docs included. MINIUTILITY - Utility which allows user to delete, rename, and move files. Folder holds MINIFILE.DOC and MINIUTILITY files. RINKY - A screensaver program that puts on a graphics show. SAVER - This one blanks the SHR screen after a user defined interval with no activity. A data file save the users choice of interval for future use. SHOWTEXT - Displays any AppleWorks or text files. SHOWTEXT can be used to examine the DOC and text files available on any disk. TWO.APPLES - This NDA allows you to expand the number of NDAs available by creating a new double-Apple menu. Docs included. MEMORY - This DA displays the amount of memory available and used. BG.MUSIC - Play background music while you're working. The DOCs file describes how to load a soundfile. CLOCK - This is a basic digital clock NDA with source code. MELTDOWN - This NDA will slowly "melt" your SHR screen. Fun to watch. PAINT - BRUSH.CMD, PERSP.CMD, PLT.CMD, and TBX.CMD are NDAs designed to provide help for Deluxe Paint II users. LOCATOR - This NDA displays the mouse coordinates.Source code included. UTILITIES P8CDA - This utility will allow you to boot with ProDOS 8 and still have CDAs. Doumentation is included in this folder. DA.SELECT - This utility allows you to select and deselect DAs depending on your requirements. MEMPEEK - This is an init file that implements a memory peeker CDA which is in IIGS ROM but is not normally turned on. Read MEMPEEK.ASM for instructions. MASTER - This CDA actually allows you to create multiple CDA menus, greatly expanding the number of CDAs available. This folder contains documentation and program to load extra CDAs. CTRLNOW - Allows changing of control panel options "on-the-fly. INSTALL.DA - Installs CDAs and NDAs immediately rather than requiring a re-boot. The files PRODOS, BASIC.SYSTEM, BASIC.LAUNCHER, DOGPAW, and STARTUP are on this disk to allow it to be self booting and to display this text file. This text file is called READ.ME. Washington Apple Pi (WAP or the Pi) is a microcomputer user group based in Washington D.C. metropolitan area. The club consists of more than 6000 Apple II and Macintosh owners joined as part of and educational, non-profit self-help community whose purposes range from helping people with specific questions about computers to raising everyone's level of understanding of these tools and toys of our technological age. For more information write: Washington Apple Pi 7910 Woodmont Ave Suite 910 Bethesda, Md 20814 or call: (301) 654-8060  LG ASTARTUP$#   / XXύX?klmnÍoL) "6L'?"(0`6708" = ***)<JJH !h穖tp% ;"Z/݀>">"' 1" 7"5).莀/ ;" " 6" >" 1"6"$ "g"" !"""""IzLYL 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~TLLwLLL) `8` ԠŬLL0 8L0  8[8ɭɯ  L  &&  /     * j/ 1 9 0 H 8 h(O L   ͦ L   +  /ʎ L L 8 e"   / 8 : 1E,0O ` q "h88(` BASIC.SYSTEM    Insert the disk:RETURN to accept ESC to cancel0 "h8`You cannot run this program directly. Press RETURN H"h HH HHH "hh" 8`i0 0 0/ 8 DŽ  /ʎ 0`"`1@BASIC.LAUNCHERS@ BASIC.SYSTEMERS5READ.MEITIESERS5<DOGPAWPITIESERS5STARTUPITIESERST<CDAUTILITIESERSTNDAUTILITIESERST DA.UTILITIESERS@<PRODOS.AUNCHERS* RTS ShowTime ANOP PushPtr TheTime _ReadASCIITime ;Read the clock SEP #$20 ;8-bit A register for byte accesses LONGA OFF LDY #19 ST1 LDA TheTime,Y AND #$7F ;Convert to standard ASCII STA TheTime,Y DEY BPL ST1 REP #$20 ;Back to 16-bit A register LONGA ON ;Get the name of the day of the week: PHA ;Space for 8 bytes of result PHA PHA PHA _ReadTimeHex PLA ;Pop minute/second PLA ;Pop year/hour PLA ;Pop month/day PLA ;Pop day of week (high byte) XBA ;Put day of week in low byte AND #$0F ;Strip unused bits DEC A ;Convert 1..7 to 0..6 (1=Sunday) ; Look for the Nth entry in the table: TAY LDX #0 SEP #$20 ;Use 8-bit accumulator LONGA OFF Find_DOW CPY #0 ;At correct name? BEQ Move_DOW ;Yes, so branch FE1 LDA DayTable,X BEQ FE2 ;Branch if at end of name INX ;Move to next character BRA FE1 FE2 INX ;Move to start of next name DEY ;Decrement day-of-week counter BRA Find_DOW ; Transfer the name to the buffer area: Move_DOW ANOP LDY #0 SR1 LDA DayTable,X BEQ SR2 ;Branch if at end of name STA TheDay,Y INX INY BRA SR1 SR2 REP #$20 ;Back to 16-bit accumulator LONGA ON PushWord #2 ;horizontal PushWord #9 ;vertical _MoveTo PushPtr TheTime _DrawCString ;Draw the time string PushWord #10 ;horizontal PushWord #19 ;vertical _MoveTo PHA _GetForeColor ;Save foreground color Pushword #5 ;Dark Green letters _SetForeColor PRINTG 'Copyright (c) 1987 Gary B. Little' _SetForeColor ;Restore foreground color RTS ; Startup or shutdown the NDA. On entry, A=0 for DeskShutdown, ; A is nonzero for DeskStartup. NDA_Init ANOP PHB PHK PLB CMP #0 ;Starting up? BNE NDA_Init1 ;Yes, so do nothing LDA ClockOpen ;Clock window open? BEQ NDA_Init1 ;No, so branch PushLong WindowPtr _CloseWindow ;Close the window (releases memory) STZ ClockOpen ;Set "closed" flag NDA_Init1 PLB RTL ; The data area begins here: NDA_Title STR 'Calendar/Clock' ;Window title WindowDef ANOP DC I2'EndWind-WindowDef' DC I2'%1100000010100000' ;Window with close box, title DC I4'NDA_Title' ;Pointer to window name DC I4'0' DC I2'0,0,0,0' DC I4'0' DC I4'0' ;Origin at (0,0) DC I4'0' DC I4'0' DC I4'0' DC I4'0' DC I4'0' DC I2'0' DC I4'0' DC I4'0' DC I4'0' ;(Handle our own updates) DC I'30,33,52,284' ;Dimensions of window DC I4'-1' ;Put clock window in front DC I4'0' EndWind ANOP WindowPtr DS 4 ;Pointer to window record ClockOpen DS 2 ;Used as a flag PortRect DS 8 ;Content region rectangle MousePosn DS 4 ;Current mouse position (local) TheTime DS 20 ;ReadASCIITime returns 20 bytes here DC C' -- ' TheDay DS 9 ;Day of week inserted here DC C' ' ;Add padding DC I1'0' ;(terminator for DrawCString) DayTable ANOP DC C'Sunday ',I1'0' DC C'Monday ',I1'0' DC C'Tuesday ',I1'0' DC C'Wednesday',I1'0' DC C'Thursday ',I1'0' DC C'Friday ',I1'0' DC C'Saturday ',I1'0' OldCursor DS 4 ;Pointer to application's cursor record ; This the is the cursor record for a "wristwatch" cursor: WatchCurs DC I2'12' ;Rows in cursor image DC I2'3' ;Cursor width (in words) DC H'000000000000' ;The cursor image DC H'000FF0000000' DC H'000FF0000000' DC H'00F00F000000' DC H'0F00F0F00000' DC H'0F00F0F00000' DC H'0F0FF0FF0000' DC H'0F0000F00000' DC H'00F00F000000' DC H'000FF0000000' DC H'000FF0000000' DC H'000000000000' DC H'000FF0000000' ;The cursor mask DC H'00FFFF000000' DC H'00FFFF000000' DC H'0FFFFFF00000' DC H'FFFFFFFF0000' DC H'FFFFFFFF0000' DC H'FFFFFFFFF000' DC H'FFFFFFFF0000' DC H'0FFFFFF00000' DC H'00FFFF000000' DC H'00FFFF000000' DC H'000FF0000000' DC I2'6,8' ;Hot spot (y,x) END ASML CLOCK.ASM FILETYPE CLOCK $B8 COPY -C CLOCK 4/DESK.ACCS $%&' MACRO &lab _SetPort &lab ldx #$1B04 jsl $E10000 MEND MACRO &lab _GetPort &lab ldx #$1C04 jsl $E10000 MEND MACRO &lab _GetPortRect &lab ldx #$2004 jsl $E10000 MEND MACRO &lab _MoveTo &lab ldx #$3A04 jsl $E10000 MEND MACRO &lab _PtInRect &lab ldx #$4F04 jsl $E10000 MEND MACRO &lab _SetCursor &lab ldx #$8E04 jsl $E10000 MEND MACRO &lab _GetCursorAdr &lab ldx #$8F04 jsl $E10000 MEND MACRO &lab _DrawCString &lab ldx #$A604 jsl $E10000 MEND MACRO &lab _GetMouse &lab ldx #$0C06 jsl $E10000 MEND MACRO &lab _NewWindow &lab ldx #$090E jsl $E10000 MEND MACRO &lab _CloseWindow &lab ldx #$0B0E jsl $E10000 MEND MACRO &lab _BeginUpdate &lab ldx #$1E0E jsl $E10000 MEND MACRO &lab _EndUpdate &lab ldx #$1F0E jsl $E10000 MEND MACRO &lab _SetSysWindow &lab ldx #$4B0E jsl $E10000 MEND MACRO &LAB PushWord &Value LCLC &CHAR &CHAR AMID &Value,1,1 AIF "&CHAR"="#",.IMMEDIATE &LAB LDA &Value PHA MEXIT .IMMEDIATE &CHAR AMID &Value,2,100 &LAB PEA &CHAR MEND MACRO &lab PUSHLONG &Value LCLC &CHAR &CHAR AMID &Value,1,1 AIF "&CHAR"="#",.IMMEDIATE &lab LDA &Value+2 PHA LDA &Value PHA MEXIT .IMMEDIATE &CHAR AMID &Value,2,100 &lab DC I1'$F4' DC I2'(&CHAR)|-16' DC I1'$F4' DC I2'&CHAR' MEND MACRO &lab PushPtr &Label &lab DC i1'$F4' DC i2'(&Label)|-16' DC i1'$F4' DC i2'&Label' MEND MACRO &lab PopLong &DataAddr &lab PLA STA &DataAddr PLA STA &DataAddr+2 MEND MACRO &LAB STR &String &LAB DC I1'L:&String' DC C"&String" MEND MACRO &lab _ReadAsciiTime &lab ldx #$0F03 jsl $E10000 MEND MACRO &lab _SetForeColor &lab ldx #$A004 jsl $E10000 MEND MACRO &lab _GetForeColor &lab ldx #$A104 jsl $E10000 MEND MACRO &lab PRINTG &text &lab PEA x&syscnt|-16 PEA x&syscnt LDX #4+256*166 JSL $E10000 BRA end&syscnt x&syscnt DC C"&text" DC i1'0' end&syscnt ANOP MEND MACRO &lab _ReadTimeHex &lab ldx #$0D03 jsl $E10000 MEND ,a <CLOCKG.CLOCKOCS CLOCK.ASMOCKOCS CLOCK.BUILDKOCSz CLOCK.MACLDKOCS*%HAVOK;$|/ $INFO&($&KILROY"z!(MEMCHECK F p**MENUTIMEHMFp*+MENUTIMEHMSFp*%MOUSE{$u" )MOUSEINFOtF p*MR.APPLEp;t 'NODOS1679p[6#NOTEPAD#E%;t &ONLINE Fp*%PANIC&5 )PHONE.FILER)O;t &PREFIXF p*PUNCTURE"'/7?GMO./01234B ,@ B+f##Palette Commands\H**K51HH "h799H7HK"5kK59H7H "5kKZ zk``` ` ;[  +``9H7H"9H7H"``H"h2)= ? =?HH"HH""9H7HM"H""" ;H;H:"ڽpHnH"hi ɋͭ=H"" ;H;H:"ڽHH"hi Oͭ=H""Y;H;H:"ڽHH"hi ɋͭ)LRh4h62*\" h4h62* \"h4h62*z"h4h62* z"Lhh\"hh\"bhhz"hhz":"?H""C"""`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 A[]wy(*57;=?wwwwwwwwww  ODDDDOOODDDDOOODOOOOOOOOOOOOOOOOOODO  +f /569E7H9P9T7b5j5o9s7~597972 =?=?:9>7k;s;pn=;;=;; :BERHRL4P6S2V2Y*\*o r v4z6}22**4622**4622**!%(+.1DbGbKORUX[nquy|?CCnAr[v]zw~y(*57;=?6789:; ,@ +f##Toolbox Commands\H**K1HH "hHHK"kKHH "kKZ zk``` ` ;[  +``HH"HH"``H"h)  HH"HH""HHM"H""" HH:"ڽHH"hi ɟͩ HH:"ڽHH"hi ɟͭH"" HH:"ڽHH"hi ɟͩ HH:"ڽUHSH"hi ɟ:"H""t"""`kToolbox CommandsN;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 %7I[m!3EWfx #&),/258;>ADGJMPSVY\_behknq+f /69EHPTbjos~ 48emz~%-:U>Sezt}t%7I[m!3EWfx  ##'&+)/,3/72;5?8C;G>KAODSGWJ[M_PcSgVkYo\s_wb{ehknq'gf DESKPAT.DOCCCRHDESKPATLITYCCRE, TWO.APPLESDOCRH TWAP.V1.2.DOCRO6SHOWTEXT.DOCCRH SHOWTEXT.DOCCRY@<RINKYTILITYCOCS RINKY.DOXTYCOCS