8L2C)pJJJJ IH(ȱH:=IH[H`@HcH  $ +   I/H`JLNGȄBȄF aK  haaFF  mJm# KKJ UJ )J ۈ) ;J3ȱJFȱJGJKaȄM  aaNNJFLGJL LL !Cb" %n"o" (#M8( % ) L'"p"q" (\4, )7(P0  ( @p 8  x"!b"i"0 ~&i"0 %r"s" (,) &Սt"u" ( %L'")0I0hx H( +?,DOC.GETTER.B ,DOC.GETTER.A}d)$SCLU(# )SCLU.DOCSu/IMAGE2.MOUSETXTA\*4# *COMPRESSORz /COMPRESSOR.DOCS \)'BEEXTERt# /BEEXTER.DOC.BXTr$ ,DOC.SCREENER/# /DOC.SCREENER.80 XY/DOC.STUFF' &PRODOS }<!&,BASIC.SYSTEM((!Ѯ'STARTUP= A/ABOUT.DOC.STUFFF # &DOGPAWS @+DOGPAW.DOCS^? &PRODOS `DaElH$?EGvѶK+`L HHLy XP LM ŠϠĠӠS)*+,+`F)) (*=GJFjJJA QE'+ '== `@ STSP8QSS8 m P o R(8R %Щ ߩx"L! )L! 8'  )ɀ)4,- U JNT) x"Lv"w" ( !` a"M)Fi/ e"3 k"  !"#$%&آ <B*IBGF08Lé'+8H <,``h(`@ڍL3<>=?<>CAB@?A` 1 L  <>`ڢF]PL8i m L   6< L  BLRAM' hLDLHB-9F 3"aɿ LLB Nϰ H  @h( L Lj  @`eLJCAB@=?.<ʆ>,=?BC8 é&'112``* G** c*` v* G* c*`hh8`8`***`}*`e`H)hJJ*0JJ)` (< ( < *? ( < (? ( < (? ( <*? * **? *? *? ( < *? ( <ȱȱȱȱ0]cȱeem*ȱ*ȱ**ȱ**ȱ* )* * )L(`L?* *Ll) ) L( )Ll)8e` ,$`ee` < @( )m((.(( M(i  ``) |'(j21 z& {&!` ({&z&(i({&(( CBDFGE (r&$ 3(,}&r& … 3(ŅL&JJJJ`Ϡ'8`r&h)hr')L&18|&"m11 2H22h2舌|&|&12H)M0 h10200I20h2 (`LE%12 `_'"L  <8# ȱ)ɀ  )( ` (Xp0`ŠӠֱҭԠŠҬî̠ӠĮʎ1|&… (n}&Dž (\%Tz&Lc()8= (J 8'z&'{& 3((ʎ1|&|&|&3223 `%YYZLYLYLY뿭` 8!@8` %MNЩUMߩ  L 5   8 0 8  `0 / X& & +&&7&P^& S ɘL   V7 L ' 0% '8 Jm ʈ0  0ŠϠĠ͢Š͠͠ϠŠŠϠĠخ͠ ͍B B(8. ) ɘ"    L=#=#&ŠϠĠԠŠ ԩ m# m# J Qڨ)̰m] нȱ ̀𩠙 i F >l"m" h" iL X%;"L8"ΠΠҠ`y""""""*$ Fk%YeQP!/RB}QBiBB}\ ĉFEL/#> ț6 hh@ihAiH(ؠȱ@JJJJq@)@Yvȱ@Hȱ@Ah@y@cYe J) LL LJiB LJ) >xhHHHHL(  ްƠx@BEOD  ް(`( C)CJJJlB O-`J,~@~@}J@` ߩ%S @ ~`E hhhߺ0 h ߐ( ߐ ߐ ߐ  0 HϭߍLпllllIL/FHGI ҭJjHIHB>IؙJJ W: ELyHIHI`JKJK`FHIG ( Ȣ؝؈JL)eKM`)` J zJ͟ $0 ΎJFJL8`JGBJ P ؑ@`M8`8@ؐʈI묆)z8zz Ly LةC8`؍)@ i)z8zyJ ^ ؅F Lo) +%J(a *FإGؐ.` *JHIH ۩ ٰz{`JJJJ;i v묅͚ vٍ0  `H8` `ٍyٍiB0H0FG h0`FG `ϩBxED0C ް(`(8`{ `ٽJJJJ`H͐hn)NjNjNjN. CH͐ v;٭ *Nۙ۰ڙک `Z8` C# (`{ .{ .{ .{8۰*Jzܝ٭(ܝ`)َ 8ʈ` 0ٝ)i `8`R ꍐz{ vNمFمG < ΐ0 FGL鮅0 ٭{٭zٽ8`H8`  ,z { 8` z E8`1ݾ00 Y 0ʩ 谼 谷`12)1`0`Ȏi 0U`)8`ά` W xG 0A)H ܝʈh٭0٭)ܝ٭*ܝ٥F٥G٭'ȱHά`Ύ8EeHI |SB:0M ٙKٙIFNGʈ d献`8m0`,0H hi PȽάhٍ0GF8yאFG  $0 G01܅I `P܍QR d8D`F` ]lH)HFȍNHGO $%܍&܍!ܢ8* J8` L ܝ>)I 'ܝ:`F8iRFPGQ`F܅IH3H ( )O 밨G%܈D" T)Ii)܍R*܍E'ܮ( 4 䭐 $H %HFFHGHG 됬`R8`)` EHS` #Q'܅IHHSSЍS@`8 ` ͍% ΍Q8`ʈ@qȱ@cȱ@mopfNxOyS)5SI0ܢܽ iP'E* 7deFG (GH Lv܅IR mEIH` tq qM0PQ ESHNFOG 밳NN` G8`F@ 0 > LK8`: ;I8`FHGH hGhF܌ բFܽܕF芝ܝ 밶:; <܅I m=IHHyHȘI Lܝ` @c@ k@Ю׍S)mיSi 뎅`C8` @ r3N@) G莱 ⭮i`0 Y; 뮅ٝ٘ 0 W,0 .H hȑNWȮّNW8`ٍّNά0N뎒׮Б` L` @>S)I38Mdeם`K8`@Nȱ@O@ rIiNȽבN)/ȩ/N`@[ WHJjjjhA ,'KI؍0JHhh8` Qx")T'P) ɺiL; )?     ~ `l@Hȱ@IױHXATȱH ɯȩ׍̒5H)/@a)_ .0 :A[8@`,FإG`BH PFإG`,H hHB؅F  ؅GxDE؍00C ް(`(8` vL'J  6"L vH  6 9ؙ` @ P8`K8`B8` L؈SJJJJحq) ) )Ю ЪGdF $ ᭔ع+ؠ 2H  :h8` 䮅ٽ ٬ؠ@` ( L )8`)i п` H h)N$%hꭋILhH),Nx8 (8` ԍ`@ABe 2U,,CnZ1IJK,-NOPQRSuHUSTON!' @  K cXXK تKo`V8`no` , on cI9XX`)HJJJh`OeNeO࿰ c9XАO`@ȭ@` ON INJKO`Hх 밽܅F݅G ` c* Z% L`L뮴HH hFhG܍ݍ 8 `FHGH  hGhF`ݹܙ݊`@Bɼ>K@J5 c9X(N    ܮ `J HH hh` 0 @ L/L Z`̸Yܝ ݝ0̸ȩFG   0` ܅F݅G ` c Zͬ LȹL@ȅH@IL,0` G וֹ= YH.q)N 0 >deS)@LP8` D᮴ ֩SGHG v L䬅yٙ٭yٙ٩`K CEdFeG 6%&ȹP8` i` %ם0 B %)( ȹ`8m8m@8` G8`F Pq)@N8`S)@J טyרםSS)׍Sde 밑 Ȣ؝I؈ 2h(8H ( h(8Hh(`ؑ@`@ȱ@ ` B@8ZS d鮅ٍٍٍsHٍr8fhgSJJJJS)S@` %I -q) 0@S)N8` @LL =@ ؝~@~ݞ@ʈL2 KIJHȢݞ)Jn 8 θ ؍ ؍ DH8 ع)ꭵJJJJ )߹0 )p )@ ) ȩ ؝L0NO 방 PQNOFG 嬆؍f؍g؝h ؝c zS) zS )حM͚ v`H@h`h``N8`  ) 1⬆iع `  عiعi` )؍0CGHFHBFG ުhFhG`@4͔ L @Ai ׭2` . :#ع؍0 Y讅)`.@+ i 8` L ؊ PLE΢ʱNLMOMEKP%MEK΢L$ O, PeNNO 2(` C  7 2JzHI{HI؊ }LE  *` A Hz ع H{ ؙ؊ؠIhHIhH } `؝}zIzؐ` f~ؽ؝z f % f؝~z؈` ` H  Ph)N@ 1; L  2$ )bJ Y ) H 4hL )  )حJjI{HIzHNO 8 ؍JL`R΢ʱLN1MOMEKP/MEK΢L7L-M O,p莡eNNO(`JNKOL 2/ "P L8 y WؑJ`L@ȱ@ `@Nȱ@O LL L r L 2 "pJ덣 )@፦NJOK 2iKK΢΢ IJΣ JФ̭JjHFIH HIGxKE ް((H hH h8`8@ȭ@L2쬆8N !"#$Ԡ͠ˠĠԠҠ(c)1983-1987 AppleLKL`BLL ެެެެެެެެެެެެެެެ(C)APPLE'83xLLM Mh@8nЍLޭ 0J @,,LNLG ASTARTUP$#   / XXύX?klmnÍoL) "6L'?"(0`6708" = ***)<0h)ύh0HHHH " ׍hhhhhhh .hh8`  (L](L u ʆ L u  L XLt $ ]` L  `$ i [ ] 0 ] bȱ ]L]úŠōκԠōϠӠɯϠ` 0ei H @橭 )Ƨƨn  Х ? b ) LH % h*,7 Q$ ɛLDLI ԥ ΅  uL u ɛɈqɋmɕxɊtɍ  bȱ 蝀 ^  ةI XʩXύX1021ʆ X ;)4i/ O M ] o+ T# L$0)Ħ 8V%֌&8V֌֠)HV)hH)hHIhդD?DRIDQD)҅; ?JDQD]ՎՎՎ`MY pӭY)p  ӭp`C)`BFGV 8``8LխӅ:HhHh Ո թ թ ՘VYҪҦ>:Y)Ң`;R?AJ;<ȰY)Ң`Y?)Ң`ȐҰ ;HhHh=Ң`Hh `Hh`DEiȍ0֌1֍ZԍsԍԍԍԥDEԌ8TԌ8WpԌqԠ 7I꽌ɪ꽌ɭ蠪:љVE:8`]ѾV]H)]ѾV]ҙ)]ѾT]ҙ)] >8hUD` ԝY`> Hh݌(`HCJJJJ)*h`0($ p,&"op8`kkV꽌ɪɖxlӽ*kӽ-kәmMlӈ 꽌ɪ`8` *L o % ԽYӍZӭoӝY 3Ѡ шNZ`rZLkӭZӍq8r7IZӐiZkӐk 8 ѹs ӭq ѹ| kн Z)*>>` @ $(,048<@DHLPTX\`dh 0ުlptx| ֽ ְ& .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Ӧ>` Ր+>P׽8H  ): e: y8鰕:Jjjj<)yאi8i;i(*=>hPם8`;Zx3QZYXXWV[HEVhEhH)IWHPHHHAHHHLaVEWLӿJJH !h穖tp% ;"Z/݀>">"' 1" 7"5).莀/ ;" " 6" >" 1"6"$ "g"" !"""""IzL')*+,-./0123456789:;ޱ>ȥj>>m>` _m8injkiljo풼i>?Ek?>Q>> L> \/ e>>?́?pnQ @p;Q=po:Q>>>̀ `` \> ̀ `e>>?́?>?Emn(>e>ȱ>e?>Q>ؠ> ie>>?`|;}=:<~:<=;`||m};>:8o>oȑ>ppȑ>> :op`Q DKJپھ pHJh` D!hgt}~p `~t}p8n~ni}tpi~~tso8pinii>j?k̈́>~|p|Ii||̈́ l - `>i>L 8933LΞAAJL ةޘг uv $ 8LƞaЌ>?@`>?@`B8` K  춼LK ҟ ҟ 2 KK`RJJJJ8`RK)` #hhL𚾤3 @LtJ)s@J b  l`a?sa?,E30ɍФ3 E3HD F3 Ʉ%h3 bM E  lLthɍLL3`3,A0s0% Ipn DpnI:L ؅303پھ p H־Ǿh۰8L־Jjjjɾ)Ⱦ8 ۱ OLӜ ΤLLX>(F`־ؾپھ׾` bɄ KDEF vLl v lL bKɍKL?`  vLl@$݅3`(l8L3LX>(Ƀ,`3,G0]ɾ g` H`پ_پ p _پ׾`>( p۾m׾) W)ʩ@`ɾ>(O puȾ ɾ-O gc־Jjjj °`O>0O v PODEF޾ p ޾ p($ذ v (0 ( L?ԦʚLeةީa s  lL b,FLg,DL,C0$3 >@ Ɉ 3ɾꩈL(3ɾ;Ƀ B94 l% bʽ  ՚,S` H OH06172839h` v97L75v^a ?/( va?LLLɍ$?`?a ɍɥAH93827160hH46576879h`,C bL ɍ b ,S0 @ lLޭBYL 8!9 詍` "  4"/pŠϠŠà͠ӠàԠŬDHh,PIN'ҍIxy 9L@Ix y JpnoF 9= zlm 9w)!,ZJYH)h****)  md8﹙`\H[< h  9( ǹ쳼󩭙L9id 9`H) 'hJJJJ ɺi` W  ` .8 `O`S  %AI-LC 몰B C VWS 󸍫$I2 U)VJ ڷT)`l8`a HbIJhjǾȾɾ p٭b=aIe f`8` )P־ǾҾ,G0C p=W)_``\"׾پӾؾھ pD`־ǾY׾ؾOW)ݩȾɾʾ pD`8`W)CB) 5W) G)W)@! pZ}ȾȾ󰹩 p` )־ǾҾ,G 8`׾ؾ p p ۥs׾tĺG$; (G$)27Ģ23:= G$"1"DPĺD$"-DOGPAW":DP1Z G$"2"ĺD$"-COMPRESSOR"t "G$"3"ĺD$"-BEEXTER" ,G$"4"ĺD$"-DOC.GETTER.B" 6G$"5"ĺD$"-SCLU" @G$"6"230 J Instructions Menu T4:2:958 ^12:"Instructions Menu"# 14:4:"<2>-Brun Compressor"B 16:4:"<3>-Brun Beexter"g 18:4:"<4>-Brun Doc.Getter.B." 20:4:"<5>-Run SCLU" 22:4:"<6>-Go to Instructions Menu" 24:4:"< >-?"; DPĢ12:4:"- Dogpaw is installed -" 24:5:G$:G$"0"";::" Public Domain text utilities ";::" ";x x" ";::" By Karl Bunker ";::" "; " ";::":"36)":";::" "; "/"38)"\";: Run/Install Menu :"Run/Install Menu:" 12:4:"<1>-Install Dogpaw"<>?@ABCD::768:PL1 ( Title boxL 2PLĺ(12)"Switch to 40 column"(26)"1"l <(21):::D$(4):49166,0 F:"\"38)"/"; P" ";::":"36)":";::" "; Z" ";::" /DOC.STUFF/ ";::" "; d" ";::38);::" ";9 n"  /DOC.STUFF/STARTUP 8 Case Convert if II+ (64435)6V$"00165103133074165104133075160004177074240015201127176008201097144004041223145074200208237160000177074170200177074134074133075177074208219096":A768813:V((V$,3(A767),3)):A,VLLLLL) ` 8` ԠŬLLʮq$6,⨁ K6, VtI=v!gNVt Vt  lg~TFGHIKLMNPSV     T[fouu~ՠٯ* PWN*]ĿNTz @n6VC/+A>@I5gN Oz @n[Dz @nd0,~z @`$仫@v$⩔,C[B?I>孓`仫6VtCicQĿUKqtVt N +BŬ-⭚-'ᮽ<{DSM@@ -!S    !C- !ABELSDFRV@@ !$(19@EüϠž(+@ABCDE/,s̝sƬƀ#(ZZV4G_0=( A P FjL\5p-e9ABSAVERIFYBLOADELETEBYECATALOGOPENWRITEXECREATEFRESTORENAMEBRUNLOCKCHAIN#FLUSHREADPOSITIONOMONPR#PREFIXCLOSEAPPEND(@D2E` ) ( Bо(־Ǿ,G 8`_`W)H־Jjjjh p̭ pL붢Ǿ ..8 ۭ (8mȾȾmɾɾʾiʾ` Lpl8l:;:40::" ";0 h" ";::":"36)":";::" ";C r"/"38)"\";:f |8:4:"<1>-About /Doc.Stuff/" 10:4:"<2>-About Dogpaw" 12:4:"<3>-About Compressor" 14:4:"<4>-About Beexter" 16:4:"<5>-About Doc.Getter/Doc.Screener"18:4:"<6>-About SCLU">20:4:"<7>-Go to Run/Install Menu"`22:4:"-Quit to BASIC"u24:4:"< >-?";24:5:G$:G$"0"ĺG$; Another SCLU-dunnit screen layout!(G$)27Ģ23:G$"7"40G$"1"G$"6"460G$"4"8these programs will also have other, broader uses, as will be clear from the descriptions below. All of the programs on this disk are public domain. Anyone is welcome to use them for any purpose. In particular, you are welcome to put any of these programsEGHIJKLMNOPQn, and "print" for print-to-printer.) These utilities are primarily intended for programmers who want to include documentation to their programs on-disk, and who want a user friendly and professional-looking means of presenting this documentation. Some of /Doc.Stuff/ Version 2.31 /Doc.Stuff/ is a set of utility programs which, in various ways, deal with the job of displaying and/or printing text from the BASIC environment. (Throughout the instructions on this disk, I use "display" to signify print-to-screeter8LD$"BRUN BEEXTER.DOC.BXT,A"(109)(110)256:P@V40)(110)256:S40A Get printer slot for .BXT modulef22:4:"Printer Slot number? 1"22:25:PS$:PS$"1"ĺPS$PS$(27)40$PS$(13)PS$"1".PS$"1"PS$"7"10308PS(PS$):D$"PR#"PSB BRUN .BXT module for prin17:4:"-Back to Main Menu"920:4:"< >-?"U20:5:G$:G$"0"ĺG$;fG$(27)40wG$"3"1020G$"1"G$"2"930G$"1"ĺD$"PR#3"::"One moment . . ." BRUN .BXT module for screenD$"BRUN BEEXTER.DOC.BXT,A"(109nu; call .BXT module&R4:2:958S\11:"Beexter Instructions";:40::" ";tf" ";::":"36)":";::" ";p"/"38)"\";:z11:4:"<1>-Text to 80 column screen"13:4:"<2>-Text to 40 column screen"15:4:"<3>-Text to printer"%$"3"670122:4:"Printer Slot number? 1"P22:25:PS$:PS$"1"ĺPS$bPS$(27)40y PS$(13)PS$"1"PS$"1"PS$"7"760 PS(PS$):D$"PR#"PS* Call Dogpaw4D$"DOGPAW"DC$"\\"HD$"; page #">10H Text format me15:4:"<3>-Text to printer"D17:4:"-Back to Main Menu"X20:4:"< >-?"t20:5:G$:G$"0"ĺG$;G$(27)40G$"1"ĺD$"PR#3"::"One moment . . ."G$"2"DC$DC$"+"DPDP1:D$"-DOGPAW"G$"1"G$"2"810 G$"SCLU Instructions"=D Text format menu; call DogpawMN4:2:958rX21((HD$)2):HD$;:40::" ";b" ";::":"36)":";::" ";l"/"38)"\";:v11:4:"<1>-Text to 80 column screen"13:4:"<2>-Text to 40 column screen"40&G$"5"ĺD$"RUN DOC.SCREENER"jG$"1"DC$"ABOUT.DOC.STUFF":HD$"Introduction to /Doc.Stuff/"&G$"2"DC$"DOGPAW.DOCS":HD$"Dogpaw Instructions"0G$"3"DC$"COMPRESSOR.DOCS":HD$"Compressor Instructions"::G$"6"DC$"SCLU.DOCS":HD, or any files or programs created with these programs, onto any of your own disks. These disks may then be distributed either as Public Domain or commercially. You are encouraged to give away copies of /Doc.Stuff/. I only request that you make no changes to the copy of /Doc.Stuff/ that you will be giving away duplicates of. If you want to tinker with any of these programs (some of them are in BASIC) or make other changes to the disk, please do it on a backup copy. Thanks. The /Doc.Stuff/ programs: There an Layout Utility. If you want to design a title page for a BASIC program, or a menu, or if you want to use ordinary "PRINT" statements to display a screenful or two of text, you will find SCLU a terrific time saver. Using the SCLU editor, you simply type o set beforehand at either 40 or 80 column; the end user can't select one or the other. Still, some will find this system useful for various purposes. The full instructions to this system are, again, presented using the system itself. SCLU: SCLU is a SCreesplayed or printed by the BASIC program Doc.Screener. Doc.Screener also has a user interface much like Dogpaw. The Doc.Getter/Doc.Screener system is somewhat less powerful than Dogpaw or Beexter. Its most notable limitation is that the display mode must beads an ASCII text or AppleWorks word processor file, and converts it into an array of Applesoft strings. These strings are word-wrapped for either the 40 or 80 column screen, according to a selection made before the conversion. This string array is then diile can be used under either ProDOS or DOS 3.3, whereas Dogpaw is for ProDOS only. The full instructions to Beexter are presented via the Beexter program, and are a demonstration of the system. Doc.Getter and Doc.Screener: Doc.Getter is a program which ret itself are included in this file. The user interface of the binary file created by Beexter is much like Dogpaw, and many of Dogpaw's features are recreated. Although this system isn't as powerful as Dogpaw, it has the advantage that the Beexter-created fter: Beexter is a program which processes an ASCII text or AppleWorks word processor file, using it to create a binary-type file which, when BRUN, sends the text of the source file to the screen or a printer. Both the text-handling program code and the texhas uses apart from its partnership with Dogpaw. For example, if you have "archives" with large amounts of rarely used text files, these files could be compressed to minimize their storage space, and then decompressed when you want to work with them. Beexfiles that can be displayed or printed by Dogpaw. Compressor works by reading an ASCII text or AppleWorks AWP file and converting to a new file which is about 30% smaller than the original. Because Compressor can also "decompress" its compressed files, it can be set to scan the file for occurrences of a word or phrase. Dogpaw works with files of ANY size. What you are reading now is brought to you by Dogpaw. Compressor: As mentioned above, Compressor is a program which is used to create compressed-format Compressor program on this disk). Dogpaw automatically word-wraps the text for 40 or 80 column screen, or for the printed page. When printing a document, a page header can be included, with page numbering if desired. When displaying text on-screen, Dogpawis a powerful added-ProDOS-command program which could be considered the "output end" of a word processor. It can display or print ASCII text files, AppleWorks AWP (word processor) files, and "compressed" type files. (Compressed files are created using the /Doc.Stuff/, with brief descriptions of the four text-presentation systems. Full information on all of the programs on this disk can be had by making the appropriate selection from the Instructions Menu. Dogpaw: Dogpaw is the Big Cheese on this disk. It re four separate "systems" of text-presentation on /Doc.Stuff/: Dogpaw, Beexter, the Doc.Getter/Doc.Screener system, and SCLU. There are also a few additional programs which relate in various ways to one or another of these systems. Below is an overview ofut your screen as you want it to appear. SCLU allows you to enter normal, inverse, flashing or MouseText characters, and to move text around on the screen. When you are finished, SCLU will translate your screen into lines of Applesoft code which will duplicate the screen you designed. /Doc.Stuff/ upgrades: This disk is an on-going project. Future versions of /Doc.Stuff/ will include bug fixes and improvements to the current programs, and also whatever new program(s) I may dream up that will fit on the disk"R bR砭㾠 ɍɛLI KLERRmRRR8R R0Tɍ| x,R0ɀo歶R)R $KR8R mR i RL`HRȭRRLHRR εRεRR̮R) -e R IR͟R R#RRRRRR̯R묚RLELE IRF LGR LRR RlRR MR M,ɠ>ɛ7ɍ>)RۍRRRLAGFHRFhRRL`HLIRLNHRRRn `ML|G I RURS 9 I % KRLhKRA?ABAC ,BLPN`BRجӠĠ Os8ARAsetieRBLPN`ߍvRRsRtR LjRL7Os%< A= AA L7On@8AAAAAmAt" O bRLuOA ֍A8AA\B]BAARmAArical praise you may have regarding any of these programs are more than welcome. Karl Bunker 321 S. Huntington Ave. Boston, MA 02130 March, '88u know, and you can then order it by sending me a blank disk and return postage. If no new version is ready when I get your note, I'll file your envelope, and use it to let you know when an upgrade is ready. Any comments, bug reports, suggestions or hyste. To receive updates of /Doc.Stuff/, you can send me a stamped, self addressed envelope with a note mentioning the version number that's shown at the beginning of this text. If a more recent version of /Doc.Stuff/ is ready when I get your note, I'll let yoi 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 ΈRL7-screen, Dogpaw presents the text in word wrapped form on either the 40 or 80 column screen. As you can see if you're reading this from your screen, Dogpaw allows you to page forward and backward through the text. The "previous page" option is often extrem]_`abcdefghijklmnopqrstuvwx other text viewing/printing purposes. Dogpaw can also be "retrofitted" to any ProDOS-based software that has some not-so-user-friendly method of presenting on-disk documentation that uses an ASCII text file or AppleWorks AWP file. When displaying text onDogpaw: Dogpaw is a program for displaying and/or printing text files from the BASIC/ProDOS environment. In addition to its intended primary use as a means of presenting on-disk program documentation, I'm sure many will find Dogpaw useful for a variety of. JRR`RR J8RRRRR JhhRR`! 8Ri` WI͡R R`hh ^I ) LjRHH`ң ,'. 8RRR(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ΎRRRRmRRLJRR  P WI ^I0Qȱ ^IڈR8R~ P( P WIй WIR RR P`RR ^I I+ ^I WIR` `RmRRi?8RBRC ,RiRR`R8Rύ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 J8RRRRm$ eI bRӾϠΠҠԠLvI${% "FLJR L bR򍠠Ӯ宍 I` Os  bRžҠ( I$ bRӠŻþϠԠ͠ vI#( bR#R#`R$RQ *N"{% " B$ eI bRĠƠLvIR$RQ *N{% " B$ eI bRþϠŠŭLvIRQ *N{ % " % "$LRiRRiR L!#" IRI JRɣ+ɍ2 ɍ8RJR!8R JRʩ퍽L Lп I LRR LRHJJJJ Lh) ɰ,RP`RL% "RFR${ eI bRξҠԠŻ{O`RRRR JLZJLOLQRRR<>R=i?RmRBRmRC ,R qJLJLOLQRRȽɍ  KRQR(RRLE)a)` 9 I % " $ bRCHECK`PRINTER I I % " bR卍㾠ely useful, and is a considerable improvement over text-to-screen utilities that only offer one-way scrolling. Dogpaw also has a "search" option which allows you to scan through a file for occurrences of any word or phrase. If Dogpaw detects that it is running on an Apple II+, the on-screen text will be displayed in upper case, with lower case a selectable option. When being used to print text, Dogpaw prints with a one inch left margin, and has the option of printing a header at the top of each page. This Dogpaw and a small BASIC program, you could "publish" an entire book on a 3.5 inch disk. ("Disk Top Publishing"?) The page header option: To have Dogpaw print a header at the top of each printed page, the following syntax is used: 10 PRINT CHR$(4)"DOGPAW program could also allow the user to enter a string to scan the file for, and to select single or double spacing. A "table of contents" menu similar to the one in /DOC.STUFF/'s STARTUP can be used to let the user select from a number of text files. Using the file, it will return to "slot 0"; output to screen in 40 column mode. The STARTUP program on this disk is an example of a fairly complete documentation presentation system, allowing the user to select 40 or 80 column screen, and printer slot number. Arinter in slot 1, you would use a BASIC line such as: 10 PRINT CHR$(4)"PR#1": PRINT CHR$(4)"DOGPAW [filename]" Any initialization string your printer or interface card might need should also be entered before calling Dogpaw. When Dogpaw finishes printingssumes that the output is for a printer, and the text is formatted appropriately. As with other ProDOS commands, Dogpaw can also be used from within a BASIC program in the form: PRINT CHR$(4)"DOGPAW [filename]". Thus, to use Dogpaw to print a file with a p want to view. The text will be word wrapped for either 40 or 80 column display, depending on which is active when you call Dogpaw. If Dogpaw finds that the active output slot is neither 0 (40 column display) nor 3 (40 or 80 column) when it is called, it amuch like other ProDOS commands. (More correctly called "BASIC.SYSTEM commands", if ya wanna get technical.) For example, from the Applesoft prompt, you can simply type in "Dogpaw [filename]", with [filename] being the name or pathname of the text file youmat; you may have to select "save as ASCII text file" when saving your text. The file you're reading from now is a TXT file called "DOGPAW.DOCS" Using Dogpaw: When you BRUN (or "-") Dogpaw, it installs itself as a new ProDOS command, and can then be used ory will be loaded in segments, each segment being loaded as it is needed. For best results, ASCII text files for Dogpaw should only have s at paragraph ends (rather than the end of each line). Most word processors can save text to disk in this forso read APW SRC files.) Dogpaw will work with files of ANY length to the maximum allowed by ProDOS. (There are a couple of small qualifications to this; they are explained below under "Notes on minor stuff".) Files that are too long to fit in available memompressor program on the /Doc.Stuff/ disk. Compressed files catalog as type "$F8", and are about 30% smaller than equivalent TXT or AWP files; full information is in the Compressor instructions. (And for those hot-shot "developers" out there, Dogpaw can al either single or double spacing. Dogpaw will work with standard ASCII text files and AppleWorks word processor files. These are listed as types "TXT" and "AWP" in the ProDOS catalog. It also works with "compressed" type files which are created with the C paper is being used, and with some systems, by "printing" to a switched-off printer, this feature can be used to start (actual) printing at some given page in the text other than the first. Both the screen-displayed text and the printed text can be set toheader can be centered if desired, and can include the page number. While Dogpaw is printing, the number of the page being sent to the printer is displayed on-screen, and the user can pause or end the printing at page breaks. This is useful if single sheet [filename]\[header]" That is, whatever you want printed at the top of your pages is written in after the pathname of the text file, separated from the pathname with a backslash. The header will be printed at the top left of each page. If you want the header centered on the page, separate it from the pathname with TWO backslashes: DOGPAW [filename]\\[header] If you want the page number included in your header, insert the "#" character where you want the page number to appear. To have the page number aloneiles will look fine on an 80 column display, but will have lots of oddly-lengthed lines on a 40 column display. Case-convert for the II+: When Dogpaw detects that it is running on an Apple II+, the text displayed on-screen will be converted to upper case.ame]@\\[header]" The "@" must come before the "\" header token, if any header is being used. It can be used together with "+". When this feature is used, Dogpaw will print without a left-hand margin. Using "@" won't effect on-screen text; hard formatted find this happening, you can turn off Dogpaw's 70 column word wrapping and let the file use its own formatting by including "@" (circled "a", for "as-is") after the pathname when calling Dogpaw. Like this: 20 PRINT CHR$(4)"PR#1":PRINT CHR$(4)"DOGPAW [fileno Bulletin Board Systems. Because Dogpaw normally does its own word wrapping at 70 columns when it's printing, an 80 column hard formatted file can give you a messy looking printout, with lots of very short lines mixed in with normal-length lines. If you fw to print out a TXT file which has carriage returns inserted at the end of each line, and has the line-length set to 80 columns. This is sometimes called "80 column hard formatting". This kind of formatting is often found in text files that are uploaded tame]+ In my opinion, text on the 40 column screen is much easier to read if it's double spaced. A BASIC menu program can be configured to set Dogpaw to double spacing if 40 column display is selected. "As-is" mode: Occasionally, you may want to use Dogpale spaced. If you want a double spaced display or printout, simply include a "+" AFTER the filename, and BEFORE the header or search-string, if either is being used; like so: DOGPAW [filename]+\[header] or DOGPAW [filename]+$[string] or just DOGPAW [filenan-string in the Dogpaw command line will have no effect if Dogpaw is being used to print the file. The scan/search option can't be used in the same command line with the page header option. Line spacing: Normally, Dogpaw displays and prints its text sing screen, Dogpaw will flag the line(s) the string appears in by inversing the first character of the line. The string can be up to about 150 characters in length. The search is not case sensitive; entering "cat" will also find "Cat" or "CAT". Including a scm. If, when Dogpaw stops scanning and displays the page of text with your string, you press "S", instead of (for previous page) or (next page), Dogpaw will start scanning again for another occurrence of the string. When using the 80 columnurrence of the word "widget" is being displayed. Then you can page forward or backward as usual. If no occurrence of the entered string is found, Dogpaw will scan through to the end of the text, and the "end of text" message will appear at the screen botto10 PRINT CHR$(4)"DOGPAW [filename]$[string]" With [string] being whatever you want to scan for. If you enter DOGPAW DOGPAW.DOCS $widget then Dogpaw will put the file DOGPAW.DOCS on screen, and quickly flip through the pages until a page with the first occay. The scan/search option: When using Dogpaw to display text on-screen, you can have it scan through the text until a certain string of characters is found. The syntax for this is much like that for the page header option: DOGPAW [filename]$[string] or appear as a header, simply enter "#" as your header: DOGPAW [filename]\\# In the /DOC.STUFF/STARTUP program, the header "Dogpaw Instructions; page #" is used for the file you're reading now. The header option has no effect on Dogpaw's text-to-screen displ To accommodate II+'s that have been modified to display lower case, this conversion can be turned off by pressing "C". Pressing "C" again will turn it back on. When running on a II+, Dogpaw will put a prompt at the bottom of the text-display screen which explains this feature. Text sent to a printer on a II+ will not be converted to upper case. Dogpaw's 80 column mode is compatible with Videx Videoterm standard II+ 80 column cards. NODOGPAW: To remove Dogpaw and free up the memory it uses (about 4K), enteIMEM, which is lowered accordingly. Before relocating itself, Dogpaw checks to see if it has already been installed. If it has, it simply returns to BASIC, rather than installing a second copy of itself. When loading a text file into memory, Dogpaw will usood idea to do this before any printer use from BASIC, with or without Dogpaw. When printing, Dogpaw will ignore any embedded printer-control characters, AppleWorks margin and page-break settings, etc. Dogpaw BLOADs at $4000, and relocates itself above Hrally best to activate the printer (with PRINT CHR$(4)"PR#1", for slot 1) from 40 column mode. If the Apple is in 80 column mode, the 80 column firmware should be turned off with a PRINT CHR$(21) or before activating the printer. It's a gs with type TXT files, Dogpaw can page forward through AWP and compressed files indefinitely. Another "limit" on file size is Dogpaw's printout page numbering option, which can't go above 9,999 pages. When using Dogpaw to send text to a printer, it's geneill not work with files that require more than 20 segment-loads to reach the end of the file. Since around 30K is loaded in each segment (depending on the memory used by any loaded BASIC program), it's unlikely that anyone will be inconvenienced by this. Aate how far to back up to display the previous page. It shouldn't cause any problems. Limits: Due to the methods Dogpaw uses to translate AppleWorks AWP files and compressed-type files to normal text, full end-to-beginning previous-paging of these files w layout of the pages will not always be preserved. For example, you may find that the bottom line of a "previous" page was the top line of the page you "previous paged" from. (Normally, there isn't any overlap.) This is a result of Dogpaw's having to estim segments. This means that you could "next page" from the beginning to the end of a (say) 200K file, and then "previous page" your way back to the beginning again. However, when using "previous page" with files that have to be loaded in segments, the exact Dogpaw in immediate mode (that is, from the keyboard, not from within a BASIC program). Notes on minor stuff: The text-to-screen "previous page" function of Dogpaw works with all files, including those that are large enough that they have to be loaded inring "DOGPAW?" will display the title, version number and date of the Dogpaw program, and also the name and address of its glory-hogging author (me). This is handy for checking whether Dogpaw is installed. This same information is printed whenever you BRUNy set aside for routines like these, but won't "disconnect" them. Therefor, a crash becomes likely. In general, you should avoid using NODOGPAW unless you are sure that nothing that will cause problems is tucked away in the machine's memory. DOGPAW?: EnteOGPAW is used when certain other buffer-allocating programs are installed. Some such programs don't use either the ampersand or the added-command "hooks". Beagle Bros. "GPLE" and "D.BUG" are a couple of examples. The NODOGPAW command will release the memorpports daisy-chaining of other added ProDOS commands.) This shouldn't cause any problems with other added ProDOS commands or with ampersand routines - they will simply be removed and disconnected along with Dogpaw. Problems could be caused, however, if NODr "NODOGPAW". After this is done, entering any Dogpaw commands will result in a syntax error. Please note, however, that this command will release all the buffers that any other added ProDOS commands, ampersand (&) routines, etc. have allocated. (Dogpaw sue whatever room is unused by the BASIC program (if any) that's loaded. Dogpaw has its own set of error messages to let you know if things go wrong. Dogpaw supports pathnames only, not S(lot) and D(rive) parameters. Why "Dogpaw"? - thought you'd never ask. Very simple, actually: Start with "Documentation; Printer or Screen". Shorten that to "Doc.P.O.S." Now give that a couple of hard shakes & a slap, and VOILA! You get "Dogpaw". Obvious, huh? Karl Bunker April, 1988뮠捠묠䍠宍򬠳Ӯ宬 oL '`( (qɠ q 5 qq@ Lu .>:68荠򩮠ɠ堯毠S L{ % " 5 ɠР占宠{ 庠ꩮ Aɛ 5 rɿ LL LL  0% " 纠 Aɛ詍qiq E 㾠 :ɍɛLL'L {Z <{_  % "{& % "#{ % "!{ % "{  % " 5 򠢿ﮠ퍠â   L `*s+t, *Lu s%< =  L K 8st !8 " ӠΠٍ` < 0,<0YR % "{ + L HJ a L Ӡɠ򠣤= L 㾠 :ɍɛL L  LL 5    ii!! ` *Í- *  FELu `= l֩{ 5=D^GZ =D L E L L @ L% "{ 묠 :ɍɛкL  5 ELu  G% "{ 묠 :ɍɛL  5 ELu L Lu  y{|}~L7 廠L7 ɠ廠2݊ 3 32 2ɰ, έ2 `' d@ `q ` Lu ` Lu `   E Lu LT  5L ` `hh  L HH`LL,< 0 ,`ɛ`ɍAɈ ɕ"ͣ0)ߝqqL0q{Ф LFq L *q+, *`{G) 廠/ ԬРL   Lu  n q=ύ% " =qQpɮJʎq==q=pÝq{r q % "{ 庠 5ǩ Aɛ 5 =qFL qq@8 L  !ͧ qGLu 뮠ٯΠ :ɍ)  5 N LcL Lu  case and/or numerics will not be reduced at all. There is no limit on the size of the source file to be processed by Compressor. If the source file and object file are on different disks in the same drive, Compressor will prompt you to swap disks if and wffected by Compressor. The exact amount by which Compressor reduces a file's size will vary. Source files that include a lot of upper case and/or numeric characters will not be reduced as much as more ordinary files. A file that consists entirely of upperat it is a compressed file, and the new object file will be decompressed standard ASCII text. If the name you enter for the object file is the name of an existing file, you will be asked if you want this file to be overwritten. Your source file will be unarompts. If the source file is ASCII text or an AppleWorks AWP (word processor) file, the object file that Compressor creates will be compressed. To decompress a file, just enter the name of the compressed file as your source file. Compressor will detect thext files. Using Compressor: Compressor is a ProDOS-based program. It requires 80 column display and lower case capability. To use Compressor, simply BRUN it and enter the pathname of your source file and the name you want to give the object file at the pd will appear the same as the source file. This will be useful for situations where Dogpaw is being used to display large amounts of text, and disk space is getting short. Compressor can also decompress its compressed files, converting them back to ASCII tCompressor: Compressor is a machine language program which reads an ASCII text or Appleworks AWP source file, and converts it into a new file which is about 30% smaller than the original. This compressed file can then be displayed or printed by Dogpaw, an!qq ǠجӠĠңЍد ,'.  L=8=~ <( e L!`==ee  I+  =` ` 6 JJJ ) > JJJJJJ > )?J ) ) j0Lu   L ιθ`hhL` 8Lji`Lj 5 РٯΠ :ɍ).= == L:{ 5L ,L m!m  Qȱiq8mm` !  e  L2Qȱ0 ? ?Lhh j jLa{.8``Hh ,'. ` `&'&' "Lu ` q % "  塍嬠㾠 :ɍL ɛ Lj  3    3 o>>( $  JJ  j>  в    3   jL> j j   3 >  jL)  `,hen necessary. Just be sure you have the object file's disk in the drive when you first enter its pathname. The compressed file will be of type $F8 in the ProDOS catalog. This is one of the file types set aside by Apple as "user defined". For this reason, you may occasionally come across other files of type $F8 that have nothing to do with Dogpaw or Compressor. Compressor can only decompress files to standard ASCII text (type "TXT" in the ProDOS catalog). This means that AppleWorks AWP files that are compΠ Tɍ),~J ~~S L{ OLL # J 2 i p& Fѩ ő p p i #``)  i)`~ )  - p~ p i`Lja ɍ{.8``Hh ,. ɍ`"!!`Z[ VL` Q8麍`!ab  c % 塍嬠㾠 Tɍqɛ  O Р wy   m}}('L  iJJ  B} ! iз !! i    !!! B !L}  B! B ! i   }  BL,  ! T`  B! BLBCDE :GLk 뮠ٯΠ Tɍ)  O LLe ɡ30.Ȣ 1! ɍF1!ee Q klmn8v麍o!p kL m~ɮȹF~{  % "{ 庠 O [ɛ O~L݃9 򬠳Ӯ宬 oL'`; ; ɠ  O  Lo/+8$ ԠРL L , 4ύ% " ~ɯ~~ΠӠӠ䍠堯毠뮠묠宍 TɍɛLLf L { % " O ɠР䍠占  { 庠ꩮ [ɛ O ɿ LI L LL >% " 纠 [ɛ詍i, F 㾠 % "{'L {Z <{_  % "{& % "%{ % "!{ % "{  % " O# 򠢿ﮠ퍠âksltm kLs#< <= ? 4 L K %8sRtPS8RRSS /A % ӠΠٍL K %sKtLZ[$% #8v麍!!! >,0YRressed and then decompressed will lose any embedded printer control characters, margin and page-break settings, etcetera. ASCII text files can, however, still be loaded into AppleWorks, worked with, and re-saved as AWP files. Karl Bunker January, 1988 ``~ % i p~ phh`L% "{L, 0 ,`ɛ`ɍAɈ ɕ"0)ߝL0{Ф L` L klm k` ^L` ^L`IJ H`IJ H` `)a*b+ %$ E L%L$ C% "{ 묠 Tɍ ɛй L C EL&`'a(b  4%E% "{ 묠 T X8ɶ"Lf8ȩ8 P 8鶅  ȱSȱ< /3숱ȥɶ!reȱe ȘeiP ! / Y{ ! !ߍZ !!m!뭗m!ponL4F ,. ңԠӠŻþϠԠ͠ #( #!#`$ !P% " "{% " B$ ĠƠL !$ !P% " {% " B$ þϠŠŭL ${% "FLJ !(?2`L !(2` % "$!i! !#"  J1!6ɣ#ɍ* 1!ɍJ!8 JЩ퍙 ũ L!HJJJJ h) L% " !F!${ ξҠԠŻ{ žҠ( $ & / Q!{,!0 !`LL"! L퍙 ң` !PLLX !LJ`` ``hh p p ) L HH` 9 Q % " $ CHECK`PRINTER Q % " 卍㾠 Q % "! 砭㾠 ɍɛL !L!!m !!!!T w!JJJ ! !) iJJJJJJ ! !)?J !  w wJ wJ!!!!!L!`hhL !F JJJJJ 1!)?J 1JŌ! iJ CJLY 8!i`,!0@? ! ɠ3)L!,!!! !  L``!hh !F L! ! ,ɠ!ɛ ɍ),!^H!^h!L_L,!o @ L ,!0V!T 9 ]! !(+  ! ! ! {! !P !퍙 ! ! L ٩^ % "  ɍɛL v!!!!! Q% " `!,!0N!I-6! iJJJ 1!) iJ  ȱSȱ< /3숱ȥɺ!veȱe ȘeiP! / ]{! !ߍ^!!m!뭛m!ponm( K àL S P^! ٩ǠجӠĠңԭЍدDEF+@ X8ɺ"Lj8ȩ8 P 8P`~~ee  I+ i p~` ` P"!  L Le O % L F`ba,`LmTPmU  Qȱiq8''((m&&m''`P, >P  2 p iL2Qȱ pL~8~~ ( 2 iL i~DG [~[ L.L~HH  #L Ӡɠ򠣤~ L 㾠 TɍɛL #L ɛ L C EL)`*a+bL NLUS TR ## `&a'b( %LTiUiP#"" w ɠ8&"&'' iP` kÍn k % 7 FEL`~ l֩{ Om( K |àL S P^! ٩ Y!!(+  !! ! { ! !P!퍕! ! L ٩Z % " | ɍɛL r!!!Avߛy+a{AwqK؋u7 ߧ+ߑ7 &|i`q`߇{+k, qq{7"gk.Ӟ{MKߡϐ[]>Av_%Y.ӞߙM)awk.ۃi);qwa76._%Y.Þqwa7]ߢ ] %y w4nMK%y vZӢ7ϐ[qwY@t)qel)}wÆLמ6q7 vqG, 5 )qe(i,._%Y/7M7ai}w[ӠN2]L)9]&ÚM_ gsAeٓa{]>Av_%Y(tvkK"Cwk.P+,qh]$G3٥{w ȟ RAwg,l E2Y+i@DM߀2Y+i@؋K. Kߡ p[.M.積N6DDgߟ1I}w]GaBgqxi|ߖ}whsӚ7]ewp[.M.積N7DD|m,۟vvAg.K{c7M,.] ٓaw)qe(i, .E_%Y(D6AwK ߃q7x(ٓaw 1]"g\K iw$yR߀ff]>)qdtA]_e)qeӦۅ'߳}w3. p[.6}e}ewa{+K)9L2Y. w3vQ Rߖ߀Q(||%x˜ߐRA]߀)qeg\3wp[.~wAw72Y.ӦK(i/v߉))ۃiy. Kg.qL&aIٟ q`i`߇{+k)]ٟ%K,ZǑKv.)v.O)7%}OF3e&q7G]Ñ9]& ߑ(I,v.p٩ &v %K)Z.)e}OF)qeiY6Yfs3ܫvq Aw] ߍK i(i,]؋]!e߅}]&P ,ݱe]>M߃iKwGFÞBgؓpeK tӝ'iwKq !w agߩAw"gߖ]]>6Aw 9߃q6DS`Z+)DL..)ߓaAwqӞv{agIߍ| 9_Kٓq7Mߙ{,2Y, ۋx(ٓawLGCc3 ,v}e߬.2Y/vA]L] K gM7Q ۨYvy t]&BGFӞEaw,6ff]&Qy Lf@RAwp[.{K͓߀DpEawqDh)9{GI߃q7hI.}]C )qe,]!K'7hW..)߀/v]>v 7|(||%x˜ߖ}eway)qe(i,-2Y.7gؓpeZa.q7]؋ŠŭL ${% "FLJ!(?2`L!(2`L4Fr$ ,. ңԠ堣)qdt)qegwDk)Dffg]},Eaw_wvc7wKn ,{abG '7i]ك7siKvAg. 3.%y w_@R߀6}w@m.%y w '7, %x3K ߩ@i._%Y. ؋i߃: !%,vIiaa`C~Aw%H~._%Y.æAwg|H.!%,q7hW.hqKknwy.ðS`Eawi[| ٟc]>˩7 ؋g)t`IQiSE߀2Y+i@IcaaaEuP|uRE%y w}M)+De{ Aeq9]"G @iAw_%Y.ӞM,ߖ{:7Ki[|Q,57%y wqgq]&͓+_w9]& |&礓q.͓}w] ]HZ}i 7KeI.ߑ(I,]ewG\ QEERgߩAw  6Avqw+e.iK.}ewa{߀A]vAw[.Ki.m,u7 !(ei.ߟ6%K)7O/v6}w]Aw ~.+,&vAw9yߧeӦM؃`gAgQEERqq ۢG6_%Y,c7^M߀fgN@iwKv}&K~Aw`]=C9wÑ;]>wc74.v!_pYcaߛ+_yc]>{I Efw`e9e߀_%Y, tsYw ÙwiFy 9w @m.~.i]gwe.}ewqK g)7(i.Av_%Y/v6]dv.y+awiY6{N)G߭!;Bgߛ-y7yDYb]8D._%Y. w +Ӟz]?7iAeߩ@]]>M7!i,KL3ߓaP y #˘Rcߛy+awߒG3]!e؟7]&ffq7 '~q .h]Be Zew_"MHâ_tyffveAvy+awYf)wM7Aw%y wݢ]gi.z]c]>Av}  7I_ ..)u7u 7igۋge| %y w܋"e(.߭!7.u Nc؋3.Av_%Y.LAvEDfw˕~+ߩAv_%Y.@i..)}Y&w3hiIٟÑIQiSEGcEt߀IQiSE2Y+i@EuAvED]&ED ٟ+ ߡ]e,(Mf{ӞKa| ߩ@i.˩7wGt5 Aw|q_w K ۃiyw5Yf{+C:7wzbW.Ӧa7kv,57evEDӦ{NwAwq6 ߬.K ӦygpNe3n (K.N.ٓavZic7ai_g2Y,y w 7 ,7]Sq7}ew2Y,_wv m`q`ؙxמK%x3ߥ,e7K_%Y, 7 ~Ig/}KM0tZsYvy _ N{ߩAwb].GK.y+a@N}iiӞN &Þ{}t 7u7i`e[v)]c7w.G)v 7]~vq`߇{+k)]w%K,Yf.]; '}ZMy 7SqK&vVc7wݱeIߩ~!,g/7iF}˖ ߧ+  س%,Ky|%{aqKqÄ ;G$:(G$)27Ĭ*(G$)13440BI1:P1:LN0:LI$""T START PAGE::10::"-PRINTER NOT CONNECTED-":D$"PR#"PS::D$"PR#0":K(49152)128:K2754049168,0:10:"PAUSING - PRESS TO QUIT; TO CONTINUE.ER YOUR PRINTER SLOT NUMBER 1"(8);> "";P$:P$""P$"1"Z PS(P$):PS1PS7390 :8:" PRINTOUT SINGLE OR DOUBLE SPACED? S/D ";:SP$: SP$((SP$)32((SP$)96)):SP$"S"SP$"D"4202:15:"GET PRINTER READY AND PRESS "2: @230) J UPPER CASE SCREENER TF1(111):F2(112):JU0:JILI:JUJU1:UC$(JU)A$(J)""::768:111,F1:112,F2 ^J1JU:VT:UC$(J):VTVT2:: h PRINT DOC.S r:FLİ740 |PS1:(64435)6(64448)0420% :10:"PLEASE ENTETURN TO MENU";) 35,22::K141:240C K(49152):K128230X 49168,0:KK128s K32I10IIL1:L9 K13INK27 K13INII10:L9 K13INL10(IN1):IN "K2720 ,:VT3:UCİ330:230 6JILI:VT:A$(J):VTVT00160000166112177111201127176008201097144004041223145111200208239165112197116176004230112208229134112096":I134:767I,((CN$,I3,3))::UC1 I0::FLFL1:740: 23:2::" FOR NEXT PAGE; FOR ":2:"PREVIOUS PAGE; TO R4:"<2>-TEXT TO PRINTER":A d4:"<3>-RETURN TO MAIN MENU":a n4:"-QUIT TO BASIC": x6:21:">-?";:4:"<";:G$ G$"1"180 G$"2"360 G$"3"ĺD$"RUN STARTUP" (G$)27Ā 120 SCREEN DOC.S (64435)6CN$"N205:A$(N)D DOC.SCREENER BY KARL BUNKER VERSION 3.0[:(21)::D$(4)m:2:2:38)(I16:2:" ";:39:" ":22:38):<15:4:"/DOC.STUFF/"F9:6:"DOC.GETTER/DOC.SCREENER"P4:12:"<1>-TEXT TO SCREEN": Z%y w,i\DK9yw ߩAwkMv|7i_ ߀.y+aw(GFKK}w]~i , G6Oqqff߇{[ BgEKwLSe7]._%Y(Nu wiF,5;Z}wjOE7w[ &~wKv_%Y.pq7 vKi!%,C7[.}wu7"g^u7M' ;| }g܋ tpN},K]LN|Yfg)]w+_E+{RӦ\N.٥{wiB]]u 9e߀%y @vic7{|߇|(fwiF,57%y gZq Aw gFQE[ER߇{[ pN.IӢ7 ߀P!%,R ii,vEDk7wg);Z{K_ww ÑwӠNCf|%y wwEawuuKMevV߉L`s}ZdgӢ6y +ߛy+aw2]L,]"]>Ӥq~u 7M7Yf)G߭!7DaDZ.i`e[vy +ZAe.Ӟ~ˍSY+y NDCD_vv_%Y/}Ze}OF_%Y. vߓvkK"Cwk.Mu 9e߃vQi`e[v ";:G$:(G$)27Ĭ*:(G$)13520l10:"PRINTING PAGE "P::" TO PAUSE AT NEXT PAGE BREAK"&24:33,1:35,1:D$"PR#"PS036)"Page "P:::: ASSEMBLE LINEDIN1(LI$)70PR$LI$:LI$"":700:660.N(A$(I),2)" "PR$LI$:700:LI$"":INPR$A$(I):II1:700:660SX(A$(I),1)"-"A$(I)A$(I)" "xb(A$(I),2)" -"A$(I)A$(I)" "lLI$LI$A$(I):A$(I)"":II1:(LI$)70570v 70 COLUMN WORD-WRAPCH7051:(LI$,CH,1)" "(LI$,CH1,1)"-"Ă5PR$.":A$(066)" ":A$(067)"Doc.Getter.B: ":A$(068)"Doc.Getter.B is machine language"A$(069)"program. It requires 80 column display,":A$(070)"and will only run under ProDOS."A$(071)"Doc.Getter.B requires that the source":A$(072)"text file be ac.Getter.A. "(34)"A"(34)" is"A$(061)"for Applesoft, and "(34)"B"(34)" for binary. I'll":A$(062)"describe these two programs in turn"A$(063)"below, and then discuss the":A$(064)"Doc.Screener program and its"VA$(065)"variationsmentioned, Doc.Getter is a program":A$(056)"which processes text so that it can be"A$(057)"added to the Applesoft Doc.Screener":A$(058)"program. There are actually two"%A$(059)"versions of Doc.Getter on this disk;":A$(060)"Doc.Getter.B and Do(049)"module). Naturally, Doc.Screener can be"A$(050)"RUN under either ProDOS or (after":A$(051)"converting with a utility such as COPY"A$(052)"II PLUS) DOS 3.3.":A$(053)" ":A$(054)"Using the Doc.Getter/Screener system: "VA$(055)"As t-handling"kA$(044)"code and text itself all in one":A$(045)"program. Typically, The Dogpaw system"A$(046)"requires three separate files (menu,":A$(047)"text file and Dogpaw), and the Beexter"1A$(048)"system requires two (menu and BXT":A$ it has":A$(039)"advantages for some purposes. The text-"A$(040)"handling code is almost entirely in":A$(041)"accessible and modifiable BASIC, and" A$(042)"the Doc.Screener program is "(34)"stand":A$(043)"alone"(34)", with the menu, texrogram"kA$(033)"lines into Doc.Screener that establish":A$(034)"the string array and DIMension it."A$(035)" ":A$(036)"The Doc.Getter/Doc.Screener system is":A$(037)"not nearly as powerful and versatile as"<A$(038)"Dogpaw or Beexter, bute form of a new text":A$(028)"file. When this is done, you LOAD up"A$(029)"Doc.Screener, DELete the lines at the":A$(030)"end that contain the current text, and" A$(031)"EXEC the file that Doc.Getter.B":A$(032)"created. This will insert new pyou want to display, word-"A$(023)"wrapping it for either 40 or 80 column":A$(024)"screens, re-writing it in the form of"A$(025)"Applesoft program lines that load a":A$(026)"string (text) array, and then storing"FA$(027)"it on disk in tharks":A$(017)"("(34)"like these"(34)"), was performed by a"A$(018)"companion program called Doc.Getter.B.":A$(019)" ":A$(020)"Doc.Getter.B works by reading an ASCII"A$(021)"text or AppleWorks word processor file":A$(022)"of the text s text is"jA$(012)"actually an Applesoft BASIC string":A$(013)"array included in the Doc.Screener"A$(014)"program itself. The job of converting a":A$(015)"text file into such an array, with word-"DA$(016)"wrapping and embedded quotation mterface is much the same as with":A$(007)"Dogpaw and the Beexter-created BXT"A$(008)"modules (both also on this disk).":A$(009)"Unlike Dogpaw however, Doc.Screener" A$(010)"doesn't directly read and display a":A$(011)"text file. Doc.Screener' STRINGS 110:" JUST A SECOND . . ."A$(001)"Doc.Getter and Doc.Screener:":A$(002)" ":A$(003)"What you are looking at is a"A$(004)"demonstration of the BASIC program":A$(005)"Doc.Screener. As you can see, the user"PA$(006)"in(LI$,CH1):LI$(LI$,CH1((LI$,CH,1)" ")):700Z PAGE FILLED OR DOC. COMPLETED?IN1LI$""ĺD$"PR#0":49168,0:LN53570(12):D$"PR#0":LN0:PP1:480 PRINT LINEPR$""ı9:PR$:SP$"D"ĺ:LNLN1LNLN1:n AppleWorks AWP (word"} A$(073)"processor) file, or a standard ASCII":A$(074)"text file with s only inserted" A$(075)"at paragraph ends (rather than at the":A$(076)"end of each line). Most word processors"I A$(077)"can save text to disk in this format;":A$(078)"if you're not using AppleWorks, you may" A$(079)"have to specify "(34)"Save as ASCII text":A$(080)"file"(34)" when saving your text. "5! A$(081)" ":A$(082)"When you Brun (or "(34)"-"(34)") Doc.Getter.B,mpatibilities, you can also":A$(152)"customize this program to make any"./A$(153)"changes in its functioning you might":A$(154)"need. Doc.Getter.A can only read ASCII" /0A$(155)"text files, not Appleworks AWP files.":A$(156)" ":A$(157)"Doc.Scre, just convert it with"-,A$(147)"COPY II PLUS or whatever. Doc.Getter.A":A$(148)"is quite slow compared to Doc.Getter.B,"--A$(149)"taking a few minutes to process a file.":A$(150)"However, in addition to its DOS 3.3 and"K..A$(151)"40 column coprogram after using Doc.Getter.B.)":A$(141)" ":A$(142)"Doc.Getter.A: ",*A$(143)"For DOS 3.3 and/or no-80-column-display":A$(144)"applications, you can use Doc.Getter.A,"-+A$(145)"an Applesoft BASIC Doc.Getter. To use":A$(146)"it under DOS 3.3 cleanly clipped off at about $1400"+'A$(136)"by Doc.Getter.B. You can also (usually)":A$(137)"use Doc.Getter.B with a utility program"+(A$(138)"such as GPLE installed. (You may have":A$(139)"to hit reset to re-connect your utility"L,)A$(140)"A$(129)"up a floppy with it.":A$(130)" ":A$(131)"Doc.Getter.B can be run with a BASIC"*%A$(132)"program of less than 3K length (such as":A$(133)"a Doc.Screener with no string array"&+&A$(134)"lines) in memory. Longer programs will":A$(135)"bee current prefix under the name")"A$(125)""(34)"DOC"(34)". I use the RAM disk as a default":A$(126)"because the file Doc.Getter.B creates")#A$(127)"has no particular use once it has been":A$(128)"EXECed, so there's no reason to clutter"]*$M"(34)"), the new text file":A$(120)"that Doc.Getter.B creates will be"( A$(121)"written to this disk under the name":A$(122)""(34)"/RAM/DOC"(34)". If Doc.Getter.B doesn't"")!A$(123)"find a RAM disk, it will write its file":A$(124)"to thour Doc.Screener is going"'A$(114)"to be used with a "(34)"moved"(34)" DOS 3.3 that":A$(115)"allows larger-than-usual BASIC"'A$(116)"programs.":A$(117)" ":A$(118)"On an Apple that has a RAM disk (with"M(A$(119)"the name "(34)"/RAress ":A$(109)"(Override) instead of or "&A$(110)"when Doc.Getter.B gives you the "(34)"File":A$(111)"too large for Doc.Screener"(34)" error"'A$(112)"message. You might want to do this, for":A$(113)"example, if yc.Screener using 70"}%A$(104)"column strings is more memory-efficient":A$(105)"than the 40 column version, so there's"%A$(106)"room for more text.) If you want":A$(107)"Doc.Getter.B to exceed these limits for"E&A$(108)"some reason, you can phname of the text file you":A$(099)"want Doc.Getter.B to convert. The"$A$(100)"maximum size for the source text file":A$(101)"is about 42 ProDOS blocks if you select"%A$(102)"40 column word-wrapping, and 48 blocks":A$(103)"for 70 column. (A Doer; the end user can't select the"#A$(094)"display mode as with Dogpaw and":A$(095)"Beexter. If your Doc.Screener is only"#A$(096)"going to be used on 80-column-capable":A$(097)"Apples, you can select 70. Finally you"I$A$(098)"enter the patA$(088)"handle the display/printout of the":A$(089)"strings. Doc.Getter.B then asks you to""A$(090)"select 40 or 70 column word-wrapping.":A$(091)"This is because the Doc.Screener"$#A$(092)"program will only work with one or the":A$(093)"oth":A$(083)"you are first asked to enter a starting"!A$(084)"line number for the text-array program":A$(085)"lines. The default entry of 1000 allows"!A$(086)"plenty of room for the Doc.Screener":A$(087)"program lines that set up the menu and"a"ener: "o/1A$(158)"The program you're reading from is a 40":A$(159)"column Doc.Screener. There is also a"/2A$(160)"small demonstration 80 column":A$(161)"Doc.Screener on this disk. In order for"A03A$(162)"the "(34)"print"(34)" option in the 40 column":A$(163)"Doc.Screener to format the printed page"04A$(164)"correctly, there is one special":A$(165)"requirement on formatting your source"15A$(166)"text file. If you want to print a short":A$(167)""(34)"stand alone"(34)" line RN TO MENU "(14);:* r PRINT DOC.S K |(12):FLİ680:FL1:(12)[ PLĺ(21) PLĺ"Switch to 40 column":(26)"1"(21) PS1:(64435)6(64448)0450 :10:"PLEASE ENTER YOUR PRINTER SLOT NUMBER 1"(8); "";PS$:PS$"7"420IL1:L9 K13INK277 "K13INII10:L9V ,K13INL10(IN1):INc 6K2740s @(12):VT3 JJILI:5:VT:A$(J):VTVT2: TPLİ360 ^250 h24:3:(15)" FOR NEXT PAGE; FOR PREVIOUS PAGE; TO RETU)"Switch to 40 column"(26)"1"(21)B G$"3"ĺD$"RUN STARTUP"` G$"Q"G$"q"(G$)27Āi 140} SCREEN DOC.S I0:(12):FLFL1:680:(12) 360 35,22:K141:260 K(49152):K128250 49168,0:KK128 K32I10IOC.STUFF/) Z33:6:"DOC.SCREENER.80"L d8:12:"<1>-TEXT TO SCREEN":l n8:"<2>-TEXT TO PRINTER": x8:"<3>-BACK TO MAIN MENU": 8:"-QUIT TO BASIC": 8:20:"< >-?";:1403,8:G$ G$"1"210 G$"2"370% G$"3"PLĺ(12N023:A$(N)I DOC.SCREENER.80 BY KARL BUNKER VERSION 3.1 e(64435)6PL1: II+:D$(4):PLĺ"SWITCH TO 80 COLUMN"(D$"PR#3"::(12):(15)24:2:73)<I16:4:" ";:1403,76:" ":F4:74)(14) P35:4:"/Dcreener, be sure to keep line":A$(200)"number 5 free, as this is the line that"7FA$(201)"Doc.Getter inserts to DIMension the":A$(202)"string array.":A$(203)" "7GA$(204)"Karl Bunker ":A$(205)"March, 1988"7H$(194)"of the process I use here is that a II+"6CA$(195)"user can first have the text displayed":A$(196)"on-screen in upper case and then have"6DA$(197)"it printed out in its original lower":A$(198)"case form. When re-writing"R7EA$(199)"Doc.S, there"k5@A$(189)"are machine language routines that":A$(190)"simply scan a whole program in memory"5AA$(191)"and convert everything to upper case.":A$(192)"(One such routine is used in this"26BA$(193)"disk's STARTUP program.) The advantage":As string storage":A$(184)"area. Then the machine language routine"4>A$(185)"that is called scans this area of":A$(186)"memory and converts any lower case" 5?A$(187)"letters to upper case. Then the strings":A$(188)"are printed to screen. Of courses like"l3;A$(179)"this: When the batch of A$(J)'s that":A$(180)"are about to be printed on the screen"3<A$(181)"are renamed with the UC$(JU) = A$(J)+"(34)""(34)"":A$(182)"statement, Applesoft makes a copy of"E4=A$(183)"these strings in it write your":A$(174)"own menu for Doc.Screener. When you"29A$(175)"list Doc.Screener, you might be a":A$(176)"little puzzled by the subroutine" 3:A$(177)"labeled "(34)"Upper Case Screener"(34)". This is":A$(178)"for Apple II+'s, and it worklike the paragraph"16A$(168)"header above, the line must end with":A$(169)"TWO spaces, like: "(34)"Doc.Screener: "(34)" and"17A$(170)"a , or be followed by a blank":A$(171)"line.":A$(172)" "<28A$(173)"Naturally, you'll want to PS(PS$):PS0PS1U :8:" PRINTOUT SINGLE OR DOUBLE SPACED? S/D ";:SP$: SP$((SP$)32((SP$)96)):SP$"S"SP$"D"450 2:15:"GET PRINTER READY AND PRESS "; G$:G(G$):G13510 G27Ĭ 470I1:P1:TL54:SP$"D"TL27$ START PAGEG::10::"-CHECK PRINTER-":dD$"PR#"PS::D$"PR#0":&K(49152)128:K27580049168,0:10:"PAUSING - PRESS TO QUIT; TO CONTINUE. ";:G$:(G$)27Ĭ::(G$)135604D10:"PRINTLH Ӡɠ򠣤H L 䮠  M# Lst Ls%< =  L膯 0 ,L`ɛ`ɍJɈ)%ɕ+ɿMN0)ߝLb0{Л LLL驵 LH % "0{ ` 㾠 ɍ ɏ ɛL L  LңǠͯΠ͠ΩҤجӠĠhh LHH`L,K0LBH{H%H Jh% "h{h`LL,K021)"capability in its 80 column mode."QA$(022)" ":A$(023)"Karl Bunker"W"can't read an with a BASIC "(34)"GET"(34)". I haven't included my"A$(019)""(34)"convert to upper case if running on a II+"(34)" routine, because a II+"*A$(020)"with an 80 column card will almost certainly have lower-case":A$(is"WA$(015)"Doc.Screener uses are compatible with the Videx Videoterm standards"A$(016)"usually found on II+ 80 column cards. It also avoids prompting for an"RA$(017)" press, because the 80 column firmware in un-enhanced IIe's":A$(018)ll this, and because more text is included in each string,"A$(011)"an 80 column Doc.Screener can handle larger blocks of text than the"A$(012)"40 column version.":A$(013)" ":A$(014)"The inverse, HTABing and other screen-printing functions thA$(007)"together) its strings and then re-wrap them at 70 columns before it"A$(008)"can print them. This uses up a fair amount of memory, and requires a"=A$(009)"pretty dang complicated program. Because it doesn't have to go":A$(010)"through ain"YA$(004)"Doc.Getter.B. I wrap the strings at 70 columns rather than 80 so that"A$(005)"when the strings are sent to a printer, there are comfortable margins"A$(006)"on the page. The 40 column Doc.Screener has to concatenate (stick"O168,0:40PP1:520) STRINGS I10:" JUST A SECOND . . ."A$(001)"Doc.Screener.80:":A$(002)"This is a demonstration of the 80 column Doc.Screener. The text"A$(003)"you're reading was formatted using the 70 column word-wrap option ING PAGE "P::" TO PAUSE AT NEXT PAGE BREAK"SN24:33,1:35,1:D$"PR#"PSkX36)"Page "P:::b PRINT STRINGSlEPITL:EPNEPNvJIEP:9:A$(J):SP$"D"ĺ:IEP1 PAGE FILLED OR DOC. COMPLETED? D$"PR#0":EPNĹ49/ Ӡ̠͠٠ΠҠӮ`R " ӠΠٍ` M#K PYR % "{'L {Z <{_  % "{& % ""{ % "!{ % "{ ʝ}P{ % " 򠢿ﮠ % "{ 򿠨򠱰MN ɛ TURN> FOR 1000) ";N$0 <:N(N$):N0N1000l F" 40 OR 70 COLUMN WORD WRAP? ( FOR 40) ";RP$ P:RP(RP$):RP0RP40 ZRP40RP7070 d" TEXT FILE NAME? ";RD$ n480 xD$"VERIFY"RD$:D$"OPEN"RD$ D$"OPEN"WR$:D$"CLOSE"Wd DOC.GETTER.A BY KARL BUNKER VERSION 3.0; NOV. '87 THIS PROGRAM IS PUBLIC DOMAIN D3(977): DOS 3.3 FLAGJ1:D$(4)::(WR$"/RAM/DOC":D3WR$"DOC": CHANGE IF NO RAM DISK 2" START STRING LINES WITH WHAT NUMBER? ( for '"DF$"'):"::"";EX$EX$""EX$DF$:D$"OPEN"EX$:D$"CLOSE"EX$:D$"DELETE"EX$12:"Working . . ."14:8:"[";:33:"]";:!D$"OPEN"EX$:D$"Wy<DF$"/RAM/SCLU.FILE"JFD3(977):D3(64435)6DF$"SCLU.FILE"aP Menu for set upZ12:"Start program lines with what number?"d"( for 10):";NM$nNM(NM$):NM0NM10x16:"Increment by what? ( for 10):";IN$RP1:60:24:1:868814::" DONE? Y/N ";::G$H (G$)27ĀG$"Y"G$"y"Ė1:868:LI24:CH$(LI)"":MO$(LI)"":PSN1:PMX%(LI)1:230 Set up for line-writing(:D$(4):HL$"N":VH0:RL122490:34,10: Menu & 'Working' displa Control-C(ommands) or -T(itle Screen)?CCH3CH201230YHLLI:2490:2770{LI124:RP1:LI:60::LIHL ? Also 'goto get-character' for much of aboveCH27230: QUIT EDITOR; BEGIN WRITING PROGRAM LINES I)MO$(LI)"N"1`:PMX%(LI)PSNPMX%(LI)PSNCj Up-arrow?YtCH11LI21190|~(MO$(LI),PSN,1)"A"RP1:60PU0:LILI1:I1PSN1(CH$(LI),I,1)""CH$(LI)CH$(LI)" ":MO$(LI)(MO$(LI),I)"N":PMX%(LI)PSNPMX%(LI)PSN,7PSN1MO$(LI)(MO$(LI),PSN1)(MO$(LI),PSN1)[PSN1MO$(LI)(MO$(LI),PSN1)h$RP1:60{. Down-arrow?8CH10LI231130B(MO$(LI),PSN,1)"A"RP1:60LPU0:LILI1:I1PSN1V(CH$(LI),I,1)""CH$(LI)CH$(LI)" ":MO$(L$"N":DL1:2706PMX%(LI)40PMX%(LI)PMX%(LI)1oPMX%(LI)40CH$(LI)CH$(LI)" ":MO$(LI)MO$(LI)"N" Un-insert characterPSN1CH$(LI)(CH$(LI),PSN1)(CH$(LI),PSN1)PSN1CH$(LI)(CH$(LI),PSN1) Un-insert character mode":MO$"N":2703z(MO$(LI),PSN,1)"A"RP1:60KPSNPSN1:PU0:230^ Left-arrow?sCH8PSN2950(MO$(LI),PSN,1)"A"RP1:60PSNPSN1:PU0:230 Delete or ^D?(CH127CH4)PSN21070PSNPSN1:PU0CH$" ":MOLI)"":PMX%(LI)1:RP1:60:LILI1:RP1:LI:60:GVLI1GVLIV4 Control-G(et)?~>CH7GVLI:MO$"N":CH$(127):370H ?RCH13PSN1:RP1:60:PU0:LI24LILI1\ Right-arrow?fCH21PSN39910pPSNPMX%(LI)CH$" (G$):G10G11230 G11LI1CH$(LI1)CH$(LI):MO$(LI1)MO$(LI):PMX%(LI1)PMX%(LI):CH$(LI)"":MO$(LI)"":PMX%(LI)1:RP1:60:LILI1:RP1:LI:60:GVLI1GVLI@*G10LI24CH$(LI1)CH$(LI):MO$(LI1)MO$(LI):PMX%(LI1)PMX%(LI):CH$(LI)"":MO$(O$&:RP1:PSN40:PMX%(LI)40:60@ Control-S(horten)?PCH19770qPSN1CH$(LI)"":MO$(LI)""PSN1CH$(LI)(CH$(LI),PSN1):MO$(LI)(MO$(LI),PSN1)PMX%(LI)PSN:RP1:60 Control-L(ift/lower)? CH12820G$:GPU1 Control-Z(ip)?,CH26720ePSN1CH$(CH$(LI),PSN1,1):MO$(MO$(LI),PSN1,1)PSN1CH$(CH$(LI),PSN,1):MO$(MO$(LI),PSN,1):PSN2:CH$""CH$" ":MO$"N"IPSN40CH$(LI)(CH$(LI),I1)CH$MO$(LI)(MO$(LI),I1)MVGH1(CH$(GV),GH1)""CH$(GV)(CH$(GV),GH1)" "(CH$(GV),GH1)y^(CH$(GV),1)(127)CH$(GV)" "(CH$(GV),2)h Start going through lines of textrLI124|D3Ĺ43602,0D$"CLOSE":AS$AS$"*":14:9:AS$; :D$"APPEND"EX$:D$"WRITE"EX$% CH$(LI)""RL220708 NMNMINC:NM;T  Find repeating lines RL1ĺ" NEXT":RL1:CH$(LI)""NMNMINC:NM; CH$(LI)""2070 CH$(LI)CH$(LI1)MO$(LI)MO$(LI1)LIVH1LILI1:RLRL1:VHVH1:1740!RL1ĺ" FOR J = 1r SCLU-dunnit screen layout!>. Title-page commands listX. 11:"SCLU Commands:". 13:"Control-N/I/F/A: Nrm/Inv/Flsh/Mouse text";. "Control-B/E: Begin/End of line". "Control-D/: Delete character" / "Control-P: Insert (Push/Pull;:I134:"=";::" ";::" ";a- " ";::" SCreen Layout Utility ";::" ";|- " ";::38);::" ";- " ";::" By Karl Bunker ";::" ";- " ";::":"36)":";::" ";- "/"38)"\";- :. AnotheSCLU-dunnit screen layout!T,P Non-MouseText box; for II+'s & un-enhanced IIe'sa,Z (21):t,d :"\"38)"/";,n " ";::":"36)":";::" ";,x " ";::" ";::"==";::" SCLU ";::"==";::" ";::" ";"- " ";::" ":"ZWV_";J+ "ZWV_";::" SCreen Layout Utility ";::"ZWV_";k+ "ZWV_";::32);::"ZWV_";+ "ZWV_";::" By Karl Bunker ";::"ZWV_";+( "ZWV_";::32);::"ZWV_";+2 "Z";:I138:"\";::"_";+< :,F Another (64435)6(64448)23426406* MouseText boxL* (21)::49167,0n* :"Z";:I138:"\";::"_";* "ZWV_";::32);::"ZWV_";* "ZWV_";::" ";::"[[";::" SCLU ";::"[[";::" ";::"ZWV_"; + "ZWV_";::32);: CW$CL$" FOR I = 1 TO "(RP)":? "(34)C2$(34)";: NEXT "n) CR$""CW$CW$": ? "(34)CR$(34)) CR$""PMX%(LI)40MLCW$CW$":?") CR$""PMX%(LI)40MLPMX%(LI)0) : Repeater's exit from CW$ processing ) Title boxes"*/(. CL$"":P22CL$(34)(CW$,P22)(34)B(8 CR$(CW$,PSN)[(B Repeating spaces?n(L C2$" "2420(V CW$" ?"CL$"SPC("(RP)")"(` CR$""CW$CW$(34)CR$(34)(j 2460(t Other repeating characters?(~ CL$""CL$"? "CL$";:"C)' No repeaters found?C'P2CW$"? "(34)CW$(34):`' Count repeating char.sx'RP1:PSNP2(CW$)' CH$(CW$,PSN,1):C2$(CW$,PSN1,1)' CH$C2$RPRP1:' RP20S2P2RP:S2(CW$)202220($ RP20S2(CW$)20P20:2270EX$:"is ready to be EXECed.":34,0:f& Long subroutine: process same-mode sections of CH$(LI) & Repeated characters?&S22& Re-enter here&P20:PSNS2(CW$)&CH$(CW$,PSN,1):C2$(CW$,PSN1,1)&CH$C2$P2PSN:PSN(CW$)'ԭHL$"N"GVĺD$"APPEND"EX$:D$"WRITE"EX$:NMNMINC:NM;^%HHL$"N"ĺ" NORMAL";:GVĺ":";%RGVĺ" VTAB "GV": HTAB "GH": GET G$"%\:NM1;" REM Another SCLU-dunnit screen layout!"%fD$"CLOSE"%p14:9:I124:"*";:%z15::"Done!"'&:2$PR$PR$" FLASH:""$HL$M2$9$ Go process textC$2190i$PR$PR$CW$:ML1880: More left?$(CH$(LI))40LI24PR$PR$";"$ Add text line to program lines$ PR$$ Get next text line$ LI$* END DIS BIZNISS!$4:%>#MO$M2$PSN(CH$(LI))##Z#CW$(CH$(LI),S11,MR):S1S1MR:MLS12(CH$(LI))s#PR$""PR$PR$";:"#M2$"N"HL$M2$PR$PR$" NORMAL:"#M2$"I"HL$M2$PR$PR$" INVERSE:"#M2$"F"HL$M2$PR$PR$" FLASH:"$M2$"A"HL$M3ĺ" HTAB "HT":";:CH$(LI)(CH$(LI),HT)::MO$(LI)(MO$(LI),HT){"D Find sections of unchanged character mode; set mode"NS12:PR$"""X Re-enter here"bMR1:PSNS1(CH$(LI))"lMO$(MO$(LI),PSN,1):M2$(MO$(LI),PSN1,1)#vMO$M2$MRMR1 TO "RL:NMNMINC:NM;*! Do a VTAB?G!LIVH1ĺ" VTAB "LI":";Q!VHLId! Do an HTAB?!HT1:PSN1(CH$(LI))!CH$(CH$(LI),PSN,1):MO$(MO$(LI),PSN,1)!CH$" "MO$"N"HTHT1!&CH$" "MO$"N"PSN(CH$(LI))!0PSN@":HT) mode"8/ "Control-Z: Repeat (Zip) to screen right"i/ "Control-S: Clip (Shorten) line at cursor";/" "Control-L (with arrow): Lift/Lower line"/, "Control-G: Enter a 'Get G$' at cursor"/6 "Control-C/T (either): Show this screen"0@ ": Exit SCLU editor"F0J 24:"Press to begin, to quit:";o0T Another SCLU-dunnit screen layout!0^ 24:40:G$:G(G$)0h G27Ā0r G1329100| :("Zip") The character to the left of the cursor is repeated to the right-hand edge of the screen. This is useful for drawing the tops and bottoms of boxes. Typing a space and control-Z can be used to jump the cursor to the right-hand side of the screen. Cmode to normal. Control-B: ("Beginning") Cursor jumps to the left-hand side of the screen. Control-E: ("End") Cursor jumps to the right of the last character on the line. Control-S: ("Shorten") All text to the right of the cursor is erased. Control-Z: is in BASIC, it's pretty slow while in insert mode. /Control-D: Delete character to the left of the cursor; with pull-back if the control-P insert mode is active. II+ users can use control-D in place of the key. Deleting resets the text xt to the right of the cursor will be pushed forward when new text is entered. If a character is deleted, text to the right of the delete will be pulled back. This mode is usually off, and will be turned off by using any arrow key or . Because SCLUs: Move the cursor; II+ users will have to use control-K/control-J in place of the up/down arrow keys. : Moves the cursor to the beginning of the next line; doesn't effect the content of either line. Control-P: ("Push/Pull") Enter insert mode; teesn't allow lower case inverse). Control-F: Text will be flashing; upper case only. Control-A: ("A" for "Apple".) Text will be MouseText. Note that the 40 column firmware doesn't allow both flashing and MouseText characters on the same screen. Arrow key A brief summary of the editor's commands appears on SCLU's title page. Here is a full description of the SCLU editor: Control-N: Text entered will be normal. Control-I: Text will be inverse; only upper case can be entered (the 40 column mode firmware dohout having continually to "round trip" between editing and testing your program. SCLU is useful for designing more-or-less elaborate "title page" screens, and for situations that call for one or a few screenfuls of neatly formatted text. The SCLU editor:nd SCLU will translate what you have typed on the screen into lines of BASIC code. These lines of BASIC are written into a text file that you can then EXEC to enter them into any BASIC program. SCLU lets you experiment with a variety of screen layouts, witram. The editor allows you to enter normal, inverse, flashing and MouseText characters. (More about MouseText below.) It also has several word-processor-like commands to help you design your screen. When you are finished, you quit the editor with , aSCLU SCreen Layout Utility SCLU ("skloo") is a neat little utility program which allows you to quickly and easily design 40 column screens of text. Using the SCLU editor, you simply type the text onto the screen as you want it to appear in your BASIC progontrol-L: ("Lift/Lower") If you've entered a line of text and then decide it should be lower or higher on the screen, you can move it by first pressing Control-L and then the up or down arrow key. The line the cursor is on will be erased and re-written on the next line up (if you pressed up-arrow) or down (down-arrow). The line that was previously in the next-up or next-down position will be replaced by the line you are moving. Control-G: A "GET G$" will be executed at the cursor's position. This will appeU IMAGE2.MOUSETXT Letter-to-MouseText chart printer for the ImageWriter II m By Karl Bunker z(21):(3:"MouseText character chart printer"2"For the ImageWriter II"<11:" to quit" F1:10:"Printer slot #? 1"(8);ter II printer, the program "IMAGE2.MOUSETXT" on this disk will print out a similar listing. Karl Bunker October '87U, you'll need to know which letter corresponds to which MouseText character. A letter-to-MouseText listing is included on the Beagle Bros. "Peeks, Pokes and Pointers" chart, and in many Apple-oriented books and manuals. Also, if you have an Apple ImageWriLU uses MouseText. From within a BASIC program, it can be determined whether an Apple can display MouseText with the following PEEKS: If peek(64435)<>6 then II+; no MouseText. If peek(64448)=234 then un-enhanced IIe; no MouseText. To use MouseText with SCLvailable Apple II clones have a MouseText character set. The MouseText characters consist of open and solid apples, a variety of arrows, lines for drawing boxes, etc. If you have one of the MouseText-capable machines, the title page you see when you run SCAs many of you will know, MouseText is a set of graphics characters available on the IIgs, IIc, and "enhanced" IIe. IIe's manufactured after March, '85 are enhanced; older IIe's need a ROM upgrade to display MouseText. I believe that all of the currently awith alternating MouseText and normal characters, SCLU will crash with a "STRING TOO LONG" error. Other overly fancy shenanigans may cause SCLU to write an illegally long BASIC line. Be half-way reasonable, and SCLU won't sclu things up. About MouseText: in this case at least, programmers are smarter than programs. SCLU's code will, however, (barring bugs) do the job of recreating your screen design. Limits: SCLU can't handle absolutely all possible screen displays. For example, if you fill a screen line ten code added to, and EXEC the file SCLU has created. The BASIC lines that SCLU writes will not always be the most efficient possible. It may use a "NORMAL: PRINT SPC ( xx)" where an "HTAB yy" would be more sensible, for example. Just goes to show that, ss at the file name prompt to accept this name. The translating of your screen layout into BASIC may take a minute or two. After completing the translation, SCLU removes itself from memory. You can then LOAD the program that you want the SCLU-writhe line numbers, and the name to use for the text file it will write the lines to. If SCLU detects that it is running under ProDOS, it will have a default file name for the EXEC file it creates of "/RAM/SCLU.FILE". If your Apple has a RAM disk, you can pre is a backspace.) : Quit the editor. You will be prompted with "DONE? Y/N". The SCLU "translator": When you exit from the editor, SCLU prompts you for the starting line number for the program lines it will create, the amount by which to increment tith its list of editor commands to jog your memory. You can then press to return to the screen you were working on. There are two control key options for this command to make it harder to forget. (I couldn't use Control-H(elp), because a Control-Har on the editor's screen as an un-blinking cursor character. Only one Control-G is allowed on a page. Control-C and Control-T ("C" for "Commands" and "T" for "Title Screen".) Either of these control keys will do the same thing: display the title screen w:PS$ PPS$(27)ĺ:8 ZPS$:PS(PS$):PS0PS1E dPS770Q n868: x"Get printer ready and press ";R$ D$(4):D$"PR#"PS (27)(33)(14)(27)(97)(50) " MouseText":" Characters:": I6495 (27)(36)"  "(I)"= "(27)(38)(I)2 :(27)(36)(12)@ D$"PR#0"