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}' ,BASIC.SYSTEM(*+'CHECKIT -ϲ )COMPUTLES$4.CURSOR.5@*CURSOR.5.SA 44FRACTALSKƶƶ(GEOMETRYL4  INTERFERENCEhƶѶ 'NIBMENUi 7 7 )OFFLINE.Sp q7ö .OFFLINE.SYSTEM}ö ö &PRODOS }<ͰͰPS.CONVERT.0ss.PS.CONVERT.BAS 34 4 ,PS.CONVERT.S1s' s( 'STARTUP }-Ӷ).STARTUP.SCREEN - . )TECH.FONT<aUP.AND.DOWN.ƶƶ 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 !"#. ********** NIBBLE PRD DISK **********[ * CHECKIT * * COPYRIGHT 1988 BY MINDCRAFT PUBL.CORP. *( * CONCORD, MA 01742 *2 *************************************' <:::"CHECKIT":"COPYRIGHT 1988 BY MINDCRAFT PUBL. CORP."0 F90\ PI0377:ML:CSCSML:::CS48127100 Z:"ERROR IN DATA STATEMENTS!":"PROBABLY LOCATED ON OR BEFORE LINE ";(123)(124)256: d216,0:768,0:H(3):H(0)1:H(1)16:H(2)256:H(3)40969 n6:"ARE YOU ENTERING A HEXADECIMAL":"FILE?";:A$:16368,0:A$d xA$"N"A$(110)İ370:34218,128:210 A$"Y"A$(121)110 768,1:10:958:"WHAT IS THE STARTING ADDRESS OF THE":"FILE (IN HEX)";:H$:290:AH2 A736A39424ĺ:"INVALID ADDRESS. PLEASE DOUBLE-CHECK":"AND RE-ENTER":350:140| 13:958:"WHAT IS THE LENGTH OF THE FILE":"(IN HEX)";:H$:290:BH B1B32000ĺ"INVALID LENGTH. PLEASE DOUBLE-CHECK":"AND RE-ENTER":350:160 :::34,1:2:"INSTALLING CHECKIT..."x A6144İ320:5799,(A256):5798,A256(5799):5801,(B256):5800,B256(5801):5802,0:230: ABOVE $1800 SOMEWHERE A6144İ370:34215,(A256):34214,A256(34215):34217,(B256):34216,B256(34217):34218,0:210: BELOW $1800 SOMEWHERE' (48896)76Ĺ56,0:57,133:1002:250B (4);"IN#A$8500":250l (48896)76Ĺ56,0:57,22:1002:250 (4)"IN#A$1600":250 :::34,1:2:"CHECKIT INSTALLED" (768)1ĺ:"ENTER THE MONITOR BY TYPING":" CALL -151"  Y"H0:L(H$):L1L4300:I1L:D((H$,I,1)):HHH(LI)(D48(D58D47)55(D64D71)):_,t6 $1600 VERSION@I0377:ML:5632I,ML:I:C5632JI018:ML:CML,(CML)111:T^21:"PRESS RETURN TO CONTINUE ";:CH$:CH$:16368,0:h $8500 VERSION5rI0377:ML:34048I,ML:I;| 216,32,27,253,201,154,240,31,201,141,208,26,134,224,32,178,133,32,251,218,32,128,254,56,165,8 229,9,32,218,253,32,132,254,166,224,169,141,96,32,106,134,44,170,133,16,43,169,1,133,6,169_ 8,133,7,160,0,177,6,133,251,200,177,6,133,252,240,63,200,177,6,32,79,134,200,177,6,32 79,134,165,251,133,6,165,252,133,7,208,221,173,167,133,133,7,173,166,133,133,6,160,0,177,6& 32,79,134,230,6,208,2,230,7,230,251,208,2,230,252,165,251,205,168,133,165,252,237,169,133,144 227,162,0,189,171,133,32,237,253,232,224,7,144,245,44,16,192,32,128,254,164,8,166,9,32,64 249,32,251,218,32,132,254,169,152,96,0,0,0,0,0,20,15,20,1,12,58,32,32,106,134,133> 6,169,2,133,7,160,0,177,6,201,176,144,73,201,186,176,69,177,6,44,170,133,16,53,201,210 208,4,166,251,240,61,201,162,208,8,72,169,1,69,251,133,251,104,201,160,208,6,166,251,208,25 240,26,201,191,208,19,132,226,160,0,185,117,134,32,79,134,200,192,5,144,245,164,226,176,3,32o 79,134,200,196,224,144,188,96,166,224,104,104,169,141,96,132,226,136,177,6,201,160,240,249,201,186 240,8,201,176,144,36,201,186,176,32,164,226,200,177,6,201,197,208,23,200,177,6,201,205,208,166 169,210,32,79,134,169,197,32,79,134,169,205,32,79,134,96,164,226,177,6,24,144,135,162,8,10 38,8,38,9,144,14,72,165,8,73,33,133,8,165,9,73,16,133,9,104,202,208,232,96,169,0 133,8,133,9,133,251,133,252,96,208,210,201,206,212 16,41,44,73,79,92,97,106,123,128,135,180,203,246,249,261,316,321,326 %&'()*+,-./0123456789:;<=>?  *************************?* COMPUTLES *^* BY HAP GAYLORD *}(* COPYRIGHT (C) 1991 *2* MINDCRAFT PUBL. CORP. *<* LINCOLN, MA 01773 *F*************************PR(2,21),C(2,21),L$(12),A$(30) Z(4);"PR#0"- d:::(17):49166,0:640` n *** Subroutine to get and check answers ***y xK(16384):K128ı 16368,0:R0W0AA1:A$(A)P$(1) K155R2:270 22:1:119); 22:1:"Your answer: ";T$ H$"":L1(T$):M$(T$,L,1). M$"a"M$"z"M$((M$)32)B H$H$M$:L:K1i H$P$(K)ĺ"Right!";:R1:470:280~ KK1:KAN200 WW1:"No.";:W2ĺ" Try again.";:240 " Two tries is it for now.":"Next puzzle."; " Press a key to go on."; 16368,0# (16384)128260J 16368,0:W1Ģ22:1:119);:320P  " *** Subroutine to prepare for an answer *** ,16368,0 6: @23:1:"--------------------------------------": 38- J24:2:"Press a key to answer or ESC to skip."; T: ^ *** Subroutine to decode a phrase ***N hW0:R0:Q1AN rA$"":K1(P$(Q)):M$(P$(Q),K,1):M$"A"M$"Z"390 |M$(155(M$)) A$A$M$ K P$(Q)A$:Q:  *** Subroutine to split a word into letters *** I1(W$):L$(I)(W$,I,1):I:X  *** Subroutines to delay varying amounts of time ***i Q140:Q:| Q11000:Q: Q12000:Q: Q15000:Q:  *** Subroutine to beep the speaker *** K115:L(16336):K:, *** Subroutine to assign screen positions for letters ***C(0,1)18:C(0,2)18:C(0,3)20:C(0,4)22:C(0,5)22:C(0,6)22:C(0,7)20:C(0,8)18:C(0,9)18R(0,1)12:R(0,2)10:R(0,3)10:R(0,4)10:R(0,5)12:R(0,6)14:R(0,7)14:R(0,8)14:R(0,9)12FC(1,1)19:C(1,2)19:C(1,3)20:C(1,4)21:C(1,5)21:C(1,6)21:C(1,7)20:C(1,8)19:C(1,9)19&R(1,1)12:R(1,2)11:R(1,3)11:R(1,4)11:R(1,5)12:R(1,6)13:R(1,7)13:R(1,8)13:R(1,9)120: *** Subroutine to print letters in prepared screen positions *'DR(0,I):C(0,I)L:" ":R(0,I1):C(0,I1)L:L$(1)_NR(1,I):C(1,I)L:" ":R(1,I1):C(1,I1)L:L$(2)XR(1,J):C(1,J)L:" ":R(1,J1):C(1,J1)L:L$(4)bR(0,J):C(0,J)L:" ":R(0,J1):C(0,J1)L:L$(5)lv *** Title screen ***3:11:"C O M P U T L E S"-5:13:"by Hap Gaylord"O11:11:"Copyright (C) 1991"q:9:"MINDCRAFT PUBL. CORP.":11:"LINCLON, MA 01773"22:7:"Press RETURN to continue.":X$::10:1:"Do you need to see the rules (Y/N)? ";A$:A$"N"A$"n"900(A$"Y"A$"y"710< *** Rules ***l::"COMPUTLES is a game of word puzzles.":"Each puzzle represents a common phrase.""Some of the words are printed and some""are represented by the actions of the" "displayed words."?:"Watch the action carefully. When you"m "have figured out the phrase, press any"*"key to answer. To skip that puzzle"4"press the ESC key.">:"You get two tries at each puzzle before"H"the program moves on.".R:"At the end of the thirty puzzles you"Z\"are offered the opportunity to print"xf"a list of the answers."p:"Have fun!":23:240z *** Start of puzzles ***300:AN1:P$(1)"WVVI":360:W$P$(1)P$(1)"WVVI XILHHRMT":3601:18:W$;:26:W$.8:11:W$:16:11:W$;I1131nI10:18:4);:26:4):I9:18:W$;:26:W$8:I:4):16:I:4):8:1I:W$:16:1I:W$120:R0W11000I:460:310920300:AN1:P$(1)"DSVVO":360:W$P$(1)P$(1)"HKRMMRMT DSVVO":360&430612:18:W$?520XI18:JI48(I4)e$L0:580|.120:R0W111008IB1050L300:AN1:P$(1)"YLY":360:W$P$(1)VP$(1)"YLY FK ZMW WLDM":360`22:19:W$;jI2221:I:19:3);:I1:19:W$;(t120:R0W112004~450:I[I121:I:19:3);:I1:19:W$;r120:R0W11200450:I:4601120300:AN1:P$(1)"MVD":360:W$P$(1)P$(1)"MVDH UOZHS":360I120:((1)21)1:((1)36)1:W$:I:120:R0W11260)1240n300:AN1:P$(1)"YVZG":360:W$P$(1):P$(1)"YFHS":360:W1$P$(1)AN2:P$(1)"YVZG ZYLFG GSV YFHS":P$(2)"YVZG ZILFMW GSV YFHS":36012:19:W1$( R(0,0)13:R(0,1)12:R(0,2)11:R(0,3)10:R(0,4)9:R(0,5)8:R(0,6)8:R(0,7)8:R(0,8)8:R(0,9)8C(0,0)14:C(0,1)14:C(0,2)14:C(0,3)15:C(0,4)15:C(0,5)16:C(0,6)17:C(0,7)18:C(0,8)19:C(0,9)20I18:R(0,I):C(0,I):4);:R(0,I1):C(0,I1):W$;:120:R0W11390(I:2I911:R(0,I):39C(0,I):4);:R(0,I1):39C(0,I1):W$;:120:R0W11390A<IFI18:25R(0,I):39C(0,I):4);:25R(0,I1):39C(0,I1):W$;:120:R0W11390PIZI911:25R(0,I):C(0,I):4);:25R(0,I1):C(0,I1):W$;:120:R0W11390dI:13100n300:AN1:P$(1)"YIZRMVW":360:W$P$(1)QxP$(1)"HXZGGVI YIZRMVW":360Z430R(1,1)1:R(1,2)22:R(1,3)1:R(1,4)22:R(1,5)1:R(1,6)22:R(1,7)12C(1,1)1:C(1,2)1:C(1,3)20:C(1,4)20:C(1,5)39:C(1,6)39:C(1,7)3912:16:W$!I1(W$):R(0,I)12:C(0,I)15I:I_I17:Y(I)(R(1,I)R(0,I))11:X(I)(C(1,I)C(0,I))11:IkI111J17:R(0,J):C(0,J):" ";:R(0,J)Y(J):C(0,J)X(J):L$(J);:R(0,J)R(0,J)Y(J):C(0,J)C(0,J)X(J):J120:R0W11510I:460:310:14404300:AN1:P$(1)"KZIGRXRKOV":360:W$P$(1)|AN2:P$(1)"WZMTORMT KZIGRXRKOV":P$(2)"Z WZMTORMT KZIGRXRKOV":360430I010:C(0,I)1.1(I.628)20:C(0,I10)C(0,I):I1:20:(W$,1)I09:J2(W$):J:C(0,IJ):" ";"J:C(0,IJ1):L$(J);:J/,120:R0W11600<6I:1560e@300:AN1:P$(1)"ZIXS":360:W$P$(1)JAN2:P$(1)"UZOOVM ZIXSVH":P$(2)"UZOORMT ZIXSVH":360TI16:R(0,I)1:C(0,I)I6((1)2)4:X(I)1:I^I16:X(I)0X(I)1(1).41660BhX(I)0:R(0,I)R(0,I)1:R(0,I)1:C(0,I):4):R(0,I):C(0,I):W$erR(0,I)22X(I)0X(I)1:500||120:R0W11700IJ0:I16:JJX(I):I:J61630310:1620300:AN1:P$(1)"DLIW":360:W$P$(1):P$(1)"DRHV":360:W1$P$(1)! P$(1)"Z DLIW GL GSV DRHV":360G I120:K((1)21)1:K12K11` K:(1)301:W$:I} 12:10:W$:12:35:W1$ I1030:12:I:4):12:I1:W$ 450:120:R0W11790 I 460:310:1720!300:AN1:P$(1)"GZITVG":360:W$P$(1)A!AN2:P$(1)"NLERMT GZITVG":P$(2)"Z NLERMT GZITVG":360m!R(0,1)((1)20)1:C(0,1)((1)30)2!R(1,1)R(0,1)((1)3)1:R(1,1)1R(1,1)20R(1,1)R(0,1)!&C(1,1)C(0,1)((1)3)1:C(1,1)1C(1,1)34C(1,1)C(0,1)"0R(0,1):C(0,1):6):R(1,1):C(1,1):W$:":R(0,1)R(1,1):C(0,1)C(1,1)Q"D120:R0W11880["N1820"X300:AN1:P$(1)"XLMHXRLFHMVHH":360:W$P$(1)"bP$(1)"HGIVZN LU XLMHXRLFHMVHH":360"lW$W$W$W$W$"vI1"12:1:(W$,I,40):II1:I131910#450:450:120:R0W11950$#1920M#300:AN1:P$(1)"SZRI":360:W$P$(1)#AN3:P$(1)"HKORG SZRIH":P$(2)"HKORGGRMT SZRIH":P$(3)"GLHKORG SZRIH":360#I110:R(0,I)((1)21)1:C(0,I)I3((1)3)2#R(0,I):C(0,I):W$:I:460($I110:R(0,I):C(0,I)3:(W$,2);3);:I:500?$120:R0W12030[$470:120:R0W12030j$310:1970$300:AN1:P$(1)"RMEZWVIH":360:W$P$(1)$P$(1)"HKZXV RMEZWVIH":360$12:16:W$$ 430%I1(W$)2:J15II521:12:J:" ";:12:39J:" ";K% 12:J1:L$(I);:12:40J:L$(9I);:120:R0W12100d%*J,I:460:310:2050%4300:AN1:P$(1)"DLIOW":360:W$P$(1):P$(1)"URIV":360:W1$P$(1)%>AN2:P$(1)"HVG GSV DLIOW LM URIV":P$(2)"HVGGRMT GSV DLIOW LM URIV":360&H12:2:W1$:12:30:W$>&RI3031:12(I16)(I15):I:6);q&\12(I17)(I16):I1:W$;:120:R0W12180}&f450:I&p10:2:6);:11:2:W$&z500:470:310:2120&300:AN1:P$(1)"HVZIXSRMT":360:W$P$(1)3'AN2:P$(1)"HVZIXSRMT UILN GLK GL YLGGLN":P$(2)"HVZIXSRMT GLK GL YLGGLN":360B'1:15:W$h'I121:I:15:9);:I1:15:W$'450:120:R0W12240'I:470:310:2200'300:AN1:P$(1)"GZYOV":360:W$P$(1)!(AN3:P$(1)"GFIM GSV GZYOVH":P$(2)"GFIMRMT GSV GZYOVH":P$(3)"GL GFIM GSV GZYOVH":360*(430G(12:8:W$;5);W$;5);W$P(520v(I18:JI48(I4):L101010(580( 120:R0W12340( L,I( 2290($ 300:AN1:P$(1)"MRZTZIZ":360:W$P$(1)(. P$(1)"MRZTZIZ UZOOH":360)8 1:4:W$+)B I121:I:3I:7);:I1:4I:W$;G)L 450:120:R0W12400^)V I:460:310:2360)` 300:AN1:P$(1)"YFT":360:W$P$(1))j AN2:P$(1)"QRGGVIYFT":P$(2)"QRGGVI YFT":360)t 12:18:W$)~ 12:18:3);:13:18:W$* 13:18:3);:12:18:W$* 120:R0W12470&* 2430S* 300:AN1:P$(1)"TLLW-YBV":360:W$P$(1)* AN3:P$(1)"DZEV TLLW-YBV":P$(2)"DZERMT TLLW-YBV":P$(3)"GL DZEV TLLW-YBV":360* 430* I010:R(0,I)3(I.628)12:R(0,I10)R(0,I):I+ I1(W$):R(0,I):15I:L$(I);:I;+ I09:J1(W$):R(0,IJ):15J:" ";\+ R(0,IJ1):15J:L$(J);:Js+ 120:R0W12560+ I:2520+ 300:AN1:P$(1)"XZIG":360:W$P$(1):P$(1)"SLIHV":360:W1$P$(1), AN3:P$(1)"KFG GSV XZIG YVULIV GSV SLIHV":P$(2)"KFGGRMT GSV XZIG YVULIV GSV SLIHV"Q, P$(3)"GL KFG GSV XZIG YVULIV GSV SLIHV":360m, 12:6:W1$:12:30:W$,( I3021:12(I13)(I12):I:4);,2 12(I14)(I13):I1:W$;,< 120:R0W12660,F 450:I-P I1011:I:1:4);:I1:1:W$;:I-Z 470:310:2590A-d 300:AN1:P$(1)"XLNRX":360:W$P$(1)}-n AN2:P$(1)"HGZMW-FK XLNRX":P$(2)"HGZMW FK XLNRX":360-x 430- 12:18:W$:460- I1(W$)1:R(0,I)12:C(0,I)22I:J1I:R(0,I):C(0,I):" ";.. R(0,I)R(0,I)1:C(0,I)C(0,I)1:R(0,I):C(0,I):L$((W$)I);:J:500:450E. 120:R0W12740a. 450:I:470:310:2690. 300:AN1:P$(1)"TILDRMT":360:W$P$(1):P$(1)"OVZK":360:W1$P$(1):P$(1)"YLFMW":360:W2$P$(1). P$(1)"TILDRMT YB OVZKH ZMW YLFMWH":360/ I10286:11:I:W1$:13:I:W2$:I,/ 12:1:W$Q/ I133:12:I:7):12:I1:W$h/ 120:R0W12820/ 450:I:460:12:34:7):2770/ 450:I:460:310:2770/ 300:AN1:P$(1)"DZTLM":360:W$P$(1)/ P$(1)"XRIXOV GSV DZTLMH":360+0 I18:R(0,I)((1)201):C(0,I)((1)351):I|0" R(1,1)2:R(1,2)6:R(1,3)11:R(1,4)16:R(1,5)20:R(1,6)16:R(1,7)11:R(1,8)60, C(1,1)18:C(1,2)25:C(1,3)27:C(1,4)25:C(1,5)18:C(1,6)11:C(1,7)9:C(1,8)11 16 I18:X(I)(C(1,I)C(0,I))20:Y(I)(R(1,I)R(0,I))20:I41@ I18:R(0,I):C(0,I):W$:I:4601J I120:J18:R(0,J):C(0,J):5):R(0,J)R(0,J)Y(J):C(0,J)C(0,J)X(J):R(0,J):C(0,J):W$:J1T 120:R0W129201^ I:470:310:28401h 300:AN1:P$(1)"YLLN":360:W$P$(1)I2r AN3:P$(1)"OLDVI GSV YLLN":P$(2)"OLDVIRMT GSV YLLN":P$(3)"GL OLDVI GSV YLLN":360^2| 12:15:W$:4602 I1221:I:3I:4);:I1:4I:W$;2 450:120:R0W129802 460:I:470:310:2940$3 300:AN1:P$(1)"ORERMT":360:W$P$(1):P$(1)"SZMW":360:W1$P$(1):P$(1)"NLFGS":360:W2$P$(1)O3 P$(1)"ORERMT UILN SZMW GL NLFGS":360b3 12:1:W1$;W$x3 12:35:W2$:4603 I528:12:I:6);:12:I1:W$;3 450:120:R0W130503 I:470:310:300034 300:AN1:P$(1)"RG":360:W$P$(1):P$(1)"YOZXP":360:W1$P$(1):P$(1)"DSRGV":360:W2$P$(1)4 AN2:P$(1)"KFG RG WLDM RM YOZXP ZMW DSRGV":P$(2)"KFGGRMT RGWLDM RM YOZXP ZMW DSRGV":3604 21:11:W2$;:20:W1$4 1:37:W$:4604 I120:I:38I:2):I1:37I:W$5 120:R0W13120 5& I:470:21:17:2):3080K50 300:AN1:P$(1)"TLHKVO":360:W$P$(1)5: AN2:P$(1)"HKIVZW GSV TLHKVO":P$(2)"HKIVZWRMT GSV TLHKVO":3605D 12:17:W$5N 4305X I1(W$)2:J16II611:12:J:" ";:12:39J:" ";$6b 12:J1:L$(I);:12:40J:L$(7I);:120:R0W13190=6l J,I:470:310:31406v 300:AN1:P$(1)"RMHFOG":360:W$P$(1):P$(1)"RMQFIB":360:W1$P$(1)6 AN3:P$(1)"ZWW RMHFOG GL RMQFIB":P$(2)"ZWWRMT RMHFOG GL RMQFIB":P$(3)"GL ZWW RMHFOG GL RMQFIB":3607 5:24:W1$7 22:1:W$:460A7 I2261:I:23I:6):I1:24I:W$]7 120:450:R0W13260t7 I:480:310:32107 300:AN1:P$(1)"DZRHGORMV":360:W$P$(1)7 AN2:P$(1)"HZTTRMT DZRHGORMV":P$(2)"Z HZTTRMT DZRHGORMV":3608 I1(W$):L$(I)(W$,I,1):C(0,I)I15:I)8 12:16:W$:460=8 I03:J55Ip8 17IJ:C(0,10J):" ";:17IJ:C(0,J):" ";8 18IJ:C(0,10J):L$(10J);:18IJ:C(0,J):L$(J);:J8 120:460:R0W133508 I:460:310:3290%9 300:AN1:P$(1)"HRWV":360:W$P$(1):P$(1)"QLPV":360:W1$P$(1)m9 AN2:P$(1)"HRWV HKORGGRMT QLPV":P$(2)"Z HRWV HKORGGRMT QLPV":360v9* 43094 12:18:W1$9> I1(W$):I:20:L$(I):I:4609H I118:I8Ģ12:18:(W1$,2);" ";(W1$,(W1$)2):R J(W$)11:IJ1:20:" ";:IJ:20:L$(J);:J6:\ 120:450:R0W13450M:f I:460:310:3380:p *** Program conclusion with opportunity to print answers ***:z ::8:12:"That is the end.": 22:1:"To print a list of the answers, press A.";; "Any other key merely ends the program.";6; K(16384):K1283480D; 16368,0\; K225K1933590; ::11:1:"(Type 0 for the screen.)"; 10:1:"In which slot is your printer? ";:S$; S(S$):S0S73510; :(4);"PR#";S; K1:J30:S0J15< ::IKJ:A$(I):IW< J15K16:J30::"Press a key to continue...";:A$:3560j< :(4);"PR#0"p<< *** Routine to code any directly typed phrase ***<AN1:P$(1)A$:360:P$(1): g ʆ g ʆ g ʆ g ʆ (ɠ0()?(A=95ߩа( (8`( (бBCDEFGHIJ Ү Ү é Ү ͬͬͬ ά ͽ ͽ ν ν ˨ ý àՠñ̠ՠ͠ՠ͠ՠŠĠՠð͠ՠĶԠՠŶ ĠՠðŠՠ͠ՠ͠ՠΠՠԠΠΠՠԠΠǠ͠ Ҡ͠ҠᠠҠ͠ҠԠؠؠؠ͠ؠŠҠ͠Ҡ͠ҠԠؠؠ͠Ҡ͠Ҡ͍ҠԠؠؠΠ堠Ҡ͍Ҡ͍ҠԠؠؠΠ堠 ũ ԠŠҠà̬Ƞ٠Πб̩٠򠠠РſŠҠٍ̠б堠ɠԍҠ٠Πд̩٠ĠƠ堠̩٠뮠ٍ٠Π̠д堠 Ġ䠠РؠĠ󠠠ԠؠԠ׿ѠԠؠ Π׿ѠԍؠԠ׿ѠԍؠР׿ѠԍؠĠΠ򿠠ѠҠ΍ؠƠᠧѠР䠲ؠ à򿍠Ѡà占ŠР宍РŠ獠ÍàԱàŠà獠ѠԲˠŠԠ Ҡ٠Π̠г̩٠ٍ̩٠٠Π̠гōÍà͍ԱōàōԲčӠ ̩ Ԡ٠Π堍в̩٠ٍٍ̠̩٠Π̠вōؠѠԍؠѠԍ Р͠忠ŠԠﬠ宠͠堠ōŠˠ󮠠ԠàŠ̠ˠ ԠР͠忠ŠԱﬠ堠͠ 宍ō̠ˠԱàŠŠˠԠmB6:N5:E360::3:P3.141592654:C96:T191:S279T:RP2B:I1BN:KI:XC:M0:Y96:SX,191Y:J1NW%(K1)B(NJ)108:MMW%(B2)(B1)2((B1)2):HT2(J1):KKW%B(NJ):FM4E360:X(RF)HX:YY(RF)H:XS,191Y:J,I MNOPQRSTUVWXYZ[\]^_`abcdefg GEOMETRY( BY MARK R. CRAVENA COPYRIGHT (C) 1991]( MINDCRAFT PUBL. CORP.u2 LINCOLN, MA 01773|d n:3:0:1:BEEP768:CUR36384:35328xI139:L$"="L$::D25:BL50 XP%(20),YP%(20),PG$(15),CH%(15),Q1$(15),EQ$(15),AQ$(11),H1$(15),H2$(15)0 D$(4):PI3.141592654a 10:5:"One Moment....Loading Files":2500 :D$"BLOAD CURSOR.5,A$8E20":36384 D$"BLOAD TECH.FONT,A$8F00" 216,0:233,143:232,0 I115:PG$(I): I013:J:IBEEP,J::TONE ROUTINE POKE INTO MEMORY* I115:Q1$(I):N I17:SG$(I)::SOLID FIGURESc I17:Q2$(I): I19:EQ$(I)::PLANE AREAS EQ$(3)"a"(126):EQ$(8)"! r"(126):EQ$(9)(96)" na"(126)" COT(180"(123)"/n)" I115:H1$(I),H2$(I)::'HELP'- I18:AQ$(I)::SOLID AREA EQ'NS AQ$(1)"6a"(126):AQ$(2)"4! r"(126):AQ$(4)"! r r"(126)"+h"(126)" ":AQ$(10)"a"(126)"+b"(126)"+c"(126) "VQ$(8)AQ$(1):VQ$(9)AQ$(2) ,I17:VQ$(I)::VOLUME EQ'NSL 6VQ$(1)"a"(124):VQ$(2)"% ! r"(124):VQ$(4)": ! r"(126)"h":VQ$(7)"! r"(126)"h"{ @AQ$(11)AQ$(8):AQ$(9)VQ$(1):AQ$(8)VQ$(2) JP(J)(J1)(J2)(J3)(J4)(J3)((J4)(J12))9(J11) T1310 ^X120:Y145:X240:670::ISOC. hX140:Y135:X225:670::SCALENEH rX10:Y143:X225:670:X,Y6X6,Y6X6,Y::RIGHTr |X120:Y130:X240:670::EQUILATERAL X10:X240:Y120:Y2Y1:X3X2:680::RECTANGLE X10:Y135:X240:Y2Y1:X3X2:680::SQUARE X115:X240:X3X2X1:Y137:Y2Y1:680::PAR'GRAM@X115:Y131:X254:Y2Y1:X3X2X1:680::RHOMBUSwX112:Y130:X230:Y2Y1:X3X1X2:680::TRAPEZOIDX115:Y135:X260:Y220:X3X2X1:680::TRAPEZIUMXX22,Y3XX22,Y3:TRIANGLE TIC61XX124,YY12:16X(X2X1)2,YY12::TRIANGLE TICS[16:30XX12X224,YY12:30XX322,Y2:0:VERT TICS (=)XX123,YY12XX123,YY12:X(X2X3)23,YY22X(X2X3)23,YY22:J5J7ı:HORIZ TICS XX22X12,YY23XX22X12,YY23:XX32,Y3XX32,Y3 N%5:610:+N%6:610:;N%8:610:LN%10:610:u&Z160:S10:X173:Z18:660::CIRCLE021:1:L$:" <- -> to Select Return to Execute":4)" Up and Down Arrows May be Used":L$;::LINE((4)1)2:DI1(X$):(((X$),I,1))31X6I,Y::EN(X$)31X,Y::PLACE DIMENSIONSWXDRAW POLYGONbI1N%:TH2PIIN%(PI8(N%6)):XP%(I)29.2(1(TH)):YP%(I)20(1(TH)):IlI1N%1vXP%(I)X4,YP%(I)35XP%(I1)X4,YP%(I1)35:X4XP%(I),YP%(I)35X4XP%(1),YP%(1)35:X230,64:62450:49232,0:49234,0:49237,0:49239,0:IS1PIPI30:Z(I)X1,Z(I)Z1:X1Z(I),Z1Z(I)::X,YXX1,YY1XX2,YX,Y::GENERIC TRIANGLEX,YXX1,YY1XX2,YY2XX3,YX,Y::GENERIC RECTANGLELHC(228):0:I1DB1:A1,BIC1,BI::228,HC::ERASE BOXp31C7,10BJ9::DRAW CURSOR31C7,10BJ9:7,15:L18:6,20L:BEEP:::RIGHT ANSWER6,60:7,20:BEEP::WRONG ANSWER6,20:7,40:BEEP::WRONG KEYI115:CH%(I)0::GX$"CORRECT.":X35:YD13:580:690:780pX$"NO, try again.":X20:YD17:580 X$"Press Return..":X20:YD8:580:X$X$" GEOMETRY FIGURE":X72:Y1:580:X$"IDENTIFICATION":X92:YY9:580: A20:B20:C120:D100:A,BA,DC,DC,BA,B:I13:AI,BIAI,DICI,DI:*X$"Select by < > ^ @":X1:YD15:580:X$"and Press Return":YY10:580:X$"Escape for Main Menu":YY20:580:X$"? for Help":YY20:XX20:580:X1Q4X$"CHOICES":YB5:X(279C)220:580:YY1:580:X2,Y3X53,Y3X53,Y9X2,Y9X2,Y3:X3,Y2X3,Y10X52,Y10W>H23(Q0):"Press Return to Continue...";:X$:16368,0:::49232,0:49237,0:49239,0:RX40:X50:X60:Y40:Y50:Y60:\(X$)31XX18,Y((YY1)2)(Y12)(J5)::PUT a's, b's etc.<f(";")31X6,Y9::THETA{pGYY1Y2:XX1,G:G:((104))31XX16,Y5(YY1)2:z(X$)31XX22,Y3:390:X4X:Y4Y:XX15:YY8:390:PARALLELEPIPEDX,YX4,Y4:XX1,YY1X4X1,Y4Y1:XX2,YY2X4X2,Y4Y2:XX3,YY3X4X3,Y4Y30YY8:850:oYY8:400:X4X:Y4Y:XX20:YY15:400:910:YY7::CUBEXX15:380:X4X:Y4Y:XX40:YY15:380:PRISMX,YX4,Y4:XX1,YY1X4X1,Y4Y1:XX2,YX4X2,Y4:XX40:YY4:850:YY4:XX15:850:YY8:X115:X245:X3X2X1:Y118:Y2Y1:680:X4X25:Y4Y55:X,YX4,Y4:XX1,YY1X4,Y4:XX2,YY2X4,Y4:XX3,YY3X4,Y4:PYRAMIDYY10:850:550:SPHEREI0PIPI64:X118(I),Z16(I)::ELLIPSEIPI2PIPI16:X118(I),Z16(I):'J7ēX1,Z1X1Z,Z1-gZ170:X173:Z18:1000:X1Z,Z1X1,23X1Z,Z1::CONEX1,23X1,Z1X1Z,Z1::CONE$Z170:Z3Z1:X173:Z18:1000:Z130:1000:GX1ZX1ZZ:G,Z1G,Z3:G:X1,Z3X1Z,Z3::CONE.880:X$(98):890:K8SPY:PX:X$(104):XX13:YY(YY1)2:580:XP:YSP:X$(98):890:mBX$(97):860:X$(98):890:LX$(97):860:890:V880:X$(97):PX:SPY:XX10:YY5:860:XP:YSP:X$(98):XX8:890:XP:870:^`X,YXX2,YY2:XX1,YY1XX3,Y:X$(99):(X$)31X114(J10),Y172(J10):X$(100):(X$)31XX315(J10),Y28(J10)j(";")31(XX1X2)2132(J10),(YY1)2392(J10)::TRAPEZIUM t880:X$(98):890:X$(97):PX:SPY:XX14:YY1:860:XP:YSP:&~((114))31X11Z2,Z18:X1,Z1X1Z,Z1::CIRCLE}XP%(1)X4,YP%(1)3570,55XP%(2)X4,YP%(2)35:(";")3154,51:(">")3162,51X$(97):(X$)31(XP%(1)XP%(2))2X,(YP%(1)YP%(2))230:Y55:X37:X$(97):590:X63:Y77:590:X100:Y67:590::CUBE1150::SPHEREmX$(97):X37:Y55:590:X$(98):X63:Y72:590:X$(99):X95:Y64:590::P'PIPEDX$(104):X76:Y48:590:X$(114):XX1Z2::YZ18:590:Q23Z12:X1,Q:::CONEX$(97):XX1X32:YSP9:590:XX29:YSP:590:PYRAMID=FLAG5āQ23692:69,Q::X$(104):X78:Y51:590:70,2384,68:X$"<":X81:Y52:590:X$(108):X92:590::PYRAMIDX32:Y50:X$(97):590:X$(98):X49:Y72:590:X$(99):X62:Y46:590:X$(104):X96:Y63:590::PRISM/ X$(114):X78:Y62:590:X$(104):X75:Y47:590::CYL.r ::1:15)"HELP SCREEN":L$:"Symbol"17)"Description":L$:x  MAIN MENU  :49233,0:49236,0$!(:1:7:"NIBBLE GEOMETRY -- MAIN MENU":" Copyright 1991, MindCraft Publ. Corp.":" = Help";:27:"Escape = Quit":L$-!2560!<8:12:"FIGURE RECOGNITION"::14:"AREAS - PLANES"::14:"AREAS - SOLIDS"::12:"VOLUMES OF FIGURES"!FCUR,8,16,10,31!P570!ZLINE1410,2000,2100,2180!dLINE128İ1920:1320:HELP>"n:10:"Really want to QUIT Program ? (Y/N)";:X$:X$"Y"X$"y"ė:H"x1310":12:"FIGURE RECOGNITION"::24)"Escape=Main Menu":L$:10:14:"PLANE FIGURES"::14:"SOLID FIGURES""560"CUR,10,14,12,28:570"LINE1281430#LINE1470,1960#1310:MAIN MENU IF ZEROC#FLAG1:650:SET UP GRAPHICS PAGEW#X$"PLANE":790j#750:N15:N1N#J1N:X$(J)". "PG$(J):XC11:Y(9J)B10:580:#K1N#J((1)N)1:CH%(J)11520#CH%(J)1:ANSJ:XA25:Y70$DRAW FIGURES$$FLAG1560,1590,1590,1590,1590g$J350,360,370,380,390,400,410,420,430,440,550,510,520,530,540$"J460,500,500,450,470,480,470,480,500,500,500,500,500,500,500:ADD TICS$,1610$6J930,990,900,1040,970,940,1060.%@FLAG4FLAG5PX:SPY:J1180,1190,1200,1210,1220,1250,1260:YSP:XPN%JJ1:700:DRAW ARROW CURSOR`%T16368,0:X$q%^X$"?"1780%hX$(27)KN::::62450:1310%rX$(21)X$(10)1690%|710%JJ1:JN11J1%700:1620%X$(11)X$(8)1730&710&JJ1:J0JN1+&700:1620E&X$(13)İ740:1620t&JANSİ720:760:X$:710:0:780:3:1760&730:770:X$:0:770:3:1620&K3'690:720:720:720:X$"Drill Complete.":X25:Y60:580:X$"Press Return...":Y70:580:X$:::I115:CH%(I)0::FLAG1410,1410,1310,1310,1310V'FLAG1790,1800,1810,1870,1870'::2:PG$(J):10:Q1$(J):840:1620'::2:SG$(J):10:Q2$(J):840:1620'1270'Q14:3:H1$(Q);:12:H2$(Q):::Q57:3:H1$(Q);:12:H2$(Q):=(&Q89:2:H1$(Q);:12:H2$(Q):::3:H1$(10);:12:H2$(10)j(0Q1115:2:H1$(Q);:12:H2$(Q):Q13ĺr(::(D840:Q0:X$"":1620(N1270:Q12:3:H1$(Q);:12:H2$(Q)::3:H1$(3);:12:H2$(2):!)XQ57:3:H1$(Q);:12:H2$(Q)::3:(108);:12:"Slant height of figure":J)bQ1415:2:H1$(Q);:12:H2$(Q)::)lFLAG5Ė3:"A";:12:"The Area of the base":::"NOTE:The prism base is the triangular":6:"end.The prism is drawn on its side.")v840:Q0:X$"":1620*:12:"HELP - MAIN MENU":L$::"NIBBLE GEOMETRY is a recognition and"::"drill program designed to improve your"::"familiarity with the more common plane":*+"and solid geometric figures and recog-"::"nition of the mathematical relation-"::"ships between the figures and their"::"areas and volumes."+:"Use the '?' key frequently for help in"::"using the program.":24:"Press Return to continue...";:X$:16368,0:+SOLIDS RECOG.+FLAG2:650:X$"SOLID":790+750:N7:N17/,J1N:X$(J)". "SG$(J):XC17:Y(9J)B10:580::N7:1510@,PLANE AREAS,FLAG3:650:X$"AREAS OF PLANE FIGURES":X72:Y1:580:800,750:N19:J1N1:X$(J)". ""A = "EQ$(J):XC13:Y(9J)B10:580::SHOW EQUATIONS,N15:K1N -J((1)N)1:CH%(J)12030/-CH%(J)1:ANSP(J):XA25:Y70-J350,360,370,380,390,400,410,420,430,440,550,510,520,530,540:DRAW FIGURES- J460,500,500,500,500,500,500,480:ADD TICS-500. J1070,1070,1080,1070,1090,1100,1110,1120,1140,1120,1150,1160,1160,1160,1160:ADD DESCRIPTORS'.*1610f.4FLAG4:650:X$"AREAS OF SOLID FIGURES":X72:Y1:580:800.>N110:J1N11:X$" "(J)". ""A = "AQ$(J):XC13:Y(9J)B10:580:580:SHOW EQUATIONS.HJ4ē210,70212,73216,65249,65.R'/\X$(N1)". ""A = "AQ$(N1):Y(9N1)B10:580//fN7K/pY115B:X$AQ$(11):580U/z1510/FLAG5:650:X$"VOLUME OF SOLID FIGURES":X72:Y1:580:800/N19:J1N1:X$(J)". ""V = "VQ$(J):XC13:Y(9J)B10:580:SHOW EQUATIONS /:N7:15100PG$(I)-Plane geometry namesu0 " Isoceles Triangle"," Scalene Triangle"," Right Triangle"," Equilateral Triangle"0" Rectangle"," Square"," Parallelogram"," Rhombus"," Trapezoid"0"Trapezium","Circle","Pentagon","Hexagon","Octagon","Decagon"1SOUND ROUTINEG1 166,7,173,48,192,165,6,32,168,252,202,208,245,96d1Q1$(I) - HELP RESPONSES.2"Three sided figure - 2 sides equal.","Three sided figure - no sides equal.","Three sided figure with one right (90 degree) angle included.","Three sided figure - all sides equal.":7 SPACES3"A quadrilateral with four right (90 degree) angles.","A four sided plane figure with four equal sides and four right angles.","A four sided plane figure with opposite sides equal and parallel."3"An equilateral parallellogram with oblique (non 90 degree) angles.","A four sided plane figure with only two sides parallel.","A plane figure with four sides, none of which are parallel.":6 SPACESv4 "A plane figure bounded by a single curved line, every point of which is equally distant from the point at the center of the figure.":6,4,3 SPACES>5 "A plane figure with five angles and fivesides.","A plane figure with six angles and six sides.","A plane figure with eight angles and eight sides.","A figure with ten sides and ten angles."Y5 SG$(I) - SOLID SHAPES5$ "Cube","Sphere","Parallelepiped","Right circular cone","Right pyramid","Prism","Right cylinder"5. Q2$(I) - SOLID SHAPES HELPo68 "A solid with six equal, square sides.","A round figure having the surface equally distant from the center at all points.":7 SPACES7B "A solid with six faces, each of which is a parallellogram.","A solid described by the hypotenuse of a right triangle rotated about either ofits legs as an axis."7L "A solid figure having a polygonal base the sides of which form the bases of triangular surfaces meeting at a common vertex."8V "A solid figure whose ends are polygonal,equal in size and shape, and parallel, and whose sides are parallellograms."8` "A solid figure described by the edge of a rectangle rotated around the parallel edge as axis; the ends are parallel and equal circles."8j EQ$(I) - AREA EQUATIONS-PLANES 9t "hb/2","ab",,"bh","' cd","' (a+b)h","' cd SIN(;)",,9~ "a","Length of a side","b","Length of a side","c","Length of a diagonal","d","Length of a diagonal","n","# of sides to polygon","r","radius of circle": "h","Altitude of polygon","SIN","Trigonometric SINE function","COT","Trig COTANGENT function","A","Area of polygon","theta","Greek symbol similar to"," ","(0), which represents an"," ","an angle measured in degrees": "pi","Greek symbol for the"," ","constant value 3.1416": SOLID AREA EQUATIONS: ,,"2ab + 2bc + 2ac"1; ,"' nal","h(a+b+c)","2! rh","Base areas not included."L; ,,"abc",,"Ah/3","Ah",; (222)6ė:10:"BINARY FILE NOT ON DISK OR MIS-NAMED"::"THE PROGRAM CANNOT CONTINUE. CORRECT":"THE SITUATION AND RE-RUN THE PROGRAM.":B< :10:"A DISK ERROR HAS BEEN ENCOUNTERED."::"CHECK YOUR DRIVE DOOR OR RE-SEAT YOUR":"DISK."< 20:1::"PRESS RETURN TO RETRY, ESCAPE TO QUIT";:X$:X$(13)Ĭ< X$(27)Ā< (7):2520 Z768827:X:Z,X::768:169,0,133,26,174,87,192,174,82,192,174,84,192,174,80,192,169,32,133,27,169,208,133,29,177,28,69 30,133,28,145,26,101,28,112,3,174,48,192,200,208,238,230,29,174,48,192,230,27,165,27,201,64,144,225,230,30,76,16,3:jklmnoSEPT. 1991 DISK (VOL 12 /NO 9) 5 NIBBLE GEOMETRY OFFLINE COMPUTLES PRINT SHOP CLIP CONVERTER CHECKIT 5 NIBBLE GEOMETRY RUN GEOMETRY OFFLINE - OFFLINE.SYSTEM COMPUTLES RUN COMPUTLES PRINT SHOP CLIP CONVERTER RUN PS.CONVERT.BAS 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 Nibble Geometry, remove all but the following files from a copy of this disk: GEOMETRY TECH.FONT CURSOR.5.S CURSOR.5 This program is included on the ProDOS and DOS 3.3 sides of this disk. @ To create a work disk for Offline, remove all but the following files from a copy of this disk: OFFLINE.SYSTEM OFFLINE.S These programs are included on the ProDOS side of this disk, only. @ To create a work disk for Computles, remove all but the following file from a copy of this disk: COMPUTLES This program are include on the ProDOS and DOS 3.3 sides of this disk. @ To create a work disk for Print Shop Clip Converter, remove all but the following files from a copy of this disk: PS.CONVERT.BAS PS.CONVERT.S PS.CONVERT.0 These programs are 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: CURSOR.5.S OFFLINE.S PS.CONVERT.S @ # qrstuvwxyz{|; OFFLINE by George Powell ; Copyright (C) 1991, MindCraft Publ., Lincoln, MA 01773 ORG $2000 ; start at $2000 MLI EQU $BF00 ; Machine Language Interface FILENAME EQU $0280 ; filename buffer COUT EQU $FDED ; character out DEVCNT EQU $BF31 ; number of active devices DEVLST EQU $BF32 ; list of active devices HOME EQU $FC58 ; clear the screen NORM EQU $FE93 ; set 40 column normal mode SERR EQU $BF0F ; prodos error storage PHEX EQU $FDDA ; print hex number MONITOR EQU $FF65 ; monitor KEY EQU $C000 CH EQU $0024 ; horizontal position of cursor JMP MOVE1 ; jump over the filename buffer DFC $EE,$EE ; signifies a pathname buffer follows DFC 65 ; max length of our buffer RUNTHIS DFC 12 ; length of filename in buffer ASC 'BASIC.SYSTEM ' ASC ' ' ASC ' ' ; room for 64 bytes above MOVE1 LDY #$00 MOVE LDA ZAP,Y ; move program to $1000 STA $1000,Y LDA ZAP+256,Y STA $1100,Y LDA ZAP+512,Y STA $1200,Y INY BNE MOVE JMP SCAN1 ; go to the relocated code ZAP ORG $1000 ; new originate address SCAN1 LDA #OOPS ; fix reset vector STA $3F2 ; to point to the prodos selector call LDA #OOPS/ STA $3F3 EOR #$A5 STA $3F4 JSR NORM ; set normal 40 column display JSR HOME ; clear the screen LDY #$17 LDA #$00 BMAP STA $BF58,Y ; clear out bitmap DEY BPL BMAP LDA #$CF STA $BF58 ; protect zp,stack, and text LDA #$01 STA $BF6F ; protect MLI global page JSR PTXT ; print the title ASC " OFFLINE" DFC $8D,$8D ASC " By" DFC $8D,$8D ASC " George Powell" DFC $8D,$8D ASC " Copyright (C) 1991" DFC $8D,$8D ASC " MindCraft Publ. Corp." DFC $8D,$8D ASC " Lincoln, MA 01773" DFC $8D ASC " " DFC $8D,$8D ASC " Active Devices" DFC $8D ASC " ==============" DFC $8D,0 LDY #$FF ; counter for number STY NUMGOOD ; of good devices LDY #14 ; counter for devices to try STY CNTR SCAN DEC CNTR BMI WEDONE ; our counter is less than 0 LDY CNTR ; position in table LDA ALLTBL,Y ; get device number STA O_DEV ; set up for MLI ONLINE call JSR MLI ; make MLI ONLINE call DFC $C5 ADR O_PARM ; online parm list BCS SCAN ; its not active so keep going LDY CNTR ; found a active drive INC NUMGOOD ; increment number of active ones LDX NUMGOOD ; get index to active table LDA O_DEV ; get device number STA TABLE,X ; store it in the active list ROR ; divide device number by 16 ROR ROR ROR PHA ; keep it safe AND #$07 ; mask off slot bits PHA ; keep it safe LDA #13 STA CH ; print at center of screen JSR PTXT ; print slot message ASC "Slot " BRK PLA ; get back slot value off of stack CLC ; make it into ASCII ADC #48 JSR COUT ; print slot value JSR PTXT ; print drive message ASC " Drive " BRK PLA ; get back value from stack ROR ; put drive bit into position 1 ROR ROR AND #$01 ; mask off drive bit CLC ; make it into ASCII ADC #49 JSR COUT ; print drive number LDA #$8D ; print a carriage return JSR COUT JMP SCAN ; continue with scanning WEDONE INC $3F4 ; kill reset vector LDY NUMGOOD ; how many active devices STY DEVCNT ; tell PRODOS WDLP LDA TABLE,Y ; get active devices STA DEVLST,Y ; tell PRODOS about the devices DEY BPL WDLP DEC $3F4; safe to hit reset again JSR MLI ; get file info DFC $C4 ADR IPARM ; parm table for get info BCS OOPS ; ERROR LDA FTYPE ; get filetype CMP #$FF ; is it a SYS file? BNE OOPS ; no, don't execute it JSR MLI ; open launch pathname DFC $C8 ADR O_TABLE BCS OOPS ; ERROR LDA O_REF ; get referance number STA R_REF ; let read call know JSR MLI ; read in the file DFC $CA ADR R_TABLE BCS OOPS ; ERROR JSR MLI ; close the file DFC $CC ADR C_TABLE BCS OOPS ; ERROR LDA KEY ; check keyboard CMP #155 ; is it escape (27+128) BEQ OOPS ; yes, use PRODOS selector JMP $2000 ; execute the program just loaded OOPS JSR MLI ; a error in launching the program DFC $CC ; so use the PRODOS selector ADR C_TABLE JSR MLI DFC $65 ADR Q_TABLE ; if could not execute prodos selector ; tell the user and why JSR PTXT DFC $8D,$8D,$87,$87 ASC "PRODOS ERROR..CODE= " BRK LDA SERR ; MLI error code storage JSR PHEX ; print error code JMP MONITOR ; go to the monitor PTXT PLA ; imbedded text printing STA LDD+1 PLA STA LDD+2 PTXT1B INC LDD+1 BNE LDD INC LDD+2 LDD LDA $FFFF ; self modyfying code BEQ PTXTDUN ; 0 is end of text marker JSR COUT ; print it JMP PTXT1B ; is there more to print? PTXTDUN LDA LDD+2 ; get address and PHA ; fix the stack LDA LDD+1 PHA RTS ; continue with program after the 0 ; ALLTBL is the list of all ; possible device values ; DRIVE 1 DRIVE 2 ALLTBL DFC $10,$90 ; SLOT 1 DFC $20,$A0 ; SLOT 2 DFC $30,$BF ; SLOT 3 DFC $40,$C0 ; SLOT 4 DFC $50,$D0 ; SLOT 5 DFC $60,$E0 ; SLOT 6 DFC $70,$F0 ; SLOT 7 ; NOTE: the $bf in 3,2 is so that programs ; that use /RAM will see it as a RAMDISK. ; NUMGOOD DFC 0 ;number of good devices TABLE DFC 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 CNTR DFC 0 ; general purpose counter O_TABLE DFC 3 ; open parm table ADR RUNTHIS ; open pathname ADR $1C00 ; input buffer at $1C00 O_REF DFC 0 ; open reference number R_TABLE DFC 4 ; read parm table R_REF DFC 0 ; read reference number ADR $2000 ; where to read it to ADR $FFFF ; how much to read.. DFC 0,0 ; how much actually read C_TABLE DFC 1 ; close parm table DFC 0 ; close reference number Q_TABLE DFC 4,0,0,0,0,0,0 ; prodos selector table O_PARM DFC 2 ; online parm table O_DEV DFC 0 ; device to check ADR FILENAME ; where to put filename IPARM DFC 10 ; get file info parm table ADR RUNTHIS ; path of file DFC 0 FTYPE DFC 0 ; file type DFC 0,0,0,0,0,0,0,0,0,0,0,0,0 E ~LG A BASIC.SYSTEM a a!a"LǍI XXύXo ō썍é쮠𮍍󍠠*::0[:S R:**S+jjjjH)H $ hi0 hjjj)i1 L*1+2 V/Z( ; @B A I ɛL I eK ӠҮŽ Leh h    L H H` 0@P`p    L !C_" %k"l" (#M8( % ) L*"m"n" (_7, )7(P0 ( @X p 8  u"!_"f"0 ~&f"0 %o"p" (,) &q"r" ( %L*")0I0hx H( + %Щ ߩu"L! )L! 8'  )ɀ)4,- U JNT) u"Ls"t" ( !` ^"M)Fi/ b"3 h"i"j" e" iL X>"L;"ίΠ`v""""""*$ Fk%YeQP!/RB}QBiBB}\ }FEL,#> ȏ6 . ) ɘ"    L:#:#ŠϠĠԠ  m# m# J Qڨ)̰}] нȱ ̀𩠙 i V N c ɘ\   VG+ #X ɛL ' 0% '8 Jm ʈ0  0ŠϠĠ͢Š͠͠ϠŠŠϠĠخ͠ ͍B B(8`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@D@ H3 H H H H HN H HLL`@D%F AF`%ɀL i Lf" *************************C * PRINT SHOP CONVERTER *d * BY B.R. CLEMESHA * * COPYRIGHT (C) 1991 * * MINDCRAFT PUBL. CORP. * * LINCOLN, MA 01773 * ************************* (24576:A$(61),B$(61),AA$(61) 2D$(4):G$(7):H$(8):J$(10):K$(11):M$(13):U$(21):ESC$(27):SD$",S6,D1":DD$",S6,D2":DL$"NO ":DC$DL$ < * CTRL-D: BELL: BACK-SPACE: DOWN: UP: RETURN: RIGHT: ESCAPE: SOURCE DRIVE: DESTINATION DRIVE: DELETE AND PAUSE FLAGS/ FN118:H18$H18$H$:N: * 18 BACKSPACESt PD$"BLOAD PS.CONVERT.0":CNVRT7168:1150: * LOAD ML PROGRAM ZN18:MENU$(N):N:N1:310: * READ MENU ITEMS d * PRINT MENU SCREEN nD$"PR#3"M$::LM35:WI2:1080: xN1123:"|"::LM0:WI34:1080:1:" PS.CONVERT"M$" Print Shop Clip Converter"M$M$"Copyright 1991, MindCraft Publ.":N1134:"_";: :1070:330:6:N118:4:MENU$(N1)M$:N1:190 * MENU ROUTINE M(KE$):M0M9NM:190 KE$K$KE$U$NN1:N1N8, KE$J$NN1:N8N1\ KE$M$ĴN210,220,350,360,780,970,990,1100 330:1070:4:(42N)::MENU$(N);::KE$:4:MENU$(N);:150 * GET SLOT AND DRIVE NUMBERS 230:SD$TEMP$:310:190: * SOURCE DRIVE) 230:DD$TEMP$:310:190: * DESTINATION DRIVEk 330:" SLOT #: ";:KE$::KE$"8"KE$"0"TEMP$",S"KE$:260} KE$ESC$290 G$:230 330:" DRIVE 1/2 ? ";:KE$:KE$"3"KE$"0"TEMP$TEMP$",D"KE$:290: * SET SLOT AND DRIVEKE$ESC$290G$:260"330:P, * APPEND SLOT AND DRIVE NUMBERS TO MENU ITEMS6MENU$(1)(MENU$(1),16)SD$:MENU$(2)(MENU$(2),21)DD$:@ * CLEAR INPUT LINEJ21::34):21::T * FILE MENU/CATALOG ROUTINES^D$"PREFIX"DD$:370: SET * DESTINATION PREFIXGhD$"PREFIX"SD$: * SET SOURCE PREFIXrr1050:WI79:1080:: * CLEAR SCREEN|M$"PLEASE WAIT":ER0:NF1D$"PREFIX":P$D$"OPEN"P$",TDIR":D$"READ"P$: * OPEN DIRECTORY9BLOCKS(48825)256(48826)(48828)256(48829):C$,C$,C$:N4470:: * FREE SPACEf * READ DIRECTORY OF DESTINATION DISCAA$(NF):AA$(NF)""510AA$(NF)(AA$(NF),2,16):NFNF1:440 * READ DIRECTORY OF SOURCE DISCB$(NF)" ":A$(NF):A$(NF)""510(A$(NF),18,3)"BIN"470AA$(NF)(A$(NF),2,16):NFNF1:470VD$"CLOSE":1:1N3NNNF1:M$"Destination Volume Catalog":550NMNF1:M$"Use Arrow Keys to Select/Deselect Files" * PRINT FILE LIST &M$"Volume: "P$M$:BLOCKS;" blocks free"O0J179:"_";::NM(N4)NN(N3)0ĺM$"No Files ";:KE$:100k:NF1NM(N4)NN(N3)vD720:NN3Ė79:KE$:100: * RETURN TO MAIN MENUX * SELECT/DESECT FILESbNF1l:720:KE$vKE$ESC$KE$M$ĝ:100KE$U$B$(NF)"=>"*KE$H$B$(NF)" "uKE$"A"KE$"a"ĝ:NF1NM:B$(NF)"=>":720:NF:610: * SELECT ALLKE$"N"KE$"n"ĝ:NF1NM:B$(NF)" ":720:NF:610: * SELECT NONE:720:NFNF(KE$J$)(KE$K$)NF0NFNMNFNMNF1 620+Q(NF13)(NF26)(NF39)=ROW8NF13QOCOLUMN219QwROW:COLUMN:N4ĺB$(NF)A$(NF);:" "AA$(NF): * CONVERT FILES LM41:WI38:1080::NF1NM:B$(NF)"=>"800:"No Files Selected "G$;:KE$:190* "Clip Conversions"M$:TM2:BM23:1060I*NF1NM:B$(NF)"=>"9104A$(NF);:L1:(16384)155920: * ESCAPE TO MENU>(A$(NF),L,1)" "LL1:830: * REMOVE SPACESHSF$(A$(NF),L1):DF$(SF$,10)".CLIP": * APPEND "CLIP" TO FILE NAME4RDC$"YES"MSG$"Insert Source Disc":940{\16368,0:D$"BLOAD"SF$",A$4400,L576"SD$:CNVRT:(16384)155920fDC$"YES"MSG$"Insert Destin Disc":940p"=> "DF$zD$"BSAVE"DF$",A$4000,L842"DD$:B$(NF)" ": * SAVE CLIP AND MARK AS SAVED)DL$"YES"ĺD$"DELETE"SF$SD$1NFF1050:1070:190z * ERASE MESSAGE AND RESTORE CURSOR POSITION:MSG$;::KE$:H18$;18);H18$;:KE$ESC$ġ:920 * TOGGLE DELETE FLAGX$DL$:1000:DL$X$:190 * TOGGLE WAIT FOR DISC CHANGE FLAG8X$DC$:1000:DC$X$:190UX$"NO "X$"YES":1020bX$"NO "MENU$(N)(MENU$(N),26)X$:: * APPEND YES/NO TO MENU ITEM * SET TEXT WINDOWTM22:BM23:1060TM0:BM23 $34,TM:35,BM:: * SET VERTICAL.LM0:WI35E832,LM:33,WI:: * SET HORIZONTALUB * QUITL330:"Sure you want to quit ? ";:KE$:KE$"Y"KE$"y"WI79:1080::VKE$"N"KE$"n"1100`330:190j "1: SOURCE DRIVE:","2: DESTINATION DRIVE:","3: CATALOG DESTINATION VOLUME","4: SELECT FILES","5: CONVERT FILES: ","6: DELETE ORIGINAL FILES: NO","7: PAUSE FOR DISC CHANGE: NO","8: QUIT TO BASIC"t * ERROR HANDLING ROUTINE~ER(222):ER5510MSG$" * ANY KEY TO CONTINUE ":ER3MSG$" * NO DEVICE CONNECTED "KER4MSG$" * WRITE PROTECTED "wER8MSG$" * I/O ERROR "ER9MSG$" * DISK FULL "ER10MSG$" * FILE LOCKED "ER17MSG$" * DIRECTORY FULL "11040:1070:330:22:1:G$MSG$;:KE$:330:110*PS.CONVERT *CONVERT PRINT SHOP TO UG CLIP *March 13, 1990 ORG $1C00 *EQUATES UG.LO EQU $19 CLIP BYTE POINTERS UG.HI EQU $1A PS.LO EQU $1B PRINT SHOP BYTE POINTERS PS.HI EQU $1C BANK EQU $1D BANK POINTER UG.BIT EQU $1E CLIP BIT POINTER PS.BIT EQU $1F PRINT SHOP BIT POINTER PIXVAL EQU $E3 PIXEL VALUE *CLEAR MEMORY MEMORY AREA FOR CLIP CLR.0 LDA #$40 STA UG.HI LDA #0 STA UG.LO CLR.1 LDY #0 CLR.2 STA (UG.LO),Y INY BNE CLR.2 INC UG.HI LDX UG.HI CPX #$44 BNE CLR.1 *CREATE HEADER LDA #$40 STA UG.HI LDY #0 STY UG.LO LDA #7 JSR STR.HEAD LDA #51 JSR STR.HEAD LDA #1 JSR STR.HEAD LDA #4 JSR STR.HEAD LDA #0 JSR STR.HEAD JSR STR.HEAD LDA #78 JSR STR.HEAD LDA #169 JSR STR.HEAD JMP INIT STR.HEAD STA (UG.LO),Y INY RTS *INITIALIZE POINTERS INIT LDX #0 STX PS.LO STX BANK LDA #$40 STA UG.HI LDA #$44 STA PS.HI LDA #128 STA PS.BIT LDA #1 STA UG.BIT LDA #8 STA UG.LO *GET A PIXEL VALUE GETBIT LDY #0 LDA (PS.LO),Y AND PS.BIT BEQ PS0 LDA #$FF PS0 STA PIXVAL LSR PS.BIT INCREMENT PS POINTER BNE PS2 INC PS.LO BNE PS1 INC PS.HI PS1 LDA #128 STA PS.BIT PS2 LDA PS.LO CHECK FOR END OF CLIP CMP #$41 BNE UG1 LDA PS.HI CMP #$46 BNE UG1 RTS ALL DONE *INSERT PIXEL IN CLIP BUFFER UG1 LDA PIXVAL AND UG.BIT LDY BANK ORA (UG.LO),Y STA (UG.LO),Y ASL UG.BIT INCREMENT BIT POINTER LDA UG.BIT CMP #128 BNE UG5 LDA #1 STA UG.BIT RESET BIT POINTER LDA BANK CMP #8 BNE UG2 INC UG.LO INCREMENT BYTE POINTER BNE UG2 IF LAST DATA WAS FOR INC UG.HI AUX BANK UG2 INX LDA BANK TOGGLE BANK POINTER BEQ UG3 LDA #0 JMP UG4 UG3 LDA #8 UG4 STA BANK UG5 LDA UG.BIT IF BIT POINTER = 8 CMP #16 AND TEMPORARY BYTE POINTER, BNE UG6 X, = 12, THEN RESET, AND CPX #12 INCREMENT BYTE POINTER BNE UG6 BY 10 LDX #0 LDA #1 STA UG.BIT LDA UG.LO CLC ADC #10 STA UG.LO BCC UG6 INC UG.HI UG6 JMP GETBIT  ******* 8/08/86 *******;* ProDOS STARTUP *X* BY OWL *u(* COPYRIGHT (C) 1987 *2* BY MINDCRAFT PUBL. *<* LINCOLN, MA 01773 *F***********************& K THANKS TO RUSS HOUGHTON OF BALTIMORE, MD., FOR REVISING THE OPENING GRAPHIC (11-90).1 P16384H Z::D$(4):(21)R d970 n ********** GET HI-RES SCREEN AND SET DISPLAY SWITCHES x11:3:"MINDCRAFT PRESENTS NIBBLE SOFTWARE" 15:13:"PLEASE WAIT..." D$"BLOAD STARTUP.SCREEN") G(16297)(16300)(16301)(16304)Z ********** READ INFO FROM NIBMENU TEXTFILEd 1120 P$(20): P$ = PROGRAM NAME S$(300):S$ = LINES OF TEXT INSTRUCTIONS RC$(20): RC$ = COMMAND USED TO RUN PROGRAM" MP$(20): MP$ = PROGRAM NAME TO APPEAR IN MENU9 D$;"OPEN NIBMENU"P D$;"READ NIBMENU"i A$: A$ = DISK NAME NA$"NIBBLE "A$:22:20((NA$)2):NA$:1 NP: NP = NUMBER OF PROGRAMS ON DISK I1NP:P$(I):I MM: MM = NUMBER OF VALID MENU ENTRIES% "I1MM:MP$(I):RC$(I):I- ,S$5 6I0J @II1:768,S$(I)d J(S$(I),1,1)"#"350m T320} ^D$;"CLOSE" h(1101)6İ1080: ********** UPPER/LOWER CASE ROUTINE r ********** FIRST TEXT SCREEN |::3 "Thank you for ordering the Nibble":A$;"!":C "The programs on this disk are:":\ Z1NP:5:P$(Z):Zx 1030:FLAG$"ESC"ī600  ********** CYCLE THRU NIBMENU TEXT SCREENS A1 :3 S$(A)"@"İ1030::3:((FLAG$"ESC"))490:600S$(A)"#"510 S$(A)AA1:460J ********** LAST TEXT SCREEN BEFORE MENUS:3{6:"Thanks again for your order !"12:6:"ALL PROGRAMS ON THIS DISK ARE"&6:"COPYRIGHT (C) 1991 BY NIBBLE"06:"MINDCRAFT PUBLISHING CORP."*56:"P.O. BOX 256, LINCOLN, MA 01773"Z::17:5:"UNAUTHORIZED COPYING IS ILLEGAL"dD1030N ********** SET UP MENUXMEMM2:X$(0)" ":X$(1)"-->":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*d  2IS\mx*@Mal &1@HZl} #19G\gz*8FT_mw" II*-N nN InJ IININIwMI.-?7MMI?M --M.-u iI3M?m߻Mm:?oI 6N56N 5 --NN n:?w1VIJ1NR?RINIVI 5)3M5.M-Nm1w6-N)sI.-u-->N-N>I> 3--v 5--.-6s-N -޻M:?n -N.--6NI))3M?M1s-N.)3M1?w *uIRiI3M?MMI?M ?M>. su I>--5???--wNI --ޛ-- *I--???.--7NI )s N ->7->*--??-M  M13--n N -3M?7M13-u J)36Ms-N -n1n1-u J--n?76--NJ--n?76NII)36M5s-uJM13M1??n n N )66-N I166s-N Mn7 n N 666-uM17 n n NIM13m1n)n N )3M13M1s-N -3M?76NI )3M13 mN -3M?7 n N )3M:w -N --66vIMM13M13M1s-N M13M13MN IM13M1n >7MqM1s  3MqJM1s 6vI---.-uJ--;.>.>.-u5rVw-->.>.>*-u7I?--???N->7->oI I??MI iI3MmM-nMR-53M1smN56-3M13-u mR-3v-NI1*-n -u?R-3---u 3?w6N R-53M1?w ?M >6-3M13Mq) 66N 56o )6M.nq)566-N5-n n N -n1nq)R-3M1s-N-3M?7nIR-53M1?w n5 76NI)R---u -1-3vu?M13M1smNM13MN 5M13  NMMq-M13M1?w ?M .----N)-. -*J*N >)s -- J---3MI3MI3MI>??oII@@@C?.- ??N -5?*m ->??w- -A$"ANY SHORT STRING":200::A(A$):X11:U11:U:U:A$:Y1A:B$(A$,Y,1):Y2(Y2)2:ZU23:X:Z:B$::ZU23:X:Z:" "::X:U:XX1:, ZU11:X:Z:B$::ZU11:X:Z:" "::X:U:XX1::225:B11:Y1A:B$(A$,Y,1):BB1:A39B1:U:A:B$;" ":::255:(4);"CATALOG"