8L2C)pJJJJ IH(ȱH:=IH[H`@HcH  $ +   I/H`JLNGȄBȄF aK  haaFF  mJm# KKJ UJ )J ۈ) ;J3ȱJFȱJGJKaȄM  aaNNJFLGJL L? &PRODOS `DaElH$?EGvѶK+`L HHLy XP LM ŠϠĠӠS)*+,+`F)) (*=GJFjJJA QE'+ '== `@ STSP8QSS8 m P o R(8RNEW.DISK}' AMPERCIPHERd d2 -AMPERCIPHER.SQ d d2 ,BASIC.SYSTEM(*+HIRES.DUMP2$a`aINPUT.LINE%4EE*MAZE.MAKER& aaMAZE.SHAPES2va@a'NIBMENU3 &PRODOS: }<ͰͰ*SCREEN.CMDZ ,SCREEN.CMD.S] =+SCREEN.DEMO}s"'STARTUP }-.STARTUP.SCREEN - . TEASERED1,TEXT.ENCRYPTAd d5 L`H O Ouȕh8D%L ߥ0ȱHȱh` u)e i^~8^`8e  é Ԡՠ±Ԡՠ·ҠՠԠՠĠՠùԠՠų͠ՠōҠՠù͠ՠ´ҠՠƵαՠβՠұՠÍҲՠōǠà ΍Ҡ ͍Ԡ čҫҍԍҫӠ ͍Ԡ ҠԠ ҍҠҠ Ǎؠα ȍұ ō٠ұ ǍҠҠ ǍؠβҲ٠Ҳؠ čβ ȍҠĭؠ Í؍ŠҠ ōà ΍٠β čٍĠؠ čIJҲ٠ ҍàĭؠ ōĭؠ ԍàβ ҍѠԴ ōؠ ΍ŠIJѠĠ čԴ à ΍àħŬōР ſàРӬ ҍҠРҠ ҍҠҠԠ ҍҠ͠ ԧ ҠԠ ōҠ ōɠҠ ԧӍҫ ō̠Ҡ Ӭ ǩ٠؍ԩ٠ ȍѠҠ č؍ٍԩ٠ ōǍٍԩٍٍӠؽȬ ٬ ǍР٠ŬōƱ٠ Ӎб ǍƲ٠ ǍвŠؠ ĨҠ͠ čؠ à ӍŲàĬؠ ؠ ōŠŲ ōĠ β٠α ōٍұ٠ ҍбà ԍвàβ ҍР ſӠųӬ ōàϬ ōàųР ſàŴӬ ōàϬ ōàŴұ٠ ˍàα ԍŠŠ čӠ ÍƱ  ÍƲ ŵ Í !"#LG ASTARTUP$#   / XXύX?klmnÍoL) "6L'?"(0`6708" = ***)<JJH !h穖tp% ;"Z/݀>">"' 1" 7"5).莀/ ;" " 6" >" 1"6"$ "g"" !"""""IzLYL 8!9 詍` "  4"/pŠϠŠà͠ӠàԠŠH06172839h` v97L75v^a ?/( va?LLLɍ$?`?a ɍɥAH93827160hH46576879h`,C bL ɍ b w,S0 @ lLޭBDEF޾ p ޾ p($ذ v (0 ( L?ԦʚLeةީa s  lL b,FLg,DL,C0$3 >@ Ɉ 3ɾꩈL(3ɾ;Ƀ B94 l% bʽ  ՚,S` H E$݅3`(l8L3LX>(Ƀ,`3,G0]ɾ g` H`پ_پ p _پ׾`>( p۾m׾) W)ʩ@`ɾ>(O puȾ ɾ-O ]c־Jjjj `O>0O l POپھ p H־Ǿh۰8L־Jjjjɾ)Ⱦ8 ѱ OLӜ ĤLLX>(F`־ؾپھ׾` bɄ KDEF vLl v lL bKɍKL?` w  vLl@3 @LtJ)s@J b  l`a?sa?,E30ɍФ3 E3HD F3 Ʉ%h3 bM E  lLthɍLL3`3,A0s0% Ipn DpnI:L ؅303L8933LΞAAJL ةޘг uv $ 8LƞaЌ>?@`>?@`B8` K  춼LK ҟ ҟ ( KK`HJJJJ8`HK)` #hhLJپھ pHJh` D!hgt}~p `~t}p8n~ni}tpi~~tso8pinii>j?k̈́>~|p|Ii||̈́ l - `>i>?Ek?!>Q>>>̀ `` \> ̀ `e>>?́?>?Emn(>e>ȱ>e?>Q>ؠ> ie>>?`|;}=:<~:<=;`||m};>:8o>oȑ>ppȑ>> :op`G DKpnG @p;G=po:i>?Ek?>Q>> L> \/ e>>?́?ޱ>ȥj>>m>` _m8injkiljo풼S 鸍긍$I2 U)VJ зT)`l8`a HbIJhjǾȾɾ p٭b=aIe f`8` P־ǾҾ,G0C f=W)_``\"׾پӾؾھ pD`־ǾY׾ؾOW)ݩȾɾʾ pD`8`W)CB) 5W) =)W)@! pZ}ȾȾ󰹩 p` ־ǾҾ,G 8`׾ؾ f p vۥs׾tؾE`  ( 8о(־Ǿ,G 8`_`W)H־Jjjjh p̭ fLᶢǾ ת..8 ۭ (8mȾȾmɾɾʾiʾ` Lpl8l:/,s̝sƬƀ#(ZZV4G_0=( A P FjL\5p-e9ABSAVERIFYBLOADELETEBYECATALOGOPENWRITEXECREATEFRESTORENAMEBRUNLOCKCHAIN#FLUSHREADPOSITIONOMONPR#PREFIXCLOSEAPPEND6D(!쫂8ֵ#ح#׮2}q :IC@@ -!S    !C- !ABELSDFRV@@ !$(19@EüϠž(+@ABCDEFGHIKLMNPSV     T[fouu~ՠٯ* PWN*]ĿNTz @n6VC/+A>@I5gN Oz @n[Dz @nd0,~z @`$仫@v$⩔,C[B?I>孓`仫6VtCicQĿUKqtVt Nʮq$6,⨁ K6, VtI=v!gNVt Vt  lg~TLLwLLL) `8` ԠŬLL ` `j&f&j&f&j&f&j&E) ` `8 ` ` `jfjfjfjf&j&f&j&f&j&f&E) ` `8 `(L``*&*&*&&*&&*&)? fje`0` ` `` ` `K ` ` ``xPL1:I$"":P1:H(36):B515:M(M):MMM(M(39H)):MM(39H)(M1):V(37)1:E515M:IB1E:I,95:(95);::V2 ZCBP:HP:A$:A(A$):RA13:PP(A8P1):(A32A21)R90:PP(PM):LL(PL)(R1PL):A2190:CLR,A:A(C):(A);:R0(LMR0)90:LL(LM):IB1BL1:I$I$((I)):'()*+,-./01  ************************? * MAZE MAKER *^ * BY MIKE ROHRER *} * COPYRIGHT (C) 1992 * * MINDCRAFT PUBL. CORP.* * LINCOLN, MA 01773 * ************************ 450  ### MAZE MAKER CURSOR MOVES ###  MOVE RIGHT+ (DR2DN2ıA 2I1LE:X26070a <XX1:260:XX9:DNDR:DR1 F:X260Y10ġ:3:269,0269,10:XX10:670: KEEPS CURSOR FROM ENDING AT UPPER RIGHT HAND CORNER PX260ġ:XXX3:YYY3:700 Z d MOVE LEFT nDR1DN1ı% xI1LE:X13140E XX1:260:XX9:DNDR:DR2M :[ MOVE UPl DR4DN4ı I1LE:Y9190 YY1:260:YY8:DNDR:DR3 : MOVE DOWN DR3DN3ı I1LE:Y180240 YY1:260:YY8:DNDR:DR4 :& ### DRAW AND ERASE ###Q 3:1X,Y:J12:Z(BZ)::0:1X,Y:~  ### PADDLE CONTROLLED CURSOR MOVES ###  MOVE LEFT "X10XX1::MD880,1040 ,1XO,YO:1X,Y:(234)NUMĕ1X,Y:XX9:1X,Y:XOX: 61X,Y:XX1:1X,Y: @ MOVE RIGHT3 JX260XX1::MD880,1040n T1XO,YO:1X,Y:(234)NUMĕ1X,Y:XX9:1X,Y:XOX: ^1X,Y:XX1:1X,Y: h MOVE UP rY9YY1::MD880,1040 |1XO,YO:1X,Y:(234)NUMĕ1X,Y:YY8:1X,Y:YOY: 1X,Y:YY1:1X,Y:  MOVE DOWN9 Y180YY1::MD880,1040t 1XO,YO:1X,Y:(234)NUMĕ1X,Y:YY8:1X,Y:YOY: 1X,Y:YY1:1X,Y:  ### INTRO ### :::(21)NAP$": APPLE MAZE MAKER :":MX$"MX-80":CR$" * * * * * COPYRIGHT (C) 1992 * * * * * * * * * * MINDCRAFT PUBL. CORP. * * * *":BZ16336:NUM72:B$(7)bI14:L$(I):x "I","J","K","M"23:11::AP$::I1800:I116:912:J111I2:Z(BZ):::I1750:: SCROLLS THE SCREENJ8:175::20)"BY":I12:Z(BZ):::15)"MIKE ROHRER":I12:Z(BZ)::I1500::20:CR$:255iD$(4):I$(9): CTRL-D/ID$"BLOAD HIRES.DUMP2": A$6000,L$10ED$"BLOAD MAZE.SHAPES": A$4000,L$76&232,0:233,64:POINTER TO SHAPE TABLE START 0 ### SET UP SCREEN ###"::16302,0:3:0:1^DI026:910I,0910I,189::I021:9,9I269,9I:fNX9X0:YO(((1)21)1)91:YYO:1X,Y:3:20,Y:X10b ### SEND MAZE MAKER CURSOR THRU THE SCREEN ###l:21:I1900::16301,0:Z(BZ)(BZ)`v::3)"LEVEL OF DIFFICULTY ===>";:32,28::22:"A. EASY":"B. MEDIUM":"C. HARD ";:32,0A$:A(A$):A65A67640LN(67A)2(67A):16302,0DIR1:LE((1)LN)2:680DIR((1)25)1:LE((1)LN)2:SET DIRECTION/LENGTH OF MAZE MAKER CURSOR PATH ~DIR40,40,40,40,40,40,40,40,40,40,110,110,110,160,160,160,160,160,160,210,210,210,210,210,210:670 ### COMPLETE MAZE WITH RANDOM ERASURES ###:I11500::16301,0:22:13:"CONTINUE? (Y/N) ";:A$:A$"Y"A$"N"70016302,0::A$"N"570aI1125:0:Y(((1)21)1)91:X(((1)25)1)108:1X,Y:I1275:0:Y(((1)20)1)9:X(((1)26)1)10:1X,Y:3:3XX,YY:I112:Z(BZ)::I14000::%16301,0:22:9:16368,0:"SEND TO PRINTER? (Y/N) ";:A$:A$"Y"A$"N"7506A$"Y"1110:21:1:16368,0:"MAKE A SELECTION: M. CREATE A NEW MAZE":20:"S. SOLVE MAZE ON":25:"SCREEN":20:"E. END PROGRAM"; 24:9:">>---> ";:A$:A$"M"A$"E"A$"S"780A$"E"1320 A$"M"570N*:22:10:"TYPE 'P' FOR PADDLES":15:"'K' FOR KEYBOARD ";u4A$:16368,0:A$"P"A$"K"820>A$"K"MD2:940H:22:7:I1500::"(PDL #0 ----> RIGHT & LEFT)":Z(BZ)(BZ)RI12000:::7:"(PDL #1 ----> UP & DOWN)";:Z(BZ)(BZ):I13000:B\ ### SOLVE MAZE WITH PADDLES ###lf16302,0:MD1:XO10:XXO:YYO:1X,Yp(0)30XX1:290z(0)220XX1:330(1)30YY1:370(1)220YY1:4108(XXX13YYY3)(((234)1(234)64)(XXX13YYY6))(XXX13YYY6(1)30)1000:APPLE BITTENLI1100::880s ### SOLVE MAZE WITH KEYBOARD ###:7:22:(7)"USE THESE KEYS ";:50:I14:"=";:Z(BZ)(BZ)(BZ)::">":255J15 I14:211(I2I3)2(I4):301(I2)1(I3)::L$(I)::Z(BZ):kI14:211(I2I3)2(I4):301(I2)1(I3):L$(I):Z(BZ):I,JI11000::1030::I15:6I2:12::AP$::B$B$:I11500:B$:130016302,0:XO10:XXO:YYO:1X,YA$:A$"I"A$"K"A$"M"A$"J"10405A$"J"XX1:290L$A$"K"XX1:330c.A$"I"YY1:370z8A$"M"YY1:410B(XXX13YYY3)(((234)1(234)64)(XXX13YYY6))(XXX13YYY6A$"I")ı: APPLE BITTENLI1100::1040V:` ### PRINT ROUTINE ### j\t12:16368,0:"TURN ON ";MX$;" AND PRESS RETURN ";:A$~16304,0:16297,0:16300,0:16302,0: SHOW MAZE AGAIN HR32NI0TB827,NI:23,HR:D$"PR#1"I$;"80N" (27)(61);: CLEAR MOST SIG BIT1(27)(68)(TB)(0);: SET TAB`(27)(65)(7);: ST 7/72 IN LINE SPACING24576: CALL THE MACHINE LANG PROG AT $6000(27)(64): RESET PRINTER TO DEFAULT SETTINGSI$;"0"D$"PR#0" 16301,0: MIXED TEXT/GRAPHICSP22:9:16368,0:"MAKE ANOTHER MAZE? (Y/N) ";:A$:A$"Y"A$"N"1300`A$"Y"570{(::10:19::"BYE":2I1022:I:26I::" ";:J110:::(8)" ":Z(BZ):-=$$$,---5666???'$$,--566??'$,-56?',5?-$-%,-$'?66?7>?),%%?<$%-<67.65-.,%-''$,,???>6/65-%$$?>65%$7456789JAN 1992 DISK (VOL 13/NO 1) 5 BASIC PLUS SCREEN COMMANDER MAZE MAKER AMPERCIPHER CHECKIT 4 SCREEN COMMANDER RUN SCREEN.DEMO MAZE MAKER RUN MAZE.MAKER AMPERCIPHER RUN TEXT.ENCRYPT CHECKIT RUN CHECKIT @ This disk is a double-sided disk. All of the programs that will run under ProDOS are on the ProDOS formatted front side of the disk, and all that will run under DOS 3.3 are on the back side of the disk. Some programs will run under both operating systems and are included on both sides of this disk. You're currently using the ProDOS side of the disk. @ Before using the programs on this disk, you should make a work disk for each program. This can be done by first making a complete copy of the disk with one of the following programs: * COPYA (DOS 3.3 System Master) * FILER (ProDOS Utilities Disk) * The Apple IIc or Apple IIGS Utilities Disk * Any Disk Copy Program Then boot the copied disk and delete all of the files that are not related to the program by using the DELETE command. The System Utilities program also has an option to DELETE files. @ The screen displays that follow show the files needed to create working copies of each program. @ To create a work disk for BASIC Plus, remove all but the following files from a copy of this disk: BASIC.PLUS BASIC.PLUS.S REPEAT.DEMO WHILE.DEMO IF.DEMO DEMO.GAME These programs are included on the DOS 3.3 side of this disk, only. They are not included as an option in the program menu, because they require special instructions. See the documentation for details. @ To create a work disk for Screen Commander, remove all but the following files from a copy of this disk: SCREEN.CMD SCREEN.CMD.S SCREEN.DEMO This program is included on the ProDOS side of this disk, only. @ To create a work disk for Maze Maker, remove all but the following files from a copy of this disk: MAZE.MAKER MAZE.SHAPES HIRES.DUMP2 This program is included on the ProDOS and DOS 3.3 sides of this disk. @ To create a work disk for AmperCipher, remove all but the following files from a copy of this disk: AMPERCIPHER AMPERCIPHER.S TEXT.ENCRYPT This program is included on the ProDOS and DOS 3.3 sides of this disk. @ In addition, we've placed a copy of the CHECKIT program on this disk. CHECKIT is a utility published in Nibble that aids in typing in programs from the magazine. The One- and Two-Liners are also included on this disk. @ The source code files for the major assembly language programs have been included on this disk. These files are included expressly for experienced programmers. These files cannot be used unless you own the appropriate assembler. WARNING: Do NOT attempt to run the following source code files: BASIC.PLUS.S SCREEN.CMD.S AMPERCIPHER.S @ # ;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYL !C_" %k"l" (#M8( % ) L*"m"n" (_7, )7(P0 ( @X p 8  u"!_"f"0 ~&f"0 %o"p" (,) &q"r" ( %L*")0I0hx H( + %Щ ߩu"L! )L! 8'  )ɀ)4,- U JNT) u"Ls"t" ( !` ^"M)Fi/ b"3 h"i"j" e" iL X>"L;"ίΠ`v""""""*$ Fk%YeQP!/RB}QBiBB}\ }FEL,#> ȏ6 . ) ɘ"    L:#:#ŠϠĠԠ  m# m# J Qڨ)̰}] нȱ ̀𩠙 i V N c ɘ\   VG+ #X ɛL ' 0% '8 Jm ʈ0  0ŠϠĠ͢Š͠͠ϠŠŠϠĠخ͠ ͍B B(8`BYYZLYLYLY뿭` 8!@8` %MNЩUMߩ  L 5   8 0 8  `0 / X& & +&&7&P^&0`ŠӠֱέԠŠҬî̠ӠĮʎ1|&… (n}&Dž (\%Tz&Lc()8= (J 8'z&'{& 3((ʎ1|&|&|&3223 ')L&18|&"m11 2H22h2舌|&|&12H)M0 h10200I20h2 (`LE%12 `_'"L  <8# ȱ)ɀ  )( ` (Xp< @( )m((.(( M(i  ``) |'(j21 z& {&!` ({&z&(i({&(( CBDFGE (r&$ 3(,}&r& … 3(ŅL&JJJJ`Ϡ'8`r&h)hrȱȱȱȱ0]cȱeem*ȱ*ȱ**ȱ**ȱ* )* * )L(`L?* *Ll) ) L( )Ll)8e` ,$`ee` `* G** c*` v* G* c*`hh8`8`***`}*`e`H)hJJ*0JJ)` (< ( < *? ( < (? ( < (? ( <*? * **? *? *? ( < *? ( <.<ʆ>,=?BC8 é&'112`HB-9F 3"aɿ LLB Nϰ H  @h( L Lj  @`eLJCAB@=?<>=?<>CAB@?A` 1 L  <>`ڢF]PL8i m L   6< L  BLRAM' hLDLآ <B*IBGF08Lé'+8H <,``h(`@ڍL3hh@ihAiH(ؠȱ@JJJJq@)@vvȱ@Hȱ@Ah@@cve J) LL LJiB LJ) JxNhHHHHL(  ްƠx@BEOD  ް(`( C)CJJJl`B l-`J,~@~@}J@` ߩ%S @ ~`E hhhߺ0 h ߐ(     0 HϭߍLпllllhh8` Qu")T'P() ɺiLG )?      `l@Hȱ@IױHXATȱH ɯȩ׍̕5H)/@a)_ .0 :A[8@`,뎕׮Б` L ` @>V)I38 Pghם`K8`@Nȱ@O@ IiNȽבN)/ȩ/N`@[ WHJjjjhA I'KI؍0JHi 뎈`C8` @ 3N@) S莴 ⭱i`0 e; 뮈ٝ٘ 0 W,0 .H hȑNWȮّNW8`ٍّNί0NN` G8`F@ 0 P LK8`= >I8`FHGH hGhF܌ բFܽܕF芝ܝ 밶=> ?܅I m@IHHyHȘI Lܝ` @f@ n@Ю׍V)mיVʈ@tȱ@fȱ@prsiQ{R|V)5VI0ܢܽ lS'H* 7ghFG (JK L܅IU mHIH` wt tP0ST HVHQFRG 밳QR 밨J%܈G" T)Ii)܍U*܍H'ܮ( 4 䭐 $H %HFFHGHG 됬`R8`)` HHV` /Q'܅IHHVVЍV@`8 ` ͐% ΐQ8`܅I `S܍TU p8D`F` ilH)HFȍQHGR $%܍&܍!ܢ8* J8` L ܝA)I 'ܝ=`I8iUFSGT`I܅IH3H ( )ȱHί`Α8HeHI SB=0P ٙNٙLFQJʈ p猱`8m0`,0H hi PȽίhٍ0GF8yאFG  $0 S01 E8`100 e 0ʩ 谼 谷`12)1`0`Ȏi 0U`)8`ί` W G IؙJJ c: QLHIHI`JKJK`FHIG ( Ȣ؝؈JL)eKM`)` J }J͢ $0 ΑJFJL8`JGBJ \ FإG`BH \FإG`,H hHB؅F  ؅GxDE؍00C ް(`(8` L3J  B"L H  B 9ؙ` @ P8`K8`B8` O؈VJJJJحt) ) )Ю ЪGgF $ ᭔ع+ؠ >H  Wh8` 䮈ٽ ٬ؠ@` ( O )8`)i п`  H h)N$% LL L L >  .pJ덦 )@፩NJOK >iKKΥΥ IJΦ JФ̭JjHFIH HIGxKE ް((H hH h8`8@ȭ@L>쬉8NNO 8 ؍JL`RΥʱLN1MOMEKP/MEKΥLCL-M O,p莤eNNO(`JNKOL >/  .P L8 cؑJ`L@ȱ@ `@Nȱ@O`؝}}I}ؐ` rؽ؝} r 1 r؝}؈` ` H  \h)N@ C; L  >$ )bJ e ) H @hL ) # )حJjI~HI}H؊  PLKΥʱNLMO MЈMEKݸP%MEKΥL0 O, PeNNO O(` C  7 #2J}HI~HI؊ LQ  6` #A H} ع H~ ؙ؊ؠIhHIhH  iع `  عiعi` )؍0CGHFHBFGx ް(8hFhG`@4͔ L @Ai ׭2` . W#ع؍0 e讈)`.@+ i 8` L )߹0 )p )@ ) ȩ ؝O0QR 방 STQRFG 嬉؍i؍j؝k ؝f }V) }V )حP͝ `H@h`h``N8`  ) C⬉Ȣ؝@ݡ@ʈLO KIJHȢݡ)Jn 8 λ ؍ ؍ aH8 ع)ꭸJJJJ Ȣ؝I؈ >h(8H E h(8Hh(`ؑ@`@ȱ@ ` B@8ZV p鮈ٍٍٍvHٍu8ihjVJJJJV)V@` %I -t) 0@V)N8` @LL =@ 4ȹP8` %i` Bם0 4B B)( ȹ`8m8m@8` G8`F Pt)@N8`V)@J 4טyרםVV)׍Vgh 밑 %LȹL@ȅH@IL,0` G פֿ= eH.t)N 0 PghV)@LP8` a᮷ &֩VJKJ L䬈yٙ٭yٙ٩`K OEgFhG 6%&N   & ܮ `J HH hh` 0 @ LLL w`̻Yܝ ݝ0̻ȩFG   0` ܅F݅G ` wͬ 밽܅F݅G ` * w% L`L뮷HH &hFhG܍ݍ 8 `FHGH & hGhF`ݹܙ݊`@Bɼ>K@J5 9X(K XXK تKo`V8`no` I on I9XX`) HJJJh`OeNeO࿰ 9XАO`@ȭ@` ON fNJKO`HхhꭋILhH),kx8 (8` ԍ`@Ae Or88`zw! NIJK,-NOPQRSu' @   !"#$Ԡ͠ˠ(C)1983-87APPLELKL`BL Lެެެެެެެެެެެެެެެ(C)APPLE'83xLLM Mh@8nЍLޭ 0J @,,LZP׽8H  ): e: y8鰕:Jjjj<)yאi8i;i(*=>hPם8`;Zx3QZYXXWV[HEVhEhH)IWHPHHHAHHHLaVEWLӿ`` ֽ ְ& .Vӈ  JJJJH 8h Ei 8EX`'8`jӍWӥC)p> pӥCYӍY 轊( ( ӈBV ( ӭp0 \BkJ ՠ@iӦ> Ӑi'j:ZH i@ioZZH h ѐȭnWǥBJ Ӱ8XӦ>` Ր+>*L o % ԽYӍZӭoӝY 3Ѡ шNZ`rZLkӭZӍq8r7IZӐiZkӐk 8 ѹs ӭq ѹ| kн Z)*>>` @ $(,048<@DHLPTX\`dh 0ުlptx| 0($ p,&"op8`kkV꽌ɪɖxlӽ*kӽ-kәmMlӈ 꽌ɪ`8` ZԍsԍԍԍԥDEԌ8TԌ8WpԌqԠ 7I꽌ɪ꽌ɭ蠪:љVE:8`]ѾV]H)]ѾV]ҙ)]ѾT]ҙ)] >8hUD` ԝY`> Hh݌(`HCJJJJ)*h`8LխӅ:HhHh Ո թ թ ՘VYҪҦ>:Y)Ң`;R?AJ;<ȰY)Ң`Y?)Ң`ȐҰ ;HhHh=Ң`Hh `Hh`DEiȍ0֌18V%֌&8V֌֠)HV)hH)hHIhդD?DRIDQD)҅; ?JDQD]ՎՎՎ`MY pӭY)p  ӭp`C)`BFGV 8``  / XʩXύX X %   % ɍRH hɛɘɉɈ $ Ld :Ldې)ɮ۰ɺ' Ld  : X ( % ɛ$ɘɉ ɈL :Lɍ)ې)ɮ۰ɺH h 'L  ġLL ̹L)'L ȳL O'F ʻ ̹(((L $ʩ $$ $L `ީ % K@D EFby LҠؠӠ΢ϠԩҠŠƠԠԠŠӢɯϠҠůȠԠĠ  0h)ύh0HHHH " ׍hhhhhhh .hh8`JIMJAYKERRY&MIKE[\ L WAA /A D8Ae8eCѥސ˭gAhAC?BC ,`حlmȱC CiLJAȱC ClLJAȱC$CoRSPQTU`8LLrALALA BC B1 C, C B pCC p p1H ph8`V)` B C C p 3CCCLp BV)0C B C Cپ C pCCLA6H7H8H9H$HC76CC ɛ9Ƀ0 C CCCh$h9h8h7h6`BLpBNC()ɢ8nC TPCC`ÍLp eCCP '`O'xUT(ʈ` B0,C0)?)  @Cݩ ` eCCP '`O'xUT(ʈ`CHJ) h)i `׾ؾCپھC` p7C-&sξtϾ pо־Ǿ޾` 8`TSAVETLOADDUMP΍^_`abcdefghijklmnopqrstuvwxyz{|******************************** * SCREEN.CMD.S * * Screen Commander source code * * by Paul Esser * * * * Copyright (C) 1991 by * * MindCraft Publishing Corp. * * Lincoln, MA 01773 * * * * EDASM assembler * ******************************** *------------------ * EQUATES *------------------ * Filetypes used by TSAVE/TLOAD * SCR40TYPE EQU $F4 ;40-column TSAVE/TLOAD file type SCR80TYPE EQU $F8 ;80-column " " " " OURAUXID EQU $0400 ;Auxillary type for both of the above * * Zero page storage * PTR EQU $06 ;pointer ($6,7) PADDR EQU $08 ;storage for address returned by GETBUFR BAS1L EQU $06 ;temp storage for screen base address-- BAS1H EQU $07 ;(don't want to erase BASL/BASH at $28/29) * * Applesoft * HIMEM EQU $73 ;Applesoft HIMEM ($73,74) * * Keyboard/Screen * KEY EQU $C000 ;keyboard STROBE EQU $C010 ;clear keyboard strobe STORE80ON EQU $C001 ;use PAGE2 to switch between main/aux mem RDCHARSET EQU $C01E ; >=$80: alternate charset (INV/MouseText) RDCOL80 EQU $C01F ; >=$80: 80 column screen active PAGE2OFF EQU $C054 ;select main memory (when STORE80 is ON) PAGE2ON EQU $C055 ;select aux memory * * Monitor * CH EQU $24 ;horiz. position of cursor OPLEN EQU $2F ;opcode length returned by CHKOPLEN CSWL EQU $36 ;char output address CSWH EQU $37 KSWL EQU $38 ;char input address KSWH EQU $39 A1L EQU $3C ;Move start A1H EQU $3D A2L EQU $3E ;Move end A2H EQU $3F A4L EQU $42 ;Move destination A4H EQU $43 INBUF EQU $200 ;input buffer, used for temp storage CHKOPLEN EQU $F88E ;check opcode length COUT EQU $FDED ;char output MOVE EQU $FE2C ;Monitor Move routine * * BI Global Page * EXTRNCMD EQU $BE06 ;external command vector ERROUT EQU $BE09 ;output BASIC.SYSTEM error STATE EQU $BE42 ;nonzero: BASIC program is running XTRNADDR EQU $BE50 ;external command address XLEN EQU $BE52 ;external command length minus 1 XCNUM EQU $BE53 ;0 for external command PBITS EQU $BE54 ;permitted parameter bits FBITS EQU $BE56 ;found parameter bits VPATH1 EQU $BE6C ;primary pathname or command name GOSYSTEM EQU $BE70 ;do MLI call CRACESS EQU $BEA3 ;CREATE access byte CRFILID EQU $BEA4 ;CREATE file type CRAUXID EQU $BEA5 ;CREATE auxillary type CRFKIND EQU $BEA7 ;CREATE file storage type SSGINFO EQU $BEB4 ;GET/SET FILE INFO parameter count FIFILID EQU $BEB8 ;GET/SET FILE INFO file type FIAUXID EQU $BEB9 ;GET/SET FILE INFO auxillary type SREFNUM EQU $BEC7 ;GET/SET MARK or EOF reference number OSYSBUF EQU $BECE ;OPEN system I/O buffer OREFNUM EQU $BED0 ;OPEN returned reference number RWREFNUM EQU $BED6 ;READ/WRITE reference num. RWDATA EQU $BED7 ;READ/WRITE data location RWCOUNT EQU $BED9 ;READ/WRITE amount of data CFREFNUM EQU $BEDE ;CLOSE/FLUSH reference num. GETBUFR EQU $BEF5 ;Allocate memory from BASIC.SYSTEM * * ProDOS Global Page * MACHID EQU $BF98 ;Machine ID * *-------------------- * INSTALLATION *-------------------- ORG $4000 * * Installation/Relocation segment * by Bill Tudor * LDA #MODSTART STA PTR ;set PTR to start of code that requires LDA #MODEND ;if not, modify some more BLT MODLOOP * LDA EXTRNCMD+1 ;link into external command chain STA NXTCMD+1 LDA EXTRNCMD+2 STA NXTCMD+2 LDA #$00 STA EXTRNCMD+1 LDA PADDR STA EXTRNCMD+2 * LDA #>PSTART ;now move the code to the memory STA A1L ; reserved for it using Monitor LDA #PEND STA A2L LDA #* ;fill with zeros up to next page DS $100-HEREL,0 * *--------------------- * COMMAND PARSING *--------------------- * PSTART EQU * ;start of installed portion of program MODSTART CLD ;start of part that has to be modified LDA VPATH1 STA PTR ;get pointer to command/pathname LDA VPATH1+1 ; into page zero STA PTR+1 LDY #0 CHKTSAVE INY ;check for TSAVE command LDA (PTR),Y CMP S.TSAVE,Y ;compare command with TSAVE BNE NOTTSAVE ;if no match, not TSAVE CPY S.TSAVE ;see if more characters to check BLT CHKTSAVE LDA #>J.TSAVE ;it is TSAVE: prepare to parse LDX #%00000001 ;set PBITS for pathname required JMP PARSE ;go parse it NOTTSAVE LDY #0 CHKTLOAD INY ;if not TSAVE, let's see if it is TLOAD LDA (PTR),Y CMP S.TLOAD,Y BNE NOTTLOAD CPY S.TLOAD BLT CHKTLOAD LDA #>J.TLOAD ;it is TLOAD LDX #%00010001 ;set PBITS for pathname optional JMP PARSE ;go parse it NOTTLOAD LDY #0 CHKDUMP INY ;if not TLOAD, our last try is DUMP LDA (PTR),Y CMP S.DUMP,Y BNE NOTOURS ;we'll give up if it is not DUMP CPY S.DUMP BLT CHKDUMP LDA #>J.DUMP ;it is DUMP LDX #%00010001 ;set PBITS for pathname optional * PARSE DEY ;Set up for BASIC.SYSTEM to parse command STY XLEN ;set XLEN to command length minus 1 LDY #0 STY XCNUM ;zero XCNUM to indicate external command STA XTRNADDR ;point XTRNADDR to particular command MANUAL LDA #$00 ;--modified by relocator STA XTRNADDR+1 STX PBITS ;set PBITS according to particular command LDX #%00000100 STX PBITS+1 ;set PBITS+1: S and D parameters allowed CLC ;carry clear indicates command found RTS * NOTOURS SEC ;carry set indicates not our command NXTCMD JMP $0000 ;--modified to point to other ext. cmds. * *---------------------- * COMMAND HANDLERS *---------------------- * J.TSAVE JMP TSAVE ;jump table used for each command J.TLOAD JMP TLOAD ; handler because relocator assumes all J.DUMP JMP DUMP ; three commands start on same page * * TSAVE command handler * TSAVE JSR SCRMODE ;get screen mode (40 or 80 col.) LDA FILETYPE LDX #>OURAUXID LDY #INBUF STA RWDATA LDA #OURAUXID ; error will be reported BNE TYPEMIS LDA FIAUXID+1 ;also verify proper auxillary type ($0400) CMP #":b1:1:"Selection: : Instructions"l3:"----------------------------------------";*v5:20((A$)2):A$QI1ME2:61I:8:I". "MP$(I):z61(ME1):8:ME1". Catalog Disk"61ME:8:ME". Quit"21:"----------------------------------------"23:1:"Type number or use arrows, then ";:PX10:SX4:SL10 ********** SELECT CHOICERNSL:OSSL:780:Z0:24:8681:12:SL:49168,0:16384,128::Z$((16384)128):Z$"1"Z$(ME)SL(Z$):NOS:780:700Z(Z$(21)Z$(10))(Z$(8)Z$(11))10(Z$(13))20(Z$(27)):Z950Z20ī380DSLSLZ(Z10):SLSLME(SLME)ME(SL1)\NOS:780:Z10700e800 ********** PRINT POINTER SUBROUTINE 61N:SX:X$(SLOS);: ********** SELECTION ROUTINE SL(ME1)İ860:600*SLMEİ900:SL1:780:680;42:1:" "::2:1:RC$(SL):h> ********** EXECUTE A VALID MENU CHOICEH49168,0::1100::D$;RC$(SL)R ********** CATALOG SELECTED \:49168,0::D$;"CAT":f24:7:"Press to continue";p49168,0:49152,128:0z ********** QUIT SELECTEDo22::958:"Do you really want to quit? (Y/N)";:49168,049168,0:49152,128(49152)249(49152)217Ĺ49168,0::1100: ********** SOUND BUZZER FOR WRONG KEYSTROKE EQ110:EY(16336)(16336):EQ:F ********** ERROR HANDLING ROUTINEN:o(1101)6ė:D$"PR#A$300"(222)6(222)8Ģ19:(7);"Disk Error. Please insert Nibble disk":101019:(7);"An error #"(222)" has occurred. "D23:"Press to continue ";:958:49168,0:49152,128:600i ********** WAIT FOR KEYSTROKEvFLAG$""23:" for next page or for menu";:49168,0:49152,128(49152)155FLAG$"ESC"$. *********** ATTACH UPPER/LOWER CASE ROUTINEB8I013:ML:768I,ML:I:D$"PR#A$300":vB ********** DETACH UPPER/LOWER CASE HANDLER L(4);"PR#0":V ********** INSTALL INPUT-ANYTHING ROUTINE`X768839:A:X,A::j ********** INPUT-ANYTHING ROUTINE DATAOt 32,190,222,32,227,223,36,17,208,5,162,163,76,18,212,133,133,132,134,165~ 184,164,185,133,135,132,136,32,44,213,173,0,2,201,3,208,3,76,99,216 169,0,133,13,133,14,169,0,160,2,32,237,227,32,61,231,32,123,218,165 135,164,136,133,184,132,185,32,183,0,96,0B ********** UPPER/LOWER CASE ROUTINE DATA| 216,201,225,144,6,201,251,176,2,233,31,76,240,253,0p|~p|*U*U*U*U*U*(@?p~px|xժժժժժT*@?p~px|ЪժժժՊdO U @?`p~?pxԊԪ`|yg~0 cFc U*U*U*@@P*U*U*U*U*U c `Lgsc `0L| 0@ ժժժժժժ F`pO|`*U*U*U*U*U*0p|~p|(U*U*U*U*U**@?p~px|ժժժժժ`AT*@?p~px|xժժժՂn_? U@?`p~ppp}{c0 cFc(U*UA*U*ԪժժժժՊc|`LqFn|cx``G  pO?<ժժժժժժpaGo1G1v`cOFq3\qsqpO|`*U*U*U*U*U*p|~p|(U*U*U*U*U**@?p~px|ժժժժժ`AT*@?p~Ap||xժժժՂN?p Upysc'C&0.cFc(U*U P*U*@c|@`?|1@?<Ԫժժժժժժժժժժժ3L;sL1 3N0fF3F0f`pO|`*U*U*U*U*U*@?~yg|sO?~yg|sO?~yg|sO?~ygp|~p|(U*U*U*U*U*@*@?p~px|ժժժժժpcU*@?p~p|ժժժ_?@>| Ux{w cY#8X03X0FC30*U*U*U*U*Uc ``c 3@ Ԫժժժժժ`ժժժժժժ0LsL1 ?pgF1Fq1fqappO|`*U*U*U*U*U*pp~p|(U*U*U*U*U*@*@?p~px|ԪժժժժpcU*@?`p~p|ժժժ?~ GC@F Uxsg`c00@` 80`gF1\y1\yax1~p*U*U*U*U*U*@?p~Ap||x U*U*U*U*U*P*@?p~px|ԪժժժՊpgU @?`p~p|ժժ@?~|sp#XqF1 ;FpC ;P*  U @?~yg|sO?~yg|sO?~yg|sO?~yg@*U*U*U*U*Uc `]gs`gL`0L3 ?|1@ ժժժժժժ@pO|`ժժժժժժ0p|~pp*U*U*U*U*U*@?p~px|x U*U*U*U*U*T*@?p~px|ЪժժժՊtoU @?`p~p|ժժ`~} CCk<F9 gfCgU*(U*P*U*U*U*U*U c `Lgs0c|`0L  0@ ժժժժժժ F0`pO|`ժժժժժժ0p?|~?px*U*U*U*U*U*:I13:J13:S823I256J2:S,185I3J:S(I,J)S:J,I:C1339:C,53:6:16:"TEASER II":H0:T1:X11:Q01:R01:(7(RQ));:41,3:A$:A60(A$):A222:RA2A12::I%A3 J3I%A3:Q(S(I%,J))58::K22(A7):L(K):SS(I%KL,JK2L)(K3)C(K3):V(S):D(V76):S,VD128:TTD::HH1:17:20:H" ESTART":X(T0)8(T8A7):::(" GENIUS!DUMMY",X,7) ***********************= * TEXT.ENCRYPT *[ * Sample program for *y( * AmperCipher *2 * by Rich Skrenta *< * Copyright (C) 1992 *F * Mincraft Publ. Corp.*P * Lincoln, MA 01773 * Z ***********************" d120:260:600C n ** PRINT THE TITLE PAGE **K x:m 2:10:"TEXT FILE ENCRYPTOR" 3:"A sample program for AmperCipher" 5:11:"by Richard Skrenta" 8:9:"Copyright (C) 1991, by" 7:"MindCraft Publishing Corp."! ** SET UP AMPERCIPHER **- D$(4)G D$"BRUN AMPERCIPHER"g ** WAIT FOR A 'RETURN' ** 16:"Insert the disk with your text file and press ..."; A$:A$(13)230 : ** PROMPT FOR OPERATION ** :8:9:"E)ncrypt or D)ecrypt ?"; A$. A$"E"S1> "A$"D"S2S ,S0ĺ(7);:270r 6 ** GET INPUT FILESPEC ** @:8:"Enter the name of the file that you wishto "; JS1ĺ"encrypt:" TS2ĺ"decrypt:" ^:">";F1$ h(F1$)0ĺ(7):320 r ** GET OUTPUT FILESPEC **\ |:8:"Enter the name of the file you want to save the ";l S1ĺ"en";| S2ĺ"de"; "crypted text in:" :">";F2$ (F2$)0ĺ(7):380  ** GET THE PASSWORD STRING ** :8 "Enter the password that you wish to "% S1ĺ"en";5 S2ĺ"de";Y "crypt the file ";F1$;" with:"g :">";P$ (P$)0ĺ(7):450  ** VERIFY INFORMATION ** :6 S1ĺ"En"; &S2ĺ"De"; 0"crypting the file ";F1$::"and storing the result in ";F2$;"..."D:N ** WORK ON THE FILES... **DX720WbD$;"OPEN";F1$jlD$;"OPEN";F2$}vD$;"READ";F1$A$""X$:X$(13)670A$A$X$:650(A$)0700S1įE,A$,P$:700D,A$,P$:D$;"WRITE";F2$A$:630D$;"CLOSE";F1$/D$;"CLOSE";F2$@:"Done!":