@L}5 _$% l0$)$$Hȱ$ UhL" `e$$%`$%`  R@P!( L(1   Y I`  d  Ld M * @  $ % CC$$)%1 Udߥ$9%: !0 S$% DD˙`  }J)Lr d M * @  $ % CC$$)%1 Udߥ$9%: !0 S$%} DD˙`  }J)Lr J  ((  p L ()   J}L= ( L 0q A    IB JC;? D W } LL  ` W )LA!  ߰")-݆ p" } $G@LL 08`Q")<2Q0 -G$Ș݆ UL# ; p8(()(0ʥ)NQ` }$GȘ݆LU )L ݆ L GȘ ݆LL )W>Z   HH)H }p h  hyhy D L> L JJ    ! LA*` BF }7'8  M HN H` 8 Z  \LdJJ!"! GFE@F (!L }EE !E^ ^ E E7EȩEdE/EȩE  D } .L }  ;F d  ;?F7F? ( .   Z D LL d } . D  L    p  E` , d)  D L) 0BM݊L݉} ML  N݆ L NLML [ TEqEHȱEqEh 0Gȹ G} HLL GɛL  LFREE SECTORS G) *Gȩ GȽG GȌ*jj >G} C8jJ3j2CD( C202C ԠBX` N 1? l LlD:RAMDISK}.COMLu L1 L ;LHL  T`  `1  ɐ     `TU  } L ? .  t`GBJ ~DEHI B V0dV!}QDEHI VF9 ,0 ,0 s0hhL  L` H hDHEh"}DEL8HI4 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;DEL`?<0LV`@ʆ 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  (` 9 V⪍ ઍ  -'}LLu ÝDEHILV 9 .l 9 .l  `` s$B BH(}I|DE V BLV nB,DE JLV B V BLVDEIʩ BꭝLu  } 3E:}DISK OPERATING SYSTEM II VERSION COPYRIGHT 1984 ATARI CORP.A. DISK DIRECTORY I. FORMAT DISKB. RUN CARTRIDG*}E J. DUPLICATE DISKC. COPY FILE K. BINARY SAVED. DELETE FILE(S) L. BINARY LOADE. RENAME FILE M. RUN AT ADDRES+}SF. LOCK FILE N. CREATE MEM.SAVG. UNLOCK FILE O. DUPLICATE FILEH. WRITE DOS FILES P. FORMAT SINGLEL !N',}#"&))9(&*)/h)''-&؆莟R'S  vL/ˢ L }Insert DOS 2.0s, type Y Λx -}DEfHI 1莏#q! @ y0ɛ8A0,' ȅ 1 1ild! 1L!NO SUCH ITEMSELECT.} ITEM OR FOR MENU! 0 .z:*{}.|{ 1 0 0JB 18L%|DL/}%DIRECTORY--SEARCH SPEC,LIST FILE?[# 0 0 &|D3" 1L!NOT A DISK FILEN !B 1L!E# 1 !BD0}ED:}:1BJ|DE 1DEBHI 1 h0ߢ 0.1}  0?詛 1 y0YЛ 1 ;#L" ;#L! BL1TYPE "Y" TO DELETE...DELETE FILE SPEC2}COPY--FROM, TO?OPTION NOT ALLOWED736 FREE SECTORS COPYING---D1:DIRECK.COMl# 0|D .L/%#3}##JB|DE 1BHID#E 1#0: B 1L!#͑### B 1#c$0SY4}S1}:## # # .#Ƚ# # 𩛙## 1,#PD#ELJ- <.BJD#E 5}1 1HH 0hh|DL%1}:̳# L% #D#EL% 1 0 . .0O% 1L!WILD CARDS NOT A6}LLOWED IN DESTINATION 0 <.|K}N 2 FORMAT. t* 5) 1L!`) 0NΞ 0 L1) 1 L!BAD LOAD FILELOAD FROM WHAT FILE?) 0 ?}0#B 1L!WHAT FILE TO LOCK?) 0 0$B 1L!WHAT FILE TO UNLOCK?DUP DISK-SOURCE,DEST DRIVES?TYPE "Y" IF OK TO US@}E PROGRAM AREACAUTION: A "Y" INVALIDATES MEM.SAV.FE! +L1   `*  70 2 2A} 0.* 1 y0 0)INSERT BOTH DISKS, TYPE RETURN^, 1 y038逍 N, 1L! ,B}C, t*  Lx+, 0 ^, 1 y0 , ,0,0 ,L+ ,I0 ,Vǭ0C}Ξ, 0 }, 1 y0C,ШC, 0K'!" H H 'h h Lx+!EF 5L1L!D,I,HhD}` NOT ENOUGH ROOMINSERT SOURCE DISK,TYPE RETURNINSERT DESTINATION DISK,TYPE RETURNE}`  `8 rL1`-* 1P* 1 y0Y`hhL!NAME OF FILE TO MOVE?- 0 0|DL% <.F},^ 1 70 0 .@L# .BJ 1  DEHIB V L1 ,} 1 70,L.  G}JB|,#P#DE 1 HI BDEHHII 1 B 1 ,^ 1 70,0La- B V,#PH},^ 1 70 0L#L!-* 1P* 1 y0Yj383}mm ݭI}}`8}``|* ? ɛ,`|:-)| / 1L!`DESTINATION CANT BE DOJ}S.SYS0 0H{ 24Δ 28/L!/) 2 Π 2 0 ξK}hAΞB,0 J 1 BDEHI,HÝDE 1HIHIDELSAVE-GIVE L}FILE,START,END(,INIT,RUN)O S0 1`BDEPHI V` S0H 1 L!M}0 0 1L~0`PLEASE TYPE 1 LETTER,0`hhL! 70 1L0L<1 ,;ɛ7,"ɛ:ݦ1ݥN}A"D|ݤD|ȩ:|ȩ|ɛ,,(/+.ީ1 1,ɛ`轤{NAMEO} TOO LONG B VL!` L1I H1EΝDL1|mDiE` V0`8d/8 i:222 1 LP}!ERROR- 138ɛ+,' 20*.. өr2 1``2TOO MANY DIGITSINVALID HEXAQ}DECIMAL PARAMETER800 0 8 00`,0'D800 H,ɛh`2L1NEED D1 THRU D8uR} ECIMAL PARAMETER800 0 8 00`,0'D800 H,ɛh`2L1NEED D1 THRU D8up&|ʂ LjLN(: wD Q wD (L&#U p L" T p L" q T p L # T} B k J; UV D >D  > D   UԢ J w:  UԢ J w;U}  UԢ J wp  Q < UV< q  k J T JU J >qV}   >q   > U Lx" UV q : w Qr  t=  wW}p L% wp sL$ w: LF$ w:  Q r LF$ > > J X}  w:  QU p L%  w jLF$ w:  Q w< Lf%: w Q: >: Y} >r  ; w Qr t=  wp L\& wp sL% w; L% w: Z} Q L% wq } wq L% > > J  w:  Q  w>[} L% w Q : w Q r t=  wp L^' wp sL& w: L& \}w:  Q L& w q } wq L& > > J  w:  Q ]} wq }L& w֤ ; L' r t w֤ ; L'; >; > r ^}LK(L#(; >; > r ? >? > r LK( w tr t? > _} w  >: >: ># > k J; UV; r ? UV@ r = UV`}= ? >? > > k J멈 @ > 셈< 셊\r J@ UV@ br tc} = w Q  (L*@ = UV w  = UV lr =  d} k J >? >? > > k JL* f= UV yr =  L#@ L(? e}UV> < W! r Ll& : w J: W!? UV> : > f} >  >? >? >& >  k J@ UV@ r = UV> r > UVg} r :   w L/l :  :  :  < >< w : w Qh} w (L -:  w:   : > w  > w֤ע  : w Q w (LJi}-:  o > w  : w Q w (L.: w Q w (L.:  4 > > wԤj} >  H k J w   Q > >: >:  >  w?  Q wp  k}Q w p   Q J t; > J ? > J  > w; > w l}  : >Ơr   >Ƞr  ; >:  U L#UV; w Ll: W!m}= UV> ʠr : >=  > > UV r : =  L#L(: W!n}? UV> r : > > = UV s : = ? UV> : o} > > = UV : > > L( >? >? >' > k J@ UV@ p} s > UV> < W! s Ll&T : < 셊 w J: W! UV@ q} w @ UV> : > > @ UV> < W! %s Li% w Q wZqr} LF1 w`q gL1> UV ?s : > > : w Qfq  (L1 LF1@ UVs} Rs Li% w Q wZq L1 w jL2> UV ks  w : > > t}: w Qfq  (L2 L1 w lq gLi3> UV ys > UV s : wu} Qfq  (L3 > w Q  (Lf3@ UV : > >  LF1< >: w : v}w Q w (L4@ UV s  w 쩻s    L# w:   H >: > w} >  > w֤ :  > UV s Li% > w  wZq L&4> UV x} : > >  : W!> UV ͠s  ۠s :  w : y} :  :  : w Q w (Lx5:  w:   H >  :   > z} : w Q w (L5:     : w Q w (L 6: w Q w (L6: : >{}  H >   : L#L( L# >? >? ># > k J= UV s |}: w Q`q  (L6 : L#L( >= >= > > k J> UV> s }}> UV t > UV t > UV t > UV #t = ~}  wNq sL7 L#LMn w*q sL=8: w Q w (L7 > >(t    > >} > >  k J *t : w Qfq  (L48 L#L]7 wrq sL9 > >} > > k J : w Q w (L9 UV  w  w:   : >}  H >  w:  Q wp L;9  /t =  wp L9  " } (L9 UV : > >    : > >& > k J; UV It Li% wZq L: w Q w } jL:; UV ct  w it = B k JL9; UV t   } L# w t; UV t =  w~q L,;< w! QLO; w멄q LL;: w! QLO;L}: ; UV t =  w멊q w~q w6q w멐q }L;Lt; w/ Q : w Q w (L> w   Q! w Ld< >  > : } >: > L]> w?  Q L)#: 셈 4 > > wԤ >  H k J}- >ՠt  ! wL= w : > w֤ע > Ly=! wL]>. > wԤ >  H > w}Ԥ > w֤ >:  k J w< L]> >  > נt / w멐q / w~q } L= > >٠t  L> >  > ۠t / w6q / w멐q L}Z> > >ݠt  L> >  > ߠt / w멊q L> > >t  } ; UV < w$ Q< w Q: w Q w (L? >  > t L4?$ w: $ Q} w : > w :  > t L? w:  Q t $ w t } w t ; UV u =  L#L]7 >< >= >' > k J: UV>} u ; UV u < w$ Q< w8 Q=  wBq LpF w멖q sLq@; UV} 2u w t Ll&: UV> @u w : > > ; UV Gu du } Li% w Q w< LB w LA qu : w Qfq  (LA L@ u Li%} w& Q& wZq LA u Li% w Q wZq LA8 w LB w8 Q u }ޠu Li% wZq LB w멜q LaBq 멢q $ 텈 W!q $ 텈& W!q} $ 텈 W!q $ 텈 W!$ w@ $ QB k JL@ u = $ }@ < 셊 w J w t: w Q w (L_F >  > v LZF w : } > w :  > v LZF: w Q8 w (LZF: w9 Q< w Q$ w@  @ w} 2LJF w ꩮq  1!  vLEF9 w ꩨq  1!  LD@ : >멨q  } 1! 9   > 쩨q  1!9 J   w  ꩢq  1!   Q L)#:} 셈 - > v  4 > > wԤ >멢q  1! H k J멢q  1}!  ꩴq  1!  LEq  텈q  1! H W!@ : >면q  } 1! > 9 w ꩴq  1!  9 Q @   @ L#LMn: UV> v }: > > : > > : w Q w (LI >  > v LI; w}& Q & UV  w : > w :  > v LI: w Q w} (LH? w  w   Q L)#: 셈  w:   : E Q  E (}L#H E  UԢ E v - >v  4 > > wԤ >  H k J   Q} Lx" T p }LH v = B k J; w& Q & UV  ; UV }-v = B k J: UV> w멺q L_I > >Ov  wq LxI fL}I Qv ; w& Q & UV  L#LMn@ Yv LB >< >= >' > k} J: UV> sv  w LkJ  ~v : w Q`q  (LbJ L#LMn w}:  Q: w Q w (L4L; UV  w:   : >  H > 쩓v   } Q L# w   Q > >: >:  >  w?  Q L)#: 셈 } w֤     LK w֤ : >: >, > : : >  H > }< UV< v B k J: UV> v  L#LMn >= >= >& >  k} J< W!> UV> v > UV v Li% w" Q" w # Q wƠq }}LL# w  w  lq gLcM: W!> UV Ҡv : w Qfq  (LZM L}#LMn: : < 셊 w J:  :  w"  Q:  : : < } w J: w Q" w (LCN: w Q w (L>N: : >  H >   : L# L#:} < 셊 w J: W!L+ >= >= >& > k J> UV> v } v Li%< w$ Q< w2 Q< w1 Q< w3 Q w Q: w Q w (LP w   Q w} : > w :  > w LP >  > w  > } > w LP w?  Q L)#: 셈 4 > > wԤ >  H }k J- > w    w 0 Q$ w: $ Q1 w0 1 Q >  > w LP2} w: 2 Q3 w0 3 Q  w $ w  w 2 w  0w 1 w }  >w 3 w $ wZq LQ Tw 2 wHq $  1 wZq LQ } hw 3 wHq 1  $ wZq L"R zw 1 w$  2 wZq L[R }w 3 w2   w =  wp sLqR L#LMn >= >= >" >} k J> UV> w  w Li% w Q w  wƠq } LR }̠w =  w멊q LwS wBq sLDS  w < w5 Q: w Q w: } (LWW w   Q w : > w :  > w LRW >}  > w LRW w  Q w (LU w  6 Q6 w : >6 w }:  > w  >  > w LU fLU LRW >  > }6 >6  > w멊q LRW >  > 6 >6  > wBq L}RW w :  Q w : 6 Q > w :   > t > w : } >6 >6 w :   > 6 >6 w :  > w  w?  Q6 w? }6 Q w? : 7 Q > w7  > t > w7 >6 >6 w7  > }6 >6 w7 > w : w5 Q 5 w: LS< w5 Q: w Q w:  (L:\ w }   Q w : > w :  > w L5\ >  > w } L5\ w  Q w (LX w  6 Q6 w : >6 w :  > }w  >  > w LX fLX L5\ >  > 6 >6  > }L5\ w?  Q L)#: 셈 4 > > wԤ >  H k J- >x  }6 w?  Q L)#: 셈 4 > > wԤ >  H k J: >  H > }: >  H > w멊q L5\: >  H > : >  H > wB}q L5\ w :  Q w : 6 Q w: 7 Q > w7  > t } > w7 >6 >6 w7  > 6 >6 w7 > w  w?  Q6 w? }6 Q w? : 7 Q > w7  > t > w7 >6 >6 w7  > }6 >6 w7 > w : w5 Q 5 w< vLkW: >x  , >x  ; >: } U L#LMn > > ># > k J> UV> x  x }< W! w t Ll& w t w t$ @ < 셊 w J@  w : }W! x =  w̠q L` wҠq sL]@  @  @  :} w Q w (LU^@  w:   : >  H >  : w Q w (L^@ }    < w$ Q: w Q w (L_ w : > w :  > 9x } L_$ w: $ Q: w Q w (L_? w  w   Q L)#: 셈 4 } > > wԤ >  H k J- >;x  @ : >  H >   @ @ }< 셊 w J@  @ $ @ $ w L`@ < 셊 w J$ w:  Q w} (L`: w Q w (L`@ : >  H >   @ L#LMn@  @  }@  : w Q w (LVa@  w:   : >  H >  : w Q w} (La@     < w$ Q: w Q w (Lc w : > w : } > =x Lb >  > ?x Lb$ w: $ Q: w Q w (Lb? w  w}   Q L)#: 셈 4 > > wԤ >  H k J- >Ax  @ } : >  H >   @ @ < 셊 w J@  @ $ @ $ @ } L#LMn Cx @  ؠq  (Lc B k JL\ >= >= ># > } k J> UV> Vx  ]x  tx =  w멄q Lbd w~q s}L&d L#LMn : w Q w (Le >  > ꩊx Le > >멌x  : w} Q w (Le? w  w   Q w?  > w?  >멎x  L)#: }셈 : : >  H >   L#LMn >: >= >' > k J> UV> } x  x : w Q w (Lqj >  > < J Llj> UV }: >:  H > 쩫x  w :  Q >  > ꩮx Llj w?  Q L)#}: 셈 4 > > wԤ >:  H k J- >며x  :   Q Lx"= } w멄q sLlj< W! >: > >' > k J: w Q w (Lfj< UV< B} k J; UV  w:   : >  H > 쩲x    Q? w  w }   Q L)#: 셈 4 > > wԤ >  H k J- >멵x  Lx"@ }w     w:    UV x =  wp L0i Li: w} Q@ w     w:    % Q   (L8j% w& Q8 & (L)j& UV } w ޠq wq Q > J  w:  Q w L$j f fL8j& ; w}% Q : 셈 :  w  L# : W! L#LMn   .} .ppҩ ' U ( U) U* U U U, U w 4  U- U'+ UР Up} U, UA U U U     U >멺x  , >멼x   > U} x  t, >Ѡx  Zq< : : w: ; Q; w: ? Q? w: @ Q@ w: = Q}= w: > Q= @ 셈< 셊Ӡx J: W! ֠x ? UV Lo( wԤբ- J) wԤ}բ J* wԤբ J- >' wԤբ k JA wԤբB J+ wԤբ4 J, wԤբ. J  >? >? >! >} k J@ UV@ x = UV> x UV> y = UV y }  y = UV y  y = UV y  #y } = UV (y  /y =  wNq sLn k J k J: }: < 셊 w J:  :     LN( w̠q L6 w멖q L? w멊q }LI w멐q L=L wq LN wxq LR wq L\ wBq Lc w멺q LeLM}n > >6y (  >P >Ay ) Q >멠 >멒y ) > >y ) > >4z })  >P >9z * Q >멛 >멊z *  >' >֠z +  >P >z , Q >멏 >}O{ ,  >P >멏{ A Q >멕 >{ A  : @9@"AVAUA&@H}@W@F@@@g@@A@yA@hA@iAAAA @v@@x}@@e@@AUAAAA@@w@@p@APA(A' Press __} _ 0P::::D:reate database pen databasexit eboot irectoryLwD:*.* Press P}ress Enter filename: Reading initial file contents Please waitFile compatability error Press File op}en error Press Enter filename: Enter number of records: Max records = 1000Enter number of fields: Max field}s = Total fields exceeds 2000Please re-enterEnter title for field #: Len of field: Creating file Please waitFatal erro}r in file I/O eset flagsearch ist fieldsxitDone Press Press Field number for search: Only  fiel}ds. Press Enter string for search: Check only at beginning? (Y/N): nd r or and ot :   Flag}ged: out of  current Press ԯrint or isplay: Destination:  Enter field number to print, end }with 0: Field out of rangeEnter column to start print: Enter row to start print: Enter number of chars from field to prin}t: Check destination, press    :  Press !nflag ain or to continueERROR TRY}ING TO OPEN DEST ĠNo room in database.:  ĠĠHow many additional records: Total fields }exceeds 2000Enter field number:  .9 Total records: Total flagged: Total value: Total value flagged: % record }s flagged: % value flagged: Avg all records: Avg flagged records: Press Field number for sort: scending or }escending: Sorting...       Destination file:hole base lagged recs    Error opening dest }Delete flagged recordsAre you sure? (Y/N):  Update this record?:   :    \SUMMERS\DATA.BAS\  }K:# ʮindrintddtendathortopyxiteletepdate hhh`Phhh؅hhمhh }hhۥX֥Yԥi(֥iץمԭܭݩQߤرօޥߑQPR|ZRߥބՠܥiܥiݤ|֥ }EC֥i(P֥iץ|ԥZߤۑȥڑȥّȥؑȭȭܥii`Ph8ܭݠ }܅ȱ܅ȱ܅مȱ܅؅ȱ܍ȱ܍ܭݥX֥Yԥi(KiץمԠܤՑ֥iܥiԥi( }iץ؅`'hhhhEhDhIhHB VHԽI`Phhhhhhhhhhh8eօeׅee } ?8օԥׅեiԥi` ԅ`iiPh8ܭݠܪʆȱܪʆȱܪنȱܪ؆ }܅ȱ܅ݥX֥Yԥi(֥iEץمԩՑ֥iܥiԥi(֥iץ؅` o"o"o"(o"2o"<u" }x"" #&#)#X##$F$f$y$$$%%f% i%*%4%>%H%M&R\&l&&&&&'^'' }'''#(K(N(N(((  )G)o)$).)L)V*`*j*t*~++-+^+++!,>,_,s,," -,J }-1-6-@ .J.O.T.^/l/qK/vp/}/////O0R0001F11111%282L2 223 }i33 3*&4/X44k4>4H4R5\x5f5p5z56 6T 6^ m6 6 6 #7 ]7 }7 7 7 8 =8 P8 8 9 ;9 9 } 9 9 :! /:& B:+ `:, :0 :: :? :@ ,;A L;D O;I t;J ;N ;X  ]>H >R >W 4?\ }?f ?p ??%@q@@@@"APAAAAAAB2BEBaBBBCCCCC" D,MD6D@+DpH+^pR+xp\+pf+p.pppJ)nT)o^)oh),or)?o|)Ro)eo)xo)o*o+o +ODATA-X DATABASE MANAGEMENT SYSTEMBy Jeffrey A. Summers DATAX.CTB is a full-featuredinformation processing system forA }tari XL/XE computers with at least64K. The program can handle fileswith up to 300 characters (lettersor digits) per field }, 20 fields perrecord, 1,000 records per file, fora maximum of 600,000 bytes ofinformation. The program performscertain }mathematical manipulationsacross fields as well as the add,delete and update functions normallyfound in this type of progr }am. Withthe use of windows, no complicatedcommands need be learned. TheXXXprogram prompts for all neededinformation t }o perform itsfunctions. Like most current databasesystems, you create files that arearranged as groups of RECORDS. Ea }chrecord contains a number of FIELDS,which contain the actualinformation.GETTING STARTED Take a blank disk and format } itwith DOS 2 or DOS 2.5. (Be sure toWRITE DOS FILES to this disk.) Now,copy the files RNTIME.OBJ andAUTORUN.CTB to thi !}s disk. Finally,rename RNTIME.OBJ to AUTORUN.SYS.When you're done, you should haveXXXfour files on your disk: DOS.SY "}S DUP.SYS AUTORUN.SYS AUTORUN.CTB To start, put this disk into yourdrive, hold down the [OPTION] keyand turn o #}n the computer. DATA-Xwill load and run automatically.USING DATA-X:THE FILES MENU The FILES menu, the first menuy $}ou'll see, has the followingoptions:XXXCREATE A FILE First, decide how to arrange yourdata. Each field can contain %} up to300 characters (although only 255 ofthese can be printed on the systemprinter). The TOTAL number offields (total r &}ecords times fieldsper record) in a file cannot exceed2,000, and the maximum number offields per record is 20 -- so youde '}fine your file for 100 recordswith 20 fields each, 1,000 recordswith two fields each, or anything inbetween. Let's cre (}ate a sample addressbook. Press [C] at the main FILESXXXwindow to Create a file. Whenprompted for a filename for your )}database, choose any legal filename(up to 11 alphanumeric characters,including an extender). When asked for the number *}ofrecords you want in the file, youare setting the MAXIMUM number ofrecords. Though you can extend thedatabase later, yo +}u should choose anadequate number of records to beginwith. Here, enter 10. At theprompt for the number of fields,enter ,}seven: last name, first name,street address, city, state, ZIP andphone number. When prompted, enter field labelsXXXa -}nd lengths. In this case, enter:LAST, 20; FIRST, 10; STREET, 25;CITY, 15; STATE, 2; ZIP, 5; andPHONE, 10 (to include the .}areacode). The program then creates thefile and displays the MAIN menu.DISK DIRECTORY Typing D at the FILES menu lis /}tsthe files in drive 1 to a window.You are then asked to press [RETURN]again to go back to the FILES menu.EXIT This 0}option closes all files andreturns you to DOS.XXXREBOOT This is equivalent to turning thecomputer off and back on a 1}gain butcauses less wear on the electroniccomponents inside. This option ismost useful when you're finishedwith DATA-X a 2}nd wish to use anothercommercial program.OPEN A DATABASE This opens a previously createddatabase for data entry, sear 3}ches,sorts, etc. Just type in a filenamewhen prompted. (Drive 1 is thedefault.) Then you'll return to theMAIN menu. 4}XXXTHE MAIN MENUADD A RECORD Pressing [A] lets you Addinformation (records) to thedatabase. Since there is nothin 5}g inour sample database yet, you'llfirst need to add a few records.The program prints the labels forthe fields one at a t 6}ime, promptingyou to make your entry. Enter aname, address and phone number,pressing [RETURN] when you're donewith each 7}field. Use [DELETE] be asusual to delete typos. After youenter a record, the program returnsXXXyou to the MAIN menu. 8}Just press Aagain to add more records. For ourexample, make four or five entries.FIND RECORDS This is one of the mos 9}t powerfulfunctions in the program. It letsyou search the database, selectingrecords for further processing. Choosing :} this option brings up asub-menu. Press [L] to list thefield labels in your file (in caseyou've forgotten their order).P ;}ress [R] to reset the flags. Only"flagged" records are operated onwith most other options. Thereforeresetting the flags <}reselects ALLXXXthe records (see below). Pressing[E] exits to the MAIN menu, and [S]initiates a search. When you st =}art a session, allrecords are "flagged," or selected.This part of the program lets youeliminate the records you don't want >}to work with. The FIND routine letsyou include or exclude based on apattern match. From the FIND sub-menu, press [S] ?}to begin a search. When promptedfor the field on which to search,press [1] and [RETURN] for ourexample, choosing the firs @}t field(last names). When asked for asearch string, type part or all ofXXXone of the entries you made. The program A}can search such thateither the BEGINNING of the field orthe ENTIRE field is checked. Thefirst method will find the BUG in B}BUGBLATTER but not in LADYBUG. Thesecond will find both. Next you are presented with alist of logical operators -- AN C}D,OR, XOR and NOT -- which control themanner in which the records areflagged or unflagged: AND: if the field contains D}thestring and was previously flagged,it is again flagged. All others areunflagged. For example, if you wantXXXanyone E}named BEESON who lives inBUFFALO, you would first search onLAST NAME for BEESON using AND,which eliminates anyone who isn' F}t aBEESON, and then search on the cityfield for BUFFALO, again using AND,which makes it only the BEESONs inBUFFALO. You' G}ll probably use ANDfor most of your searches -- itsimply eliminates all those recordsfrom the current group that don'tmat H}ch. OR: if the record is alreadyflagged OR if it contains the stringOR BOTH, then it is flagged.Unflagged records that I} do notcontain the string remain unflagged.XXX XOR (exclusive OR): works thesame as OR but excludes records thatmeet J} both conditions. Normally, ifyou wanted the BEESONs or anyoneelse from BUFFALO, you'd firstsearch the LAST NAME field fo K}r theBEESON using AND (so you get onlythe BEESONs at first), then the CITYfield for BUFFALO using OR. If youwanted all t L}he BEESONs as well aseveryone from BUFFALO, but NOT anyof the BEESONs IN BUFFALO, you'd useXOR for the second search. M}NOT: similar to AND NOT. If youwant the BEESONs who are NOT fromBUFFALO, search the LAST NAME fieldfor BEESON using AND. N} Then searchthe CITY field for BUFFALO usingXXXNOT. Combining these logicaloperators enables you to do verycomplex se O}arches easily. Theprogram always tells you how manyrecords are flagged at the end ofyour search.PRINT AND DISPLAY C P}urrently flagged records can bedisplayed onscreen or printed on aprinter (or to a disk file)according to the format you ch Q}oose. For now, press D for DISPLAY tolook at the currently flaggedrecords. If there aren't any, goback to the FIND me R}nu and RESET theflags. When you press D forXXXDISPLAY, the computer displays thefirst flagged record. If the recordis S} long enough to go outside thewindow space allotted, the programasks you to press [RETURN]. Then itclears the window and T}continuesdisplaying the record. After the record is displayed,you can press: [U] to unflag thatrecord and display the U}next; [M]returns you to the MAIN menu; or anyother key (including [RETURN]) todisplay the next flagged record. Sobefore V}printing a set of records,you can preview and unflag any youdon't want printed. Pressing [P] brings you to theXXXPRI W}NT routine. When asked where youwant output directed, enter afilename -- or simply press [RETURN]to direct output to the X}printer.You're then asked a repetitiveseries of questions about whichfield you want printed, where, andhow many character Y}s per field. If you want the whole fieldprinted, typing a number greaterthan 255 guarantees the entirefield. (There i Z}s a limit of 255characters per field, however.) In our example, you may want thefirst and last names on the sameline, [}the address on the next line,the city, state and ZIP code on theXXXthird line, and the phone numberignored. To accom \}plish this, enter 2 forthe first field to be displayed, 1for the column and 1 for the row.(Press [RETURN] after each entry ]}).This prints the first name first. To add the last name to the sameline, enter 1 for the field, 12 forthe column and ^}1 for the row. Theaddress can be indented by using 5for the column, but remember thisshould now be row 2. Row 3 wouldco _}ntain the city, state and ZIP,using starting columns of 5, 20 and25, respectively.XXX Although entering the positions `}and lengths for all of the fieldscan be tedious, it gives you a greatdeal of flexibility. To end yourlist, type 0 for th a}e field number.You'll be prompted to check youroutput device, then press a key tostart printing. If you want extralines b}between records, the easiestway is to have the lines at the top.SORTING A DATABASE The SORT option lets you arrange c}and rearrange your data to suit yourcurrent needs. After choosing thisoption, you're asked for the fieldXXXon which to d}base the, then whetheryou want the sort in ascending ordescending order. In our example, it would makesense to sort by e} last name whenprinting out the address book or ifmaking up a set of nametags, but ifyou are bulk-mailing newslettersfrom f} the same list, these must beorganized by ZIP code. So, to sortby last name you'd enter 1 for thefield and then A for an g}ascending(alphabetical) sort. To sort by ZIPcode, enter 6 for the field and A orD for the order of the sort. You can q}B%DOS SYSB*)DUP SYSBSAUTORUN CTBBuDATAX TXTBDOC TXTB HELP BASBMENU BNUMSORT DEMB7NUMSORT M65BG"RECALL BASBXiRNTIME OBJalso sort your databaseon more than one field, withXXXdifferent fields having priority.For example, to sort names in str r}ictalphabetical order, sort thedatabase first on the first names,THEN by last name. The most recentsort will take priori s}ty. NOTE: upon exiting the programthe order of the data returns to theoriginal. To make the sortpermanent, use the CO t}PY databasefunction. Another important point is thatONLY FLAGGED RECORDS ARE SORTED.This lets you sort only certainre u}cords in the database, but be sureif you want the ENTIRE databasesorted to RESET the flags throughXXXthe FIND option. v} One last point regarding thesorting routines. Fields are sortedby the ATASCII values of thecharacters. Therefore, numb w}ers comebefore the letters, uppercase comesbefore lowercase, and spaces comebefore everything. For numbers tobe sorted p x}roperly, make surethey're right- justified within thefield. The only complication here isthat the first character of t y}hefirst field of any record cannot bea space. Therefore, don't use afield that's likely to contain anumber as the first z}field in aXXXrecord.DELETE RECORDS This is easy. Simply flag therecords using the SEARCH functionand press [D] at {} the MAIN menu.When the program asks if you reallywant these records eliminated, press[Y] if that's what you want. Ifnot |}, press [N]. NOTE: the space occupied bydeleted records is NOT freed up forfurther entry. To clean up adatabase after }} deleting records,using the COPY database function.UPDATING RECORDSXXX To change the data within afield, press [U] ~}on the MAIN menu.The program then cycles through theflagged records, displaying thefirst field of each. You are asked }whether that recordrequires updating. Because onlyflagged records are displayed, youdon't have to go through the entired }atabase looking for the record toupdate; you can select the recordswith FIND and the update only theones you wish. If }you press [Y] at the promptfor updating the displayed record,the program lists each field inXXXorder. You can make chan }ges to thefield, and pressing [RETURN]re-enters the field. If you don'twant to make changes, press [RETURN]to proceed to } the next field. Afterthe record has been updated theprogram then continues to list thefirst field of each flagged record }.MATH The program can perform a numberof mathematical functions. Bypressing [M] at the MAIN menu andthen entering a }n appropriate fieldnumber, a series of values aredisplayed onscreen: the sum of thefield, the average of the field, thesu }m of the flagged records in theXXXfield, the average of the flaggedrecords in the field, the percentageof records flagge }d, and thepercentage of the VALUES of theflagged records as a fraction of thetotal. Thus it's easy to flag a group of }records to see whether that groupcontributes proportionately to thetotals (for example, a business canhave multiple divisi }ons or areasthat contribute to the profit). Non-numerical values are excludedfrom consideration. If a resultwould cau }se an error (for example,if no records are flagged, or thecalculation of flagged records wouldXXXinvolve dividing by zer }o) the resultis skipped.COPY This utility lets you copy all orpart of a database. It also letsyou clean up a databa }se that hasbeen cluttered by deleted records. After pressing [C] at the MAINmenu, you are asked for the outputfile. T }ype the complete filename.Next, you're asked if you want theentire database copied or just theflagged records. Either way }, thedata will be written out to the newfile in the order of the currentsort.XXX If you choose to copy the entireda }tabase, it will remain the samesize, but deleted records will becleared out, making more room foradditions. If you choose } to copyjust the flagged records, the newdatabase will only be as long as thenumber of flagged records. To addmore recor }ds to the database, usethe XTEND option from the MAIN menu.EXTENDING A DATABASE In case you've underestimated thenumb }er of records you needed in adatabase, this option lets youextend it (keeping in mind the 2,000total field limit). After }choosingXXXthis option from the MAIN menu, youare asked how many records you wantto add. (Keep in mind that wheneveryo }u extend the database you wastesome disk space.) This optionreverses any sorting you had done,so be sure to use the COPY }functionto save your sorted database beforeusing this option.EXIT This option closes the databaseproperly and return }s you to theFILES menu so you can work onanother file. the databaseproperly and return \ WELCOME TO THE ANTIC MONTHLY DISK Most of the pr}ograms on this disk arewritten in Atari BASIC. Some requirespecial hardware or specific instruc-tions. Please read the cor}respondingissue of ANTIC for completeIf you wish to order a back issue,or need subscription information,call us at (415) }957-0886. For creditcard orders, dial (800) 227-1617, Ex.133. In California, call(800) 722-3545, Ex. 133XXX *** BONUS F}ILES * BONUS FILES ***DATA-XBy Jeffrey A. Summers DATAX.CTB is a full-featuredinformation processing system forAtar}i XL/XE computers with at least64K. The program can handle fileswith up to 300 characters (lettersor digits) per field, 2}0 fields perrecord, 1,000 records per file, fora maximum of 600,000 bytes ofinformation.XXX The program performs cert}ainmathematical manipulationsacross fields as well as the add,delete and update functions normallyfound in this type of p}rogram. Withthe use of windows, no complicatedcommands need be learned.XXXIMPORTANT NOTE: The Pong program (PONG}.EXE) andthe Printer Spooler files(SPOOLER.OBJ and SPOOLER.M65) areon the back of this disk.XXX * > MORE BONUS FILES} < *Whenever there is sufficient room,we will be including TYPO II andLINKLINE on the monthly disks.TYPO II is in LIST}ed form, and must be ENTERed before using.It will not RUN from the menu.XXXThe menu that appeared on the screenwh}en you booted the disk will onlyRUN programs with a .BAS extender.If you try to run a program and theresponse is 'cannot r}un Filename',check the file extender with thislist:XXX.BAS BASIC saved program, use menu RUN or LOAD and RUN..}LST BASIC listed program, ENTER then RUN..EXE Assembly language 'Load and Go' file. Remove BASIC, boot } DOS, type L then enter the filename..CTB Compiled Turbo Basic file. Must be used with the Turbo B}asic Runtime package. See the other HELP file for more information..M65 MAC/65 assembly language sou}rce code.XXX.OBJ Machine language object file. Same as .EXE but not 'Load and Go'. See corresponding artic}le..DEM A "Demo" program. See the corresponding article..SYS Reserved for DOS system files..TXT Text file. U}sually accessed by another program..ACT ACTION! language source code. Must be compiled..LGO A Logo progra}m. Requires the Logo cartridge.XXXAll programs from ANTIC issues datedprior to August 1984 were reproducedfrom }ANTIC's Archive. We've updatedthem from our HELP columns andmost are compatible with the XL andXE machines. We have worke}d to insurethat our programs operate aspublished, but we consider all oursoftware listings to be works inprogress which w}e encourage you topersonalize and enhance.Good luck, and ENJOY! -ANTIC ED} -ANTIC EDH7pLINEAFPPR 11;A ,;@,;@,;@,G@}(}2( (1) HELP file5(GAR((2) Instructions for( DATA-X $$( (T}his program only works!%%( with XL and XE machines)(+ (( SELECTION+6-2(+41)42,@} <-6. D:DOC.TXT42-6. D:DATAX.TXTP6-@@2(Hard Copy (Y/N) N6Z(+4Y)4N,}@dW@@(}&@C@@K4YW6-@n A`AR@}x@vB:,!@-7@<@,4XXX0(3(E-@@"Y(ӠΠf@l(}}v A   3( A j@ B*-@@"R("ΠҠՠҠˠҠ_@}j%D:MENU D1:HELP.BAS} D1:HELP.BASY XLAPNB0A6@ ((<(d<"(@D +26-?:C:}hhhԩ`,<A6,DAdAUuA@'A @9AAPK@@]@}@7c(}uAR@++(# ++(# Antic Monthly Disk, May 1988 }++(#  ( | Side 'A' |++(#  @ }-@A $ GG;@@,;@ ,;@@,;A,;@,;@@, "D1:MENU" &&@}@D:*.* 6,6." 6 @0i6-%@(6.7@<@,A67@ }<@ ,..i67@<@,.7@<@,3 6.|67B:,%@,.367B:,%@,.G67@<}@,.(--@B:,:7<,4 G67<,..] 6.=:, @D67@<@,.7@<@,]6}7@<@,.0$@(''7@<@,4FREE@- @ .K'7@<@,4 HE}LP.....BASK67@<@,. Ю2() <@F''7@<@,4FREE@K @ }P(7@<@,)|U @0W'!-@6+'@,%@' |Z++(#| } |[ ( |  |\++(#  d**(" Select HELP.BAS for information.x}AR[@@9'-@@#C( FILE NUMBERM A0Q[ BP:,A}00"@&6.7@<@,0 AELB6.7+&@,$@%@<+&@,$@%@,L B}37@<@,4 36.7@<@,!7@<@,4DOS!.0 6.-@B:,07<,4} AH67B:,%@,.7<,   6.! 6.D1:!67B:,%@,.?AR@'-@@"?}  LOADING ? A@@91@@5%? B[-@@"-  CANNOT R}UN 7 @LF:A,"@![% D:HELP.BAS B A0D1:MENU.} B A0D1:MENU.6DSLFITPSNFIRSFSLAS } NUMERIC SORT DEMOBY KEVIN PECK(c)1988, ANTIC PUBLISHING8 A j<<;A`,;@},;@,;@,;@,t+ 6. 67A`,. +67@,.~!-@@ !"##6-+&@},$@(%@67<%B:,,.##67%@<%@%B:,,.##67%@<%@%B:,,.##67%@!}<%@!%B:,,. 'AAE'@@E Ap-@@";(Original, Unsorted dat}aE A>>6-?:C:,(Sorted Ascending} by IncomeH A>>6-?:C:,(Original Unsorted DataH Adn!!CALL ONCE FOR EACH LANGUAGE}6.ACTION A`6.BASIC A`6.ASSEMBLY A`"6.LOGO A`" A0F-@}@"<("Data sorted Ascending by BYTE sizeF A" +AAE"D (}-@D($}Ԡ Ԡ Š ؠĠ7-@@ 76-+&@,$@(%@pi(7<%@, 7%@}<%@, 7%@<%@ , 7%@!<%@',m p$I-@@#7(ŠҠ}IAdAU F:Ad,@3AAdAU$I (}@@ --@}I(Š Ӡ7-@@ 76-+&@,$@%@O6(7<%@, 7%@}<%@,: L@@O$;;6-?:C:,:@4,cc67A5,.PVШ:8ǥe6HԑhхЦE}e 5567A,."e̅ԥiС*67AI,.>:AU,4>>67AP,.+e̅ͥi}ж`ϱ>$D1:NUMSORT.DEM4>>67AP,.+e̅ͥiZ0100 ;NUMSORT.M650110 ;BY KEVIN PECK0120 ;(c)1988, ANTIC PUBLISHING0130 .OPT NO LIST0140 ;0150 ; Define zero page po!}inters0160 FLAST = $00 ;End, loop 10170 FLEN = $CB ;Field length0180 RLEN = $CC ;Record length0190 FIRST = !}$CD ;Pointer to 1st0200 ; sort element.0210 OFFSET = $CF ;Offset into0220 ; DATA stri!}ng.0230 LENF = $D0 ;Length of first0240 ; sort element.0250 LENS = $D1 ;Length of 2nd0260 ; !} sort element.0270 SECOND = $D4 ;Pointer to0280 ; second element.0290 LAST = $D6 ;End of !}DATA0300 ; string pointer.0310 FEND = $D8 ;End, Field ptr.0320 TEMP = $E0 ;Temp storage0330 ; !} for ORDER.0340 ORDER = $E1 ;Order of sort:0350 ; 0-ascending 1-descending0360 SIGN = $E2 ;Sign!} of second0370 ; element 0-POS 1-NEG0380 *= $40000390 ;0400 CLD 0410 PLA 0420 PLA 0430 !} STA FIRST+1 ;Start of sort.0440 PLA 0450 STA FIRST0460 PLA 0470 STA LAST+1 ;End of sort.0480 PLA !}0490 STA LAST0500 PLA 0510 PLA 0520 STA FLEN ;Field length0530 PLA 0540 PLA 0550 STA OFF!}SET ;Field offset0560 CLC 0570 ADC FLEN0580 STA FEND0590 PLA 0600 PLA 0610 STA RLEN ;Record!} length.0620 PLA 0630 PLA 0640 STA ORDER ;Sort order:0650 ; 0-ASC 1-DEC0660 ; Find the last!} position of0670 ; sort string for outer loop.0680 ;0690 LDA LAST+10700 STA FLAST+10710 SEC 0720 LDA LA!}ST0730 SBC RLEN0740 STA FLAST0750 BCS INITFIRST0760 ;0770 DEC FLAST+10780 ;0790 ; INITFIRST begins out!}er loop.0800 ; INITSECOND is the inner loop.0810 ;0820 INITFIRST0830 LDY OFFSET0840 LDX #00850 LDA (FIRST),!}Y0860 CMP #'-0870 BNE FINDFLEN0880 ;0890 INX 0900 FINDFLEN ; Find length of0910 ; 1st sor!}t element.0920 LDA (FIRST),Y0930 CMP #'.0940 BEQ SAVELENF0950 ;0960 CMP #320970 BEQ SAVELENF0980 ;!}0990 INY 1000 CPY FEND1010 BNE FINDFLEN1020 ;1030 SAVELENF ; Save the length.1040 STY LENF1050 ; !}Set SECOND element to FIRST1060 ; plus record length.1070 ;1080 SETSECOND1090 CLC 1100 LDA FIRST+11110 STA !}SECOND+11120 LDA FIRST1130 ADC RLEN1140 STA SECOND1150 BCC INITSECOND1160 ;1170 INC SECOND+11180 ;!} Inner loop's 1st routine,1190 ; Finds sign of 2nd element.1200 ;1210 INITSECOND1220 LDY OFFSET1230 LDA #01240 "} STA SIGN1250 LDA (SECOND),Y1260 CMP #'-1270 BNE SETSECLEN1280 ;1290 INC SIGN1300 SETSECLEN1310 "} LDA (SECOND),Y1320 CMP #'.1330 BEQ SAVELENS1340 ;1350 CMP #321360 BEQ SAVELENS1370 ;1380 INY 139"}0 CPY FEND1400 BNE SETSECLEN1410 ;1420 SAVELENS1430 ;1440 STY LENS ;Save length of1450 ; "}second element.1460 ;1470 ; Examine & test sort elements.1480 ; Test signs, then lengths,1490 ; then test byte-by-byte.1"}500 ;1510 TESTSIGN1520 ;1530 LDA ORDER1540 STA TEMP1550 CPX SIGN1560 BEQ TESTLEN ;If = test sign1570 ;"}1580 BCC CHKORDER ;If < swap chk1590 ;1600 BCS CHKTEMP ;If > noswap chk1610 ;1620 X2INITFIRST1630 ;1640 BN"}E INITFIRST1650 ;1660 TESTLEN1670 LDA LENS ;Compare lengths1680 CMP LENF1690 BEQ XBYTETEST1700 ;1710 "} BCC SWAP1720 ;1730 BCS ADJPOINT1740 ;1750 XINITSECOND1760 BNE INITSECOND1770 ; Routines are only set for1780"} ; positive numbers in1790 ; ascending order. If both1800 ; numbers are negative then1810 ; reverse the order.1820 SWAP1" }830 LDA ORDER1840 STA TEMP1850 CLC 1860 TXA 1870 ADC SIGN1880 CMP #21890 BNE CHKORDER1900 " };1910 ; Both numbers are negative.1920 ; temporarily reverse order.1930 ; Subtract current order1940 ; from one to flip " }the order.1950 LDA #11960 SBC ORDER1970 STA TEMP1980 ;1990 ; If order is 1 goto "Back Door"2000 ; of the ad" }just pointer routine.2010 CHKORDER2020 LDA TEMP2030 BNE ADJPOINTBD2040 ;2050 SWAPBD ; Swap's backdoor206" }0 LDY #02070 SWAPLOOP2080 LDA (FIRST),Y2090 PHA 2100 LDA (SECOND),Y2110 STA (FIRST),Y2120 PLA "}2130 STA (SECOND),Y2140 INY 2150 CPY RLEN2160 BNE SWAPLOOP2170 ;2180 LDA LENS2190 STA LENF2200"} LDX SIGN2210 CLC 2220 BCC ADJPOINTBD2230 ;2240 XINITFIRST2250 BNE X2INITFIRST2260 ;2270 XSWAP2280 "} BCS SWAP2290 ;2300 XBYTETEST2310 ;2320 BEQ BYTETEST2330 ;2340 ; Due to postive-ascending2350 ; nature of program"} we check2360 ; if both are negative or if2370 ; the order is descending.2380 ;2390 ADJPOINT2400 LDA ORDER2410 "}STA TEMP2420 CLC 2430 TXA 2440 ADC SIGN2450 CMP #22460 BNE CHKTEMP2470 ;2480 LDA #12490 S"}BC ORDER2500 STA TEMP2510 CHKTEMP2520 LDA TEMP2530 BNE SWAPBD2540 ;2550 ADJPOINTBD ; The back door.2560"} CLC 2570 LDA SECOND2580 ADC RLEN2590 STA SECOND2600 LDA SECOND+12610 ADC #02620 STA SECOND"}+12630 ;2640 ; We have adjusted the 2nd2650 ; Decide if inner loop is done2660 ; by comparing 2nd to last to2670 ; see i"}f it is pointing to end2680 ; of data string. If not then2690 ; branch to the inner loop.2700 ;2710 CMP LAST+12720 "} BNE XINITSECOND2730 ;2740 LDA SECOND2750 CMP LAST2760 BNE XINITSECOND2770 ;2780 ; Adjust outer loop poin"}ter,2790 ; check if done. If not,2800 ; then go to SETSECOND2810 ; to reset the 2nd element to2820 ; point one record aw"}ay from the2830 ; new 1st element.2840 ;2850 CLC 2860 LDA FIRST2870 ADC RLEN ;Compare 1st &2880 ; 2nd on"} a byte-by-byte basis.2890 ; When we find non-equal bytes,2900 ; check for swap.2910 ;2920 STA FIRST2930 LDA FIR"}ST+12940 ADC #02950 STA FIRST+12960 CMP FLAST+12970 BNE XINITFIRST2980 ;2990 LDA FIRST3000 CMP"} FLAST3010 BNE XINITFIRST3020 ;3030 RTS ;Return to BASIC3040 ;3050 ; We make it to here if the3060 ; si"}gns and the lengths are3070 ; both equal. Now compare 1st3080 ; to 2nd (byte-by-byte).3090 ;3100 BYTETEST3110 ;3120 "} LDY OFFSET3130 ;3140 TESTLOOP3150 LDA (FIRST),Y3160 CMP (SECOND),Y3170 BEQ TESTMORE3180 ;3190 BCS XSW"}AP3200 ;3210 BCC ADJPOINT3220 ;3230 TESTMORE3240 INY 3250 CPY FEND3260 BEQ ADJPOINTBD3270 ;3280 " }BNE TESTLOOP3290 ;3300 .END "!} "{|#3#DEBUCHSEDDLIPLAYEOPMOVEPDEFPLYXXSCTTDONECGMATCHSSSYSXSMBLRNTARCCYXCMOV&#}PMBASMYC &$}@@&%}@ !"#$%&'()*+, &&} RECALLBY BARRY KOLBE(c)1988, ANTIC PUBLISHING(6-F:B2y,"@d AnQ A+@#&'}AV5AY@FGAR@Q A%x--6-F:A`,%AV$F:Aa,%@bF:,%A(.A&(}P:C:,'AV,PAC:,&AV$F:A,bBBAO6-@6-!-A(@ 1 2&)} 3 4 5 6O6-%@7 -)(@ 7 8 9 10 11 1276-%@7 -)(@13 14 15 16 17 187&*}6-%@7 -)(@19 20 21 22 23 2476-%@) -)(@25 26 27 28 29 30H6-&+}"@'6-@<6-?:C:,67<,. K67<,. U A ? A06-%@'6-&4}@3"@?6-! A0 AP! ASTICK MOVE$6-?:C:,:%Ab,_678@%,<8@%,,.>:%&=}Ab,W!@+678,<8,,.>:Au%,W678@%,<8@%,,.>:%Au, r-@@0&>}&68,-* 66-@RB6-@W68@,-o68@,-8@,r$ WINNING A@3&?}-@%$@&@$@J(@ 7<,p-@%$@&@$@(@ 7<,''&@}68%@,-8%@,%@++8@,%8@,@AuBB@d1-@AP@&A}=AQAAP&u2AP%@@A-@@ =2&B}A _B2H+1AR@C-@@_(The Winning player is  36-@'8&C}@,!8@,36-@B(-@@,(THE PUZZLE IS >-@@B( E-@@E( SCO&D}RES 1: 8@, 2: 8@,*3-@@3(Press to play again4.-@@.(Press &E} to quit> F:B2y,"@AH%F:B2y,"@"+%R A0\f INTROzg +@&F}A@01A ACAARUA@gA@P9-@@-(@ &G} 96-@ A A Pa-@@3(@ to chooseE-@@a(@&H} to begin!6-F:B2y,"@!$?"@ AP'6-%@3!@?6-@ A P&I} A n"@!-@@=(@ Ϡ O-@@ k(@> ONE PLAYER <n$b&J}-@@1(@> TWO PLAYER <C-@@ _(@ Š b$ GUESS`AR&K}'AdAU-(}?AV@QAW@](GUESS `'GAV@'AW@+14&L}=(CORRECTG A )6-%@"@)6-%AR@(}% AI?68%@,-8%@&M},%@&+8@,%8@,,I AP DELAY(-@A % A%($ SOUND$b%2A&N}@@9-@@P= _2b$. F:Ad,"AUAp8Ad&O}AU$B DELAYL-@@  $V`COMPUTERt?A)-@@)?-%@&P}@0~7<,4 A;7<,47<,6-6-1A@; A   AP@6&Q}-P:+&@,'@,66-&$@&@@ ApHA)-@@088,">6-H A&R}   APS"-@0%@6@18,"76-IA@S A RANDOM &S}MOVEu6-P:H:,$@,76-P:H:,$@,G6-$@%u(8,*8@,%8@, @A&T}8,A MOVE/6-@R%@$$/6-@$%@ "A4-N:&,$@$&B2H&U}0 A4  " $(5-N:&,$@$ A0. A2 5$26-?:C:,:,b" 6-@R6-@"$l!!A STITCH IN TIME SAVES NINEvTHE MERCHANT OF VENICE$$ROSES ARE&f} RED VIOLETS ARE BLUE!!CHARGE OF THE LIGHT BRIGADE##THE HOUND OF THE BASKERVILLESANTIC THE ATARI RESOURCE$$&g}HE WHO LAUGHS LAST LAUGHS BEST""THE WALRUS AND THE CARPENTER!!DECLARATION OF INDEPENDENCEALEXANDER THE GREAT&h} D1:RECALL.BASOF INDEPENDENCEALEXANDER THE GREAT$R} }  Lll L"! L"! VL"! l Lq!! "!LD:*.*S:P:E:l"!q"H) *j}h(`ӅԄՠ`ӅԄՠԨ`L)ӑ) `Ӣhh@,lHH!HwHHHHHӍl"H!H*k}yHl !`GHFHJ*K+\`* `Ӧee褌%ƉƋL"!*l}Ӡȱȱȱ㦌L"! ` ` `2a$%Ȏ!!xө~!!*m} ` `@X ` ~  } Ӣ ʎDy` SLD1:AUTORUN.CTBՠԢӱԙӹ*n}`֝DEIHB V0Z3ڝDa۝E8օܥׅݥܝHݝI V04Ӡڑڑ0*o} BLVl `˩`80 ` .JJJJ)iFiFi1FicFi'ȐȦoFiUȐFii*p}Fi#iFiGi Fii@F iiFiiciՊFigi'iՊօשBL`I))83*q}Ԥԥդե֤֥פץؤإ٤LK6"ХLaLaLa*r}E0:e٥eإeץe֥eՐ؅٥ׅإօץՅ֩L8٥إץ֥հ'I8م٘؅ؘׅט*s}օ֘ՅLؤm\G0Q@Ն֩م؅2եمֆשم"ե؅֥م׆ةեׅ֥؅ץم؆لԘ)q*t} ` ? 7i ? %!Ls`ԅՅօׅ؅م`ԍՍ֍*u}׍؍ٍ`ԍՍ֍׍؍ٍ``, Խսֽ׽ؽ` ,*v}`+ĕ ԅ)@ޥ)JJJe)e e Je0F g*w} Lm8`@ԠՈքׄ؄`==W3>Tvb>2b'?h`06?2'A?%C4Vu?f'70P@U??CBH ? & ? QL*x}m8`0 I@ԥ) oǢҠ 1  ؠ e Q ?P ¥Ii )ԅ +ĕ*y}Lm`@"wf?IWQpIG?9 Wa9cU? 0d? 9`?BXGB?7?()q?D>DIh8E?hyx? )D?@ (1V?*z}wD3331??xS48`$)Ԧƅƅƅƅƅƅ mť)8@0$Յ)e)e F*{} 䰃 e Q F I`U9>`D'RFuCU?b9dYdg@W2@?tS)%)@0)%ԅ*|}P 1 ;  e°0 Q (Vŕ ԅԥ  ƕ m`8``0?i? Q *}}ԍՍ֍׍؍ٍ * m N ǥ N 0 -åJeF g`L ) e٥eإe*~}ץe֥eՊi؊؅٥ׅإօץՅֆե1ԥ'JffffJffffJffffJffffم`ԩ&&&&*&&&&*&*}&&&*&&&&*``ۄܱ T **m ȰҠݤܱEۅڦڱ= bܥeƥ*}iեL@ ` **)]P` 00`` ( ((((((((8`W)ߥ & &e*} &߽aȅŊِ׼Ȅ⹕ȍqȅJJJJ&eXޥeYߥ䥈 9ȅFfЎᰈ Tȍ`Ȅ佘ȅ *}M 8*` Ȱi祍La L< ʘ0  L *} ȑ  L ʘ# ` |ʠ)ȱ Lt nʤ n |ʠ)ȱ)*} `ʠ)ȱ ʆ8ƍ0eސ`Ɗ8ް`)ȱJJJ```=*}`]``` H} h`Pi`)JJJeԅԘ)Peԅ`եԆ8@EB)JJJeԅԥ)Pe*}ԅԘ)eԅԽeՅ՘)JJJ}˅ԥ}˅`)JJJeԅԥ)PeԅԹeԅԹeՅդЧ` 0@P`'Nu pX@(#*}d,X L `8` ¥E)))8@8e0 څۅ܅݅ޅ߄ԠF0y ޥy ݥy ܥy ۥy*} ڥy و0ǠF0y ݥy ܥy ۥy ڥy ٥y ؈0ǠF0y ܥy ۥy ڥy ٥y إy*} ׈0ǠF0y ۥy ڥy ٥y إy ץy ֈ0ǠF0y ڥy ٥y إy ץy ֥y Ո*}0L`8`E)))8i@0 ڄԠ ( !   L* *} &О ( !   L* *} &О ( !   L* &О *}( !   L* &О ( !  *} L* &Оd ( !   L**} &ОL6 e e e e e i *} } } } } } } ǭ m m m m m m  } }*} } } } } ǥՅօׅ؅مԅՅօׅ؅`hh !LHH`ؠ*}ɀhhHH֥ץ?ȱȱӰ8ְױօօ0LB Fehler - à  in Ze*}ile  ($8H h ) Programmende : os, un oder oad ?@ !D L RL L Filen*}ame D: Jȱɛ):ȱɛ.ȩCȩTȩBȥ SLȹD:LKHJJJJ h) 0:iLp 8*}` B 0`L<馒撥ԝޥ՝*ޥ֝Tޥם~ޥ؝ޥٝ` ƒޅԽ*ޅսTޅֽ~ޅ׽ޅؽޅ`ƒޅ*ޅTޅ~ޅ㽨ޅ*}`撝ޘ*` ӥԝإ՝٥֝ڥםۥ؝ܥٝݥ`LT؅Խمսڅֽۅ׽܅ؽ݅`؅مڅۅ܅݅`*}ȱȱȱȱȱ`ȱȱȱȱȱ`٩@ةڝ۝ܝ`թ@ԩօׅ؅`  *}LQȱȱȱȱȱ`ȥȥȥȥȥ` wLH wh LQԄՠԅք` L *} !ԝD՝E֝HeםI L`Laee 8厅叅eeL!)*}L)`x,Ң⅌Ҙ襉ҥ `8$ L8$ ȍ` JKiLH h)*}I ! SLJUVT`T L) ʥԤհ` L ` !L8, !L8 ` iLJ놈 LJ놈 ,LQ*} HԝDEILꆓBJKԝD՝E CL8醈 B LJ놈& LM J릓N*}LJL)NLM%L L j L `L=! Sp D o 8*} LpL ,#,$,!pLL ,HBDEhHIL oL8馓HIBL !L8ɅĈeɐ ň*}`֥ԅԅՅ,`$8n!?! D i\ iU?! iD iE=D iH ih8DHEI*}HI C ,!L `L= JhhlԄե֥נȱհ  ȱօȱօ` L=Ԅ՘0)*}ȱհ ȱe懰楆ƇƆ`L)L=醈ɛi懠,ɛ󥆦 Seօ` Lt Ԥբ*}H e" hLQL=醈 *? , DEHI ` DLr 4 e"ɛ ,ЬLQ DL*} 4eɛ SLtI L L L L L@ ; ` ; ` ; *} ` ; m` L=@@ȅ@`I`)` ; USN ; FG ; ?: ; *}201 ; &' ;  ;% ;L Lå ` : : :ڰ :ΰ :ǰ :оE%*} jE `0``֪ (ϰ`(8`8` *}ԤՅ` e"4 L= Ԅձ80  &ԅ L  eԪp`L) HJJJJ *}h) 0:i`Ԅ 0 ["ȱ)ȥ,  ՅԄ֩`?Ԣ )ɠڭ ) ڕL*} ^ L)8@L` )8@D:)8@-٩֔$ሄL` *} ^Ű$` hŰ` &ư` Rİ` Vİ ` rð` ƐL=0L L ;&)ԥ)8@עJjH@M*}C)JJJe)e F ¥P & F Q LL)HHHHHH Vİhhhhhh ðh*}ԅ` L %ઘ%ᨊ` ઘᨊ` EઘEᨊ`<|'gԥ0L=`  *  &L_,*}ڄ  eڅԥeۅհ"8څ֥ۅא8ܥݰ`۠Q%0ԅإՅ٥ަ0%Q% L*}ե0Lڤ`օנ6&֐ eו`L)ԘբՅ Ԣ Յ֠&&֐eܥe*}ېڈ $0!ee80å/8ܥ۰uڕ0eUiV`T*}UV`8UV`eTi`8TȢ` !L8醊 æ f Ŋ :ƒޑȽ*ޑ*}ȽTޑȽ~ޑȽޑȽޑȥԑȥՑȥ֑ȥבȥؑȥّȥȩhihHiH&HHH wh Lhh`hh`8*}` L=醊 f ŊHȱȱȱȱȱ妊 w Qh LhhHHe`*ȱȱ*}ȱȱȱjEE `EjI ` p D il ie o"p"q" i i i i i io"8*}o" K膖  Lo"L=؝ٝڝ۝ܝ륄Lei  *}`L=饏őŐ%Ƒ8 Ƒ` f,L= fhhHH`, :hihHi*}H`` J :hihil  ¥Ӡ L  @Մ$ Q` Q` QLQH *} h @Յ՘JJJJ y) 0:i`AVC2 5 - <) - < *}L L e e`e`&&&&&&eee` &&eee&*` u*}8)Ӱ% hhȱԅȱԅl ʰԤզ`hhheӨhiHH` u u88Ӱڪ :(jheӑhi Lh*}פօۄڠ܄ݠFfؐeڅܥeۅ0&ۈ`L >ӆiHi0Hƒiֹ*i0Ѕ &ݤݥ &e܅ܘe݅*}hhLlӅ؄م܄0օצӽАԥեܤ Q `ƒ*ޅޅ wإ*}ٰ5֥װ+ eܥe*ݨ &eܪeeըeԐ`L L L ӆ 4Ԥզ L_ ӆ Ԥզ L*}_ L LL=ӦԆՆֆ׆Lw Y٤ ۘ` Y  L~ Y ې Hh`פōČԅe*}Յe &"8ӥب`ƒޅ*ޅ L=؅مƒ8*ޥ֥אeԥe`*} w㰶H wֆ׆h8Lԩ!HHֆ׊HHʽ޼*ԆեHL!àLLeԐ `8԰L)*} w㰶H wֆ׆h8Lԩ!HHֆ׊HHʽ޼*ԆեHL!àLLeԐ `8԰L)(