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(*+CALENDAR'CHECKIT 6/ ;CMD.PATCH%,nW5n+CMD.PATCH.S&nn$LONG)bbLONG.PT2,b ,MUSIC.LESSON- ba MUSIC.SHAPES7*a @a 'NIBMENU8 M&PRODOSA }<.ROMAN.NUMERALSa j&( SAMPLE1l % SAMPLE2mI  -SHAPE.LIB.B.Sn,rT  /SHAPE.LIB.PARTA /X  /SHAPE.LIB.PARTB @/SHAPE.LIBRARIAN5  'STARTUP ®3s,.STARTUP.SCREEN®09`®4THREE.D.CHART$TYPE=j j &TYPE.S/a j UNJUMBLERG? 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(4)"PR#3":N$"303232332323JFMAMJJASONDSMTWTFS":"Y=";Y:CY100:ZC.01:A((36525Z(Z)(Z4)1))7:B%8(A(A)1):K12::Y:I16:H25(I2I5)50(I3I6):36,12H:FI6(K2):U9(I3):3U (N$,12F,1):J17:5U:36,3JH1:(N$,24J,1)::D128((N$,F,1))(F2)((Y4(Y4))(C(C))(C4(C4))):6U:36,3(B%7)H(D10):D:B%B%17(B%14):UU(B%8):::A$: !"#$. ********** NIBBLE PRD DISK **********[ * CHECKIT * * COPYRIGHT 1988 BY MICROSPARC, INC.*( * CONCORD, MA 01742 *2 ************************************* <:::"CHECKIT":"COPYRIGHT 1988 BY MICROSPARC, INC."& F90R 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)4096/ n6:"ARE YOU ENTERING A HEXADECIMAL":"FILE?";:A$:16368,0:A$Z xA$"N"A$(110)İ370:34218,128:210v A$"Y"A$(121)110 768,1:10:958:"WHAT IS THE STARTING ADDRESS OF THE":"FILE (IN HEX)";:H$:290:AH( A736A39424ĺ:"INVALID ADDRESS. PLEASE DOUBLE-CHECK":"AND RE-ENTER":350:140r 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..."n 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:2508 (4);"IN#A$8500":250b (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"  O"H0:L(H$):L1L4300:I1L:D((H$,I,1)):HHH(LI)(D48(D58D47)55(D64D71)):U,j6 $1600 VERSION@I0377:ML:5632I,ML:I:C5632JI018:ML:CML,(CML)111:T^21:"PRESS RETURN TO CONTINUE ";:CH$:CH$:16368,0: h $8500 VERSION+rI0377:ML:34048I,ML:I1| 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,169U 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,1334 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,32e 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,16, 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  8` jojX Y'( Į Ԩé ì î Ĭ ǠµѠ¶ϠŠӠōРưӠԠĿѠ·ԠԠŠӠōĠŠŠȢàǠҍӠΠϠӠҍҠ´ƲŠ̠ΠӍҠ² ŠÍؠƶؠҠԠРҠӍؠƍŠ¶àƶƠԠŠƍƠӠŠōŶŠΠԠҍԠРΠӍŵŵ*+  ************************? * LONG *^ * BY ROBERT STONG *} * COPYRIGHT(C) 1989 * * MICROSPARC, INC. * * CONCORD, MA 01742 * ************************ TV(105)256(106):TV2457660 (TV)171TVTV1:20^ 103,1:104,96:24576,0:TV4,1:TV3,96:(4);"RUN LONG.PT2" ( THE PREVIOUS INSTRUCTIONS MUST BE THE FIRST LINES OF THE FIRST SEGMENT. THEY LOAD THE SECOND SEGMENT AND LINK THE PARTS 2 YOUR PROGRAM FOLLOWS THOSE LINES <::"EASY PROGRAM SPLITTING DEMO":"BY ROBERT STONG":"COPYRIGHT(C) 1989 MICROSPARC, INC.":23:"PRESS RETURN TO CONTINUE ";:16368,0:A$ F(21);:D12000: P::2:0,0:62454 Z22:"THIS IS THE FIRST PROGRAM SEGMENT" d"IT IS LOADED BELOW THE SCREENS"L n"PRESS RETURN TO GO TO THE SECOND PART";:A$:A$W x10030 & THE FOLLOWING LINE MUST BE THE LAST LINE OF THE FIRST SEGMENT. IT IS USED TO LINK THE PARTS '10000'(104)96Ĺ104,8:60' THE PREVIOUS LINE SHOULD BE THE FIRST LINE OF THE SECOND SEGMENT. IT SHOULD GOTO THE FIRST LINE OF YOUR PROGRAM$' THE REMAINING INSTRUCTIONS OF THE SECOND SEGMENT ARE THE LAST PART OF YOUR PROGRAM .'::"THIS IS THE SECOND SEGMENT"5 8'"IT IS LOADED ABOVE THE SCREENS"H B'5:0,0:62454 L'24:36,0:"WANT TO RERUN THE FIRST PART? (Y/N)";:A$ V'A$"Y"A$"y"ī80 `'A$"N"A$"n"ĉ:: j'10060 ./0123456 **********************9* MUSIC.LESSON *U* BY TIMOTHY THOMAS *q(* COPYRIGHT (C) 1989 *2* BY MICROSPARC, INC *<* CONCORD, MA 01742 *F**********************PZ16682d:(21)::540n MAIN LOOP x XDRAW N(R) AT X(Z),Y(R)j 16368,0:21:958:ZZ1:Z27360:RR(Z):R$(N$,R,1):N(R)X(Z),Y(R) 21:"WHICH NOTE IS THIS? ":S4Ģ21:21:Z$:Z$:K(Z$)128:200 J1SSP:J8(J8)FLFL CURSUR16095FL:21:21:(CURSUR);:K(KB):K127200A J:21:5)"TOO LATE!";6)::TZ:REVIEWTM(N)J 330 (K193K199)(K225K231)Ģ21:26:"ILLEGAL ENTRY";2):I15:8,160:6,5:768:W110:W:I:KB16,0:150 V((((SSP)J)S)2(D4)):V6(V6)V(V6):Z$(K128):Z1$(K160):S4V0? KB16,0:21:21:Z$;:Z$R$Z1$R$310V 26:"RIGHT!!";8)c S4270 VVVVV:I1V:10X,Y:XX5:X278X3:YY12 I TZ:REVIEWTM(N):RIRI1 8,T(R(T)):6,30:768 "910:CC1:REVIEW120 ,N(R)X(M(N)),Y(R):M(N)0:430? 626:"WRONG!!";8):TZ:REVIEWTM(N)V @TZ:REVIEWTM(N) JI18:8,T(R(T)):6,5:768:8,T(R(T))10:6,5:768:I:MISTAKE1:910:REVIEWMM1:M(M)Z T21:958:"THE RIGHT ANSWER IS ";R$;".":"YOU NEED TO PRACTICE THAT ONE!!":910:REVIEW1204 ^N(R)X(M(N)),Y(R):430 hPC(C(Z1)10000100):21:1:"YOU GOT ";C;" RIGHT OUT OF 26":"IN THE FIRST ROUND.":"THAT'S ";PC;" PERCENT.";:910:M0440 rREVIEW1:21:1:958:"NOW LET'S REVIEW YOUR MISTAKES."|FLASH NOTESlI126:N(R(I))X(I),Y(R(I)):I:J116:I1M:N(R(M(I)))X(M(I)),Y(R(M(I))):I:W127M:W:JxREVIEWN1M:M(N)0Ă:(RIM)1410,44016368,0:21:958:ZZ1:RR(M(N)):R$(N$,R,1):N(R)X(M(N)),Y(R):150N:410SC(PC15(D31)VV)q21:1:"YOU TOOK ";Z1;" TRIES TO GET 26 NOTES RIGHT.":22:1:"THAT'S A SCORE OF "SC"."I126:N(R(I))X(I),Y(R(I)):8,T(R(I)):6,20:768:IS4SS(PC15)1:490SS((VV1.65PC(2600(Z1)))43.5) 23:1:S$(SS);:868T24:1:"WANT SOME MORE? (Y/N) ";:I$:I$"Y"I$(121)Ľ:GF1:560pI$"N"I$(110)500z:: INITIALIZE930&(16384)10(233)64ĺ(4)"BLOAD MUSIC.SHAPES":232,0:233,640216,0:T(26),R(26),F(26),X(26),Y(26),N(26),M(26),S$(7)H:I126:X(I)309I:T(I):I:I126:N(I):DY34:I126:Y(I)Y:YY36(I13):I:I768796:A:I,A:INI17:S$(I):IX14,16,18,20,22,25,27,30,34,39,42,47,53,53,56,62,71,80,86,96,108,114,128,144,160,172/b6,3,4,3,4,3,2,1,2,1,2,1,5,6,3,4,3,4,3,2,1,2,1,2,1,5l165,8,74,133,9,164,8,173,48,192,136,234,234,208,251,165,7,56,229,9,133,7,176,237,198,6,208,233,96v YOU NEED PRACTICE - BADLY!,JUST PASSED!,KEEP TRYING!,NOT TOO BAD!,VERY GOOD!,EXCELLENT!,BEETHOVEN JUNIOR!GF710 CL3:800gGF1:I2611:N(I)X(27I),Y(I):8,T(I):6,10:768:W110::IX$"WELCOME TO MUSIC LESSON - BY TIM THOMAS COPYRIGHT (C) 1989 - BY MICROSPARC, INC"21:1:958:I1(X$):(X$,I,1);:8,((X$,I,1)):6,5:768: 910 MENU=::32,12:33,28:10:"SPEED":"1) FAST":"2) MEDIUM":"3) SLOW":"4) UNTIMED"::" <-- CHOOSE":17:I$:S(I$):(S1S4)710,:10:"CLEF(S)"::"1) TREBLE CLEF":"2) BASS CLEF":"3) BOTH CLEFS"::" <-- CHOOSE":16:I$:CL(I$):(CL1CL3)730:DCL3S1:10:"SOUND"::"1) SOUND ON":"2) SOUND OFF"::" <-- CHOOSE":15:I$:SO(I$):(SO1SO2)740:768,9669(SO1)DETERMINE ORDER OF NOTES::10:"ONE MOMENT PLEASE";I126i ".";:R((1)(13(13(CL3)))1)13(CL2):(F(R)(CL3)1)780:R(I)R:(R(I)R(I1)I26)780:F(R)F(R)1:I:DRAW STAVES AND CLEFS 230,32:3086:1:0:3*CL28304Y40646:1,Y279,Y:Y:1,401,64:2,402,64:CL1840!>Y851096:1,Y279,Y:Y:1,851,109:2,852,1095HCL2Ĕ715,52IRCL1Ĕ815,94\N$"AGFEDCBAGFEDCCBAGFEDCBAGFE":KB16384:X3:Y130:SP30f:16304,0:16301,0:16297,0:16300,0:GF1GF0:890pCL0:660z910120224:1:" TO CONTINUE, TO END ";:I$::I$(27)ĉ::23:8a"CAN'T FIND MUSIC.SHAPES":910:550 *?Sf~ ?..,. '?')-& $$$$$$*>''(-5"?' !$$$$$-<<><25-5;?4266666 55:>< .66666??).,. /)8?')-$$$$$$--;<><2? *,*5;?666666!$%%$,<,$<<<2776.1>4:6>42'*75757)....-,,,<,<<<<<6.2>#'',,4 6677?$'775%%$$<$??>>..,&-515 5?757- 5?7>><257777? -:7=#666%=; -$$$9:;<=>?@FEB. 1989 DISK (VOL 10/NO 2) 7 SHAPE LIBRARIAN OMNITYPE MUSIC LESSON EASY PROGRAM SPLITTING ROMAN NUMERAL CONVERTER PRODOS COMMAND FILES CHECKIT 5 SHAPE LIBRARIAN RUN SHAPE.LIBRARIAN MUSIC LESSON RUN MUSIC.LESSON ROMAN NUMERAL CONVERTER RUN ROMAN.NUMERALS EASY PROGRAM SPLITTING RUN LONG 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. @ You will not be able to delete the titles that we've placed in the catalog to separate files. However, these will not interfere with the operation of the programs. The screen displays that follow show the files needed to create working copies of each program. @ To create a work disk for SHAPE LIBRARIAN, remove all but the following files from a copy of this disk: SHAPE.LIBRARIAN SHAPE.LIB.PARTA SHAPE.LIB.PARTB SAMPLE1 SAMPLE2 These programs are included on both the DOS 3.3 and ProDOS sides of this disk. @ To create a work disk for OMNITYPE, remove all but the following file from a copy of this disk: TYPE This program is included only on the ProDOS side of this disk. This program is not included as an option in the program menu because it requires special instructions. See the documentation for details. @ To create a work disk for MUSIC LESSON, remove all but the following files from a copy of this disk: MUSIC.LESSON MUSIC.SHAPES These programs are included on both the DOS 3.3 and ProDOS sides of this disk. @ To create a work disk for EASY PROGRAM SPLITTING, remove all but the following files from a copy of this disk: LONG LONG.PT2 These programs are included on both the DOS 3.3 and ProDOS sides of this disk. @ To create a work disk for ROMAN NUMERAL CONVERTER, remove all but the following file from a copy of this disk: ROMAN.NUMERALS This program is included on both the DOS 3.3 and ProDOS sides of this disk. @ To create a work disk for PRODOS COMMAND FILES, remove all but the following file from a copy of this disk: CMD.PATCH This program is included only on the ProDOS side of this disk. This program is not included as an option in the program menu because it requires special instructions. See the documentation for details. @ In addition, we've placed a copy of the CHECKIT program on this disk. CHECKIT is a utility published in every issue of Nibble that aids in typing in programs from the magazine. See the Typing Tips in the latest issue of Nibble for details on using CHECKIT. We have also included the ONE- and TWO-LINERS. @ The source code files for the major assembly language programs have been included on this side of the 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: SHAPE.LIB.B.S (Merlin) TYPE.S (Merlin) CMD.PATCH.S (Any) @ # BCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`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)I38Pghם`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&MIKEbcdefghijk  *  * ROMAN.NUMERALS@ * BY ANTONIO DE PASQUALE [( * COPYRIGHT (C) 1988w2 * BY MICROSPARC, INC.< * CONCORD, MA 01742F *P ============Z TITLE SCREENd============n(21):ACTIVATE 40-COLUMNSx::1 NV$(39):X115:NV$(X):X:INITIALIZE VARIABLES 5)"ROMAN/DECIMAL NUMBER CONVERTER":9)"BY ANTONIO DE PASQUALE":8)"(C) 1988 MICROSPARC, INC.":: "PLEASE CHOOSE ONE OF THE FOLLOWING:": " 1. CONVERT ROMAN TO DECIMAL": " 2. CONVERT DECIMAL TO ROMAN":4 " 3. EXIT PROGRAM":J "YOUR CHOICE: ";q 14:14:K$:K$"1"ĺK$:958:270 K$"2"ĺK$:958:990 K$"3"200 958:K$::"DO YOU REALLY WANT TO QUIT (";::"Y/N";::"): "; 16368,0:K$ K$"Y"K$"y"ĉ::23: 1200 ================F ROMAN TO DECIMAL\ "================} ,IC15:DN0:T20:16:1:958 6RN$"":LL0:"ENTER A ROMAN NUMERAL: ";) @K$:(K$(27)LL0)120:(K$(32)K$(21))320:(K$(8)LL0)320:K$(8)LLLL1:RN$(RN$,1,LL):(8);" ";(8);:320O JK$"a"K$"z"K$(((K$))32)g TK$(27)LL0ī300~ ^K$(13)LL0320 hK$(13)LL0ĺ:410 rK$;:RN$RN$K$:LLLL1:320 |=== === CHECK IF LEGAL === X1(RN$) X$(RN$,X,1) X$"M"X$"D"X$"C"X$"L"X$"X"X$"V"X$"I"ĺ:"ILLEGAL ENTRY! PLEASE PRESS <";::"RETURN";::">":"TO CONTINUE: ";:16368,0:K$:300 X === === CONVERT VALUES === C0:ER0:HV1000 X1(RN$)T1$(RN$,X,1):T2$(RN$,(X1),1)1T1$"M"T11000ET1$"D"T1500YT1$"C"T1100lT1$"L"T150&T1$"X"T1100T1$"V"T15:T1$"I"T11DT2$"M"T21000NT2$"D"T2500XT2$"C"T2100bT2$"L"T250lT2$"X"T210vT2$"V"T25*T2$"I"T214 ===_ === CHECK FOR ILLEGAL ROMAN NUMERALSi ===s1660ER1ī760T1HVT2HVER1T1$T2$CC1:1590:760C0T1T2NV$(IC1)T1$T2$:NV$(IC2)T2$T1$:NV$(IC3)T1$T1$:NV$(IC4)T2$T2$:ICIC4/T1T2HVT1:7609HVT2ER1Ģ18:"ILLEGAL ROMAN NUMERAL, PRESS <";::"RETURN";::"> TOCONTINUE.";:16368,0:K$:300 ===  === ROMAN NUMERAL CALCULATION === T1T2T1T1*DNDNT14T10:T20 >XH===-R=== PRINT THE RESULT6\===gf:"THE DECIMAL EQUIVALENT OF ";::RN$;::p"IS.....";::DN;::z===============ASK TO CONTINUE===============:"DO YOU WISH TO DO ANOTHER":"CONVERSION (";::"Y/N";::") ";.16368,0:K$:K$"Y"K$"y"ī120EK$"N"K$"n"230N930d================zDECIMAL TO ROMAN================16:1:958DN$"":LL0:"ENTER A DECIMAL NUMBER: ";QK$:(K$(27)LL0)120:(K$(32)K$(21))1010:(K$(8)LL0)1010:K$(8)LLLL1:DN$(DN$,1,LL):(8);" ";(8);:1010iK$(27)LL0ī990K$(13)LL01010K$(13)LL0ĺ:DN(DN$):1090K$;:DN$DN$K$:LLLL1:1010$===.===CHECK IF LEGAL8==='B(DN$)4DN$"0"DN$:1090: PAD TO 4 CHARACTERSLY1(DN$):(DN$,Y,1)"0"(DN$,Y,1)"9"ĺ:"ILLEGAL ENTRY! PLEASE PRESS <";::"RETURN";::">":"TO CONTINUE: ";:16368,0:K$:990VY;`(DN$)4ĺ:"NUMBER MUST BE ";::"9999";::" OR LESS.":"PRESS <";::"RETURN";::"> TO CONTINUE: ";:16368,0:K$:990j(DN$)0ĺ:"NUMBER MUST BE GREATER THAN ZERO.":"PLEASE PRESS <";::"RETURN";::"> TO CONTINUE: ";:16368,0:K$:990t===~===CONVERT ONE'S===O$(DN$,1) O$"0"RN$"":12707O$"4"āY1(O$):RN$RN$"I":Y:1270VO$"4"RN$RN$"IV":1270tO$"5"RN$RN$"V":1270O$"8"āY6(O$):RN$RN$"I":Y:RN$"V"RN$:1270O$"9"RN$"IX":1270====== CONVERT TENS===TE$(DN$,3,1)TE$"0"ī1370E TE$"3"āY1(TE$):RN$"X"RN$:Y:1370eTE$"4"RN$"XL"RN$:1370TE$"5"RN$"L"RN$:1370(TE$"8"āY6(TE$):X$X$"X":Y:RN$"L"X$RN$:13702TE$"9"RN$"XC"RN$:1370<===F===CONVERT HUNDREDS P===ZH$(DN$,2,1)/dH$"0"ī1470\nH$"3"āY1(H$):RN$"C"RN$:Y:1470{xH$"4"RN$"CD"RN$:1470H$"5"RN$"D"RN$:1470H$"8"āY6(H$):C$C$"C":Y:RN$"D"C$RN$:1470H$"9"RN$"CM"RN$:1470======CONVERT THOUSANDS===/TH$(DN$,1)BTH$"0"ī1530aY1(TH$):RN$"M"RN$:Yj====== PRINT THE RESULT===:"THE ROMAN EQUIVALENT OF ";::DN$;::"IS.....";::RN$;::920: SEE IF USER WANTS TO DO MORE! ==========================B" ERROR CHECKING SUBROUTINESc, ==========================l6ER0v@HVT1JT1$"M"C8ıTT1$"C"C2ı^T1$"X"C2ıhT1$"I"C2ırER1:|ER0TP$T1$T2$Y1IC TP$NV$(Y)ER1Yi "IM","VM","XM","LM","DM","ID","VD","XD","LD","IC","VC","LC","IL","VL","VX" .,67576%$$$-5566>'%$$?-m,666.$$$(<. ,66666%$$$$46-55667?,%$$?-m!$'-66766.$$$,-.66>>'-$$$$$,M)-.6??',-5>?4>6%6--$7?--3.-6 --3.-6--)-36.*-$?  +6 66 11>? .-51?'46-%!)5936.*-(666(-66? opqrstuvwxyz{|}~ 󺍪Ҳՠ űՠ ıՠ Ǡՠ ؠՠ Ҡՠ ұՠ Ƞՠ ֠ՠ ̠ՠÍȠՠč̠ՠōȠՠƍ̠ՠȠՠ͠ՠ ՠ͠ՠ ՠĠՠčӠՠҠՠҠՠРՠčĠՠƍǠՠĸŠՠŸ 卍 󺍪Ҡՠ֠ՠƵ 󺍪Ԡՠ±Ԡՠ·РՠijӠՠĵ͠ՠĶҠՠĶÍ͠ՠōҠՠðҠՠùԠՠųՠųčҠՠŵŲԠՠŶƸҠՠŷ̠ՠùÍ٠ՠİÍԠՠčԱՠưŠՠŲÍǠ  ԍ 䮍̠ ٠īؠčȍؠ̍čؠčȍؠ̍ԍؠԍȍؠ̍ҠōÍĭԍàčč͍čĭԍàīīͫ«īРİ 卪 䮍 ð 卪 宍 䍪 宍 䍪  䍪 Ԡ٠ Íč̍Íàĭԍ̍īȍàĭԍȍÍčàĭԍč͍čīàĭԍīͫ«īčؠč̍ؠȍҠŠ 卍֠٠ 򍺱ٍ֫Ȭٍٍ̠Ԡ ٠ԍ֫٠֫Í֍Ӡ ẍ͠ðȠӠ ŠӠȱӠ 箮 ȱ 󍠻 󍠠 󍠻 űӠ ıӠ ȱӠ ŲӠ IJӠ ȲӠ ͠Ӡ ͠Ӡ ӠӠ ҠӠРӠĠč   䍪  Ԭ îԍǠč 򺍪 䍪 ԍҠԠ ҍР Šč 󩍍Ԡ٠Ȭٍٍٍ̠֫ «Ǡ ҍ٠©٠ 占ٍ̠àӠ 卍 účРų Ѡ΍Р ŠРōР ŠРӍР ŠРР ŠР̍РĴ ŠРЍРĶ ŠРٍР֠ 嬍 Ţ 婍  󍪍 퍪 ΠҠԠ α 占ؠ̠ ұà؍ؠұ ұÍŠ àұ ҍҍūàұҫÍ٠ҩ٠ 䍠àŠ ұ ҍұ؍٠ ҩٍàūұҫؠҍ٠ Рұ٠ 썠ѠĠ 䍠àұŠЍàұŠРĠ٠Ҭٍűٍٍ̠à ȱұàҍȱұàҫȱàȱŠàȱӠ 卍 婺 婍 婍 썪 卪ŠҠԠ 占ؠ͠ 򍍠Ҡα 占ҠӠ Ų 㮍õ ҠҍҠȠ ΍ҠҠ 䍍ҠȠ 󍍪 庍Íı àȲ 占ıàȲҫ РŠ 占ҫàūàˠ Ǡ 䍠Ӡ 獍ˠű ұ Íà ű űҠ ҍűұ ұàűҫ٠٠ȍұٍÍà 捠ű٠ Ӎٍұ٠ ű٠ ٠ ٠̍ؠ͍ԠÍұ٠ à̠ 䍠ҩ٠ ٠ ұٍàȍҩٍ٠ ҠӍҠӍ؍ŠԍԠŠ Կ̠ԍ 庍Íȱà̍ȱàȍؠŠР 󍍪 亍ԠÍӍà͍؍ÍàȲ̍àȲȍРÍҩٍà̍ҩٍٍҩٍàȍҩٍٍҠҍҠҍ؍ŠЍԠŠ Կɠč 庍ÍűҠ 占àȲ̠ űҫàȲȍı 占٠ıҍàҍŠٍ٠ҫҠҠ 卍 庍ű ٠űŠ󍍺Ġؠı 䍠٠ı؍Šٍ̍٠ȍŲ ٠Ų̍٠ȍIJ ٠IJ̍٠ȍ٠ҠōŠà ȲàııȲàııǠ ĠӠ ̩ȠؠŬؠ Ьؠ 占ű؍Ŭ؍؍̠ӍȠؠЬ؍Ŭ؍؍̠ӍӠؠ 荺ű؍Ų؍؍̠ӍҠ٠űٍӠ 占٠ōҠԠ ̍Р Š Š àōҠԠ 䍠Ӡ 占؍Šı ı 占٠ıűı٠ű٠ı٠٠ȱ٠ȱӍҠԍؠ͠ 퍠Рα ӍӍàұŠҍàұҠàҍŠàҫӍ 婺 퍪̠ҠȠ ōҠҠ ̍ҠӠ Ų 㮍 庍ؠ͠ 占ؠӠ 占Š 䍠àŠ 占à ıàŲȱıàŲȱÍàؠ 占Ҡα 占à 占űàŲȱűàŲȱ ҠȠ 򍍪 庍ؠӍ̠ à؍Íàűҍàűҫàұ ҍàұҫàұ ĺ٠ 占à 占ȱà̍ȱàȍӍԠŠ ɠ󍍍à 占à͠ 䍍ؠ ؍؍Ѡ 􍍪 庍РÍҩ٠ à̠ 占ҩ٠ 占٠ 占ҩٍàȍҩٍٍҠӍҠӍ؍ŠР 䍍 卪 荪 婺à͍ؠ͍؍бÍұٍàҩٍٍұٍàҩٍٍҠӍҠӍ؍Šб 䍍Ԡōɠ͠ č 庍Ų ٠Ų̍٠ȍű 占٠ű̍٠ȍı 占٠ı̍٠ȍ٠ҠŠ 卍 󺍍͠àӍӍҩ٠ ٍұ٠ ҩ٠ 򍍪 庍Íıàȱııàȱı 庍ÍűàűűàűӠ 卍 ̩ӠұŠàұàұҠҍŠàҫàҍӍ 婺 ŸŹ ō ˨ ٍ Ҳ٠٠Ҳũ٠ ͠ 􍍠Š 占ؠū ҍҍؠҫؠ 򍍺РҠҠ ҠҍÍҩ٠ 捠àŠ 占ҲٍҩٍàūٍРҲ Ԡ 占Š 􍍺؍ؠ͠ ԠР ұ 占РҲ Š ؍ؠ ؠǠ 占Ӡ 򍍪  𩍪 غ Ŭ ݬ ݍ֠ՠР͍ѠРҍύҠҍ֍ҠҍōҠҍҠ͍Ҡ͠ Ҡҍ͠ ̠  ͫȍҠ͠ Ҡ͠ 占Ҡҍ ͍̍ͫȍñ Ϣ ҠҍҠ͠ Ҡҍ͍̍ͫȍ ҫ ЍҍàҍŠàҫ ҫ Ѝҍ Р͍ҫàͫӠҍ Ҡà Ҡ 占àҍٍҫàҫ؍ à à̍ӍàȍӫРЍ Ҡ٠РŠ 卍 卪 宍 卪 썪 󍪭٠٠ҍ٠ō٠Ǡ˨ Рұ٠ 占ѠҠ ԠŠ ̠б 占àŠ 卺бàұŠàұұ 占РҲԠЍұРҲԠЍѠЍàǠ˨ 占Ӡ 򍍺ҠԠŠ ɠбàŠ ƍàҍҍРԠбӠ˨ 占 򍍪 庍 򲍪 򍪭РҠԠ 獠ұ٠ұ٠ұ٠ 獠ȱ؍ٍұ٠ 獠ҍٍ̍ұٍҫȍ٠٠ҍРҩ٠ 獠ҠҍР 迍Š͍ؠȱàȱҍ̍ҫȍÍà 󍍺͠Р ŠؠȲÍȱàȲ؍Íàč؍ŠЍؠȱčؠȲĠ΍Ҭ؍؍٠Рٍ̩Ҭٍٍ؍ؠƍŠЍҠ͠ ፠ҠԠ 占ؠȲРԱ 庍 ۬ݍ ˨ 卪ӠҠԠ 占ҠҠ 獠٠٠ōؠ 􍺱 ķ؍ȱ؍؍̠ōؠ 荠ҠԠ 󿍠Ѡ 荠Ҡ͍ҠԠ 荠؍ؠ؍àŠ ƍ·ؠ 獠ؠǠ 獠Ҡ٠ РĠ ѠР Ҡ̠ РԱҠҠԠ Ԡō̠·ؠ ؠ؍Š 占·ؠ ؍ؠؠ 쿍ԠԠ 􍍺à ѠԠ 獠ҠŠ ŠԠ 獠ҠԠ 􍍺ԠҠٍԱР  Š 占ؠ Ѡ ҠԠ 䍺ҠŠ ŠѠԍàǠ 䍠ŠҠ ÍРۼݍѠÍРƠݍѠÍРĠݍѠЍР ԠԍؠŠЍҠԠ 卍РҬ؍РčŠҍҠčҠԍԠ٠ǠΧ ǍѠԱ ݍӍԱ٠ٍōٍٍٍٍҠӍōҠ٠РЬٍٍٍ̠Ѝؠ٠ЍРҍŠҠԱ ҠԱԠō̠·؍·؍ҠԱ؍Ӡ Ԡ٠ ٢ РԬٍķٍķٍٍ̠ЍӍԠ٠ Рȱٍķٍķٍٍ̠ЍӍԠà ٢à ؠǍč *********************9 * SHAPE.LIB.PARTA *U * BY JAMES BRODSKY *q( * COPYRIGHT(C) 1989 *2 * MICROSPARC, INC. *< * CONCORD, MA 01742 *F *********************I P::(4)"PR#0":(4)"IN#0":(21):12:A$"SHAPE.LIBRARIAN":830:(104)96Ĺ103,1:104,96:24576,0:(4)"RUN SHAPE.LIBRARIAN"| ZX(175)256(176)1654:(X)160(X1)0ČX dI0:J0:T0:D$(4):E$(27):KB%16384:KR%16368:V1$(91):V2$(93):R1$V1$"RETURN"V2$:R$"PRESS "R1$L n1:0:3:ESCAPE6:230,64:PRODOS(48896)76:C$"CATALOG":DOS43616:SL(43626):DR(43624) xPRODOSC$"CAT":D$"PREFIX":PF$:SL(48700):DR(48701):DOS48840:48996,255:140 (978)157ė:12:"CAN'T RUN WITH DOS AT THIS LOCATION"::"BYE...":D$"FP"^ HI(X)(X256):LO(X)X256HI(X):PTR(X)(X)256(X1):CLR958:B$(8):SAVFLAG%0:Q$(34) M$(10,3),ES$(8),LD%(2),PR$(4):J13:IT%(J):M$(0,J):I1IT%(J):M$(I,J):::I28:ES$(I)::I14:PR$(I):- 17::13:"BY JAMES BRODSKY"::12:"COPYRIGHT (C) 1988":12:"BY MICROSPARC, INC."k :8:"PRESS RETURN TO CONTINUE":KR%,0:KB%,128:(KR%),0z 200:1030 MISC. SUBS 34,0::MOVE,1024,20472048::CLEAR TEXT PAGE 2 K:SBPTR(6):SEPTR(8)::SHAPE START & END TOOLONGV LD%(2)290:200:860:12:A$"ACTION NOT COMPLETED":830:::"TABLES TOO LONG": OP%1260:"SHAPE NOT ";OP$;"ED":SAVFLAG%2SAVFLAG%5 280 I1ĺ"SHAPES ";L;" THRU ";LI1;" ";OP$;"ED":280 "SHAPE ";L;" ";OP$;"ED" 450:IJ:ESCAPE,1:%"34,0:OP%1İ200:860h,14:LD%(2)0:X24560NL:MOVE,NS,NSNLX:NSX:840:ESCAPE,0:6980:"IT WAS NECESSARY TO REMOVE"::"> ";NW$::"FROM MEMORY IN ORDER TO FINISH ";OP$;"ING"::"TO > ";OLD$::450:9@200:860:770:9::OP$;" SHAPES "L" THROUGH "T1::::OPT0:400:ANSWER1ġ:]JA$"-> WORKING <-"::12:830:sT "ARE YOU SURE?"^380:ANSWER(I89)2(I78)3(I27)4(I13):ANSWER350:ANSWER4OPT350hr CONV. LC.|:" ";::B$;:KR%,0:KB%,128:KR%,0:I(KB%):II32(I90):K$(I):" ";B$;:8:21x"ARE YOU SURE ?? ==> (Y/N) ";::" ";::B$;:2080:350: FIX TABLE DATASAPTR(2):LNPTR(4)1SA:NUM(SA):SAVFLAG%2SAVFLAG%2 PROMPT"PRESS RETURN:";:K$::  ARRANGE!LKTL:LK:KT':GET FILE NAME:C0:TM%:T1(37)(T10):23:Q$"?"Q$" FOR CATALOG":770:T12::"> ";:IN$:IN$"?"(ESCAPE)ıIN$""::X%4:2390 C1:M%6::PRODOS590:770:12::"CATALOG BY DRIVE OR PATHNAME (D/P)? ";?380:I(I68)2(I80):I590,550:K$E$520UM%T:C2::6,0:&M%8:770:14::"ENTER FULL CATALOG PATHNAME:"::R$" FOR:":PF$::"> ";:PN$:M%T:(ESCAPE)520:PN$""PN$PF$:5800(PN$,1)"/"PN$"/"PN$e:PN$PF$ĺ:"DO YOU WANT TO SET PRODOS PREFIX TO":PN$" (Y/N)? ";:350:ANSWER1580::D$"PREFIX"PN$:PF$PN$yDC1$C$PN$:650N:770:670:680:11::"CHANGE SLOT OR DRIVE (Y/";::"N";::") ? ";XOPT1:350:OPT0:ANSWER610,640,540,640(b11::23::"Y";::"/N) ":T1M%:M%7:770:M%T1|l670:B$;:K$:K$E$590:K$(13)630:K$:T1SL:SL(K$):SL1SL7SLT1:620v680:B$;:K$:K$E$590:K$(13)640:K$:T1DR:DR(K$):DR1DR4DRT1:630C1$C$",S"(SL)",D"(DR)::D$;C1$::::M%T:X%0:PRODOSıAD$"PREFIX,S"(SL)",D"(DR):]14::"SLOT => ";SL;:z16::"DRIVE => ";DR;:MENU:A$M$(0,M%):830(13IT%(M%)4(M%3)):I1IT%(M%):(I64);") ";M$(I,M%):M%3ĺ:770:%21::"SELECT BY LETTER => ";:K$:K$E$X0::lK(K$):KK32(K96K123):K$(K)::X(K$)64:X1XIT%(M%)730t:770:11::ES$(M%)""Ģ24:1:868:V1$;"ESC";V2$;": ";ES$(M%); VECTOR 8,LO(SX):9,HI(SX):XSXLX1:0,LO(X):1,HI(X): :(6)ıD*SXSX4:SX,1:SX1,0:SX2,4:SX3,0:4:TM%:M%6:770:M%T:11::"INSERT THE DISK CONTAINING":"> ";:>(42(A$))2::A$:::H233,HI(NS):232,LO(NS):SXNS:LXNL:NXNM:EXNSNL::VIEW TABLE 2 =R233,HI(SA):232,LO(SA):SXSA:LXLN:NXNUM:EXSALN::VIEW TABLE 1a\16303,0:16300,0::SET TEXTf16297,0:16301,0:16299,0:16304,0::SET GRAPHICSp760:"INSERT DISK AND ";R$:K$::z SAVE SHAPEOP$"EXTRACT AND SAVE":1980:K970:210:::MOVE,SB,SE16384T200:860:12:"SHAPE WILL BE SAVED AS A VECTOR FILE"22::"ENTER FILE NAME FOR SHAPE"::500:(ESCAPE)ıC920:IN$""910X%5:2390:"VECTOR FILE:":IN$:880:K$E$ı XSESB1::D$"BSAVE"IN$",A16384,L";XX%0:E::12:A$" >>> WARNING <<< ":830::8,LO(EX):9,HI(EX)::NX(6):6,0:SX,NX:KNX:210:LXSESX1980:"LENGTH OF":K$:(NX255NX)1010:"IS SUCH THAT SHAPES ABOVE # ";NX:"HAVE BEEN LOPPED OFF"::450::K"IS TOO GREAT FOR AVAILABLE MEMORY":K$:"NOT LOADED":LD%(2)0:450::[ MAIN MENUM%1::700:OP%X:M%2:X1040,1070,1100,2290:1030LD%(1)10601160:ANSWER1060,1240,1030$1270:1240.LD%(1)11408LD%(2)İ1160:ANSWER1140,1150,10303B1160:ANSWER1140,1250,1030aLM%2:LD%(1)İ1160:ANSWER1110,1030,1030mV::22`"ENTER NAME FOR NEW TABLE"::500:(ESCAPE)1030:C01120:IN$""1030jOLD$IN$:SA5200:SA,0:SA1,0:SA2,2:SA3,0:NUM0:LN2:SAVFLAG%3:1390:LD%(1)1:1150$t1270D~1420:(ESCAPE)1030:1250:12:"DO YOU WANT TO REMOVE":"==> ";OLD$:"FROM MEMORY (Y/N) ? "77019::SAVFLAG%ĺ"YOU MADE NO CHANGES":1210 20:"CHANGES YOU MADE HAVE ";:SAVFLAG%1Ğ:"NOT";::" ";"BEEN SAVED"414:24:OPT0:350:JPRODOSX(0):YD$"FRE":i1220:1550y1220:1580LOAD MAIN TABLE::M%2:12:X%0"WHAT IS THE NAME OF THE SHAPE TABLE":OP%1ĺ"YOU WANT TO EDIT?":1300 "TO WHICH YOU WANT TO ADD?"G:500:(ESCAPE)1400:C1280,1270:IN$""1270r820:IN$:"AND ";R$:K$::K$E$1270(X%1:LD%(1)0:OLD$"":23702M%2:SA5200:D$;"BLOAD"IN$;",A";SA:IN$,OLD$ <LD%(1)1:LD%(2)0:SAVFLAG%0:NUM(SA):LNPTR(DOS): SHAPES & LENGTH? F850:800:(6)SASA4:LNLN4:NUM1:6,0I P1390{ ZSALN16384K$OLD$:NUM:420:NXNUM:1370 dSAVFLAG%21000 n2,LO(SA):3,HI(SA):XSALN1:4,LO(X):5,HI(X)::START & END ADR x:1030 LOAD 2D TABLE!:12\!PRODOSĢ5::"DON'T LOAD A FILE LONGER THAN":((20480SALN)256);" SECTORS":12!"NAME OF FILE CONTAINING SHAPES TO ADD":"TO "OLD$::500:(ESCAPE)1530:C1440,1420:IN$""1420!820:IN$:"AND ";R$:K$::K$E$1420"NSSALN100:LD%(2)0:NW$"""2370I"M%2:X%2:D$"BLOAD"IN$",A";NS:IN$,NW$"NLPTR(DOS):NM(NS):NMLD%(2)0:1920:NEW TABLE LENGTH, NUMBER OF SHAPES"840:800:(6)NSNS4:NLNL4:NM1:6,0:840 #LD%(2)1:NSNL16380X16380NL:MOVE,NS,NSNLX:NSX:-#840:K$NW$:990:NMNX:NLLX3#E#SINGLE TABLE~#:200:860:"TABLE: ";OLD$:34,2:M%2:LD%(2)0:700#X1030:M%4:PR%1:850:X2100,900,1710,1820,1850:1550#"2TABLES$,LD%(2)1240:M%3:200:"ADD TO: ";OLD$:"FROM: ";NW$::34,3:860:700p$6M%5:PR%1:840:X01030:X1610,1660,1710,1820,1850,2100,1870,900,1730,1780:1580~$@ ADD ONE$J1900:OP$"ADD":OP%1:1980:K1640:OPT0:390:ANSWER11640$TKŀ:(ESCAPE)İ230:(ESCAPE)1620 %^(ESCAPE)LD%(2)İ310%h420:%%r ADD RANGEE%|OP$"ADD":1930:320:I0Jr%LIŀ:(ESCAPE)İ230:(ESCAPE)1670~%".";:%420:LD%(2)310:%VIEW%NUM1920:OP$"VIEW":850:1980:% INSERT ONEM&1900:NUM1610:OP$"INSERT":OP%1:1980:LK:K1760:850:PR%4:1980:K1760:OPT0:390:ANSWER11760:840x&LK:(ESCAPE)İ230:(ESCAPE)1740&(ESCAPE)LD%(2)İ310&420:& INSERT RANGE&OP$"INSERT":1930:850:PR%4:1980:K1830:840:320:I0J$'LIKI:(ESCAPE)İ230:(ESCAPE)1790.'1680?' DELETE ONE'NUM1920:OP$"DELETE":850:1980:K1830:390:(ANSWER2ANSWER3)1830:K:420'&'0 DELETE RANGE(:NUM1920:OP$"DELETE":850:1940:320:330:I1(KL1):L:".";::420: (DTABLE2w(N:760:"ARE YOU SURE YOU WANT TO REMOVE":"==> ";NW$:"FROM MEMORY? (Y/N) ?";:OPT0:350:ANSWER1ı(X1420:(b34,0:::12:"A TABLE CAN ONLY CONTAIN 255 SHAPES"::"THIS WOULD MAKE "NUMKL1::450::)lNUM255ė:12:"TABLE FULL..."::450:)vE):12:"NO SHAPES IN TABLE..."::450:W)NUM2551900)PR%2:OP%2:1980:LK:K1960:PR%3:1980:K1960:470:T1K:JKL:NUMJ1255OP$"DELETE"1890)):)DISPLAY SHAPES*34,0::2080:3086:870:3*NX1K1:X0:2020*K0:770:20::"NUMBER OF SHAPES:";NX:"WHAT IS THE NUMBER OF THE ";PR$(PR%):"YOU WISH TO ";OP$;" ==> ";:33:"#";:2080*K$,3:(ESCAPE)2070:X0:K(K$):KK(K0):KNXK1J+K140,75:X2040::770:20::NX1ĺ"HIGHER ";V1$;"-->";V2$;" ";::" ";::" ";V1$;"<--";V2$;" LOWER";:2080+:OP$"VIEW"ĺR1$;" IF THIS IS THE ";PR$(PR%):"YOU WANT TO "OP$:2080+X1:24:33:"# ";K;" ";:2080+K$:K$(13)2070:K$E$K0:<, TK(K$(8))(K$(21)):TT(TNX)NX(T1)(TNX):TK2050:0:K140,75:KT:3:2020B,y, MOVE,1616,20472640::MOVE TEXT PAGE 1 TO PAGE 2,*SAVE TABLE,4::5:OLD$;" NOW":"CONTAINS ";NUM;" SHAPES.":"AND IS ";LN;" BYTES LONG":X25:PRODOSX10#->FL$OLD$:(OLD$)4ĭ(OLD$,(OLD$)3,3)"REV"21508-HSAVFLAG%32170S-R(FL$)XFL$(FL$,X)m-\FL$FL$".REV1":2170-fT((OLD$,1)):T9(OLD$)X5XX1:FL$(FL$,X)(FL$,5)-pT((FL$,1)):TT1:FL$(FL$,(FL$)1)(T)J.z10:CLR:770:22:36,0:"OR"Q$"?"Q$" FOR CATALOG";:20::"OR ENTER NEW FILE NAME":13::R$;" FOR:":."> ";FL$;:2:IN$:(ESCAPE)2270:IN$""2250:IN$"?"İ510:2220.FL$IN$:2240.:11:/"ENTER NEW NAME UNDER WHICH TO SAVE":"YOUR REVISED VERSION OF":OLD$::5009/(ESCAPE)2270:C2210,2200:FL$IN$:FL$""2200[/:880:K$E$ĹESCAPE,1:2270f/2390/X%3::D$"BSAVE"FL$",A";SA;",L";LN:SAVFLAG%SAVFLAG%1/FL$,OLD$/1220:/ QUIT/:M%2:760:SAVFLAG%22330o0"YOU CHANGED:"::"==> ";OLD$::"DO YOU WANT TO SAVE THE CHANGES":"BEFORE YOU QUIT (Y/N) ";:OPT0:350:ANSWER2310,2320,10300 2100:(ESCAPE)10300 :M%2:7600 A$" QUIT PROGRAM ":830::"ARE YOU SURE (Y/N) => ";:OPT0:350:ANSWER110301$ PRODOSĹ48996,0 1. :18 ONERR^1B 3288:2510:ER62400:M%6:770:2500:K$E$2380:X%1320,1470p1L X%1270,14201V 3288:25101` 11::ER4ĺ"DISK WRITE-PROTECTED":2490$2j (PRODOSER16)(PRODOSER11)ĺQ$;IN$;Q$:"IS NOT A LEGAL FILE NAME":IN$"":2520:X%1270,1420,2100:X%5910A2t ER9ĺ"DISK FULL":2490y2~ ER8ER3ĺ"I/O ERROR... CHECK DISK DRIVE":24902 ER13ĺ"FILE TYPE MISMATCH":24902 ER255ĺ"PLEASE EXIT THROUGH MENU":3 ER12PRODOSĺ"TABLE TOO LONG TO LOAD":2520:LD%(X%)0:X%1270,14203 ER90ER16PRODOSĺ"TABLE TOO LONG - OVERWROTE PROGRAM"::"RUN PROGRAM AGAIN AND DELETE SOME SHAPES"::(4)"FP":3 "ERROR NUMBER ";ER;" AT LINE ";PTR(218)3 2520:X%1310,1450,2230,510,910:H4 9::Q$;(IN$,38);Q$:"IS NOT ON THIS DISK":"PUT IN THE RIGHT DISK AND PRESS ANY KEY":K$::b4 ER(222):(7):::4 ::R$;" TO CONTINUE ==> ";:K$::4 MENU4 4,MAIN MENU,EDIT A SINGLE TABLE,WORK WITH TWO TABLES,START A NEW TABLE,QUITn5 5,SINGLE TABLE MENU,SAVE MAIN SHAPE TABLE,SAVE A SHAPE AS A VECTOR FILE,SEE SHAPES IN TABLE,DELETE A SHAPE,DELETE RANGE OF SHAPES 6 10,TWO TABLE MENU,ADD A SHAPE TO MAIN TABLE,ADD RANGE OF SHAPES,SEE SHAPES IN MAIN TABLE,DELETE A SHAPE FROM MAIN TABLE,DELETE RANGE OF SHAPES6 SAVE MAIN SHAPE TABLE,GET NEW SECOND TABLE,SAVE A SHAPE FROM SECOND TABLE,INSERT A SHAPE IN MAIN TABLE,INSERT RANGE OF SHAPES6 MAIN MENU,MAIN MENU,SINGLE TABLE MENU,TWO TABLES MENU,ENTER FILENAME,CHANGE SLOT/DRIVE,DRIVE/PATHNAME 7 SHAPE,FIRST SHAPE,LAST SHAPE,SHAPE WHERECBF?>@9=< ,veikmejlnL>8$? , e e` ` `  `  ɀ(    `  Lw  `  +    8   w 8    ee8  i< i= , 0#8 8<ȱ=    8ȱ  , 0!  BC <=>? ,  ȱ8  ii` `@  s seȱe  ʆ`MLީO ީV ީE g RPHQ?H g RPBQChhhhPQ8囨圪eBeCLӠL,  ,   `, 0   ` ߅  ȱ<ȱ=  s/ <=, 8  Ѯ  ʠ< ߮ L lݠ     `r  ɍ\H hL} ,  r `s     ɛ  Ɉɍ ɠ ɍХ `ȩȩ 9ե L婈 , r `q `H' h`H  h`Š٠ *********************9 * SHAPE.LIB.PARTA *U * BY JAMES BRODSKY *q( * COPYRIGHT(C) 1989 *2 * MICROSPARC, INC. *< * CONCORD, MA 01742 *F *********************I P::(4)"PR#0":(4)"IN#0":(21):12:A$"SHAPE.LIBRARIAN":830:(104)96Ĺ103,1:104,96:24576,0:(4)"RUN SHAPE.LIBRARIAN"| ZX(175)256(176)1654:(X)160(X1)0ČX dI0:J0:T0:D$(4):E$(27):KB%16384:KR%16368:V1$(91):V2$(93):R1$V1$"RETURN"V2$:R$"PRESS "R1$L n1:0:3:ESCAPE6:230,64:PRODOS(48896)76:C$"CATALOG":DOS43616:SL(43626):DR(43624) xPRODOSC$"CAT":D$"PREFIX":PF$:SL(48700):DR(48701):DOS48840:48996,255:140 (978)157ė:12:"CAN'T RUN WITH DOS AT THIS LOCATION"::"BYE...":D$"FP"^ HI(X)(X256):LO(X)X256HI(X):PTR(X)(X)256(X1):CLR958:B$(8):SAVFLAG%0:Q$(34) M$(10,3),ES$(8),LD%(2),PR$(4):J13:IT%(J):M$(0,J):I1IT%(J):M$(I,J):::I28:ES$(I)::I14:PR$(I):- 17::13:"BY JAMES BRODSKY"::12:"COPYRIGHT (C) 1988":12:"BY MICROSPARC, INC."k :8:"PRESS RETURN TO CONTINUE":KR%,0:KB%,128:(KR%),0z 200:1030 MISC. SUBS 34,0::MOVE,1024,20472048::CLEAR TEXT PAGE 2 K:SBPTR(6):SEPTR(8)::SHAPE START & END TOOLONGV LD%(2)290:200:860:12:A$"ACTION NOT COMPLETED":830:::"TABLES TOO LONG": OP%1260:"SHAPE NOT ";OP$;"ED":SAVFLAG%2SAVFLAG%5 280 I1ĺ"SHAPES ";L;" THRU ";LI1;" ";OP$;"ED":280 "SHAPE ";L;" ";OP$;"ED" 450:IJ:ESCAPE,1:%"34,0:OP%1İ200:860h,14:LD%(2)0:X24560NL:MOVE,NS,NSNLX:NSX:840:ESCAPE,0:6980:"IT WAS NECESSARY TO REMOVE"::"> ";NW$::"FROM MEMORY IN ORDER TO FINISH ";OP$;"ING"::"TO > ";OLD$::450:9@200:860:770:9::OP$;" SHAPES "L" THROUGH "T1::::OPT0:400:ANSWER1ġ:]JA$"-> WORKING <-"::12:830:sT "ARE YOU SURE?"^380:ANSWER(I89)2(I78)3(I27)4(I13):ANSWER350:ANSWER4OPT350hr CONV. LC.|:" ";::B$;:KR%,0:KB%,128:KR%,0:I(KB%):II32(I90):K$(I):" ";B$;:8:21x"ARE YOU SURE ?? ==> (Y/N) ";::" ";::B$;:2080:350: FIX TABLE DATASAPTR(2):LNPTR(4)1SA:NUM(SA):SAVFLAG%2SAVFLAG%2 PROMPT"PRESS RETURN:";:K$::  ARRANGE!LKTL:LK:KT':GET FILE NAME:C0:TM%:T1(37)(T10):23:Q$"?"Q$" FOR CATALOG":770:T12::"> ";:IN$:IN$"?"(ESCAPE)ıIN$""::X%4:2390 C1:M%6::PRODOS590:770:12::"CATALOG BY DRIVE OR PATHNAME (D/P)? ";?380:I(I68)2(I80):I590,550:K$E$520UM%T:C2::6,0:&M%8:770:14::"ENTER FULL CATALOG PATHNAME:"::R$" FOR:":PF$::"> ";:PN$:M%T:(ESCAPE)520:PN$""PN$PF$:5800(PN$,1)"/"PN$"/"PN$e:PN$PF$ĺ:"DO YOU WANT TO SET PRODOS PREFIX TO":PN$" (Y/N)? ";:350:ANSWER1580::D$"PREFIX"PN$:PF$PN$yDC1$C$PN$:650N:770:670:680:11::"CHANGE SLOT OR DRIVE (Y/";::"N";::") ? ";XOPT1:350:OPT0:ANSWER610,640,540,640(b11::23::"Y";::"/N) ":T1M%:M%7:770:M%T1|l670:B$;:K$:K$E$590:K$(13)630:K$:T1SL:SL(K$):SL1SL7SLT1:620v680:B$;:K$:K$E$590:K$(13)640:K$:T1DR:DR(K$):DR1DR4DRT1:630C1$C$",S"(SL)",D"(DR)::D$;C1$::::M%T:X%0:PRODOSıAD$"PREFIX,S"(SL)",D"(DR):]14::"SLOT => ";SL;:z16::"DRIVE => ";DR;:MENU:A$M$(0,M%):830(13IT%(M%)4(M%3)):I1IT%(M%):(I64);") ";M$(I,M%):M%3ĺ:770:%21::"SELECT BY LETTER => ";:K$:K$E$X0::lK(K$):KK32(K96K123):K$(K)::X(K$)64:X1XIT%(M%)730t:770:11::ES$(M%)""Ģ24:1:868:V1$;"ESC";V2$;": ";ES$(M%); VECTOR 8,LO(SX):9,HI(SX):XSXLX1:0,LO(X):1,HI(X): :(6)ıD*SXSX4:SX,1:SX1,0:SX2,4:SX3,0:4:TM%:M%6:770:M%T:11::"INSERT THE DISK CONTAINING":"> ";:>(42(A$))2::A$:::H233,HI(NS):232,LO(NS):SXNS:LXNL:NXNM:EXNSNL::VIEW TABLE 2 =R233,HI(SA):232,LO(SA):SXSA:LXLN:NXNUM:EXSALN::VIEW TABLE 1a\16303,0:16300,0::SET TEXTf16297,0:16301,0:16299,0:16304,0::SET GRAPHICSp760:"INSERT DISK AND ";R$:K$::z SAVE SHAPEOP$"EXTRACT AND SAVE":1980:K970:210:::MOVE,SB,SE16384T200:860:12:"SHAPE WILL BE SAVED AS A VECTOR FILE"22::"ENTER FILE NAME FOR SHAPE"::500:(ESCAPE)ıC920:IN$""910X%5:2390:"VECTOR FILE:":IN$:880:K$E$ı XSESB1::D$"BSAVE"IN$",A16384,L";XX%0:E::12:A$" >>> WARNING <<< ":830::8,LO(EX):9,HI(EX)::NX(6):6,0:SX,NX:KNX:210:LXSESX1980:"LENGTH OF":K$:(NX255NX)1010:"IS SUCH THAT SHAPES ABOVE # ";NX:"HAVE BEEN LOPPED OFF"::450::K"IS TOO GREAT FOR AVAILABLE MEMORY":K$:"NOT LOADED":LD%(2)0:450::[ MAIN MENUM%1::700:OP%X:M%2:X1040,1070,1100,2290:1030LD%(1)10601160:ANSWER1060,1240,1030$1270:1240.LD%(1)11408LD%(2)İ1160:ANSWER1140,1150,10303B1160:ANSWER1140,1250,1030aLM%2:LD%(1)İ1160:ANSWER1110,1030,1030mV::22`"ENTER NAME FOR NEW TABLE"::500:(ESCAPE)1030:C01120:IN$""1030jOLD$IN$:SA5200:SA,0:SA1,0:SA2,2:SA3,0:NUM0:LN2:SAVFLAG%3:1390:LD%(1)1:1150$t1270D~1420:(ESCAPE)1030:1250:12:"DO YOU WANT TO REMOVE":"==> ";OLD$:"FROM MEMORY (Y/N) ? "77019::SAVFLAG%ĺ"YOU MADE NO CHANGES":1210 20:"CHANGES YOU MADE HAVE ";:SAVFLAG%1Ğ:"NOT";::" ";"BEEN SAVED"414:24:OPT0:350:JPRODOSX(0):YD$"FRE":i1220:1550y1220:1580LOAD MAIN TABLE::M%2:12:X%0"WHAT IS THE NAME OF THE SHAPE TABLE":OP%1ĺ"YOU WANT TO EDIT?":1300 "TO WHICH YOU WANT TO ADD?"G:500:(ESCAPE)1400:C1280,1270:IN$""1270r820:IN$:"AND ";R$:K$::K$E$1270(X%1:LD%(1)0:OLD$"":23702M%2:SA5200:D$;"BLOAD"IN$;",A";SA:IN$,OLD$ <LD%(1)1:LD%(2)0:SAVFLAG%0:NUM(SA):LNPTR(DOS): SHAPES & LENGTH? F850:800:(6)SASA4:LNLN4:NUM1:6,0I P1390{ ZSALN16384K$OLD$:NUM:420:NXNUM:1370 dSAVFLAG%21000 n2,LO(SA):3,HI(SA):XSALN1:4,LO(X):5,HI(X)::START & END ADR x:1030 LOAD 2D TABLE!:12\!PRODOSĢ5::"DON'T LOAD A FILE LONGER THAN":((20480SALN)256);" SECTORS":12!"NAME OF FILE CONTAINING SHAPES TO ADD":"TO "OLD$::500:(ESCAPE)1530:C1440,1420:IN$""1420!820:IN$:"AND ";R$:K$::K$E$1420"NSSALN100:LD%(2)0:NW$"""2370I"M%2:X%2:D$"BLOAD"IN$",A";NS:IN$,NW$"NLPTR(DOS):NM(NS):NMLD%(2)0:1920:NEW TABLE LENGTH, NUMBER OF SHAPES"840:800:(6)NSNS4:NLNL4:NM1:6,0:840 #LD%(2)1:NSNL16380X16380NL:MOVE,NS,NSNLX:NSX:-#840:K$NW$:990:NMNX:NLLX3#E#SINGLE TABLE~#:200:860:"TABLE: ";OLD$:34,2:M%2:LD%(2)0:700#X1030:M%4:PR%1:850:X2100,900,1710,1820,1850:1550#"2TABLES$,LD%(2)1240:M%3:200:"ADD TO: ";OLD$:"FROM: ";NW$::34,3:860:700p$6M%5:PR%1:840:X01030:X1610,1660,1710,1820,1850,2100,1870,900,1730,1780:1580~$@ ADD ONE$J1900:OP$"ADD":OP%1:1980:K1640:OPT0:390:ANSWER11640$TKŀ:(ESCAPE)İ230:(ESCAPE)1620 %^(ESCAPE)LD%(2)İ310%h420:%%r ADD RANGEE%|OP$"ADD":1930:320:I0Jr%LIŀ:(ESCAPE)İ230:(ESCAPE)1670~%".";:%420:LD%(2)310:%VIEW%NUM1920:OP$"VIEW":850:1980:% INSERT ONEM&1900:NUM1610:OP$"INSERT":OP%1:1980:LK:K1760:850:PR%4:1980:K1760:OPT0:390:ANSWER11760:840x&LK:(ESCAPE)İ230:(ESCAPE)1740&(ESCAPE)LD%(2)İ310&420:& INSERT RANGE&OP$"INSERT":1930:850:PR%4:1980:K1830:840:320:I0J$'LIKI:(ESCAPE)İ230:(ESCAPE)1790.'1680?' DELETE ONE'NUM1920:OP$"DELETE":850:1980:K1830:390:(ANSWER2ANSWER3)1830:K:420'&'0 DELETE RANGE(:NUM1920:OP$"DELETE":850:1940:320:330:I1(KL1):L:".";::420: (DTABLE2w(N:760:"ARE YOU SURE YOU WANT TO REMOVE":"==> ";NW$:"FROM MEMORY? (Y/N) ?";:OPT0:350:ANSWER1ı(X1420:(b34,0:::12:"A TABLE CAN ONLY CONTAIN 255 SHAPES"::"THIS WOULD MAKE "NUMKL1::450::)lNUM255ė:12:"TABLE FULL..."::450:)vE):12:"NO SHAPES IN TABLE..."::450:W)NUM2551900)PR%2:OP%2:1980:LK:K1960:PR%3:1980:K1960:470:T1K:JKL:NUMJ1255OP$"DELETE"1890)):)DISPLAY SHAPES*34,0::2080:3086:870:3*NX1K1:X0:2020*K0:770:20::"NUMBER OF SHAPES:";NX:"WHAT IS THE NUMBER OF THE ";PR$(PR%):"YOU WISH TO ";OP$;" ==> ";:33:"#";:2080*K$,3:(ESCAPE)2070:X0:K(K$):KK(K0):KNXK1J+K140,75:X2040::770:20::NX1ĺ"HIGHER ";V1$;"-->";V2$;" ";::" ";::" ";V1$;"<--";V2$;" LOWER";:2080+:OP$"VIEW"ĺR1$;" IF THIS IS THE ";PR$(PR%):"YOU WANT TO "OP$:2080+X1:24:33:"# ";K;" ";:2080+K$:K$(13)2070:K$E$K0:<, TK(K$(8))(K$(21)):TT(TNX)NX(T1)(TNX):TK2050:0:K140,75:KT:3:2020B,y, MOVE,1616,20472640::MOVE TEXT PAGE 1 TO PAGE 2,*SAVE TABLE,4::5:OLD$;" NOW":"CONTAINS ";NUM;" SHAPES.":"AND IS ";LN;" BYTES LONG":X25:PRODOSX10#->FL$OLD$:(OLD$)4ĭ(OLD$,(OLD$)3,3)"REV"21508-HSAVFLAG%32170S-R(FL$)XFL$(FL$,X)m-\FL$FL$".REV1":2170-fT((OLD$,1)):T9(OLD$)X5XX1:FL$(FL$,X)(FL$,5)-pT((FL$,1)):TT1:FL$(FL$,(FL$)1)(T)J.z10:CLR:770:22:36,0:"OR"Q$"?"Q$" FOR CATALOG";:20::"OR ENTER NEW FILE NAME":13::R$;" FOR:":."> ";FL$;:2:IN$:(ESCAPE)2270:IN$""2250:IN$"?"İ510:2220.FL$IN$:2240.:11:/"ENTER NEW NAME UNDER WHICH TO SAVE":"YOUR REVISED VERSION OF":OLD$::5009/(ESCAPE)2270:C2210,2200:FL$IN$:FL$""2200[/:880:K$E$ĹESCAPE,1:2270f/2390/X%3::D$"BSAVE"FL$",A";SA;",L";LN:SAVFLAG%SAVFLAG%1/FL$,OLD$/1220:/ QUIT/:M%2:760:SAVFLAG%22330o0"YOU CHANGED:"::"==> ";OLD$::"DO YOU WANT TO SAVE THE CHANGES":"BEFORE YOU QUIT (Y/N) ";:OPT0:350:ANSWER2310,2320,10300 2100:(ESCAPE)10300 :M%2:7600 A$" QUIT PROGRAM ":830::"ARE YOU SURE (Y/N) => ";:OPT0:350:ANSWER110301$ PRODOSĹ48996,0 1. :18 ONERR^1B 3288:2510:ER62400:M%6:770:2500:K$E$2380:X%1320,1470p1L X%1270,14201V 3288:25101` 11::ER4ĺ"DISK WRITE-PROTECTED":2490$2j (PRODOSER16)(PRODOSER11)ĺQ$;IN$;Q$:"IS NOT A LEGAL FILE NAME":IN$"":2520:X%1270,1420,2100:X%5910A2t ER9ĺ"DISK FULL":2490y2~ ER8ER3ĺ"I/O ERROR... CHECK DISK DRIVE":24902 ER13ĺ"FILE TYPE MISMATCH":24902 ER255ĺ"PLEASE EXIT THROUGH MENU":3 ER12PRODOSĺ"TABLE TOO LONG TO LOAD":2520:LD%(X%)0:X%1270,14203 ER90ER16PRODOSĺ"TABLE TOO LONG - OVERWROTE PROGRAM"::"RUN PROGRAM AGAIN AND DELETE SOME SHAPES"::(4)"FP":3 "ERROR NUMBER ";ER;" AT LINE ";PTR(218)3 2520:X%1310,1450,2230,510,910:H4 9::Q$;(IN$,38);Q$:"IS NOT ON THIS DISK":"PUT IN THE RIGHT DISK AND PRESS ANY KEY":K$::b4 ER(222):(7):::4 ::R$;" TO CONTINUE ==> ";:K$::4 MENU4 4,MAIN MENU,EDIT A SINGLE TABLE,WORK WITH TWO TABLES,START A NEW TABLE,QUITn5 5,SINGLE TABLE MENU,SAVE MAIN SHAPE TABLE,SAVE A SHAPE AS A VECTOR FILE,SEE SHAPES IN TABLE,DELETE A SHAPE,DELETE RANGE OF SHAPES 6 10,TWO TABLE MENU,ADD A SHAPE TO MAIN TABLE,ADD RANGE OF SHAPES,SEE SHAPES IN MAIN TABLE,DELETE A SHAPE FROM MAIN TABLE,DELETE RANGE OF SHAPES6 SAVE MAIN SHAPE TABLE,GET NEW SECOND TABLE,SAVE A SHAPE FROM SECOND TABLE,INSERT A SHAPE IN MAIN TABLE,INSERT RANGE OF SHAPES6 MAIN MENU,MAIN MENU,SINGLE TABLE MENU,TWO TABLES MENU,ENTER FILENAME,CHANGE SLOT/DRIVE,DRIVE/PATHNAME 7 SHAPE,FIRST SHAPE,LAST SHAPE,SHAPE WHERE>8$? , e e` ` `  `  ɀ(    `  Lw  `  +    8   w 8    ee8  i< i= , 0#8 8<ȱ=    8ȱ  , 0!  BC <=>? ,  ȱ8  ii` `@  s seȱe  ʆ`MLީO ީV ީE g RPHQ?H g RPBQChhhhPQ8囨圪eBeCLӠL,  ,   `, 0   ` ߅  ȱ<ȱ=  s/ <=, 8  Ѯ  ʠ< ߮ L lݠ     `r  ɍ\H hL} ,  r `s     ɛ  Ɉɍ ɠ ɍХ `ȩȩ 9ե L婈 , r `q `H' h`H  h`Š٠ ******* 8/08/86 *******;* ProDOS STARTUP *X* BY OWL *u(* COPYRIGHT (C) 1987 *2* BY MICROSPARC, INC. *<* CONCORD, MA 01742 *F***********************P16384Z::D$(4):(21)d9704 n ********** GET HI-RES SCREEN AND SET DISPLAY SWITCHESf x11:3:"MICROSPARC PRESENTS NIBBLE SOFTWARE" 15:13:"PLEASE WAIT..." D$"BRUN STARTUP.SCREEN" G(16297)(16300)(16301)(16304) ********** READ INFO FROM NIBMENU TEXTFILE 11203 P$(20): P$ = PROGRAM NAME a S$(300):S$ = LINES OF TEXT INSTRUCTIONS RC$(20): RC$ = COMMAND USED TO RUN PROGRAM MP$(20): MP$ = PROGRAM NAME TO APPEAR IN MENU D$;"OPEN NIBMENU" D$;"READ NIBMENU" A$: A$ = DISK NAME? NA$"NIBBLE "A$:22:20((NA$)2):NA$:1j 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$ 6I0 @II1:768,S$(I) J(S$(I),1,1)"#"350 T320# ^D$;"CLOSE"` h(1101)6İ1080: ********** UPPER/LOWER CASE ROUTINE r ********** FIRST TEXT SCREEN |::3 "Thank you for ordering the Nibble":A$;"!": "The programs on this disk are:": Z1NP:5:P$(Z):Z 1030:FLAG$"ESC"ī600O  ********** CYCLE THRU NIBMENU TEXT SCREENSW A1` :3 S$(A)"@"İ1030::3:((FLAG$"ESC"))490:600 S$(A)"#"510 S$(A) AA1:460  ********** LAST TEXT SCREEN BEFORE MENU :3!6:"Thanks again for your order !"+12:S6:"ALL PROGRAMS ON THIS DISK ARE"{&6:"COPYRIGHT (C) 1988 BY NIBBLE"06:"MICROSPARC, INC. CONCORD, MA"::17:5:"UNAUTHORIZED COPYING IS ILLEGAL"D1030N ********** SET UP MENU XMEMM2:X$(0)" ":X$(1)"-->":Vb1:1:"Selection: : Instructions"l3:"----------------------------------------";v5:20((A$)2):A$I1ME2:61I:8:I". "MP$(I):61(ME1):8:ME1". Catalog Disk"61ME:8:ME". Quit"B21:"----------------------------------------"23:1:"Type number or use arrows, then ";:PX10:SX4:SL1 ********** SELECT CHOICENSL:OSSL:780:Z0:24:868/1: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ī380SLSLZ(Z10):SLSLME(SLME)ME(SL1)NOS:780:Z10700800 ********** PRINT POINTER SUBROUTINE% 61N:SX:X$(SLOS);:H ********** SELECTION ROUTINEa SL(ME1)İ860:600*SLMEİ900:SL1:780:68042:1:" "::2:1:RC$(SL):> ********** EXECUTE A VALID MENU CHOICEH49168,0::1100:D$;RC$(SL)&R ********** CATALOG SELECTED C\:49168,0::D$;"CAT":mf24:7:"Press to continue";p49168,0:49152,128:z ********** QUIT SELECTED22::958:"Do you really want to quit? (Y/N)";:49168,049168,0:49152,1280(49152)249(49152)217Ĺ49168,0::1100:6j ********** SOUND BUZZER FOR WRONG KEYSTROKE EQ110:EY(16336)(16336):EQ: ********** ERROR HANDLING ROUTINE:(1101)6ė:D$"PR#A$300"5(222)6(222)8Ģ19:(7);"Disk Error. Please insert Nibble disk":1010g19:(7);"An error #"(222)" has occurred. "23:"Press to continue ";:958:49168,0:49152,128:600 ********** WAIT FOR KEYSTROKEFLAG$""623:" for next page or for menu";:49168,0:49152,128T(49152)155FLAG$"ESC"Z$. *********** ATTACH UPPER/LOWER CASE ROUTINE8I013:ML:768I,ML:I:D$"PR#A$300":B ********** DETACH UPPER/LOWER CASE HANDLER L(4);"PR#0":0V ********** INSTALL INPUT-ANYTHING ROUTINEK`X768839:A:X,A::xj ********** INPUT-ANYTHING ROUTINE DATAt 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,216Z 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,0 ********** UPPER/LOWER CASE ROUTINE DATA 216,201,225,144,6,201,251,176,2,233,31,76,240,253,0  c` ` v`` ` v` `ݥ``8 ``+p|~p|*U*U*U*U*U*S( @?p~px|xժժժժժ pgBT* @?p~px|ЪժժժՊ @?~|>xaFaFF?p- U @?`p~?pxԊԪ"- U*U*U*uP*U*U*U*U*U }<_/" p@Pgp{?"dydw!<MժժժժժժdpO|`*U*U*U*U*U*p|~p|(U*U*U*U*U*S* @?p~px|ժժժժժ toBT* @?p~px|xժժժՂ `~}?~|C~axGFx- U @?`p~pp[(U*UA*U*uԪժժժժՊ @ [ժժժժժժdpO|`*U*U*U*U*U*p|~p|(U*U*U*U*U*S* @?p~px|ժժժժժ dOBT* @?p~Ap||xժժժՂ `|y #L ~`xCc- Uy(U*U P*U* > @p{?" NԪժժժժժ@ [ժժժժժժdpO|`*U*U*U*U*U*p|~p|(U*U*U*U*U* `AB@* @?p~px|ժժժժժ n_?BU* @?p~p|ժժժp}{  3 00C1c. Uz*U*U*U*U*U L @@ " NԪժժժժժtժժժժժժdpO|`*U*U*U*U*U*pp~p|(U*U*U*U*U* `AB@* @?p~px|ԪժժժժN?8` |1U* @?`p~p|ժժժpys # 3 00F1c- Uz*U*U*U*U*U 49N/ p<@Pg@ OorEc{yMԪժժժժժLժժժժժժf~p*U*U*U*U*U*@?@p~p||(U*U*U*U*U* pcBP* @?p~px|Ԫժժժժ_?<< p|G?1U* @?`p~p|ժժժx{w<|sxο+* Tw@*U*U*U*U*U QA"$"p E@_(@ "  Mժժժժժժtժժժժժժf~p*U*U*U*U*U*@?p~Ap||x U*U*U*U*U* pcBP* @?p~px|ԪժժժՊ?~x 0 FA F11U @?`p~p|ժժxsg#?BC ,`حlmȱ8#$8#RSTU=PQ`8L pL tϾξ׾ھȌپȌؾ pڭо־޾ BL"L9"Lz"0 JJ, "L"H  A h "   #  ɠ #eL! " ɠɍ ɊɌ驍 #L" "- " # " " " # ") " ɠ #` "[ " "S "M $ # "0 L")ЅЅ # L"ȱ0 p `H "h8L p` hh L"8` ` ɠɛɃ`TYPE é ì î Ĭ 󺍍Ҡ Ҡ Ԡ ԠŠ 卪͠ ͍Ơ Ġð Šð Ҡð ĸ̠ðƠ ΠƠ ̠à ̠Š ̠ ΠƸŠ ؠƹ Рô Ԡ ԠĸŠ Š ԠĠ ŠŲà ō îͯ 󺍍ĠŰɻ ԠŰɻ Ҡŵɻ Πŵɻ 譱͠ŵɻ Ӡŵɻ Ӡŵɻ ȱŶàɻ ͠ŷɻ ҠƵɻ Ϡ´ɻ Ġ¸ɻ ƠŠɻ ɯ ͠İɻ ͠Ķɻ ķɻ ԠĹɻ ͠Šɻ Ġƹӻ 卍 󺍍͠  ¬é͠ ̠İİ ԠIJ ㍍Ǡ  ̠ĭԫҠҠ ɍàƍҠРԠ ƠҠ  庍٠̫ ԍҠ ԍҫР٠ ҩ٠ 占ҠΠ 荠٠Π ٍ٠ ŠĠ 占ҩ٠ РԠ 퍠ԠĠ Рī 퍠ŠĠ ԠÍàԠ Íàҍҩ٠ Ġ à 占àҠ 󭱫 @@sZ v"$?ī 䍠ī 덠īī ɧҠ 占ī 庍Ԡ 占̍ԍ̫ Ġ 占̍č̫ ̍Ҡ ̫ ٠ ҠŠ 占ÍӠ Í 卍Ӡܠ 卍 򺍪Ԡ ԠĠ ȱҠ ȱҫ٠Ġٍҩ٠ РԬ٠ ŠӍ٠Ԡ 翍Ԡč 亍ٍ٠Π 譱͠ 䍠 󮮍Ӡ 䍠 󮮍ӫ 썠ōҠ ̠ 占ҫà Ӡ î 卪Ӡà ĠР 䍍 亍Š 썠Ϡ ô 䍠Ҡ͠ àҠ ұРԠ Ҡͫ ƫ٠٠Ơ ɯ ٠ ٠ԫ ٠͍٠ͫ ٍ٠Ԡ 占ٍ٠ ø 䍠Ҡ͠ 占Ӡұ ͍͠ 占͠ 󍍪 躍ҠԠ 占ҠР Ġ 占РŠРԠ 卺Р𿍠ŠРӠ 卺Рà󿍠ŠŠ 占Рà 퍍 婺ŠĠ ɫɠ˸čϴ 󩍠Šڠ˸ĠҍҠ àϴ 덠Ԡĸ̠ 荠̠ϴ ڠŠ ΠҠŠ 占àŠ ԠРԠ Š 占ҠԠ 占ҠԠ ؠ͍ͫ 占Ҡؠ ҠԠ ؠŠ ŠŠ ̱ҠŠ 占àŠ 占 Ƭؠ ƍ٠ŠӠ ŠƬؠ 占ҠŠ 占٠ӠҠŠ ؍Š̱ 󍪭Ҡ ҠԠ ɫ 占ؠŠ 墍РƬؠ Р ㍠Šˠ ˠҠԠ ؍ŠР 󍪭Ҡ٠ ѠԠ ㍠Š 占Íà͍͍àΠ 占àͫ РΠ 卍 庍ԠҠŠ 占ӠԳ 퍠 Р ŠԍРĠ үƯƍѠԍР俍ѠҍРà 俍ŠԠ ҠĠ Ư ҍԠҠԠ Ҡ٠ 䍠ŠԠ ԳРԠ 󍍪 𩺍ӠؠƍŠҠŠ ؍Šōؠ ŲҠō؍ŠŲ 󺍪ŠҠԠ 占Ҡ٠ ㍠ѠԳ ㍠ҠŠ 占ӠԳ 占ҠŠ 婍ŠŠ ԠҠŠ ٍ٠ РҠŠ ҠŠ Ġ 荠؍РҠŠ Р 忍Ԡ̠ ҠԠ ̠؍ŠР ѠŠ  󩺍àҠԠ 占Ҡ٠ ѠԠ ㍠ҠōӠԠ 占ҠŠ 占ҠōӠԍؠ ҠōӠԍҠԠ 򮮍ҠŠ РҠŠ Ѡà 占ɠΠ ԠҠԠ РР ΠĠ ؠ ̍ҍ̍ҫҠŠ ٠ؠѠЍбҩ٠ ̠Ҡ ؍Ѡ΍ҠàҠ Šбàҫ РбΠٍРҩ٠ ɠŠ ҠԠ ٍŠР ŠҠԍ ŠԠ  Ԡà 䍠Ҡ͠ 占ҠԍÍӍҠ 占ҠԠ 占 占à РԠ ɍ Ż 庍Š 䍠Ҡ͠ 䍠ӠƠ ƍƠ à 򮮍Ӡ ƠРѠƍԠ 占 占Ԡ 占РҠ Ơà 占Ӡ 􍍪 ůźŠ٠ Š ҠԠ ٍŠӍ ٺ٠Ġ 䍠̠Ԡ Š 䍠Р忍ѠٲԠР 㿍ѠԍРÍԠӍٲĠ ̠ٲōŠԠĠ  ԠҠŧ 䠨婍Ġ 퍠ԠƍIL11:B$(I);::10L):P1:I1L:PP(IP(I))(P(I1)0):P(I)P(I)P(I)(P(I)I)(P(I1)0)::P(L)ĺ::A$::L(A$):W$(L)A$:PL:C0:LĀE B$(P)(W$(P),P(P)1,1):W$(P1)"":I1P:T$(I)(W$(P),I,1):W$(P1)W$(P1)T$(II(I(P(P)1)))::P(P)P(P)1:PP1:P02:W80:CC1:C(W21)1:(7):C$:C1::1