@L|}6CD l0C)HCC WhL/h `CmCDiD`  R@W1  Y0@R !L` D  C D     )16CS S)  C)D1 p p 0 C9DI pCDL~CiCDiD` D  C D     )16CS S)  C)D1 p p }0 C9DI pCDL~CiCDiD` DD˙` d J)L !}D L(( LL()  L| L( S LH 0p n  } CY?  q  L L  ` )} `A! d߰")-݆ "  $G@LLL&0") $G% }H0 3S8`G ȱG ȱG   Gȭ Gȭ GG}GHiH8(()) G$H% `(0 })8` d)L ݆ & LGȘ ݆LL d  ! LL d)N>Q  HH) }  hyhyB q L> Lm JJ  Ln*` dB%' }8  H H` 1 { LL   !L     Hh SY?  q  1L }  !? S   q 1 L   Ll  Lg E`L   !L)  q 1L}) `L0AM݊L݉ ML  N݆LLLNLMLHG!@}1F GȱGLLEEȩÑEȑEEȑE Ed E7EȩE  q} L !,0,0SGɛ L 1 !L EHEh W G gLLSROTCES EERF } G) *Gȩ GȽG GȌd q q G`  8   0G  `D}CEDC0X:Ȣ Y ȱC* ? 0.. , 0%n ?A[ 0 : L`L  `, 0`Y}`piH n0)բY? 08`0 }  0$L GGȽG L `8L`L}8`  05G)݁,G)ȱGȱGHh0})Hh` B! 8`8iiiLE`}E8FEh( l0`ɃLL L8^~jj8jHi hEEEiEȱEiE` dTE} H8EEȱEEȩEh J E8   . m  i`LI!)E1FR}1LJ舩9GIH`LJJ`HGHh l`} S gL   8 rii `дCDCG W  }C  Lq` X٨`DOS SYS IIIIIIIIIIIIIIIC`0 ߩ0}}} HE |||DDOS DOSDOS SYS }}}}CDOS SYS} 0`BDELV !B }`LVUQ   ]   TU J ]L!T  #      TU  } L ? .  t`GBJ V~DEHI B V0dV!}QDEHI VF9 ,0 ,0 s0hhL  L` H hDHEh"}DEL8HI   0 HI,0 0  9 .G VLO#},0 L4*IJ`llD1:AUTORUN.SYSNEED MEM.SAV TO LOAD THIS FILE.D1:MEM.SAV J y08 B|DEHI$} V0 0`B;DELV䌚 !B y`@ʆ v s? F0Ξ05: [ BDEHI%} VY8 B V  @  /DE `E:D1:DUP.SYSERROR-SAVING USER MEMORY ON DISKTYPE Y TO &}STILL RUN DOS B;DE J V (` 9 V⪍ ઍ  -'}LLu DEHILV 9 .l 9 .l  `` s$B VBH(}I|DE V BLV nB,DE J V* \*` B V BLVDEHI BLVL)}1u H232435; 1 ;  hh@2 e1i1LHҍ 00) 08 109hh@ Ҡ2e*}1i1232435ޥ<<8} 3E:}DISK OPERATING SYSTEM II VERSION 2.0SCOPYRIGHT 1980 ATARIA. DISK DIRECTORY I. FORMAT DISKB. RUN CARTRIDGE J. D,}UPLICATE DISKC. COPY FILE K. BINARY SAVED. DELETE FILE(S) L. BINARY LOADE. RENAME FILE M. RUN AT ADDRESSF. LOCK F-}ILE N. CREATE MEM.SAVG. UNLOCK FILE O. DUPLICATE FILEH. WRITE DOS FILES9!&x#!7&p))'&X*./)L''-؆莟.}R'S  vW DEHHI 1A#! @ ~0ɛ8A0.) ȅ 1 1i/}il ! 1L NO SUCH ITEMSELECT ITEM OR FOR MENU! 0 .{z:*{}.|~ 1 0 00}JB 18L^%|DLl%DIRECTORY--SEARCH SPEC,LIST FILE? # 0 0 n&|D! 1L NOT A DISK FILE1}N !B 1L " 1 !BDED:}:1BJ|DE 1DEBH2}I 1 h0ߢ 0.  0?詛 1 ~0YЛ 1 "L<" "L 3} BL1TYPE "Y" TO DELETE...DELETE FILE SPECCOPY--FROM, TO?OPTION NOT ALLOWED* MENU 018 COPYING---D1:MENU4}# 0|D .L$A#B#C#JB|DE 1BHIDD#E 1D#0: B5} 1L B#C#C#B# B 1N#$0SYS1}:e#D# d# D# .d#ȽD# d# 𩛙d#X# 1,A#6}PdD#ELO- A.BJdD#E 1 1HH 0hh|DL^%1}:e# Lt% e#dD#EL%7} 1 0 . .0% 1L WILD CARDS NOT ALLOWED IN DESTINATION 0 A.|K@C}//3Hu ξL/L DRIVE TO WRITE DOS FILES TO?WRITING NEW DOS FILESTYPE "Y" TO WRITE DOS TO DRIVE 1.?}D1:DOS.SYSERROR - NOT VERSION 2 FORMAT. , &* բ( 1L `[) 0NΞ 0 L1M) 1@} L BAD LOAD FILELOAD FROM WHAT FILE?) 0 0#B 1L WHAT FILE TO LOCK?) 0 0$B 1L WHAT FILE TO UNLOCK?DUA}P DISK-SOURCE,DEST DRIVES?TYPE "Y" IF OK TO USE PROGRAM AREACAUTION: A "Y" INVALIDATES MEM.SAV. h  ,B}  `)  <0 2 2 0  ,   ,,ޢ* 1L ,K* 1 ~0 0C}FINSERT BOTH DISKS, TYPE RETURNERROR - DRIVES INCOMPATIBLE., 1 ~038  , 1L D}, &*  Lz+, 0 , 1 ~0 + Y,0!,0 ,L+ ,mm  v,"ǭE}0Ξ, 05,Lt+L +,Hh` NOT ENOUGH ROOMINSERT SOURCE DISK,TYPE RETURNF}INSERT DESTINATION DISK,TYPE RETURN`    `L,8,0( rG}L1(`ߢ) 1* 1 ~0Y`hhL S SL1) 8`NAME OF FILE TO MOVE?- 0 0|DLtH}% A., 1 <0 0 .@L# .BJ 1  DEHIB V L1 ,5 1 <0,L. I} JB|,A#Pd#DE 1 HI BDEHHII 1 B 1 , 1 <0,0Lf- B VJ},A#P, 1 <0 0L#L ߢ) 1* 1 ~0Yj383}mm ݭK}}`8}``|* ? ɛ,`|:(|/ 1L `DESTINATION CANT L}BE DOS.SYS0 0H{ $22Δ $28/L /) $2 Π $2 0 ξM}hAΞB,0 J 1 BޝDEHI,HDE 1HIHIDELSAVE-N}GIVE FILE,START,END(,INIT,RUN)O X0 1`BDEPHI V` X0H 1 L O}0 0 1L0`PLEASE TYPE 1 LETTER,0`hhL <0 1L0LA1 ,;ɛ7,"ɛ:ݦ1ݥP}A"D|ݤD|ȩ:|ȩ|ɛ,,(/+.ީ1 1,ɛ`轤{Q}NAME TOO LONG B VL ` L1I H1EӝDL1|mDiE` V0`8d/8 i:"2!22 1R} L ERROR- 128ɛ+,' 20*.. өw2 1``2TOO MANY DIGITSINVALIDS} HEXADECIMAL PARAMETER800 0 8 00`,0'D800H,ɛh`2L1NEED D1 THRU D4uT} HEXADECIMAL PARAMETER800 0 8 00`,0'D800H,ɛh`2L1NEED D1 THRU D4uEiͩkΩ͙kCop j`j {j`Hi͝Νh`V}L"UNEM:D"NURͩkΩ͙kCop j`j {j`Hi͝Νh` WELCOME TO THE ANTIC MONTHLY DISKMost of the pr X}ograms on this side of the disk are for the ATARI 520 ST.We recommend you refer to thecorresponding issue of ANTIC forco Y}mprehensive documentation. If youwish to order a back issue, or needsubscription information, contact usat (415) 957-0886 Z}or, for credit cardorders, dial (800) 227-1617, Ex. 133.In California,(800) 722-3545, Ex. 133XXX *** BONUS FILES * BONU [}S FILES ***This month, we've included two moreDEGAS microscreens (BEGOOD.PI2 andRESCUE.PI2 from Darrel Anderson,win \}ner of Antic's DEGAS CONTEST. Both files must be ported toan ST disk. Both files are (c) 1986, Darrel Anderson. ]} You'll need an ST with acolor monitor and the Degas program(from Batteries Included) to viewthese pictures.XXXThe me ^}nu that appeared on the screenwhen you booted the disk will onlyRUN programs with a .BAS extender.(NOTE: The menu WILL NO _}T RUN ST BASIC programs!)If you try to run a program and theresponse is 'cannot run Filename',then check the file `} extender withthe following list:XXX.SYS Reserved for DOS system files..DAT Data file. Usually accessed by a a}nother program..TXT Text file. Usually accessed by another program..PI2 A Med.-resolution DEGAS picture b}file.XXX*** Files for the 520 ST ***.C C Language source code. Must be ported to an ST disk. See the c}corresponding article for complete details..BAS An ST BASIC program. WILL NOT RUN on 8-bit computers d}!!! Must be ported to an ST disk. See the corresponding article for complete details.XXX.PRG A com e}piled ST program which uses GEM. Must be ported to an ST disk. See the corresponding article for f}complete details..TOS A compiled ST program which does not use GEM. Must be ported to an ST disk. Se g}e the corresponding article for complete details..S 68000 Assembly language source code. Must be h}ported to an ST disk. See the corresponding article for complete details.XXX Whenever possible, we will t i}ry toadapt our programs to work with asmany configurations of C as possible.But we think ANTIC's published Clistings shou j}ld come as close aspossible to the industry standard. At this time, only the Lattice,Alcyon, GST and Megamax C packages k}do this.XXXAll programs from ANTIC issues datedprior to August 1984 were reproducedfrom ANTIC's Archive. We've update} 1000 ' TYPO/ST 1010 ' (c) 1986 Antic Publishing 1020 ' Written by Patrick Bass and Bill Marquardt 1030 ' Version 0500m}286 1040 '----------------------------------------------------------------- 1050 ' 1060 DISK=1: OUTPUT=2: TRUE=(-1): F1}  "EXLINEAFxxy &&;A ,;@,;@,W (} ( (1) HELP file#(@(o}(2) How to 'port' filesW( to an ST disk (( SELECTION(+41)42,@ ,6. D:DOC.TXTp}42,6. D:PORT.TXT1 (}@1@@ A(@2vB:,!@-q}7@<@,4XXX0(3(E-@@"Y(ӠΠf@l(}v @@<( @@dj@r} B*-@@"R("ΠҠՠҠˠҠ_@j%D:MENU D1:HELP.BASile#(@(rPcd} AXLPB0NZ t} +AdAUuA@'A @9A@K@@]@@7c(u}}uAR@++(#++(#| ANTIC MONTHLY DISK OCT. 1986 |++(#v}( | Side 'B' |++(# @ -@Aw} $ GG;@@,;@ ,;@@,;A,;@,;@@, "D1:MENU" &&@@x}D:*.* 6,6." 6 @0i6-%@(6.7@<@,A67@ <@ ,..y}i67@<@,.7@<@,3 6.|67B:,%@,.367B:,%@,.G67@<@,.(--@z}B:,:7<,4 G67<,..] 6.=:, @D67@<@,.7@<@,]67@<@,{}.0$@(''7@<@,4FREE@- @ 2() <@F''7@<|}@,4FREE@K @ P(7@<@,)|U @0W'!-@6+'@,%@' |Z++(}}#| |[ ( |  |\++(#d**(" Sel~}ect HELP.BAS for information.xAR[@@9'-@@#C( FILE NUMBERM A0}Q[ BP:,A00"@&6.7@<@,0 AELB6.7+&@,$@%@<+&}@,$@%@,L B37@<@,4 36.7@<@,!7@<@,4DOS!.0 6}.-@B:,07<,4 AH67B:,%@,.7<,   6.! 6.D1:!67B:,%@,.?A}R@'-@@"?  LOADING ? A@@91@@5%? B[-@}@"-  CANNOT RUN 7 @LF:A,"@![% D:HELP.BAS B A0D1:MENU. } .TXTMENU.DOC.TXT .TXTC |A|DOC......TXT(A006585 FREE SECTORS7N^ NST LISTINGSON MONTHLY DISK...and how to get themby CHARLES JACKSONAntic Technical EditorFor those ST owners who do no}t yetown a C compiler, but are eager totry out Antic's C language listings,we are now including the executableobject code} on the Antic MonthlyDisk.XXXAll disk files with extendersof .PRG, .TOS, .TPP and .ACC arecompiled ST programs, ready }to betransferred to an ST disk andexecuted. Given enough disk space,we will also include the sourcecode. 'C' source cod}e files willhave a .C extender, assemblylanguage source code will havean .S extender.XXXPORTING FILESBefore using an }ST program, you musttransfer it to an ST disk. Thisprocess of transferring filesbetween computers is called"porting."X}XX To port a file from the AnticMonthly disk to an ST disk, you'llneed the Linkline programs fromthe August 1985 issue}.(LINKLINE.PRG and LINKLINE.EXE are both included on this disk).XXXIf you don't have Linkline, youmay also use: }- A telecommunications programfor the ST which supports XMODEMfile transfers.FLASH or PC/InterComm will work).XXX - }A similar program for your8-bit Atari which supports XMODEMfile transfers. Chameleon orBackTalk will work. Unfortunately},HomeTerm won't do the job because ittranslates all carriage returns intoATASCII value 155. Also, don'texpect to succeed} at ST porting withany version of AMODEM.XXXA - 8-bit Atari computerB - An Atari 850 Interface Module with a modem }cable (RS-232 to D-9.)C - Null modem connectorD - Gender changer (if required)E - Your ST   } | A |=>| B |=>| C |=>| D |=>| E |     Sample porting configurationXXX IMPORT}ANT: If you're not usingLinkline, both modem programsmust be configured similarly. Ifyour 8-bit software is set for 1200}baud, your ST software also must beconfigured for 1200 baud. Additionally, BOTH programs mustbe set for 8-bit (binary) }filetransfers.XXX Once both computers are linkedtogether you may begin the filetransfer. You can also reverse this}procedure to transfer files from STdisks to your 8-bit machine.XXXWALK-THROUGH DEMO1) LINKLINE:Once both LINKLINE pro}grams arerunning, place the monthly diskinto the 5-1/4" drive, and sitdown at the ST. Choose theLOAD A FILE option and t}ype inthe name of the file you want totransfer. LINKLINE will pullthe file off of the monthly disk,and save it to an ST }disk.That's it. You're done.XXXWALK-THROUGH DEMO2) MODEM PROGRAMSLet's walk-through a sample filetransfer. We'll }use BackTalk on an8-bit machine, and FLASH on the ST. Configure BackTalk for 1200 baud,with Full Duplex and ASCIItrans}lation. Press [SELECT],choose the XSEND option, selectXMODEM protocol and enter the nameof the file you wish to port.X}XX From the ST desktop, double clickon FLASH.PRG. Make sure FLASH isrunning at 1200 baud. Type -Bto change baud} rates, if necessary. Now type -R (for RECEIVE).When the file selector box appears,press [ESCAPE] and type the name }ofthe file to receive. Press [RETURN]or click on OK. To begin the transfer, press the[START] button on the 8-bit Atar}i.XXX Occasionally some versions ofXMODEM will append extra "garbage"characters to your files. Textfiles, such as C} listings, areparticularly susceptible to thisproblem. If your implementation ofXMODEM appends garbage characters toyour} source code, you must removethose characters with a text editorbefore compiling the program.or those ST owners who do noa` *O.|r*m - ЭЭм// ??<JNA NJ/<NA"/0<NBNuNVaaJygaHN}^NuNVNZ./</</<N $ 3>.j/<>/< N&P. ?<NTByByN^NuNV. <}?<NT3 yfa< yfa. ?<NT3 yf3N^NuNV. r?<NTBy<`Ry}< y>Naa>>NN^Nu}NV. ?<NTah09,|3f09,|@3:. ?<NTD:*B9./</<}NPJyg">>N>a&a>>NN^NuNVBy`By<`Ry< y?<?<N v}X>f?<?<N vX>:?<?<N vXByd`*0yd"|00H>?<?<N vXRyd09dy,m>?<?<N} vXN^NuNV32>N 3h09h|A:*.*B9B9./</<NPJy}gv>>N>/<?<=N \32 y2o$.0/9 n?92?<?N P3,>2?<>N T>>NN}^NuNV>>NBW/<?<2?<>N T>>NN^NuNV}>>N>aa>>NN^NuNV>?<N vT3& y&f>?<N vT3f>?<N vT3:09:}@yf3.Byd`* |02yd/?<?<N vX _Ryd09dy.m3d,N^NuNV>?<?<N vX nf>}S?<?<N vX nf>L?<?<N vXBy`> |2y \g$0y"|0H>?<?<N vXRy |2y}J(nBy`*0y"|0H>?<?<N vXRy |2y n> ?<?<N vXN^NuNV. :?<N}T>>NNN^NuNV3eBByDByH3NNN^NuNV3{BByDByH3NNN^NuNV#z#} .мZ#3dBByD3 H n 3NN n 0N#z###~N^NuNV3 3}zBByD3H3NNN^Nu#Bv"<vpsNBNuNV30.|Hм -@=|` nH2n2}RRn nm.4N>B@09 N^NuNV#### #Z##4> aF3} @pN^NuNV>a*pN^NuNV3# Z>4NN^NuNV#Z# ^>ZN n0"B@09 N^NuNV>}MN n0" n 0$ n0& n0(B@09 N^Nu#NN/9Nu#NM/9Nu#NA/9Nu} }}[1][ Welcome to LinkLin}e/ST | v.041286 ][ Perform ][3][ Load: 8Bit->ST Save: ST->8Bit ][ Load | Save ][3][ Enter the 8Bit file to load. ][ Selec}t ][3][ Select the ST file to transfer. ][ Select ][3][ Select the new device:filename.ext ][ Select ][3][ Want to tran}sfer another file? ][ Yes | No ][3][Thanks for using|LinkLine/ST|v.041286][ Exit ]}_crystal>_ctrl_cn _workin} _hialert _typeale <_loadler r_saveler _devaler _moreale _tksaler :_max_len n_main}J_initiald_communi_termina_load_fi8_save_fi_load_8B_write_tL_read_thX_send_}co_send_fi_get_fil_v_clsvw_v_hide__v_opnvw&_v_show__gsx1_gsx2_iiof}fz_iooff_pioff~_pooff_vdi_crys_if_appl_inZ_appl_ex_form_al_fse}l_in_graf_ha $_gemdos _bios v_xbios f_intin_intout_org_pal_c_mx}_my_finishe_new_pal_i_j_k_l_hi_word_w}rite_b_ptsin_path_ptsout_write_h_global_inchar&_lo_word(_pressed*_}bytes_r,_bytes_t._text_bu0_control_int_in_int_out _read_ha._dum0_file_ha2}_ad_c4_resolut8_lenhi:_delay<_gem_han>_gl_apid@_contrlB_addr_inZ_charact}b_file_ind_lenlof_driveh_workoutj_button_filenam_for_rea_action__addr_ou}_color.$            }            }$    .|r*m - ЭЭм// ??<JNA NJ/<NA"/0<NBNuNVaaJygaHNU"w"wppwU33ss } } } } } } } } } } } } } }? }` } }? } }@ }@ }@ }| }@7? }@ }@ }`~<@ }? }@ }??@ }?* n?@ }?** > } 1 } @@ }>:j  } 3 H? }v` }ǀp } }* }? *j }*| }  w }* } w (u_# }*?@ }#p }j@ ]_# }  (  }vCW`*U }xUU!}10000 end 10010 ' 10020 'Listing 2 10030 '(c) 1986 Antic Publishing Ver. 070286 10040 'Written by Kevin Kennedy 10050 '$} 10060 'Use this subroutine in your own program 10070 'to read in and change the current mouse shape. 10080 ' 10090 CHAN$}GEMOUSE: 10100 open "I", #1, FILENAME$ 10110 input #1, HOTX, HOTY, MASKC, POINTC 10120 poke CONTRL, 111: poke CONTRL+2,$} 0: poke CONTRL+6, 37 10130 poke INTIN, HOTX: poke INTIN+2, HOTY 10140 poke INTIN+4,1: poke INTIN+6, MASKC: poke INTIN+8,%} POINTC 10150 for A=10 to 40 step 2 10160 input #1, SHADOW 10170 poke INTIN+A, SHADOW 10180 next A 10190 for %}A=42 to 72 step 2 10200 input #1, MOUSE 10210 poke INTIN+A, MOUSE 10220 next A 10230 close #1 10240 vdisys( 0%} ) 10250 return 0020 'Listing 2 10030 '(c) 1986 Antic Publishing Ver. 070286 10040 'Written by Kevin Kennedy 10050 '$ 1000 'Atari ST Mouse Editor 1010 '(c) 1986 Antic Publishing Ver. 070286 1020 'Written by Kevin Kennedy 1030 ' 1040)} TRUE=1: FALSE=0: DESIGNING=TRUE: OUTPUT=2 1050 LEFT=1: RIGHT=2: BOTH=3 1060 fullw OUTPUT: clearw OUTPUT: color 1,2,1)}0,1,1: MP=1 1070 dim MOUSE( 16,16 ), MOUSE2( 16 ), SHADOW( 16 ) 1080 for A=1 to 16 1090 for B=1 to 16 1100 )} MOUSE( A, B )=0 1110 next B 1120 next A 1130 close #1 1140 gosub GRID 1150 gosub OPTIONPR 1160 ' 11)}70 '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1180 while DESIGNING 1190 gosub BTOWAIT 1200 )} if MX>157 then gosub SELECT else gosub DRAW 1210 gosub BTFWAIT 1220 wend 1230 end 1240 ' 1250 '-------------) }-------------------------------------------------- 1260 GRID: 1270 for A=0 to 128 step 8 1280 linef A, 0, A, 128 ) }1290 next A 1300 for A=0 to 128 step 8 1310 linef 0, A, 128, A 1320 next A 1330 return 1340 ' 1350 '-----) }---------------------------------------------------------- 1360 MOUSESTAT: 1370 A#=GB 1380 IOUT=peek( A#+12 ) 1390 ) } gemsys( 79 ) 1400 MX=peek( IOUT+2 ) 1410 MY=peek( IOUT+4 ) 1420 BUTTON=peek( IOUT+6 ) 1430 KB=peek( IOUT+8 ) 14) }40 return 1450 ' 1460 '--------------------------------------------------------------- 1470 OPTIONPR: 1480 color 1,)} 3, 10: X=186: Y=35: X2=287: Y2=142: gosub ROUND 1490 color 1, 0, 10: X=187: Y=36: X2=286: Y2=141: gosub ROUND 1500 got)}oxy 21,2: print "RESET MOUSE" 1510 gotoxy 21,4: print "CHANGE MOUSE" 1520 gotoxy 21,6: print "SAVE SHAPE" 1530 go)}toxy 21,8: print "LOAD SHAPE" 1540 gotoxy 21,10: print "SAVE STATE" 1550 gotoxy 21,12: print "LOAD STATE" 1560 co)}lor 1, 3, 3 1570 for A=32 to 121 step 18 1580 linef 186, A, 286, A 1590 next A 1600 color 1, 3, 10 1610 retu)}rn 1620 ' 1630 '--------------------------------------------------------------- 1640 SELECT: 1650 SELECTION=0 1660 )} restore LINEDATUM 1670 for A=1 to 6 1680 read Y 1690 if(MX>186)*(MX<286)*(MY>35)*(MY<142)then 1700 else retu)}rn 1700 if( MY>=Y )*( MY6 )then return else co)}lor 1, 2, 10: fill 189, A*18+7 1740 on SEL gosub GRAFMOUSE, REDES, SAVEA, LOADA, SVE, LOD 1750 color 1, 0, 10: fill 189)}, SEL*18+7: color 1, 2, 10 1760 return 1770 ' 1780 LINEDATUM: 1790 data 35, 53, 71, 89, 107, 125 1800 ' 1810 '--)}------------------------------------------------------------- 1820 BTOWAIT: 1830 gosub MOUSESTAT 1840 if BUTTON then )}return else 1820 1850 ' 1860 '--------------------------------------------------------------- 1870 BTFWAIT: 1880 gos)}ub MOUSESTAT 1890 if BUTTON then 1870 else return 1900 ' 1910 '-------------------------------------------------------)}-------- 1920 VIEW: 1930 A=X2+146: B=Y2+20 1940 COL=MOUSE( X2, Y2 ): CO=COL: if COL=2 then CO=0 1950 color 1, 2, C)}O: linef A, B, A, B: B=B+40 1960 if COL=1 then CO=2 1970 if COL=2 then CO=1 1980 color 1, 2, CO: linef A, B, A, B 1)}990 return 2000 ' 2010 '--------------------------------------------------------------- 2020 REDES: 2030 gosub CLEA)}RLIN 2040 gosub HOTSPOT 2050 if RET=1 then return 2060 for Y=1 to 16 2070 for X=1 to 16 2080 A=MOUS)}E( X, Y ) 2090 if A=1 then ADD=ADD+2^( 16-X ) 2100 if A=2 then ADD2=ADD2+2^( 16-X ) 2110 next X )}2120 MOUSE2( Y )=ADD: ADD=0: SHADOW( Y )=ADD2: ADD2=0 2130 next Y 2140 gosub CHANGE 2150 return 2160 ' 2170 ) }'--------------------------------------------------------------- 2180 SAVEA: 2190 gosub INFILE 2200 if RET then retur)!}n 2210 open "O", #1, FILE$ 2220 for Y=1 to 16 2230 for X=1 to 16 2240 if RET then return 2250 )"} print #1,MOUSE( X, Y ) 2260 next X 2270 next Y 2280 close #1 2290 return 2300 ' 2310 '-----------------)#}---------------------------------------------- 2320 LOADA: 2330 gosub INFILE: close #1 2340 if RET then return 2350 )$} open "I", #1, FILE$ 2360 for Y=1 to 16 2370 for X=1 to 16 2380 input #1, MOUSE( X, Y ) 2390 next )%}X 2400 next Y 2410 close #1: gosub DISARRAY 2420 return 2430 ' 2440 '--------------------------------------------)&}------------------- 2450 SVE: 2460 gosub INFILE 2470 if RET then return 2480 open "O", #1, FILE$ 2490 print #1)'}, HOTX; HOTY; MASKC; POINTC 2500 for A=1 to 16 2510 print #1, SHADOW( A ) 2520 next A 2530 for A=1 to 16 254)(}0 print #1, MOUSE2( A ) 2550 next A 2560 close #1 2570 return 2580 ' 2590 '--------------------------------))}------------------------------- 2600 LOD: 2610 gosub INFILE 2620 if RET then return 2630 open "I", #1, FILE$ 2640)*} input #1, HOTX, HOTY, MASKC, POINTC 2650 for A=1 to 16 2660 input #1, SHADOW( A ) 2670 next A 2680 for A=1 )+}to 16 2690 input #1, MOUSE2( A ) 2700 next A 2710 close #1 2720 gosub CHANGE 2730 return 2740 ' 2750 '--),}------------------------------------------------------------- 2760 DRAW: 2770 if( MX<129 )*( MY>20 )*( MY<149 )then 2780)-} else return 2780 X2=int( MX/8 )+1: Y2=int(( MY-21 )/8 )+1 2790 if MOUSE( X2,Y2 )then MOUSE( X2, Y2 )=0: F=0 else gosub).} XDRAW 2800 color 1, F, 10: fill X2*8-4, Y2*8-4: gosub VIEW 2810 return 2820 ' 2830 '-------------------------------)/}-------------------------------- 2840 XDRAW: 2850 if( BUTTON=LEFT )+( BUTTON=BOTH )then MOUSE( X2,Y2 )=1: F=2 2860 if)0} BUTTON=RIGHT then MOUSE( X2, Y2 )=2: F=3 2870 return 2880 ' 2890 '----------------------------------------------------)1}----------- 2900 CHANGE: 2910 poke CONTRL,111: B=0: C=0: poke CONTRL+2,0: poke CONTRL+6,37 2920 poke INTIN,HOTX: poke)2} INTIN+2, HOTY 2930 poke INTIN+4,1: poke INTIN+6,MASKC: poke INTIN+8,POINTC 2940 for A=10 to 40 step 2 2950 B=B+1)3}: poke INTIN+A,SHADOW( B ) 2960 next A 2970 for A=42 to 72 step 2 2980 C=C+1: poke INTIN+A,MOUSE2( C ) 2990 ne)4}xt A 3000 vdisys(0) 3010 return 3020 ' 3030 '--------------------------------------------------------------- 3040 )5}CLEARLIN: 3050 gotoxy 0,15: print " " 3060 return 3070 ' 3080 '------------------------)6}--------------------------------------- 3090 INFILE: 3100 FILE$="": gosub CLEARLIN: gotoxy 0,15: input "FILENAME ",FILE$)7} 3110 if FILE$="" then RET=TRUE else RET=FALSE 3120 return 3130 ' 3140 '--------------------------------------------)8}------------------- 3150 DISARRAY: 3160 for Y=1 to 16 3170 for X=1 to 16 3180 A=MOUSE( X, Y ) 3190 )9} if A=0 then CO=0 3200 if A=1 then CO=2 3210 if A=2 then CO=3 3220 color 1, CO, 10: fi):}ll X*8-4, Y*8-4: X2=X: Y2=Y: gosub VIEW 3230 next X 3240 next Y 3250 return 3260 ' 3270 '---------------------);}------------------------------------------ 3280 ROUND: 3290 poke CONTRL,11: poke CONTRL+2,2: poke CONTRL+6,0: poke CONTR)<}L+10,9 3300 poke PTSIN,X: poke PTSIN+2,Y: poke PTSIN+4,X2: poke PTSIN+6,Y2 3310 VDISYS( 1 ) 3320 return 3330 ' 334)=}0 '--------------------------------------------------------------- 3350 GRAFMOUSE: 3360 A#=GB: IIN=peek( A#+8 ): poke I)>}IN,0: gemsys( 78 ) 3370 return 3380 ' 3390 '--------------------------------------------------------------- 3400 HOTS)?}POT: 3410 gotoxy 0, 15: print "Press left button on HotSpot" 3420 gosub BTFWAIT: gosub BTOWAIT: X2=int( MX/8 ): Y2=int()@}( MY-21 )/8 ) 3430 gosub CLEARLIN: gotoxy 0,15: print "HotSpot is at ";X2;",";Y2 3440 if( X2<0 )+( X2>15 )+( Y2<0 )+( Y)A}2>15 )then RET=TRUE: return 3450 HOTX=X2: HOTY=Y2: RET=FALSE 3460 gotoxy 0,15: input "Mask color, Pointer color ",MASKC)B},POINTC 3470 return Editor 1010 '(c) 1986 Antic Publishing Ver. 070286 1020 'Written by Kevin Kennedy 1030 ' 1040( 1000 ' Area Formula Castle Builder 1010 ' by Tracy and Lori Hershey 1020 ' (c) 1986 Antic Publishing, Inc. 1030 -D}' ST version by Bill Marquardt 1040 ' version 070286 1050 ' 1060 '--------------------------------------------------E}-------- 1070 BASICON=0: BASICOFF=1: FALSE=0: TRUE=1: NONE=0: BELL$=chr$(7) 1080 dim YMIN( 9 ),YMAX( 9 ): gosub INIT 1-F}090 poke GEMFLAG,BASICOFF 1100 TITLE$=" CASTLE GAME " 1110 gosub NEWTITLE 1120 poke GEMFLAG,BASICON 1130 MORE=T-G}RUE 1140 ' 1150 while MORE=TRUE 1160 restore CASTLE.DATA 1170 gosub INTRO 1180 gosub START 1190 ' 12-H}00 DRAW.CASTLE: 1210 color 1,8,1: clearw 2 1220 for I =1 to 12 1230 read X1,Y1,X2,Y2 1240 -I} linef X1,Y1,X2,Y1: linef X2,Y1,X2,Y2 1250 linef X2,Y2,X1,Y2: linef X1,Y2,X1,Y1 1260 next I 1270 fo-J}r I=1 to 4 1280 read X1,Y1,X2,Y2,X3,X4 1290 linef X1,Y2,X2,Y1: linef X2,Y1,X3,Y1 1300 linef -K}X3,Y1,X4,Y2: linef X4,Y2,X1,Y2 1310 next I 1320 for I=1 to 2 1330 read X1,Y1,X2,Y2,Y3,Y4 1340 -L} linef X1,Y2,X2,Y1: linef X2,Y1,X2,Y3 1350 linef X2,Y3,X1,Y4: linef X1,Y4,X1,Y2 1360 next I 1370 for-M} I=1 to 4 1380 read X1,Y1,X2,Y2,X3,X4 1390 linef X1,Y2,X2,Y1: linef X2,Y1,X4,Y1 1400 linef X-N}4,Y1,X3,Y2: linef X3,Y2,X1,Y2 1410 next I 1420 linef 83,20,83,0: linef 83,0,100,5 1430 linef 100,5,83,10 1-O}440 for I=1 to 2 1450 read X1,Y1,X2,Y2: linef X1,Y1,X2,Y2 1460 linef X2,Y2,X1,Y2: linef X1,Y2,X1,Y-P}1 1470 next I 1480 for I=1 to 4 1490 read X,Y,R 1500 circle X,Y,R 1510 next I 1520 -Q} for I=1 to 3 1530 read X,Y,R,A1,A2,X1,X2 1540 circle X,Y,R,A1,A2: linef X1,Y,X2,Y 1550 next I-R} 1560 ' 1570 ON ITEM gosub DO.SHAPES, DO.FORMULAS 1580 ' 1590 DRAW.MENU.BOXES: 1600 color 1,0,1+ITEM 1610 -S} X1=170: X2=300 1620 for I=1 to 8 1630 read Y1,Y2 1640 linef X1,Y1,X2,Y1: linef X2,Y1,X2,Y2 -T}1650 next I 1660 color 1,8,1: fill 0,0: fill 100,0 1670 ' 1680 '- - - - - - - - - - - - - - - - - - - - - - - -U}- - - 1690 MAIN: 1700 NUM.WRONG=NONE 1710 XMIN=170: XMAX=300: NUM.CHOICES=7 1720 for I=1 to NUM.CHOICES -V}1730 YMIN(I)=32+(I*9): YMAX(I)=YMIN(I)+9 1740 next I 1750 for DRAW=1 to NUM.SHAPES 1760 RESP-W}ONSE=FALSE 1770 read SHAPE: gosub ERASE.SHAPE 1780 on SHAPE gosub DREC,DSQR,DPAR,DCIR,DTRA,DSEM,DTRI 1-X}790 while RESPONSE=FALSE 1800 ITEM=NONE 1810 gosub GETBUTTON: if ITEM=SHAPE then RE-Y}SPONSE=TRUE 1820 if(RESPONSE=FALSE)and(ITEM<>NONE)then gosub WRONG.ANS 1830 wend 1840 i-Z}f RESPONSE=TRUE then ? BELL$;: color 1,COLR,1: fill XF,YF 1850 next DRAW 1860 gosub FINISH 1870 wend 1880 en-[}d 1890 ' 1900 '--------------------------------------------------------- 1910 FINISH: 1920 gosub ERASE.SHAPE 1930 -\} gotoxy 19,10: ? " " 1940 gotoxy 19,10: ? "You missed ";NUM.WRONG;"." 1950 gotoxy 19,11: ? " -]} " 1960 if NUM.WRONG=NONE then gotoxy 19,11:? " VERY good! " 1970 gotoxy 19,12: ? " Try again? " 1980 got-^}oxy 24,14: ? "NO ":gotoxy 24,16: ? "YES" 1990 color 1,2,2: linef 210,126,245,126: linef 245,126,245,136 2000 linef 245,-_}136,210,136: linef 210,136,210,126 2010 color 1,3,3: linef 210,144,245,144: linef 245,144,245,154 2020 linef 245,154,21-`}0,154: linef 210,154,210,144 2030 YMIN(1)=148: YMAX(1)=158: YMIN(2)=166: YMAX(2)=176 2040 XMIN=210: XMAX=245: NUM.CHOIC-a}ES=2: ITEM=NONE 2050 while ITEM=NONE: gosub GETBUTTON: wend 2060 if ITEM=1 then MORE=FALSE 2070 return 2080 ' 2090-b} '--------------------------------------------------------- 2100 WRONG.ANS: 2110 gotoxy 23,0: ? "SORRY!"; 2120 SOUND-c} 1,15,12,3,20: SOUND 1,0,0,0,0 2130 for DELAY=1 to 1000: next DELAY 2140 gotoxy 23,0: ? " " 2150 color 1,8,1: f-d}ill 230,5: NUM.WRONG=NUM.WRONG+1 2160 return 2170 ' 2180 '--------------------------------------------------------- 21-e}90 DREC: 2200 read COLR,X1,Y1,X2,Y2,XF,YF 2210 linef X1,Y1,X2,Y1: linef X2,Y1,X2,Y2 2220 linef X2,Y2,X1,Y2: linef X-f}1,Y2,X1,Y1 2230 return 2240 ' 2250 DSQR: 2260 gosub DREC 2270 return 2280 ' 2290 DPAR: 2300 read COLR,X1,Y1-g},X2,Y2,Y3,Y4,XF,YF 2310 linef X1,Y2,X2,Y1: linef X2,Y1,X2,Y3 2320 linef X2,Y3,X1,Y4: linef X1,Y4,X1,Y2 2330 return 2-q}Jb'DOS SYSb*+DUP SYSbUAUTORUN SYSBWDOC TXTbnHELP BASbsMENU bPORT TXTb'LINKLINEPRGbRESCUE PI2bCHANGEMSBASb@MOUSEDITBASbZCSTCASTLEBASblTYPOST BASMMM 340 ' 2350 DCIR: 2360 read COLR,XC,YC,RAD,XF,YF 2370 circle XC,YC,RAD 2380 return 2390 ' 2400 DTRA: 2410 re-r}ad COLR,X1,Y1,X2,Y2,X3,X4,XF,YF 2420 linef X1,Y2,X2,Y1: linef X2,Y1,X3,Y1 2430 linef X3,Y1,X4,Y2: linef X4,Y2,X1,Y2 24-s}40 return 2450 ' 2460 DSEM: 2470 read COLR,XC,YC,RAD,XF,YF 2480 circle XC,YC,RAD,0,1800: linef XC-RAD,YC,XC+RAD,YC-t} 2490 return 2500 ' 2510 DTRI: 2520 read COLR,X1,Y1,X2,Y2,XF,YF 2530 linef X1,Y1,X2,Y2: linef X2,Y2,X1,Y2 2540 -u} linef X1,Y2,X1,Y1 2550 return 2560 ' 2570 '--------------------------------------------------------- 2580 DO.SHAPES:-v} 2590 gotoxy 19,2: ? " RECTANGLE " 2600 gotoxy 19,3: ? " SQUARE " 2610 gotoxy 19,4: ? " PARALLELOGRAM " -w}2620 gotoxy 19,5: ? " CIRCLE " 2630 gotoxy 19,6: ? " TRAPEZOID " 2640 gotoxy 19,7: ? " SEMI-CIRCLE " 26-x}50 gotoxy 19,8: ? " TRIANGLE " 2660 gotoxy 19,10: ? "What's the name" 2670 gotoxy 19,11: ? "of this shape? " 26-y}80 return 2690 ' 2700 '--------------------------------------------------------- 2710 DO.FORMULAS: 2720 gotoxy 20,2-z}: ? " W * L " 2730 gotoxy 20,3: ? " S^2 " 2740 gotoxy 20,4: ? " B * H " 2750 gotoxy 20,5: ? "-{} PI * R^2 " 2760 gotoxy 20,6: ? "1/2 * H *(B+T)" 2770 gotoxy 20,7: ? "1/2 * PI * R^2" 2780 gotoxy 20,8: ? " 1/2 -|}* H * B " 2790 gotoxy 19,10: ? "Formula for area" 2800 gotoxy 19,11: ? " of this shape?" 2810 return 2820 ' 2830 -}} '--------------------------------------------------------- 2840 ERASE.SHAPE: 2850 color 1,0,0: X1=171: X2=299 2860 f-~}or Y=110 to 159: linef X1,Y,X2,Y: next Y 2870 color 1,0,1 2880 return 2890 ' 2900 '----------------------------------}------------------------ 2910 INTRO: 2920 fullw 2: clearw 2: NUM.SHAPES=32 2930 gotoxy 2,3: ? "FORMULAS" 2940 goto-}xy 20,3: ? "SHAPES" 2950 gotoxy 2,5: ? "W * L = RECTANGLE" 2960 gotoxy 2,6: ? "S^2 = SQUARE" 2-}970 gotoxy 2,7: ? "B * H = PARALLELOGRAM" 2980 gotoxy 2,8: ? "PI * R^2 = CIRCLE" 2990 gotoxy 2,9: -}? "1/2 * H * (B+T) = TRAPEZOID" 3000 gotoxy 2,10: ? "1/2 * PI * R^2 = SEMI-CIRCLE" 3010 gotoxy 2,11: ? "1/2 * H * B -} = TRIANGLE" 3020 gotoxy 4,14: ? "Press mouse button to play.": gosub GETBUTTON 3030 return 3040 ' 3050 '--------}-------------------------------------------------- 3060 START: 3070 clearw 2 3080 gotoxy 4,4: ? "Would you like to tr-}y: " 3090 gotoxy 8,6: ? " Shapes " 3100 gotoxy 8,8: ? " Formulas " 3110 color 2,0,2 3120 linef 80,54,17-}2,54: linef 172,54,172,65 3130 linef 172,65,80,65: linef 80,65,80,54 3140 color 3,0,3 3150 linef 80,72,172,72: linef-} 172,72,172,83 3160 linef 172,83,80,83: linef 80,83,80,72 3170 color 1,0,1: ITEM=NONE: NUM.CHOICES=2: XMIN=80:XMAX=172 -} 3180 YMIN(1)=76: YMAX(1)=87: YMIN(2)=94: YMAX(2)=105 3190 while ITEM=NONE: gosub GETBUTTON 3200 wend:return 3210 '-} 3220 '--------------------------------------------------------- 3230 CASTLE.DATA: 3240 data 10,75,155,150,78,120,93,1-}50,15,30,35,65,130,30,150,65 3250 data 21,12,29,20,140,20,160,30,120,20,140,30,136,12,144,20 3260 data 5,20,25,30,25,20-},45,30,83,45,115,75,50,45,83,75 3270 data 10,65,15,75,35,40,125,65,130,75,150,155 3280 data 93,140,103,150,145,155,10,1-}40,20,150,68,78 3290 data 20,40,30,35,60,55,135,35,145,40,55,60 3300 data 36,12,41,20,45,49,5,12,0,20,14,8 3310 data-} 120,12,115,20,129,124,151,12,156,20,160,165 3320 data 83,20,115,45,83,20,50,45 3330 data 44,95,13,66,60,13 3340 dat-}a 99,60,13,124,95,13 3350 data 44,130,13,0,1800,31,57,124,130,13,0,1800,111,137 3360 data 85,97,13,0,1800,72,98 3370 -}' 3380 '--------------------------------------------------------- 3390 BOX.DATA: 3400 data 18,27,27,36,36,45,45,54,54,-}63,63,72,72,81,90,160 3410 ' 3420 '--------------------------------------------------------- 3430 PROGRAM.DATA: 3440 -} data 1,6,200,135,240,150,11,76 3450 data 4,5,212,130,13,44,95 3460 data 5,7,200,130,210,150,240,250,104,141 3470 da-}ta 1,5,200,130,240,150,79,121 3480 data 6,7,212,130,13,123,129 3490 data 5,7,200,120,220,150,240,260,21,141 3500 dat-}a 4,5,212,130,17,124,95 3510 data 6,7,223,130,17,43,129 3520 data 1,2,200,125,220,150,16,31 3530 data 3,3,200,130,21-}0,150,110,130,21,41 3540 data 2,3,200,130,205,135,22,13 3550 data 1,1,200,125,205,150,6,21 3560 data 3,3,200,130,210-},150,110,130,6,13 3570 data 5,5,200,130,220,150,240,260,15,74 3580 data 1,1,200,130,245,150,26,21 3590 data 3,3,200,-}130,220,150,120,140,42,13 3600 data 2,5,210,130,234,150,51,46 3610 data 7,1,200,130,240,150,75,43 3620 data 2,5,200,-}130,225,150,84,46 3630 data 4,6,212,130,20,66,59 3640 data 1,2,200,120,210,150,131,31 3650 data 1,1,200,125,205,145,-}121,21 3660 data 3,3,200,130,220,150,120,140,120,13 3670 data 5,5,220,150,200,130,260,240,129,74 3680 data 1,1,200,1-}35,245,145,141,21 3690 data 7,1,200,125,220,150,84,40 3700 data 3,3,200,130,220,150,120,140,140,50 3710 data 2,3,200-},140,212,150,137,13 3720 data 3,3,200,130,210,150,110,130,155,16 3730 data 4,6,230,140,18,99,60 3740 data 6,7,230,14-}0,18,84,96 3750 data 7,2,205,130,230,150,84,6 3760 ' 3770 '--------------------------------------------------------- -}3780 GETBUTTON: 3790 while BUTTON=NONE: gosub GETMOUSE: wend: BUTTON=NONE 3800 if (MX>XMIN) and (MXYMIN(I)) and (MY1 then GOTALINE=TRUE 1410 wend 1420 ' 1430 LINENUMBER=val( BLINE$ ) 1440 for CHAR=1 to len( BLINE$ ) 1450 1} OK=TRUE 1460 CHARACTER$=mid$( BLINE$, CHAR, 1 ) 1470 if CHARACTER$=" " then OK=FALSE 1480 if OK then C1}HECKSUM=CHECKSUM+asc( CHARACTER$+chr$( 0 )) 1490 next CHAR 1500 return 1510 ' 1520 '--------------------------------1}--------------------------------- 1530 DECTOHEX: 1540 DECIMAL=abs( DECIMAL ) 1550 HI=int( DECIMAL/256 ): LO=( DECIMAL1}-( HI*256 )) 1560 HH=int( HI/16 ): HL=( HI-( HH*16 )) 1570 LH=int( LO/16 ): LL=( LO-( LH*16 )) 1580 HI$=chr$( 48+HH-1}( 7*( HH>9 )))+chr$( 48+HL-( 7*( HL>9 ))) 1590 LO$=chr$( 48+LH-( 7*( LH>9 )))+chr$( 48+LL-( 7*( LL>9 ))) 1600 return 500{ `!} *UUUU  U_!}*jϕ UUUUT @!}m? uUU*@ D3!}w?vO/ߪ!}UU"3!}#0 Ǩf+] 0(H3u!}#*t +>U@3|(D3"!}}]:/Z_]_P|!}*D3 !} 쵠]W T*D3!}7W#L3!}K UU(3*?!}A( ?U!}*@F3!}(7RUw @@*3!}?;*u*@=*66 !} / U*P<Ȃ6!}(  !}/ ] P *Ib !} hUUPH" !}*@ UU_UP^*H! !} "* UW!}/UP&h  !}* u*UUW(U@ h ?4 !}U*UՀU_U U@2 !}?@U UuUUUU@!}E* @@U!}UUUUUUUUUgJ @) !}o@U]UUUUUU U3b* z>H!} @UUUUUU UUTx *  H!} h"UU( UUUUUUP!}zt@@*G*!}`UU UUUUUU@z  !}*?UUUUUUUU@z  D !}*?UUUU UUUU?z@2!}U"!}UU"UUU@q? zP(!}` UU*UUT((z(H!}? (UUUU*@z!}?<@UU<*A!}0  !}FP*( !}/l2H  !}%`PX !}  A` !!} @P('0 !}*~SD ! *P  !}O P !}(2=`A(P!}  *!}n͘D  P  !}"AH* @ @ (( !} ]' 0@*Br !}0 Ya$!}@* B| p!} o ˂ʪB~!} 9gDx**B??!}(( !} < !} Ї ( !} "* * (!} `(*0*?!} @!}L* !}( !}* (| *?!}҈* *"|!}@ dP!} ** !} (  ?!}?* 8?<!}B??*G`p!}P!}*?"}W* ? >"}p? ("}׮?"}?*?"}ߠ  r?"}7 ? >@??"} w *`"}'A? * "}'g" }} @n X3f" }* {" }?8_ *7" } ?" } "}_ s/"} s8` 'o"}><?"}<"}w~"}ls 0!"}`#? Y"}";`xW"}?#D#3??#"}?}}?&W7_"}p[H_`?>>Ra$2(?"}?+   ??qt"};@9D U_?"}@???1K;/o"}1?=@?56l:?"}0\7~^??}d1?|!){q"}O;i ??0"} AP'IX?xp" }>W~0c$l "!}?@U[G<?#PP0$S0""}*?*U#p"w "P"#}@U(@K(UUUUUU"$}UUw?w1?;' >"%}8} _f)?! "&}`}*}}|@YSC'"'}# *|@@U@?"(} ~ <9`>8@?ws")}UUT]}G"*}7o@^UUwT@."+}o]T ?",} Ϩ`U"-}@ /(g".}@U_(0* "/}G@@ "0}T??E"1}@* }"2}@??0@?!@΄@ "3} < ?L,@"4} d;al9@"5}D ß$????"6} !+*w"7}c{ )B @$P"8}0ҷ~{~pcx Q <"9}ppp42G Z":}DA'B UU'";}Xx?'aR@<"<}@> zB@"=}Dp0MCw{@">}@UU@>D@"?}?(& @UU@"@}{D??p?&q @UU@K"A}DՑ_MX@UU@"B}t`D< "C}@UU@kD?"D}0`@UU@0"E}0 @UU@"F}_A ?"G}UU@@8g"H}"I}"J}0w"K}_A "L}?`"M}?~o?"N}"O}??<>B"P}P"Q}CL Ps"R}|`\P"S}p8y"T} "U}x@@"V}@@"W}@"X} "Y}@"Z}@"[}"\}Gp@"]}` @"^}0 ["_}?"`}"a}? "b} 0 @"c}A`"d}"e}>"f}"g}"h} 2l"i}"j} 1"k} ?"l}|"m}"n}"o}"p}"q}"r}"s}"t}"u}"v}"w}"x}"y}ߟߟ"z} ߐ__ϟϏ@@PPPP@@00"{}DD PPPPEEPPPPPPPPPPXX@@"|}PP@@``%%$$$$$$ ϟϟHHPVPV"}}\\@@PP $$$$ "~}PPPP@@WWSSPPPSPS@@77cccc11330"}0 ߀߀"}"}"}  "dthem from our HELP columns andmost are compatible with the XL andXE machines. We have worked to insurethat our programs }operate aspublished, but we consider all oursoftware listings to be works inprogress which we encourage you topersonalize} and enhance.Good luck, and ENJOY!-ANTIC EDware listings to be works inprogress which we encourage you topersonalize 2