8L2C)pJJJJ IH(ȱH:=IH[H`@HcH  $ +   I/H`JLNGȄBȄF aK  haaFF  mJm# KKJ UJ )J ۈ) ;J3ȱJFȱJGJKaȄM  aaNNJFLGJL LC! $ " " &#M8nf $ ) L! " " &J, )7(P0  ( @p !"0 *%"0"" &/) )"" &ЭL!)0I0 (Щ ߍ (MORE.CMDO! )MOUNT.CMD/! *(TYPE.CMD! ,UNFORMAT.CMDD! 0u,!(COPY.CMD! .)COPY.CMDS! *EXEC.MAKER !*FILTER.CMD! ,*FORMAT.CMDg! 1)MENU.COPY !+(.PROPACKER.DOCSM !READ.DIRECTORYA#PBEM!j-(PBE.INFO:!-THE.EXECUTIVE *! (TIME.SETo! ,CMD.DOCUMENT! ,FILE.MANAGER^ x!)COPY.OBJ0k TYPE.OBJ0o ,HYPER.FORMATq ! .PROPAK.STARTUPw !@-PROPAK.SYSTEM(! .PROGRAM' &PRODOS: / ,BASIC.SYSTEM&(! 'STARTUPMENU< !'DEVICESG!)DISKWORKSJn!p -DISKWORKS.DOCY? &PRODOS `DaElH$?EGvѶK+`L HHLy XP LM ŠϠĠӠS)*+,+`F)) (*=GJFjJJA QE'+ '== `@ STSP8QSS8 m P o R(8R)f 8'  )ɀ)4,- U JNT)  !N)Gi/ "4 "" " " iL X%!L!ΠΠҠ`  !"#$@~@}J@` ߩ%S @ ~`E hhhߺ0 h ߐ# ߐ ߐ ߐ 0 HϭߍLпllllhh8` QSTV،h@ihAiȱ@JJJJq@)@evȱ@Hȱ@Ah@@cee J) LxL LxJiB LxJ) GxNhHHHHL(  ްƠx@BEOD  ް(`( C)CJJJlBJ,~آ <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  @`bLJCAB@=?,<ʆ>*=?BC8 é&'112`݁(݉(`}(`e`H)hJJ?(0JJ)` (< ( < *? ( < (? ( < (? ( <*? * **? *? *? ( < *? ( <((ȱ( Y'( ' f'L&`L' 'L' Y' L& Y'L'8ei` ,$`ee` `( '( (` *( ' (`hh8`8`(l&j"L  <8# ȱ)ɀ  )t& ` (Xp< @t& )mt&t&.t&w& Mt&i  ``rȱȱȱȱ0]cȱeem(ȱ(ȱ((ȱԠŠҬîʎ1DžϠl&8f ZHH)hh8JhJJJJJ j&Hk&8H) 12 (j21 h!hH h %)Ђ12H)M0 h10200I20h2 |&`L($_뿩 8!@8` MNЩUMܩ  L 5   8 0 8 `0 / x X$$%&%0`ŠӠЭ[ V7 c L '0%O '8O JmO * ʈ0  0ŠϠĠ͢Š͠͠ϠŠŠϠĠخ͠ ͍B B(8`;YYZLYLYLY"7"Y"/"ll"*# HQ$WON!-PB}OBiB ,m# m# J Qڨ)̰n]e мȱ ; ̀𩠙< iO P F V >Z SY ɘL` X _ 'P0ōҍJJJJ ɺi) ɺiLD )?      `l@Hȱ@IױHXATȱH ɯȩ׍̞5H)/@a)_ .0 :A[8@`,뎞׮Б` L` @>_)I38Ypqם`K8`@Nȱ@O@ IiNȽבN)/ȩ/N`@[ WHJjjjhA <'KI؍_JJJJح}) ) )в|J8` GpF $ ᭔ع+ؠ HH  Jh8` 䮑ٽ ٬ؠ@` ( X )8`)i пJGBJ a FإG`BH aFإG`H hHB؅F  ؅GxDE؍00C ް(`(8` L7J  G"L H  G 9ؙ` @ P8`B8` X؈ ;JHIH ILFFHGI ѭJjHIH;7IؙJJ g3HIHILJKJK`FHIG ( Ȣ؝؈JL)eKM`)` J Jͫ $0 ΚJFJL8`0C ް(`(8`ؑ@`M8`8@ؐʈI묒)8 L LةC8`؍)@ i)8zJ _ ؅F L) +&J(b ;FإGؐ/8`*J۩ ٰ`JJJJi LdH8`ͦ ٍ0  ` `ٍyٍiB0H0FG h0`שB5xED "8`  `ٽJJJJ`H͜hn)NjNjNjN. dH͜ ;٭ *Nۙ۰ڙک `Z8` d# B` . . .8۰0٭)ܝ٭*ܝ٥F٥G٭'ܝ٭(ܝ`) 8ʈ` )0ٝ)i `8`R "ꍜ NمFمG < Μ0 FGL鮑0 ٭٭ٽ8`H8`  ,0 d01 E8`100 v$0ʩGF 밽 谸 谳`12)1`0`Ȏi 0U`)8`θ` )W G JA)H ܝʈh٭ )ȱHθ`Κ8QeHI SBF0Y ٙWٙUFZSʈ {猺`8m0`,0H hi L荸Ƚθhٍ0GF8yאFG  `* ΙQ8`5IF܅G 됾`\܍]^ {8D`F` tlH)HFȍZHG[ $%܍&܍!ܢ8* J8` L ܝJ)I 'ܝF`R8i^F\G]`R5IH3H (  밯ZF[G 밠S%܈P" X)Im'܅F(܅G)܍^*܍Q 4 䭐 $H %HFFHGHG 됨`R8`)` QH_` :R(5IHH__Ѝ_@`8 e ͙_ʈ@}ȱ@oȱ@y{|rZ[_)7_I0ܢܽ \'Q*ܩu 7pqFG (ST L܅I^ mQIH` } }Y0\F]G Q_HZF[G` G8`F@ 0 e LK8`F GI8`FHGH hGhF܌ բFܽܕF芝ܝ 밶FFGG H܅I mIIHHyHȘI Lܝ` @o@ w@Ю׍_)m0JHi 뎑`C8` @ 3N@) d莽 ⭺i`0 v0GF #0 W,0 ).H hȑNWȮّNW8`ٍّNθ0NN` H h)N$% LL L L H  :pJ덯 )@፲NJOK HiKKήή IJί JФ̭JjHFIH HIGxKE ް((H hH h8`8@ȭ@LH쬒8NNO 8 ؍JL`RήʱLN.MOMEKP/MEKήLML-M O,p莭eNNO(`JNKOL H/  :P L8 gؑJ`L@ȱ@LL`BLLޢޢޢޢޢޢޢޢޢޢޢޢޢޢޢCOPR. APPLE,1983LM Mh@8nЍLޭ 0J @,,L:,L@   !"#$Ԡ͠ˠĠԠhhhhILhH),dx8 (8`@Ae f!55s+aIJK,-NOPQRSuHUSTON!' J5 s9X(K sXXK تKo`V8`no` < on sI9XX`)HJJJh`OeNeO࿰ s9XАO`@ȭ@` ON YNJKO`HHHHх܅F݅G ` ͬ 밽܅F݅G ` * % L`FGL 4܍ݍ8`FHGH 4ܙhGhF`@Bɼ>K@yٙ٩`O dIpFqG :%&N  # 4܅F܅G `J HH hh` 0 @ L\L# [Tܝ ݝ0ȩFG  0` רם__)׍_pFqG 밍 hPם8`;Zx3QTTSRWVUHEVhEhH)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Ӧ>` Ր+>YL 8!9 詍` "  à4"/pŠϠŠà͠ӠàԠŬ%'()*+,-./0123456789JJH !h穖tp% ;"Z/݀>">"' 1" 7"5).莀/ ;" " 6" >" 1"6"$ "g"" !"""""IzLLG ASTARTUP$#   / XXύX?klmnÍoL) "6L'?"(0`6708" = ***)< &@DEF   %LҠؠӠ΢ϠԩҠŠƠԠԠŠӢɯϠҠůȠԠĠ ƠϠ ɘɉ ɈL :Lɍ)ې)ɮ۰ɺH h 'ĝL  LL L)'L L L'L  (L(L $ʩ $$ $L `ީ % XʩXύX X A %  % ɍNH hɛɘɉɈ $ Lc :Lcې)ɮ۰ɺ'Ɲ Lc  : X i % $ɛ$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| H06172839h` v97L75v^a ?/( va?LLLɍ$?`?a ɍɥAH93827160hH46576879h`,C bL ɍ b w,S0 @ lLޭB 鸍긍$I2 U)VJ зT)`l8`a HbIJhjǾȾɾ p٭b=aSL/id /`H) hJJJJ ɺi` M  ` ת.8 `O`S  AI-L9 ᪰B C VW>m>` _m8injkiljo풼i>?Ek?>Q>> L> \/ e>>?́?ޱ>ȥpnG @p;G=po:Q>>>̀ `` \> ̀ `e>>?́?>?Emn(>e>ȱ>e?>Q>ؠ> ie>>?`|;}=:<~:<=;`||m};>:8o>oȑ>ppȑ>> :op`G DKJپھ pHJh` D!hgt}~p `~t}p8n~ni}tpi~~tso8pinii>j?k̈́>~|p|Ii||̈́ l - `>i>L8933LΞAAJL ةޘг uv $ 8LƞaЌ>?@`>?@`B8` K  춼LK ҟ ҟ ( KK`HJJJJ8`HK)` #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?` w  vLl@$݅3`(l8L3LX>(Ƀ,`3,G0]ɾ g` H`پ_پ p _پ׾`>( p۾m׾) W)ʩ@`ɾ>(O puȾ ɾ-O ]c־Jjjj `O>0O l PODEF޾ p ޾ p($ذ v (0 ( L?ԦʚLeةީa s  lL b,FLg,DL,C0$3 >@ Ɉ 3ɾꩈL(3ɾ;Ƀ B94 l% bʽ  ՚,S` H Eо VV :$ZA@L8 `u-U -W b WW)JJ :T$K \0IDK : :5K 0.)K :쭼󬮼XK`L9L^ :K mY ܩ 8jK` J,, ( 5̪ ` J, ̪ ` J, `)a)_ͩ`0:8 `)H"H ת תh}I תhm8`0 :AG8 `) ת `..`SI-SRRX)sƬƀ#(ZZV4G_0=( A P FjL\5p-e9ABSAVERIFYBLOADELETEBYECATALOGOPENWRITEXECREATEFRESTORENAMEBRUNLOCKCHAIN#FLUSHREADPOSITIONOMONPR#PREFIXCLOSEAPPEND6D(!쫂8 ( 8о(־Ǿ,G 8`_`W)H־Jjjjh p̭ fLᶢǾ ת..8 ۭ (8mȾȾmɾɾʾiʾ` Lpl8l:/,s`\"׾پӾؾھ pD`־ǾY׾ؾOW)ݩȾɾʾ pD`8`W)CB) 5W) =)W)@! pZ}ȾȾ󰹩 p` ־ǾҾ,G 8`׾ؾ f p vۥs׾tؾE` `޾Lp h־Ҿ,G0^W)TP) ecfdپھ׾ؾӾ p$c d pccddީ 8`ȾɾʾNfne}ȾȾI>Ie f`8` P־ǾҾ,G0C f=W)_`:_`蹀:`V)8`MN; b;`;C b N8` G)̀#:蹀:`V)R ޾,N0MHhHh p' L,N HCNh`M`M N N `9V) ` V) ޾ p`  (8` 8`8`(W)`_V)Ij!؍Í`_ FjЭW)`_ Ͼ pH Lh8`jGMоM  G)p pY)ικ`lP *,N!ǾȾɾʾ pǾ~H h8`8`,C  8` ȾɾM$ mHݓǾ phϾ pH Lh8`Ͼо־ǾҾ_` 볩Ӿ pW) "LEC`C )莼 з l6 7= /& /8Hh /` 6Y׾ؾ+پھ p|پɾʾ`HV)jh츾$-#Ͼ p о־޾Ǿ` 8` 8`ɾ)ɾ̸ ɾɾ0miȾ ;τ<:: <`:8` e eվ'OV)Jj зf Ja l + ѱ:ji Ĥ Ƀ B ,  簰 ` l])Y 񩢍`Ⱦɾ0Ǿ p1׾ؾ  p p ٷ H rh(`׾ؾ` : ߭׾t8퍼mؾŰ펼t폼 L28` ˌھپLp k V)@W0!XY X6Y7` YX`X:Y) F з8` # `l׾ XYW0V)4W׾ؾ_`)0%I0)3]8X^YȰ8` 8` p Ⱦɾʾ8`پھW)@%ZȾ pSԩ p`S pLjÍ FN I 9 : ׾hؾ  p hgͺ칾`LٷV)jC mMjà Lp `VJJ°L9Lp з)< L з L緭W)8VJưϥ3 켼 `F`4W)ɐ/XYjV  kimljn` pg׾mȾXhؾmɾYtѮȾɾ aYX`8g@I5gN Oz @n[Dz @nd0,~z @`$仫@v$⩔,C[B?I>孓`仫6VtCicQĿUKqtVt N(A$)06AA29:3601(A$)02AA31:360E(A$)27ĉ::N$770j.D$"CLOSE":D$"PREFIX/"BX1:E1200:L$(E)""::(4)"FRE"tD$"CLOSE":E1200:L$(E)"":E:150A$"L"F$(L$(X),2,15)::X;"*";F$::(4)"LOCK"F$cA$"S"Ģ2(O)(O)(O)(O):L$(X)""1010Q (A$)13F$(L$(X),2,15)::X;" ";F$:c A$"Q"ĉ:: (A$)13(L$(X),18,3)"DIR"ĺD$"PREFIX"F$:D$"PREFIX":"";P$:1140 (A$)13ė:(4);"-";F$ (A$)11XX1:RR1 (A$)10XX1:RR1):I13200::23:"L = Lock U = Unlock D = Delete S = Stats for selection. ":830 A$"C"U2ĺ:(4)"PREFIX/,D1"::1220 A$"C"ĺ:(4)"PREFIX/,D2":U2:1220 A$"P"ī1550 A$"L"A$"U"A$"D"ī1190$ O16336:G(O)(O)lection.":XA:R5:C1: R5C1XA29:R19:C29:810V R19C1R5:C29:810r R5C29R19:C1:810 R19C29XA:R5:C1 *R:1403,C >R:1403,C:A$:A$"S"Ĺ1403,1 fA$"T"ī1370 pA$"/"ī1070` zA$"S"Ģ23:1:(L$(X),60X15),18,3):RR1:X:21:1403,1:"Cnt-F Page Ahead Cntl-B Page Back Arrows Move C-Change Drives":22:1403,1 O"Return = Select 'Q' = End / = Top Prefix T = Read Txt P= Printer":23:1403,1:"L = Lock U = Unlock D = Delete S = Stats for se;=>?@ABCDE:DX5:A0 hA1ADA0 rR5:AA1:BA14::20::1:1403,5::" VISION SYSTEM "::2:1403,5:"Diskette ";B$:3:1403,5:"Files ";D:XAB:R:1403,1:X;:X10ĺ" ";r N(L$(X),1,16);" ";(L$(X),18,3):R:1403,29:X15;(L$(X15),1,16);" ";(L$( d1820n1206x(4);"PR#3":D$(4):L$(200)X1:(4);"PREFIX":B$::1:1403,5::" MST SUPSTART "::2:1403,5:"Diskette ";B$:(4);"OPEN ";B$;",TDIR":(4);"READ ";B$"S$:XX1:X5290@S$""L$(X4)S$:290 J(4);"CLOSE ";B$ $      `堺a!b!c!d!#`  l! !`  N$ $j$!!m!m!$  L!!! !"L#!k$  !"L#  N$ $l$`l$Rd !"L#k$j$H  Y V"` TX\`d ` `RM) # >$  jjJJJJ m m 8$  %  &  J # >$  ` # >$ # >$! " ` e! <"` G! 6#` 6! LLLwLLL) `8` ԠŬLLʮq$6,⨁ K6, VtI=v!gNVt Vt  lg~T3:1403,1:L$(E):I12200::"L = Lock U = Unlock D = Delete S = Stats for selection.":810A$"U"F$(L$(X),2,15)::X;" ";F$::(4)"UNLOCK";F$A$"D"āH1200:L$(X)""::1090iF$(L$(X),2,15)::X;"-";F$::23:"  ":23:"**** DELETE FILE  Y/N (>";:C$:C$"Y"A$"":12202(4)"UNLOCK"F$:(4)"DELETE"F$:A$"":1220Z(L$(X),18,3)"TXT"ī1220d1470nF$(L$(X),2,15):::(4)"OPEN"F$:(4)"READ"F$ K$:FH read all other devices) MX(48945)5 NUMX1= J1L $IMX01^ .RD(48946I)h 81500 BDI(J,1)DR:DI(J,2)SL:DI(J,3)TY LJJ1 V `  convert rd into dr, sl, and ty 959,RD 928 DR(960)1:SL(961):TY(962)  20001000A("Device #","Drive","Slot","Type"M2I0NUl<I,DI(I,1),DI(I,2),DI(I,3)rFx actual routineDI(14,3) store last device accessed in di(0, )RD(48944)1500DI(0,1)DR:DI(0,2)SL  ":49041,M2(J7):J7Ĺ49040,(J8)32KD J8Ĺ49040,J32KR F12F0l P$"P"P$"p"FF12 49043,F:49042,L::20:" SYSTEM DATE AND TIME UPDATED"::" (DOES NOT SET CLOCK/CALENDAR CARDS)":S12600:::(4)"FRE":1102940( L10L(A$):A$;:L592940x 27:P$:(P$"A")(P$"a")(P$"P")(P$"p")(P$" ")(P$(13))3060 (P$"P")(P$"p")ĺ"P"; 18:2:" CORRECT? Y/N ";:A$:18:2:G$:(A$"N")(A$"n")3190l 2760-v 15:8:" " ":15:8:"ENTER TIME: HH:MM AM";Y 20:"HH";:20:A$:(A$"0")(A$"1")28206 F(A$):A$;:A$:(A$"0")(A$"9")2820^ F10F(A$):A$;:F12F12820| 23:"MM";:23:A$:(A$"0")(A$"5")2940 L(A$):A$;:A$:(A$"0")(A$"9")J3:J39ī2510 24200 NN1:N4ī2470> J(J1)3m 27:"YY";:27:A$:(A$"0")(A$"9")2580F M(A$):A$;:A$:(A$"0")(A$"9")2580n MM10(A$):A$:18:" CORRECT? Y/N ";:A$:18:2:G$:A$"N"A$"n"2280* 13:8:*13:" ENTER DATE: DD-MMM-YY";Y20:"DD";:20:A$:(A$"0")(A$"3")2300. K(A$):A$;:A$:(A$"0")(A$"9")2300V KK10(A$):A$;:K31K12300t 23:"MMM";:23:N1:E$"" A$:E$E$A$:A$;:J4 E$(I$,J,N)ī2550 J"-";:M10ĺ"0";>MXH:" TIME: ";:F12L0K0ĺ"":2210hfF10ĺ"0";pF;":";:L10ĺ"0";L;:Q1ĺ" PM"Q0ĺ" AM"18:" Update system date and time? Y/N ";:A$:18:2:G$:A$"Y"A$"y"Ģ22:11032)32:M((49041)2):J((49041)M2)8((49040)32):M$(I$,J31,3):L(49042):F(49043):F11Q1}F12FF12F0F12" The current settings are:":::" DATE: ";:K0ĺ"":2120K10ĺ"0"; K;"-";:M$; ":L$"***************************************":J$"* *":I$"???JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC"::L$:J$:"* SYSTEM DATE AND TIME UTILITY *":J$:L$:10lK(49040)((49040)O$::(4)"PR#"P:(9)"80N":"Directory listing for prefix (> ";B$;" File count = ";D:N$:S1D:L$(S):::"-------------------------------------------------------------------------------"::T999ı:(4)"PR#3"::G$" RKING....":(4)"OPEN FILE.CAT":(4)"WRITE FILE.CAT":T999:1680:(4)"CLOSE FILE.CAT":1780g,106" WHAT SLOT IS PRINTER CONNECTED TO ?";P::P1P5ī1560T"Enter a heading for this report (> ";N$::"READY YOUR PRINTER AND PRESS RETURN (> ";K$;:1440T216,0:(4)"CLOSE"F$:::" PRESS KEY TO E X I T {} ":Q$::1220::"PRINT FILE TO (D)EVICE OR (T)EXTFILE? (>";H$:H$"D"H$"T"ī1550H$"D"ī1590_(4)"OPEN FILE.CAT":(4)"CLOSE FILE.CAT":(4)"DELETE FILE.CAT"::"WO <  poke m/l routine into memory from $3A0 to $3C2K I928958W M:I,M] c   173,191,3,41,15,141,194,3,173,191,3,74,74,74,74,41,7,141,193,3,173,191,3,10,169,0,42,141,192,3,96 bq zL{{ z  bq zL{{ ɺ+ɰ'ǰ! z zLez zLyL{{)JJJJ8Tt z) z zLy ii z`i= zii z` z(T` z(IH) hIIHh(T` [JUT`@ z뺠򺠰,0#,Ɉ5ɕ4Ɋ3ɋLny,PpL{{LqyL/z/LqyLhzLyLyLyLz ̅ ")JJJJ) } ~ z`Lqy zLz zL{{ zLy zL{{ z dyy dyy` אx y  {E x #{E x  w }  LKp | x )`ɛɍɰɺ`8`LxhhE8`ͩ}}L퇠ɍ,ɤɠ LUu1퇬 ) #"i  X`"# a~LKp%,ɛhhL(u` ҰT#)񇽼 { |ɍɛB) и퇌#  Lu ''LDx  LNpא K ɍKp X%LJ L Ut { |ɍɛ)ЌTtt{ LKpɿȯ̩   |ɍɛE)߬퇙 ߮  d  ,  LNp {I ɍ 6uͩ% 6u 6u }s { |ɛ[ɍɷɱɶs   "  sis76 s8293 a~ LKp  LNp` XT ɛ, XLɛDɱɳ, +)****퇭,ɱ 퇭퇍} }+,!$   LKp  |) XL  LNp t% }i}}:; S:; 6u; 6u t }i}} ɍɠ?IKLMNOPQRSTUVW whhLw`L|#" wLMq}}}} ʍ}}L|}}} ~`LNpp qn ll }()*!$+, { |ɍɛbɱɸ+ ){ |ɍc{pLqɽLt Q|0})pjjjji!$ X }L| ^~L{{sp pqp轅prpLKpпppqqppbqSrUurrq.ssstt}}LUu}}LUu  wLp}}}#}}}(HTh) z(HTh) 0i0i}i<{ ɠ? `Eiil,af zʎ,bMHʎ   ~L{ ~@LyɄ! ,P)ߍ,LyLQp Q|LKp ,|H,h ,|`N|O|P|{% zN|O|P|`, X ] `-cFfG s空 ii ;>(A0 =, X` {Ш{С{К{Г{Ʃ{п{и  }쮍危ﬠ쮠򠤱򠤱쬠宠笍 DiskWorks Ӡ㩠卍ᠢ墠ݠ۱ӠȠĠԠɯϠ䮠䡠䮠䮠ĠҠҠ렣렣庠Ԡ򿠨ٯΩɠؠ翠ȩﺠؠ𠠠۠àРؠҠ˺堨ɩȺ򍿺РѺ EDIT (Solid Apple) Mode ɠ󠠠Ⱥ򠠠ƺúĺ󠠠Ժɠ̺ɯؠ砠к庠Š庠Р۠à COMMAND (Open Apple) Mode Һ䠠렣ΠάΠ׺렣ΠάΠ뺠庠Ӷı庠 àĠŠƠƍ庠Ġ堠庠ŠEFV)W ZXZYVEmXEFmYFVWȭEF` d'*  .. 00Ll` 퇩 ,0$ ,0`W0 0 ii`}B ̦?  E EiE > > ɠ? <=>?BЎ`}} d `H{h [`ʩEF E0'  EE0 F0   FFEF`  ` I ihh8``ʎW(2S(})*= 񇽬 ,2 pHK8HL}  LKp z  y  `  ~ ~ ~   `L `EB B}}>?<= ?=} }LKp}}}}} }} } F})ɰ=   ) *   L}) *  ) * 7 ) 7}}} ^~  `} }``hh  '&+DiskWorks is a "user supported" Sector Editing Utility for the Apple //c and Apple //e with 80 column card. This program will automatically con- figure itself to read 512 byte "blocks" of data (ProDOS and Pascal disk formats) or 256 byte "sectors" of data6,0:J1 @R$(FILE$,J,1)- JR$" "350< TJJ1:320Y ^FILE$(FILE$,1,J1)"/"t hPRFX$PRFX$FILE$: r::34,3 |2000: 216,0 FILE1:K1:O((NUM8)9) FILENUMFILE1  MAIN MENU F0::. FF$"FILE.MANAGER 2.0]_`abcdefghiNLOCK,19,DELETE,26,RENAME,33,COPY,38,RUN,43,QUIT< 5000J EXITST 230{ :::D$"- "PRFX$"BASIC.SYSTEM" 10:"PLEASE INSERT THE "PRFX$" DISK"::"THEN PRESS RETURN"; A$:A$(13)ĺ:220 5000: , ERROR HANDLER 621 FILE MANAGER 2.0$1600<(4);"- COPY.OBJ0"T(4);"- TYPE.OBJ0"n(4);"PREFIX":PRFX$~(OPFX$PRFX$dD$(4):BELL$(7):D$"PR#3"A(X)X(((X1)9)9)B$(51):I07:TB(I),OP$(I):I2 2,VIEW,7,LOCK,12,Us machines only. Sorry, folks, but you have to draw the line somewhere... Both ProDOS and BASIC.SYSTEM *must be present* in RAM before you can run DiskWorks. ou access our Semi-Technical Semi-Support Semi-Hotline) and our catalog of truly ama- zing products. Because the author is thoroughly disgusted with 40 column displays and the limitations of the Apple ][ series computer, this program will work on // serieS. But please remember that DiskWorks is "user supported" - if you like this program send us a check for $10 so we can afford to keep writing software like this. In return, we'll send you a manual for DiskWorks, a user identification number (which lets yrm. All commands can be entered in upper or lower case ('R' or 'r' to read a specific block) and shifted or unshifted characters (both '>' a'.' will read the next block). Feel free to give a copy of this program to a friend or post it on your favorite BBde, and the Solid Apple (SA) key is used to activate the EDIT mode. It isn't necessary to hold down either the OA or SA key when entering a selection - once a mode is activated you only have to press the key associated with the command you want to per- fos 280 blocks (or 35 tracks, 16 sectors per track) for Non-ProDOS disk formats. To see what commands are available in DiskWorks press either the '?' key or the '/' key to bring up the HELP screen. The Open Apple (OA) key is used to activate the COMMAND moXZ[\ (16 sector disk formats such as DOS 3.3 and CP/M). If the disk format is ProDOS or Pascal, DiskWorks will adjust to the size of the device selected - anything from 128 blocks on the /RAM disk to 65535 blocks on a 30MB hard drive. The default set- ting i "DRIVE$" PREFIX: "PRFX$a LL(FF$):LL73DRIVE$DRIVE$" ":FF$"":515j FF$| 7:18:N$:8 "=========================================================================": &"# PROGRAM TYPE BLOCKS MODIFIED CREATED ENDFILE "q 0"- --------------- ---- ------ --------------- --------------- -------" :J(FILE)(FILE)8 D:::JNUMĺA(J);" ";B$(J) NJ X20:1 b"-----------------------------------------------------------------:::F$:(F$)52100O:::(F$,12)"BLOCKS FREE:"N$(F$,40):N100:2100z :::(F$,17,4)"TYPE"(F$,1)"/"2100*:::B$(D)(F$,72):DD14N:>D$;"CLOSE ";PRFX$:HNUMD:B$(D)" RETURN TO MENU "R: ::216,0 RUN:""- ";FULL$-1600CD$"-";FULL$:930N QUITV:r READS DIR INTO B$()12:33:"ANALYZING DATA"D$"PREFIX "PRFX$;D1$D$"OPEN";PRFX$",TDIR";D1$:D$"READ"PRFX$:D1N13:F$:N451 ORTED":A$::1580|ER19LN1570ĺ"DUPLICATE FILE NAME ON DRIVE "D2".":"REPLACE WITH NEW?";:A$:A$"Y"A$"y"ĺ:D$"DELETE"D2$;FILE$:1570ER19ĺ"DUPLICATE FILE NAME...":"FUNCTION ABORTED.";:1670216,0:BELL$;BELL$;:A$::940 N IS MISSING FROM YOUR":"DISK. CAN'T VIEW FILE.";:30nTER6ER8ĺ"DISK NOT FOUND IN DRIVE ";D2;:1670^ER4ĺ"DISK IS WRITE-PROTECTED... NOTCH IT";:1670hER3ĺ"THERE IS NO DRIVE ";D2;:1670rER9LN1570ĺ"TARGET DISK IS FULL...COPY AB MISSING FROM YOUR":"DISK. WON'T WORK NOW.";:20LER16LN1570ĺ"COPY FUNCTION IS MISSING FROM YOUR":"DISK. WON'T WORK NOW.";:1670MER16LN1020ĺ"TYPE FUNCTION IS MISSING FROM YOUR":"DISK. WON'T WORK NOW.";:16709OLN20ĺ"TYPE FUNCTIOD$"PREFIX":P2$VSAME0:PRFX$P2$ĺD$"RENAME"P2$",/TEMP/"D2$:SAME1:P2$"/TEMP/"v"D$"COPY "FULL$","P2$;FILE$,SAMEĺD$"RENAME /TEMP/,"PRFX$;D2$6940: @ ERROR TRAPEER(222):LN(218)(219)256:4JLN15ĺ"COPY FUNCTION IS ";FULL$:D$;"RENAME ";FULL$","PRFX$B$:D$;"LOCK ";PRFX$;B$:930: [ FILE COPY958:"INSERT TARGET DISK IN DRIVE "D2" AND":"THEN PRESS RETURN TO COPY...";J11500::49168,0A$::A$(13)9401600D$"PREFIX/ "D2$:$:B$""940}1415CD$;"RENAME ";FULL$","PRFX$B$:930]ER(222):ER101430nER16160021:958:BELL$;"Invalid Filename: ";B$:"RETURN to try again, OTHER to quit";:A$::A$(13)14009401600I216,0:D$;"UNLOCK71330*(D$;"DELETE";FULL$:9302216,0::(222)10ĺ"FILE LOCKED! DELETE ANYWAY? (Y/N) ";:A$:A$:A$"Y"A$"y"940<(222)10ĺD$;"UNLOCK";FULL$:D$;"DELETE";FULL$:930:F1600 x21:958:"NEW NAME: ----------------";:11:B(13)1040(4)"PR#3"*:940: 51600SD$"LOCK ";FULL$:930: ^1600~D$;"UNLOCK";FULL$:930:  DELETE FILE21:958::"DELETE: ";::FILE$:"ARE YOU SURE (Y/N)";A$:A$"N"A$"n"940A$"Y"A$"y"130 EXECUTE COMMANDTA(I1):21::A1000,1200,1220,1300,1400,1500,1700,1800,830i::34,3::370::34,3::390: 1600:VIEW FILE::23D$"TYPE "FULL$::49168,0::23:7::"PRESS RETURN TO CONTINUE";: A$:A$:CTB(I)::OP$(I)::VH9:"SELECT:";::"<--->";::" BACK: ";::"ESC":|R16384,128:16368,0:K(49152):\K21II1:I7I0: RIGHT ARROWfK8II1:I0I7: LEFT ARROWpK13920zK27ĉ:34,3::400830 1"E$"9"ĺBELL$;:660CF(E$):GFFILE1:GNUMĺBELL$;:660ZF10:2::"->":FILE$(B$(G),2,15):LR:FULL$PRFX$FILE$  OPERATE ON FILE*FILE$"RETURN TO MENU "70004I0:34,20920::868>21::J07:TB(J):OP$(J);--------":' lK(FILE9)2:KOK1M v21:4::" SELECT BY NUMBER ";:t {29::"RTN";::" FOR NEW DRIVE"; 52::"-->";::" SEE PAGE "; K;" OF ";O 21:22:E$:E$(27)7000 E$(13)6000 E$(21)FILEFILE9:410E$"5050)(4)"VERIFY FILE.MANAGER,D1";DV$"1":5070F5060h(4)"VERIFY FILE.MANAGER,D2"zDV$"2":5070DV$"0":5030"SORRY THERE WAS AN ERROR":DRIVE$"DRIVE "DV$216,0A$DV$ PD1(A$):D1$",D"A$:A$"":D22:D12D21ZD2$",D"(D2)-dDSK$"XXX"Dn GET VOLUME NAMEO5380~(4);"PREFIX/"D1$::(4);"PREFIX":PRFX$T(PRFX$) STRIP ALL BUT VOLUME NAMEC2T::::(PRFX$,C,1)"/"C$(C$,C):CTC:216,0:370:  v ɍ`I@!?!H!H H)hJJ 0JJ)&  ֹ!Hȹ!Hȹ!!I`ϠҠYiY}Zi]}[jYZi]}YiYZi]}YiYZi]}YjUZj]]jjYZj]ZjYZi]}ZjYZi]=COPYҺԠͮٲĠŠҮҬϠԮŠӮſٯΩԮŠĮſٯΩ٠ĬϠҠŇ٠ĬԮŠ٠Šćܾھ px&־&پ&ھ p[ pT pM & & & & p) p"&޾ pL#&&޾ p&L#&&޾ p&޾ p& ɍ&L#8L  pL$Lr% &͸ Lr%P& ɍ)_YLd%)L$v& ɍ)_YLd% Í p,Lr% & Í & & & pLr%&ξ&Ͼ pLr%о޾Ǿ&&־۾وi/ȑ/)qq i/)qqiL# pL & & & & 8( p!о־& p'Lr%&&`&&&&حlm &)RSTUA"-"P."Q`8L&&np8&8ɾɾ-ؾ&׾پ&ξȾ8ؾھ&tϾ& ɍ`lm no pL$G< = Ǿ pL#)L#ȩ/ȑjlmnYiYZi]}YiYZi]}YjUZj]]jjYZj]ZjYZi]}ZjYZi]=  ɍ`@"?"& 8" "S W R V ``R S V W ` Q U H)hJJ 0JJ)0 Y Q U Y Y Q U Y Q m W S R V Q U Y `Ϡ͠ҠנćYiY}Zi]}[jYZi]}(7)(7)D20:"INSERT DISK "OPFX$" AND PRESS RETURN ."N:X$q:D$"- "OPFX$"BASIC.SYSTEM"w3:"OPTION MENU"6v8:25:"1. RETURN TO PROGRAM"N10:25:"2. EXIT"v12:25:"3. EXIT TO BASIC.SYSTEM"15:21:"ENTER A NUMBER FROM 1 TO 3 AND RETURN"X$X(X$)X1X3ĺ(7):7060X7200,7400,7600 5101800ER(222)-ER8ER65000: TRY AGAINDER3A$"1":5200Q216,0:Z"216`,i6370}p CHANGE DRIVESzDV$"1"DV$"2":6040DV$"2"DV$"1":6040::"SORRY, THERE WAS AN ERROR!":5070X MENUb:l5:3حlHmIH٬!)RSUTD!-!P.!Q`8LL tϾξ pо־޾׾پȌھȌؾ pȩ Lp ɛɃ۾TYPE 0W"'' X$ $ ɰɸ & $ ɱɲ _")****W"ɱW" W"3& $$ ʩ Ɉɍ#ɮɰɺ )۰ )a' i`'Q& $ ɍɛL)" "P"'X"Y"Z"[" M"Z"hX"Y"vxyz{|}~_)s<˽쉺[[03  3K3ܾŢʳ۳سҳ؞سҳ؞ԳֳǩiQPiEi@ H ` ?@`P@Qjj JjGM^~'? %?JjjM^~'? %?jjJjM^~'? %?ϷM^~? eG^~'?MR^M_O'?%?ϷMR1?B/B/ObObOb'.9&!(O?= -#*"' $ <" ''L _" e5"L ) ` V"``'L" `*  .. `W"H)p'h轊'#'' G$''' h# # #''͝' ' G$L"'`Hɠ& $hprstuh'''hʽ'hʎ' M"Z"Z"ߠ" _"P"`\"X"Y"''!Z"[" M")Z"["''''Z"["Ү'''1΅'Ά'!Lf!L\" _"! h"ɱ ' $L!*' $L!P"hX"Y"Z"[" M"*\'ԳֳֳֳdzמǞ3Ƴ֩Ӿ蹾 _______s3Ks333K3Գؽ33m ֳdzسݳֳs3_ 33ʳʽ3Ӿ33s[[[&. 0_ &% B$&[{ ~%z ${{{sS3T33_)3232323232323223 3 3c۱3亞33  s?'3_3:lγ뺳33s z0s3_S3s M3K3ҳמӾs{{3 vz[33ۢs__3_3K3ݾ؞!38!!3ʳʽ3_)3K3dzҳ׳؞ʳʳdzֳ؞׳ݞ3ڞs[3{_ zzs3s37sΨ뮭33ʳʽ3_);8#ڼֳܳܳמس3(s zzs3_SsB3K3dzdz؞׳ݞ3ڞ73m 3_S3Y z3c~ _,  _,3K3ܳƳ۳ܳ֬3_)s03ֳֳ߳֞ݳԞʳʽ3sɽ7  &%$s1s(3ֳdzسݳֳs3_[33֩ 3|_)_ z 3 ٮ0ʉ3:_0 ʉ3:_l3K3Գʳҳݳdz؞ֳ߳ײ3+_)ǿע3K=3+_)ǿס333ʳʽ3s3K3מݭܳܳܳƞ3ש3|ڞ33__)3K3ֳֳسݳֳs3_333 3K3P3Ǭʼݺ3__)3K3dzݩֳ֩ 333ǩֳ 33ssss3ڞڢsڡs_)ڢssss_%_%3Kʳʽ3_)ۢۢٙ3210s z4zs3$3 !_D39̢3 _3í3s3P3׳ֳֳϡ333 3׳dzֳϡ3ۗ3 33: ۢ3 _3T_53ֳdzמʳʽ3_)3Ӻ32103ڈT3F 3سײl۾+۾* zۺۂ3j۾ ۺ763_S36 z3_Ss zzs+* 3_S3s33K3Գܳؽ33 3O331Һ3æ3s3K3Գʳʞ׳˳؞333C3T_3سߞʳʽ3_) :+*$Ӻ33ڈN3K3DzԳ߳dzֳֽʳʽӾ_)3 _ z3(3+333ֲʳʽ3_)3S3_3㳳dz۳ֳݳ؞ʳʽ3_)3سײʳʽ3_)%&$s>` @ $(,048<@DHLPTX\`dh #ͪlptx9PUQUQ1QQnXd.YJپھ pHJh` D!hgt}~p `~t}p8n~ni}tpi~~tso8pinii>j?k̈́>~|p|Ii||̈́ l - `>i>L8933LΞAAJL ةޘг uv $ 8LƞaЌ>?@`>?@`B8` K  춼LK ҟ ҟ ( KK`HJJJJ8`HK)` #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?` w  vLl@$݅3`(l8L3LX>(Ƀ,`3,G0]ɾ g` H`پ_پ p _پ׾`>( p۾m׾) W)ʩ@`ɾ>(O puȾ ɾ-O ]c־Jjjj `O>0O l PODEF޾ p ޾ p($ذ v (0 ( L?ԦʚLeةީa s  lL b,FLg,DL,C0$3 >@ Ɉ 3ɾꩈL(3ɾ;Ƀ B94 l% bʽ  ՚,S` H EH06172839h` v97L75v^a ?/( va?LLLɍ$?`?a ɍɥAH93827160hH46576879h`,C bL ɍ b w,S0 @ lLޭBYL 8!9 詍` "  à4"/pŠϠŠà͠ӠàԠŬJJH !h穖tp% ;"Z/݀>">"' 1" 7"5).莀/ ;" " 6" >" 1"6"$ "g"" !"""""IzLLG ASTARTUP$#   / XXύX?klmnÍoL) "6L'?"(0`6708" = ***)<?Ek?!>Q>>>̀ `` \> ̀ `e>>?́?>?Emn(>e>ȱ>e?>Q>ؠ> ie>>?`|;}=:<~:<=;`||m};>:8o>oȑ>ppȑ>> :op`G DKpnG @p;G=po:SL/id /`H) hJJJJ ɺi` M  ` ת.8 `O`S  AI-L9 ᪰B C VW>m>` _m8injkiljo풼i>?Ek?>Q>> L> \/ e>>?́?ޱ>ȥ)莼 з l6 7= /& /8Hh /` 6Y׾ؾ+پھ p|پɾʾ`HV)jh츾$-#Ͼ p о־޾Ǿ` 8` 8`ɾ)ɾ̸ ɾɾ0miȾ p pY)ικ`lP *,N!ǾȾɾʾ pǾ~H h8`8`,C  8` ȾɾM$ mHݓǾ phϾ pH Lh8`Ͼо־ǾҾ_` 볩Ӿ pW) "LEC`C Provided by Revelstone BBS * * * ************************************************************ Propacker is the Prodos answer to DDD II. With it, a Prodos BBS system and A ************************************************************ * * * Propacker Docs * * * * LLwLLL) `8` ԠŬLLʮq$6,⨁ K6, VtI=v!gNVt Vt  lg~TV     T[fouu~ՠٯ* PWN*]ĿNTz @n6VC/+A>@I5gN Oz @n[Dz @nd0,~z @`$仫@v$⩔,C[B?I>孓`仫6VtCicQĿUKqtVt Nֵ#ح#׮2}q :IC@@ -!S    !C- !ABELSDFRV@@ !$(19@EüϠž(+@ABCDEFGHIKLMNPSsƬƀ#(ZZV4G_0=( A P FjL\5p-e9ABSAVERIFYBLOADELETEBYECATALOGOPENWRITEXECREATEFRESTORENAMEBRUNLOCKCHAIN#FLUSHREADPOSITIONOMONPR#PREFIXCLOSEAPPEND6D(!쫂8 ( 8о(־Ǿ,G 8`_`W)H־Jjjjh p̭ fLᶢǾ ת..8 ۭ (8mȾȾmɾɾʾiʾ` Lpl8l:/,s`\"׾پӾؾھ pD`־ǾY׾ؾOW)ݩȾɾʾ pD`8`W)CB) 5W) =)W)@! pZ}ȾȾ󰹩 p` ־ǾҾ,G 8`׾ؾ f p vۥs׾tؾE` `޾Lp h־Ҿ,G0^W)TP) ecfdپھ׾ؾӾ p$c d pccddީ 8`ȾɾʾNfne}ȾȾI>Ie f`8` P־ǾҾ,G0C f=W)_`:_`蹀:`V)8`MN; b;`;C b N8` G)̀#:蹀:`V)R ޾,N0MHhHh p' L,N HCNh`M`M N N `9V) ` V) ޾ p`  (8` 8`8`(W)`_V)Ij!؍Í`_ FjЭW)`_ Ͼ pH Lh8`jGMоM  G)E system is now feasible. Propacker is menu driven and very simple to use. With it, you can pack or unpack both Prodos and DOS 3.3 disks, the same as with DDD. You can also catalog either drive 1 or drive 2 with a single keypress. The Catalog funct LՊH X H $ h LՊ $ HH hhH hLՊ HLՊ Ӡ򠱮` 8LՊ&LՊ*LՊ iLՊ` HLՊHJJJJ h) 0:89 ` X  e   B к XLՊ ] ] *LՊ $ <ɄLՊ HLՊ Lֆ   L{hh L HH`ȄLՊ,LՊ ` HLՊ  0$ 0`:; X a $   XLՊ ] ] *ɛ'Ɉ&ɍEɰ HL)ߝ LLՊ婠 ͳ ,{{$$ : Version 2 ***** evelstone BBS * * Propacker automatically figures out the file size. Perhaps with the advent of Propacker, we will see more Prodos BBS's and AE's appear. Revelstone - 405-799-2638 Loric Vilesilencer (Sysop) Kevin Landwaster (Co-Sysop) ***** Coming soon,nged. 5) Propacker adds the prefix of (XX.) to the name chosen for a packed file. When unpacking a packed file, and you are prompted for the file name, type in only the name and not the XX. prefix. Unlike DDD, no file size is needed after the name. disk. This is because the program packs onto the same place on the target disk each time. However, other files may be saved onto a disk containing a packed file. 4) Propacker works only with Slot 6, with 1 or 2 drives. The slot number cannot be chah 5 & 1/4 drives in Slot 6. 2) A formatted Prodos disk must be provided as the target disk when packing a disk. 3) A packed file must be moved from the target disk before packing a second disk or a separate Prodos disk must be used to pack each, etc., of files, plus cataloging of a Unidisk 3.5 or hard drive. * IMPORTANT * 1) Propacker can reside and be run from a standard 5 & 1/4 drive, Unidisk 3.5, or hard-drive. However, it will pack and unpack only 5 & 1/4 disks and will only work wition will catalog "both" Prodos and Dos 3.3 disks. The Change Default function allows you to designate the source and target drive choices. The Dos Command function enables direct Prodos commands, thusly enabling the renaming, deleting, locking, unlockingLՊLՊ% "`` ͳ ,{LC$`! LkLՊ!ɀ LLՊɍ$80  L`8` LՊL׈LՊ LՊLՊ $ ҩש렠ĩ򠠠©Ω렠ɬʬˬ̬ͬҾ  e   B$ & о  뺠ӰL8#$! ) 芤 S'$ )$Ɇц$25aшш򺠤 $  $ $i $ ] `ɀɠi`` <LՊi eei$` XL X $ $ P  X  $ *)ߠ  HLՊȘ  u'L#/ S' ɛ` 'Z* L*P@@ 5* *`0\*]*@^*@_*ȹ@`* *`@L!% - S' XmL!$%L" 5* *`9*Lo(`N* O* *P*R*S*@T*U*V* *H &h(` ' #, S' &Lo  5* *L $ 8**0N* O* *Lp$P*) #۠, S' & &L $** *N* O* *حP*) '+ S'L$ V( ɶɱɛLp$ 8鰪ʽ)), S' &)50 ' ' Instructions for Use of the Commands The programs on this disk which have the extension .CMD are binary programs which install extensions to the ProDOS Basic Interpreter. To install a cIVBAVARESY??  L-`rectory EmptyWrong File Type%'(+.@BCDEFGHIJKLMNPQRSUVWX-#-7-M-W-k--------- .. .9.R.^.p........../Filename Type Blocks Modified [no dateBAPCPTTXPDBIFNFOBA DA WP SO DIRPRPADAWASPACMINle ExistsDisk FullVolume FullIncompatible File FormatUnsupported Storage TypeEnd Of FilePosition Past EOFFile Access DeniedFile BusyBad File CountNon-ProDOS DiskBad ParameterVCB OverflowBad Buffer AddressDuplicate VolumeBad Volume Bit MapDi? (def=n)Error:MoreBad MLI CallBad Parameter CountIRQ Vector Table FullI/O ErrorNo Device ConnectedDisk Write ProtectedVolume SwitchedInvalid Pathname SyntaxToo Many Files OpenBad Reference NumberPath Not FoundNo Such VolumeFile Not FoundFi When EXEC'ed, the file should be saved with a name of 15 characters or less: Type Pathname, RET = Accept, ESC = Abor Slot Drive Volume Name Press ReturnSet ProDOS Prefix Make An EXEC File Source: Target: Catalog Disk Okay to quit-------------- M - Make An EXEC File P - Set ProDOS Prefix C - Catalog Disk V - List Volumes Q - Qui Enter Command: Maximum Characters Per Text Line [1]=32 [2]=40 [3]=60 [4]=80 [5]=120 Enter A Width (1-5):a**n** *Lo(` @$&55G22KQQY[è The Executive A ProDOS EXEC File Maker (c) 1985 Living Legends Software Prefix: -------------------------轁`   ???JanFebMarAprMayJunJulAugSepOctNovDec0?CHR$(4)"PREFIX":INPUTP$ 1?CHR$(4)"PREFIX"P$:CALL-151 RUN BSAVE 800G 800:00 00 00 BE00G ,A$800,E$Another Mindless Utility by Morgan DaviCreating EXEC File..)% Ɉ$ɘ*ɛ8ɕɍ ` V(L'$(и M(L' M(𜩈 `8`< ,0$ ,0<`L-H ' - S'h/ =/ʽ=/ S' V( '8` ' ' #) S'W0 (0 (ii`pJJJJ u' $<) $<)< < <芤= S'  0 then there are more blocks to copy; if VLNTH = 0 then the last PART command copied to the end of the file and the backup procedure is complete. The Fied. From BASIC you might use this line: 100 IF PEEK (48735) + PEEK (48736) = 0 THEN PRINT "All of the blocks requested were copied." Put another way, if you write a loop to back up a large file, check Ved by PART as a counter. If VLNTH and VLNTH+1 = 0 then the end of the source file was reached just when the number of blocks requested had been copied, or the end of the source file was reached before the number requested had been cop0. If BIGFILE is less than 270 blocks long, you would not be given an error message. However, if you want to check to see if all of a segment is copied, you can check the BASIC.SYSTEM parameter VLNTH at $BE5F-BE60, which is usile segment is the number of blocks long given in the L parameter. If you want to start with the beginning of BIGFILE and copy the first 270 blocks to a DISKII, you might give the command PART /HARD1/BIGFILE,/FLOPPY/SEG1,A0,L27ment of a larger file. The syntax is: PART bigfile,segment,A(block#),L(# of blocks) where the file segment is created. The segment begins at the block number of the source file given with the A parameter. The fyntax is: ADD file1,file2 where file1 will be added to the end of file2 producing a new, longer file still bearing the same name as file2. The companion command, PART, can be used to create a file which is a segand for file copying operations which you perform frequently. The program COPY.CMDS installs three commands, a version of the COPY command and two others, ADD and PART. ADD is used to concatenate two files. The s It would convert line feeds to carriage returns. The value which represents the character is the ASCII value of the character. If the B parm is omitted, the character specified with the A parm will be deleted. The source file is not affected. The MOUNT command is used to make a quick backup of a ramdisk. It will work only if the backup medium is equal or larger in size than the ramdisk. For safety, the target volume is limited to $4osptC : 8 ӠԠŠҍŠҠΠٮč`L!mM!tL M! O!8J!P!4"N!I!<< /< ,!<Ș =!L  =!< ,!< =!L I!N!B ,Q! n L!p` :!& When the write proceeds, the zero page pointers are overwritten and the whole machine is scrambled. try to restore the /RAM volume. The bug is that when you try to write to block #7 on the /RAM volume, the code fails to protect that block and the arithmetic which maps the blocks maps block #7 to the zero page and stack area. OS is 15360. BLOAD PRODOS,A$2000,TSYS CALL -151 *2B49 0D *2B49:0F *BSAVE PRODOS,A$2000,TSYS,L15360 ] If you fail to fix the bug, the machine will crash when you PRODOS,A$2000,TSYS CALL -151 *2B4F 0D *2B4F:0F *BSAVE PRODOS,A$2000,TSYS,L14848 ] For ProDOS versions 1.0, 1.0.1, and 1.0.2 the change is *2B49:0F and the length of PROD command with the /RAM volume automatically installed by ProDOS when you boot on an expanded IIe or on a //c you must repair a bug in ProDOS. First unlock a copy of ProDOS version 1.1.1. Then type the following: BLOAD disk will have the limited storage of the ramdisk. To restore the ramdisk just reverse the order of the command file names. Using the same names as above: MOUNT /RAM.BAK,/RAM DANGER !!! If you want to use this The backup disk will take on the storage size of the ramdisk and may be used as a regular disk. That is, you can boot from the backup disk and files may be saved to and read from it. The only difference is that the. The volume name must match the name you specify when you use the command. This is partly for safety since any data on the disk will be overwritten when the backup is made. The syntax is: MOUNT /RAM,/RAM.BAK a block of zeroes like the IIe /RAM volume does, or returns an I/O error when such a block is reached, then the MOUNT command should work. To backup a ramdisk, start with a formatted ProDOS disk with a suitable nameall blocks from the volume directory to the end of the volume, skipping blocks marked as not used. Most ramdisks have some blocks which are either not implemented in the memory map or are used for code storage. If the ramdisk copies II. Glen Bredon's Prosel package contains a backup utility which will allow backing up a large ramdisk or a hard disk on multiple floppies. This command may not work with all ramdisks. The way it works is to copy FF (1279) blocks. This would prevent backing up to a large volume on a Sider, but will allow backing up to a 3.5" disk or from a 1 Meg ramdisk to a 1 Meg volume on a Sider. I wrote this command for use with a 128K ramdisk and a Disk Ԡ͠΍ KLJ! L!mP!`e<<=i=`"#ٮĠΠ٠ΠŠź٠űŲ n"EXEC.MAKER":9 x"ENTER SOURCE PREFIX:":"/";] CH2:10000:SP$IN$:IN$""100 LS(SP$):((SP$,1)"/")LS1SP$(SP$,LS1):135 SP$"/"SP$ LS(SP$):((SP$,1)"/")LS1SP$(SP$,LS1):137 SP$"/"ĺ(7);:100 4:EOL5 EXEC.MAKER COPYRIGHT (C) 1985 STEVEN HUMPAGE@ 30000I270b5A(49152):A12853w749168,0:AA128<A8A10A11A13A21A32ĺ(7);:53AFERR(222):L(218)(219)256:3288KERR255ĺ(7);:53P20000 dx_.`_$`$$־ pY$־۾پ p8$ܾ$Ϯ$ ʎ$ &_ɾ`ʾȾ_`$Ǿ p$޾ p$޾ pL$lm̾;X`8L ɍɬ ɠ)`w"L$n pL$n p뭻 L"tϾ pL$о$n̾p8Ͼ pL$о$Ӿ׾پn芍ؾϾ8ؾھ$Ҿ p$/@$־ pL|$$־۾پ pL|$$Ǿ p pL|$ȾYʾX ɾ.ʾ$Ǿ pآ $i$ $9 $O$ $ $5$0$UURTS$P`8LV)p8n $Wɐ`0 _8L p𭻾 $Ln; p8 ?!L K!P!B ,S! `L! N!mR!`e<<=i=`"$ٮӠΠ٠ΠŠź٠űŲĠűŲԠűŲˣ̨өn #N!posptz :Y i :9 Z Ԡ͠΍ӠԠŠҍŠҠΠٮӍ` KLN!mO!tL O! Q!8L!R!u"P!K!<< /< .!<Ș ?!L  ?!< .!< pn芍ؾϾ8ؾھ#־ p#־۾ܾپھ pڪ#޾ pn p#޾ plm̾;`8L ɍɬ ɠ)`6"آ #(##R#OSTU`8LV`)8L p8n p㭻 ܥtϾ pLq#о#n; pLe#n pLe#n̾p8Ͼ pLe#о##ҾӾپ׾:SP$ 19000- D$;"OPEN "SP$",TDIR"@ D$;"READ "SP$Y A$,A$,A$:K1:1070o A$:(A$)01090 FILE$(K)(A$,2,15):FT$(K)(A$,18,3):FL$(K)(A$,1):KK1 $1040 .ERR(222):L(218)(219)256:3288:216,0:ERR51090 820000:958:FILE$(50):FT$(50):FL$(50):MARK$(50)e5uFILE$(0)"COPY ALL FILES ":FT$(0)"***":FL$(0)"*":u3:" EXEC FILE MAKER "Du5:" FOR USE WITH THE COPY COMMAND "Nu7:" COPYRIGHT (C) 1985 STEVEN HUMPAGE "-Xu9R SCREEN AND PROMPTBJL52105100:GET ANOTHER EXEC FILE NAMEJL52205280:IF NOT POSSIBLE TO WRITE TO FILE, THEN CLOSE IT AND ASK TO CONTINUE N23:36,0:(7)"ERROR # "ERR" IN LINE # "L:: FATAL ERROR.0u:TRUE1:FALSE0:D$(4):EOL868:EOPGJERR9MSG$"DISK FULL":19100PLJERR13MSG$"FILE TYPE MISMATCH":19100wQJERR16MSG$"SYNTAX ERROR":19100VJERR17MSG$"DIRECTORY FULL":19100[J20000J22:36,0:EOL:MSG$(7)" PRESS A KEY";:A$:A$J3288JL1010100: CLEA0 *36,0:5:J0:KKNKN18? +KNJNFILESČEOL::11040d+MARK$(K)FL$(K)FILE$(K)" "FT$(K)q +JJ1:Kw*+8JERR(222):L(218)(219)256:216,0=JERR6ERR7MSG$"PATH NOT FOUND":19100BJERR4MSG$DP$" IS WRITE PROTECTED":19100#0050>.'A$(8)(IN$)1ĺ(8);:IN$(IN$,(IN$)1):10010g3'A$(8)(IN$)0ĺA$;:IN$"":100108'A$(21)(IN$)(TEMP$)A$(TEMP$,(IN$)1,1):A$;:IN$IN$A$:10010='(7);:10010B'IN$IN$A$:(IN$)(TEMP$)TEMP$IN$G'A$;L'1001"N"A$"n"ĺ(7);:6020&5000E' PREFIX INPUT SUBROUTINEY'IN$"":TEMP$""'A$:A$(13)Ĺ36,CH1:EOL:IN$:'A$(27)Ģ9:36,0:EOP::5280'A$"a"A$"z"A$((A$)32)$'(A$"A"A$"Z")(A$"0"A$"9")A$"."A$"/"ī1;:A$A$"Y"A$"y"100TA$"N"A$"n"ĺ(7);:((37)):36,0:EOP:5280ZpERR(222):L(218)(219)256:3288zERR101900520:36,0:EOP:EX$" IS LOCKED. UNLOCK? (Y/N) ";:A$A$"Y"A$"y"ĺD$;"UNLOCK "EX$:5220A$((EX$,1)"/")LX1EX$(EX$,LX1):5140<8:EOP:EX$GP6000ZZD$;"OPEN "EX$odD$;"APPEND "EX$nK1NFILESxMARK$(K)" "FT$(K)"DIR"5260"COPY "SP$"/"FILE$(K)","DP$"/"FILE$(K)KD$;"CLOSE "EX$"CONTINUE? (Y/N) "MARK$(0)">"āJ1NFILES:MARK$(J)">":J>6:EOP:DP$P36,0:7:EOP"ENTER FULL PATH NAME OF EXEC FILE:":"/";:CH2:10000:EX$IN$:IN$""ĺ(7);:5100LX(EX$):((EX$,1)"/")LX1EX$(EX$,LX1):5120 EX$"/"EX$+LX(EX$):TER DESTINATION PREFIX:":"/";:CH2:10000:DP$IN$:IN$""ĺ(7);:5000LD(DP$):((DP$,1)"/")LD1DP$(DP$,LD1):5020DP$"/"DP$LD(DP$):((DP$,1)"/")LD1DP$(DP$,LD1):5022DP$"/"ĺ(7);:5000SP$DP$ĺ(7);:5000-,2::FILE$(KNNROW5):* OLDROWNROW0B KKNOLDROW5y MARK$(K)" "MARK$(K)">":NMARKEDNMARKED1:3040 MARK$(K)" ":NMARKEDNMARKED1 OLDROW:36,0:MARK$(K) 36,0:5:EOP:NMARKED0ĺ(7)"NO FILE SELECTED":5280I"ENKNOLDROW5)NFILESNROWOLDROW1:2000:1110 OLDROW23(KNOLDROW5)NFILESKNKN19:11000:NROW5:FIRSTTRUE:2000:1110 (7);:1110 A32İ3000:1110  FIRST2040 OLDROW:36,2:FILE$(KNOLDROW5) FIRSTFALSENROW:36EAD ARROW, SPACE, OR RETURNH `A13ī5000: GET DESTINATION AND COPY] jA8A111170 tOLDROW5NROWOLDROW1:2000:1110 ~OLDROW5KN0ĺ(7);:1110 KNKN19:11000:NROW23:FIRSTTRUE:2000:1110 (A10A21)1210/ OLDROW23( FATAL ERROR" BD$;"CLOSE "SP$u DK1MSG$"NO FILES IN THAT DIRECTORY":L1010:19100: L=1010 IS A CHEAP TRICK GNFILESK1:NMARKED0 LKN0:OLDROW5:NROW5:K0NFILES:MARK$(K)" ":K:11000:FIRSTTRUE:2000: MASK FIRST LINE INVERSE V50: R:"USE THIS PROGRAM TO GENERATE EXEC FILES"\bu"WHICH WILL COPY FILES FROM ONE "lu"DIRECTORY TO ANOTHER. THE SOURCE "qu"DIRECTORY MUST BE ON LINE. FIRST ENTER "vu"THE SOURCE DIRECTORY. ITS FILES WILL BE"u"PRINTED ON THE SCREEN. SELECT THE FILES"Gu"YOU WANT TO COPY WITH THE ARROW KEYS "vu"AND MARK THEM WITH THE SPACE BAR. "u"PRESS RETURN AND ENTER THE DESTINATION "u"PREFIX. NEXT ENTER THE FULL PATH NAME "u"OF THE EXEC FILE. IF IT ALREADY EXISTS آ ?$(]$#RV$OSTU`8LV`)8L p8n Pe$W) _0؍e$ p˭ tϾ pL$о[$nÍ pL $n pL $n̾p8Ͼ p :!& Ԡ͠΍ KLT! V!mZ!`e<<=i=`"f$ԮĠΠ٠ΠōźԠŬŬ̸ݍ̠͠ӠĠРŠȍԠŠȠL P W"osptC :& 8 ӠԠŠҍŠҠΠٮč`V!mW!tL W! Y!8T!Z!4"X!S!<< /< 6!<Ș G!L  G!< 6!< G!L S!X!B ,[! n V!p`L]$о$$ҾӾھ p$׾$ؾپXZ$־ p$$錷$$־ p٪޾ plm̾;`8L ɍɬ ɠ)`6#$آ $(ٱ$#R$OSĎTU`8LV`)8L p8n $W)@@θ$W)ɀө pɭ оtϾ pLh$о$nÍ pL]$n pL]$n̾p8Ͼ pč Ԡ͠΍ KLJ! L!mP!`e<<=i=`#$ҮĠΠ٠ΠŠźҠŬŬ۬¹ݍӠǠŠ͠ōĠ٠Š ͮƠ ӠԍŬŠ͠ӠťosptC : 8 ӠԠŠҍŠҠΠٮč`L!mM!tL M! O!8J!P!4#N!I!<< /< ,!<Ș =!L  =!< ,!< =!L I!N!B ,Q! n L!p` :!&"2u"THE NEW COMMANDS WILL BE ADDED TO THE "au"END OF THE EXISTING FILE. "u24:36,0:"PRESS ANY KEY TO BEGIN";:A$u100L $о\$[$ҾӾ Ծ pY$׾Z$ؾھd$8e$d$پY$md$׾mZ$ؾ[$־ pL#Y$"āJ1NFILES:MARK$(J)">":JkMARK$(K)" "FT$(K)"DIR"ī5050v6000EOP:"COPYING "FILE$(K):D$;"COPY "SP$"/"FILE$(K)","DP$"/"FILE$(K)((37)):36,0::FILE$(K);::" COPY COMPLETE"A(49152):"ENTER DESTINATION PREFIX:":"/";:CH2:10000:DP$IN$:IN$""ĺ(7);:5000LD(DP$):((DP$,1)"/")LD1DP$(DP$,LD1):5020DP$"/"DP$LD(DP$):((DP$,1)"/")LD1DP$(DP$,LD1):5022DP$"/"ĺ(7);:5000SP$DP$ĺ(7);:500:36,2::FILE$(KNNROW5):. OLDROWNROW4F KKNOLDROW5} MARK$(K)" "MARK$(K)">":NMARKEDNMARKED1:3040 MARK$(K)" ":NMARKEDNMARKED1 OLDROW:36,0:MARK$(K) 36,0:5:EOPNMARKED0ĺ"NO FILE SELECTED":5065M23(KNOLDROW5)NFILESNROWOLDROW1:2000:1110 OLDROW23(KNOLDROW5)NFILESKNKN19:11000:NROW5:FIRSTTRUE:2000:1110 (7);:1110 A32İ3000:1110  FIRST2040 OLDROW:36,2:FILE$(KNOLDROW5) FIRSTFALSENROW0: READ ARROW, SPACE, OR RETURNL `A13ī5000:GET DESTINATION AND COPYa jA8A111170 tOLDROW5NROWOLDROW1:2000:1110 ~OLDROW5KN0ĺ(7);:1110 KNKN19:11000:NROW23:FIRSTTRUE:2000:1110 (A10A21)12103 OLDROW00:FATAL ERROR% BD$;"CLOSE "SP$z DK1MSG$"NO FILES IN THAT DIRECTORY":L1010:19100: L=1000 IS A CHEAP TRICK GNFILESK1:NMARKED0 LKN0:OLDROW5:NROW5:K0NFILES:MARK$(K)" ":K:11000:FIRSTTRUE:2000: MASK FIRST LINE INVERSE" V5EOL:SP$ 190001 D$;"OPEN "SP$",TDIR"D D$;"READ "SP$] A$,A$,A$:K1:1070s A$:(A$)01090 FILE$(K)(A$,2,15):FT$(K)(A$,18,3):FL$(K)(A$,1):KK1 $1040 .ERR(222):L(218)(219)256:3288:216,0:ERR51090 8200 n"FILE COPY PROGRAM":= x"ENTER SOURCE PREFIX:":"/";a CH2:10000:SP$IN$:IN$""100 LS(SP$):((SP$,1)"/")LS1SP$(SP$,LS1):135 SP$"/"SP$ LS(SP$):((SP$,1)"/")LS1SP$(SP$,LS1):137 SP$"/"ĺ(7);:100 4:2MENU.COPY COPYRIGHT (C) 1985 STEVEN HUMPAGE= 25000F270_5A(49152):A12853t749168,0:AA128<A8A10A11A13A21A32ĺ(7);:53AFERR(222):L(218)(219)256:3288KERR255ĺ(7);:53P20000 dTEMP$""1'A$:A$(13)Ĺ36,CH1:EOL:IN$:U'A$(27)Ģ5:36,0:EOP::5065y'A$"a"A$"z"A$((A$)32)$'(A$"A"A$"Z")(A$"0"A$"9")A$"."A$"/"ī10050.'A$(8)(IN$)1ĺ(8);:IN$(IN$,(IN$)1):100103'A$(8)(IN$)0ĺA$;:IN$"":10010d8'A$(21)(IN$)(TEMP$)A$(TEMP$,(IN$)1,1):A$;:IN$IN$A$:10010v='(7);:10010B'IN$IN$A$:(IN$)(TEMP$)TEMP$IN$G'A$;L'10010*36,0:5:J0:KKNKN18 +KNJNFILESČEOL::11040+MARK$(K)FL$(osptD : 9 ӠԠŠҍŠҠΠԮč`M!mN!tL N! P!8K!Q!4"O!J!<< /< -!<Ș >!L  >!< -!< >!L J!O!B ,R! n M!p` :!A# Жо޾ p`8L ɍɬ ɠ)`7"A#Nآ *#)H#$RA#OSTU`8LVtϾ p?о־پD#׾ھW)!оǾȾh ɾi*ʾ pL#W)_ʎL#M# N#ɍN#M#L#N# N#M#M# M#L"Ƀ,ɓɀɀɃ p` :!& Ԡ͠΍ KLU! W!m[!`e<<=i=`"N#ŮĺŠŬˣȍȠӠΠȺƽӠϠŬàϠЍL N L#osptC :& 8 ӠԠŠҍŠҠΠŮč`W!mX!tL X! Z!8U![!5"Y!T!<< /< 7!<Ș H!L  H!< 7!< H!L T!Y!B ,\! n W!p00y216,0:3288:320004"y(4);"-COPY.CMD"F,y216,0:30000}:10:"PLEASE INSTALL COPY.CMD":"REMEMBER TO TYPE CLEAR OR NEW":"THEN BRUN COPY.CMD" }D YOU WILL BE ASKED FOR THE"Mu"DESTINATION PREFIX. AFTER THE FILES ARE"|u"COPIED YOU WILL BE ASKED IF YOU WANT TO"u"CONTINUE. YOU CAN STOP THE PROGRAM AT"u"ANY TIME WITH THE ESCAPE KEY."u24:36,0:"PRESS ANY KEY TO BEGIN";:A$u1"THE COPY COMMAND IF NECESSARY."Ivu"ENTER THE SOURCE PREFIX AND ITS"qu"DIRECTORY WILL BE PRINTED ON THE"u"SCREEN. MOVE THE MENU BAR WITH THE"u"ARROW KEYS AND MARK THE FILES YOU WANT"u"TO COPY WITH THE SPACE BAR. PRESS"u"RETURN AN:u3:" FILE COPY PROGRAM"ODu5:" FOR USE WITH THE COPY COMMAND|Nu7:" COPYRIGHT (C) 1985 STEVEN HUMPAGE"Xu9:"USE THIS PROGRAM TO SELECT AND COPY"bu"FILES FROM ONE DIRECTORY TO ANOTHER."lu"THIS PROGRAM HAS INSTALLED THE""qu# "ERR" IN LINE # "L::FATAL ERROR1a31000ga(4);"COPY":CHECK TO SEE IF COPY.CMD INSTALLED ra216,00u:TRUE1:FALSE0:D$(4):EOL868:EOP958:FILE$(51):FT$(51):FL$(51):MARK$(51)5uFILE$(0)"COPY ALL FILES ":FT$(0)"***":FL$(0)"*"%(QJERR16MSG$"SYNTAX ERROR":19100QVJERR17MSG$"DIRECTORY FULL":19100\[J20000J22:36,0:EOL:MSG$(7)" PRESS A KEY";:A$:A$J3288JL1010100: CLEAR SCREEN AND PROMPTJL50405000JL60055035% N23:36,0:(7)"ERROR K)FILE$(K)" "FT$(K)" +JJ1:K(*+R8JERR(222):L(218)(219)256:216,0=JERR6ERR7MSG$"PATH NOT FOUND":19100BJERR4MSG$DP$" IS WRITE PROTECTED":19100GJERR9MSG$"DISK FULL":19100LJERR13MSG$"FILE TYPE MISMATCH":19100& Ԡ͠΍ KLK! M!mQ!`e<<=i=`".$ԮĠΠ٠ΠōźԠŮ̬Ԯ̍ :!& Ԡ͠΍ KLT! V!mZ!`e<<=i=`"C$ԮĠΠ٠ΠōźԠŬŬ̶ݍӠҾȠŠԠĠƠō̠͠ӠԠŠϠԍL A W"osptC :& 8 ӠԠŠҍŠҠΠٮč`V!mW!tL W! Y!8T!Z!4"X!S!<< /< 6!<Ș G!L  G!< 6!< G!L S!X!B ,[! n V!p`آ ")"$R"OST U`8LVtϾ p=о־پ"׾ھW)оǾȾh ɾi*ʾ p= Ƀ,ɓɀɀɃ p" ʩо޾ p`8L ɍɬ ɠ)`7""& Ԡ͠΍ KLK! M!mQ!`e<<=i=`""ŮĺŠŬˣӠϠŬàϠЍosptC : 8 ӠԠŠҍŠҠΠŮč`M!mN!tL N! P!8K!Q!5"O!J!<< /< -!<Ș >!L  >!< -!< >!L J!O!B ,R! n M!p` :! `ԍԺЯŠōs$## $LE"'s#+#'LE"##$## $LE"#$s s####$#### $s sL###$$Ln#$ `##$ $L###$ $L#ɍɬ ɠ)`6"#آ #( $#R#OSTU`8LV`)8L n plm٥C# ɩ p­C#s#t#####$#$#$ $LE"*+LE"##s#t# $LE"*sLC"sآ $(4$#R-$OSTU`8LV`)8L p8n AC$W)_C$ pϭ ĥtϾ pL#о2$nÍ pL#n pL#n̾p8Ͼ pL#haracters, inverse, and flashing text are converted to normal format. Commands The ProDOS Block Editor is quite easy to use. All commands are one key and should be easy to remember. A list of the most common commands is kept at the top of theept in 16 lines of eight bytes each. Each line will start with the memory address that those eight bytes begin on. The right-hand section of the screen shows the ASCII representation of the preceeding eight bytes, all character values including control ca hexadecimal format since information on storage devices is kept in hex. Buffer areas must be placed starting at the beginning of a new memory page, i.e. the low byte of the buffer address must be zero. When viewing one of the sub-buffers the data is krmine which half block you are viewing. In addition, no DOS 3.3 sectors editors will function under ProDOS. On a standard floppy disk there are 118 hex (280 decimal) blocks, and much more on a hard drive. Entering block numbers to access is done in ength I decided to split each block read into memory into four 128 byte sub-buffers, this was done so the user could swiftly toggle between the four sub-buffers in memory. A DOS 3.3 sector editor can be used to access ProDOS disks, but you cannot dete typing an ASCII character. A feature is provided to disassemble the information anywhere in the current buffer and if you posses a printer you can dump memory to it from within the program. Program Setup Since ProDOS blocks are 512 bytes in lof these features is the ability to place the buffer anywhere in memory you wish except for places marked in the Global Bit Map ($BF58-$BF6F) or above $8300. Functions are provided to easily alter memory by either entering information as hexadecimal or by volume including hard drives and RAM disks. This program gives you some quite powerful features to control the information on a ProDOS volume. Care must be exercised when using this program or file integrity can be damaged. Among the more powerful chcliffe - 8/30/85 Have you ever wanted to access ProDOS volumes directly, or change information without having to load it in? If so, then this is the program for you. The ProDOS Block Editor will let you easily alter the information on any ProDOS along with configuration with machine and find commands. The next version will definitly have Apple ][ and ][+ compatability. Send checks and money orders to: Dion Hinchcliffe 6121 Empire Circle Las Vegas, NV 89107 ==> Dion Hinram is updated regularly so you constantly get new updates and features. Sign up now. New features are in the works on version 1.2 which will allow much improved disassembly and better dump to printer command. Online help is being contemplated`8L ɍɬ ɠ)`6"<$о3$2$ҾӾھ p0$׾1$ؾپ2$־ pL#?$B$@$<$=$ ?$2$־ pE@$A$?$@$?$<$>$ ?$9B$@$/A$*B$C$" <$B$%=$<$3$־ p'&=$<$ B$>$=$3$־ pLS#޾ plm̾; screen. The following is a list of commands and a short explanation of each: --> (Right arrow): This command will switch you to the next sub-buffer in memory. If you are already at the top of the buffer then you will be prevented from going further. <-- (Left arrow): Move down to the next sub-buffer. Again, if you are already at the bottom of the buffer then you will not be able to continue. +: This key lets you increment the current block number by one in order to save you time instead of typing eas above $8300 will be accepted lest you damage the program or the ProDOS operating system. If you own a standard Disk II floppy drive blocks are numbered from $0000 to $0118, any number greater than $0118 will cause an error $28 during a read or write.rogram. Using the Program When you start out the current buffer area is set to $5000 and the block number is defaulted to zero. Commonly used commands are listed at the top of the screen. When you select a new area for the data buffer no arill allow you to switch between drive one or two. You should have drive two selected if you are using a /RAM disk or hard drive. More complete instructions of how to use the ProDOS Block Editor follow, which completely detail all aspects of this pby executing this function. Twenty instructions are disassembled. There will be a provision in the next version of PBE to dump to the printer. S,1,2: You can select the slot by pressing 'S' until the desired slot number appears. Pressing '1' or '2' wll let you replace the byte under the cursor with a new hexadecimal value. While typing in the new value you can press to abort the function and restore the old value. L: You can disassemble the hex code starting from the current cursor position u from the function. Q: This command will allow you to quit the program and return to BASIC. A: This will allow you to replace the byte under the cursor with the value of the ASCII key pressed after the 'A' selection is made. : Pressing Return wi you may write from them, however. N: This function allows you to specify the new block number you wish to read from or write to. The number must be a hexadecimal numeral, pressed while typing in the new number will restore the old value and exit youmber to position the buffer on. Pressing while typing in the new number will restore the old value and exit you from the function. Warning: You can place the buffer on places marked in the Global Bit-Map but you cannot read data into these places;em may lock if you don't have a printer card so it is strongly suggested you ignore this command if you are without a serial or parallel card in Slot #1. B: Select new location for data buffer. Executing this command will allow you to type the new page nen you write to the disk, once data has been written it cannot be undone. D: Dump 256 bytes of the buffer starting at the cursor position to the printer (dot-matrix or daisy-wheel). The printer card must be in slot one to perform this function, the systard drives. The number of the block read in is specified with the 'B' option. W: This is similiar to Read option except it writes information from the current buffer position to the selected block number in the memory storage device. Be very careful whp over to the next line without stopping. R: Read block from current memory storage device. This command reads a ProDOS block of 512 bytes from the memory storage device connected in the slot and drive specified, this includes the ProDOS /RAM disk and hunction as the '+' except in reverse. I,J,K,M: These keys will allow you to move the cursor around the screen. The cursor is represented by the inverse of whatever byte it is placed over, if you go over the left- or right-hand margin the cursor will wrain the block number manually. The '=' key can be used for the same function so you don't have to press the key down at the same time. -: This functions allows you to decrement one from the current block number. And generally performs the same f Block numbers on hard drives will vary with number of megabytes. Using a standard extended text card gives you $80 (128 decimal) blocks available for access. The cursor, represented by an inverse byte on the screen within the memory field, is used a pointer in this program. It allows you to look where you would like. Where it points you can alter, look or replace memory. You can control it by using the I-J-K-M keys to move it within the memory field. You have two features available to alter mble 20 machine language instructions starting at the current cursor position using the 'L' command. Memory references may be off due the location that the data is stored in; however, relative references are kept intact. Pressing any key will take you ouill exit you from this function and put the old value back. The other way of entering new data is pressing 'A' and then any ASCII character value. The hexadecimal value of that keypress will be stored at the current cursor position. You can disasseuses direct hexadecimal input. You press the RETURN key and enter a two-byte hexadecimal numeral between $00-$FF. The result of the input will be placed in the memory location represented by the current cursor position. Pressing during the input winput and restore the old value. Attempting to read block numbers higher than those permitted by the currently used memory storage device will cause an error. Entering information in the buffer can be done with either one of two methods. The first /RAM disk in an extended text card can access block numbers $0000-$007F, and a hard drive can access many more blocks. A 32-megabyte drive can access blocks $0000-$FFFF exactly. Pressing ape during the input of the new block number will abort the like to reference next. Hexadecimal format must be used to enter the block number. The numbers $0000-$FFFF can be used. If you are using a standard Disk II drive or the new Duo Drive, the block numbers that can be used are between $0000-$0117. The predetermined block on the current memory storage device. Warning: If you write improper information on a ProDOS volume, file integrity can be damaged permanently so be very careful. Using the 'N' option allows you to specify which block you wouldffer, from the specified block number on the current memory storage device. The information is written into memory for 512 consecutive bytes (one block). Data is written to the current memory device in a similiar fashion; from the current buffer to theonstructed. An ASCII representation of each byte is kept at the right of the memory field. R) eading and W) riting information is done using the ProDOS Machine Language Interface at $BF00. Data is read into memory starting at the bottom of the buve to press down the key). You can print the buffer on a standard parallel or serial printer starting at the current cursor position using the 'D' function. Information is printed for 256 characters, a field of 32 lines of 8 bytes each is crement the current block number by one using the '+' and '-' commands respectively. This is a lot faster than the 'N' command if you just want to set a block number one or two values higher. (By the way, you can use the '=' instead of '+' so you don't hanformation over the zero page, stack page or text page ($0000-$0800) but this should be avoided at all costs. You can only set the page number of the buffer area ($00-$83) because all storage must begin on a page boundary. You can increment and dec quit entering the old value. The 'B' function will allow you to relocate the buffer in order to store the information elsewhere. Information cannot be stored above $8300 lest you damage the program or the ProDOS operating system. You can place ithe byte under the cursor, you can press and directly type the hexadecimal value or type 'A' and press any ASCII character and have the value stored in the buffer. If, while in the middle of entering a byte, you decide to abort, you can hit tot of the disassembly and back into the block editor. Slots and drives can easily be selected using the 'S','1', and '2' commands. Pressing 'S' will select the next highest slot unless you are already at the highest. After slot 7 you will be taken down to slot 3, the lowest slot accessible by the block editor. The drives can be selected by pressing '1' or '2'. The current slot and drive values are kept on the status line on the bottom of the screen. Select slot three if you wish to access the exte $ $`);$JJJJ<$=$N<$i jn=$=$m;$`JJJJ ) `) ^$) ^$`I `< #L#`# `m$n$`#)$ ɍ\ɈEɕ4#0 ɰ?ɺ;۰*&# ##L6##θ#L6# L6#   _$`# %% $hhh8HL6# $ $ $N $  $m $ $ $m $l$T  !"L#`/" `k$k$ j$l$*` `" " )#` j" " 6#`" Ll"$ ! " `堺""""#`  " "` N$ $m$! " N$ $n$`m$ #L#n$rom the monitor) you can use the new command keys instead of the old ones. The program is fully commented and should be a benefit to people interested in using ProDOS with their machine language programs. this way, and it would be a very easy addition to the program. If you dislike the lettering of the commands they can be easily changed by altering the ASCII list of commands inside the command parser. After you reassemble the program (or alter it fdded. All you do is alter the number of the commands and then add the letter of the command at the end of the command list. Then store the lo-byte, hi-byte address of the command at the very end of the command addresses. A catalog command could be addedto prevent what is known as "Spaghetti Code". Even though the code is fairly complex the program is easy to trace and modify since all functions are contained within subroutines. The command parser was designed so that extra commands may be easily arogram that calls these subroutines is located at the end of the code. The command processor jumps to the routines as necessary to execute the requested commands. As many of the subroutines are called by other subroutines, the modular format was adopted volume can be altered and stored permanently on any memory storage device. The uses are virtually endless. About the Program The ProDOS Block Editor was written in a modular format. The beginning of the program is entirely subroutines, the pram is still a valuable addition to your programming library. Uses range from altering ProDOS itself to changing the boot-up header, altering programs directly, undeleting files, or repairing damaged file information. Any byte of data stored on a ProDOS s, and solutions in the ProDOS Technical Refence Manual. Uses of the ProDOS Block Editor If you have ever had to use a DOS 3.3 sector editor you know how this program can be used and the benefits it gives you. Even if you have not, this proger over it, it should be intact. Error Messages A few errors can be generated using the ProDOS Block Editor; they can only be caused during disk access. These can be caused for various reasons. You can find a list of the errors, their causended text card /RAM disk. Drive one should be set if you are using the /RAM disk or a hard drive. You can exit the program using the 'Q' option. This will drop you down into BASIC. If you had a BASIC program in memory and you did not move the buff