@L}5 _$% l0$)$$Hȱ$ UhL" `e$$%`$%`  R@W!( L(1   Y I`  d  Ld M * @  $ % CC$$)%1 Udߥ$9%: !0 S$% DD˙`  }J)Lr ɩeFFe8ɢ,  )8)80hl 0 H载hL< /) H轥heeL 0ԩe1Lg3%!44,%05'%43/5.$ !4!2) #/-054%2%.4(53)!343 present $)3+%$5#!4)/.!ug.keFSP]d+d+ddnP!nnnnndnnoo.nnkpoooooojc fY fYfY fY fYfYqfYrfYrfYfYfYfYfYfYfYfYfY kAhiC=li]fY 4PWEV(TQJ"fY 4PWE<XP$fY 4PiE"Zh1]fY =PWE<`R"fY 0[WEVTVR"fY ]YIhiC.>=,?fY@ C4&$"m44fY@ C4s$"b4140fY@ U9_a*MT;,;0fY@ _UP -"0acY_UP 27P&6\@_UP 2%"0:H_UP .,3"1gNR!_UP 1>"0"4@_UP 1"0&4@_UP (, lh_T_UPU_PU_PU_PU_PU_P o5oU_PU_PU_PU_P kbk>B!@*OU_P 4V4TaAK@U_P 4V0P4$@U_P 4V<=_! !U_P 4V001E U_P 4V5RHU_P k>?X`ccdfflpqsvwx|~6  (*  (@AEPQTUUUUUUUUUUUUUUUUUUUW__}t 2kZkkkl,lblpBkOp]AeLd 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 0} L ? .  t`GBJ ~DEHI B V0dV1}QDEHI VF9 ,0 ,0 s0hhL  L` H hDHEh2}DEL8HI4 0 HI,0 0  9 .G VLO3},0 L4*IJ`llD1:A*.SYSNEED MEM.SAV TO LOAD THIS FILE.D1:MEM.SAV J y08 B|DEHI4} V0 0`B;DEL`?<0LV`@ʆ v s? F0Ξ05: [ BDEHI5} VY8 B V  @  /DE `E:D1:DUP.SYSERROR-SAVING USER MEMORY ON DISKTYPE Y TO 6}STILL RUN DOS B;DE J  (` 9 V⪍ ઍ  -7}LLu ÝDEHILV 9 .l 9 .l  `` s$B BH8}I|DE V BLV nB,DE JLV B V BLVDEIʩ BꭝLu }J) !"`3!3}  education36-96-?6-, B:, %(7<%,0 , T 67,.6-%->(>:%A ?},...7<%,F"%N6-%T6- 6-%6-% 5 %5($ Ҡ, @} )6-&$  )!,6-$&& 9 6.D:67,.7<%&,(-&57<,0 9  77%<%,0 !67< A},..767%,.7%<%&, 2 %%.( 7<%,2% ( %(6-?:AUv, 7 % B}( κ'-$+ 1 %7 &1  %D:*.*.K:1$ D1:M m)*z= K CHARCNROCOCHAOLDCHASNDELARESTARD} JJǠҬš箠 򸳬緶î +@%@1-@E}1(@##@@K:((6-(ZERO CHARACTER COUNTERc00** ROUTINE TO EF}NTER CHARACTER POS. DATA **d*-@@*ROW DATA TO POKEx--@@-COLUMN DATA TO POKE"G}"  A "6@APA6%+$@,;A6%+$@,%@PPOKE POSITION H}DATA8 -!(@>:%A(,8PRINT CHAR TO SCREEN  A 33** START CLOCK AND SELECT RANDOM CHARACI}TER **p-@@3(@ANY KEY TO START@)@R-@@p(@ 3J}@3ZERO AND START TIME COUNTERC'6-P:+H:,$@I,%@B,CCHOOSE A RANDOM CHARACTERK/"@cK})"@d)"@X)"A KIGNORE CERTAIN CHARACTERS 6-E-@ @%(@>:,EPRINT RANDOM NUL}MBER CHARACTER+ F:@,@A+TIME UP?' F:Ad,"AUA`+!!** PROCESS YOUR RESPONSE **,M})@1F%2@@@36-%@FADD ONE TO TOTAL6/%2/ AN}@((@>:,(FLASH CHARACTER...J-@@ T A^5(@>:%A(,5...AND RETO}URN TO NORMALh +2AP@@?-@@C e2s6-&@P}YOU ERROREDr A 00** POSITION CURSOR OVER TYPED CHARACTER **E A`E-F:A6%+$@,,F:A6Q}%+$@,%@,$%%** CALCULATE AND PRINT SCORE **"-@ @"(@4-@@4(R}@CHARACTERS/MINUTE5-@@5(@HIT 'R' TO RESTART-@@%%2@0S}@@&-@@P 0)%2) : @A@D)@T}"@:R,%@@** ATASCII DATA IN INDIVIDUAL KEYBOARD ROWS AND COLUMNS **++49,50,51,52,53,54,55,56,57,48,60,62,0U}++81,87,69,82,84,89,85,73,79,80,45,61,0..32,65,83,68,70,71,72,74,75,76,59,43,42,0))32,90,88,67,86,66,78,77,44,46,47V},-1D1:TYPNOr%%WCCHADTDTDHDHDLDLLABCQCSTUDEFFRRRRRRNPX} PY} !"#PZ}$%&'(LLŠŠֱ̠󬠷ӪЪêŠ󠱰 5P[};A,56-?:C: hhh`,<Bpr&C:,,dd6.ZDDs1U2?/'#! 08<>xjL     P\}xHHҠ8pm67@,.Z;8!0,8:& 8* Ґ ҍҌhP]}hh X@p(c6-Ad6-A6'6-A836-A9?6-A@K6-AAW6-ABc6-AC2?#@P^}@K:5@@?+<GG;@D,;@5,;@5,;@5,;@,;A,F,,6P_}." P,,6."Z6.  d666.,FVB1RLI2GKT3P`}OZD4YAM5CQS6HXJ7WN.8P?,9UE/0:;-.n/6-6-@% A/ A%2@G2@Pa}@i2@@@{B7h@A0@hA1@'@Pb}A'B7tA16-@6-B`'6-A1 Aq"$,6-++AAPc}=A @OAR@S(W(|(  MORSE CODE TUTORIAL (62&( by Richard Watts *Pd}(.(2(@l( A&-@@26-@g< A`H6-@R A`^6-@2h A`l Jp-Pe}@@ (MENU"(I(" 1  MORSE CODE TUTORIAL p(" 2  SEND CODE FROM KEYBOARD TQ*(" 3  SEND RPf}ANDOM WORDS Q(" 4  SEND RANDOM CHARACTERS ^Q*(" 5  SEND RANDOM CALL SIGNS Q(" 6  CHANGE INTEPg}R-CHARACTER & hU*("  INTER-WORD SPACING Q(" 7  QUIT (to disk MENU) U(r? Ap@Ph}@"?( |`)@*6-+!@2* @9,B6-&@H%@$` @)!@RN} !CABADANSLSKEERNUR'2Y2A3$&@ @@ @j} @C  ffATARI USERS GROUP PROGRAM. PERMISSION TO USE, NOT FOR SALE. EFFECTk}IVE August 1, 1980''ǠǛ'Written by:'Clark Peterson'5931 Clydesdale Ave'San Jose, Cl}a. 95123'';;Typing drills for all letters of the alphabet.'11Typing errors will appear in inverse video.'m}AABackspace not allowed during practice so Buzzer will sound.' This is NOT a timed drill.#'$' ;@, CHAR Fn}ROM KEY.'!;@8,!Data for Drill8';@P,;@P,B'9@P,L';@,`''@@'Seo}t Left Marginj' B t'; +7 $ What lesson do you want ? (1-9) ;~'#B %A$'   LESSOp}N # '." New letters this lesson :. B0%'[- % Home Keys - and Q( Place fingers on homq}e keys. [ B'    B'(  & Ԡ ( B'#  (Period)# B'r}  none  B')  & Ԡ ) B'#  (Comma) # B'    Bs}'    B'##@@K:' (  Press ӯ Key.';F:Ad,@`" B t};Wait for CAPS/LOWR Key'-@@(" ([-@B:,!7<,4.67<,.,[Reset Inverse Videu}o Commas from READ DATA( ( }(-@@(( ( ( 2(-@B:,<()@6.>:,F(Lv}"A&  BLSound Buzzer - Backspace not allowed hereP(47<, Z(.07<, >:%A(,.Inw}verse Videod( n( x( (e% } Press R to repeat lesson C( N for next lesson e( Any other key x}to exit ()@6.>:,(@(+4r,)+4R, B(-+4n,)+4N,#6-%@- By}**ERROR TRAP* 6-F:A, Error Numbr*6%6-AV$F:A,%F:A,6Return Address*-"@# z}Enter a Number- B *@ B * END OF PRACTICE. *? B !-@A% ) ?Re{}set Trap & Return*3 ERROR  AT LINE !&3UNPLANNED ERROR.Typing Practice DataD/##ff jj fj fj dd kk fd jk f|}d jkN/,,ss ll fs jl fs jl aa ;; fa j; fa j; fjX/%%hh hj ha has has had had la ladb/''a s as as k ask h has a l all all}}l/**all fall all fall all hall hall fallv/((as has add had all all lad has had/++ask all; ask a lad; a lad had a fall;~}/++hj ha has had had la lad a as ask has/++all fall all hall as has add had lad;/&&a lad had a fall; ask a lad all;}/ff jj dd kk ss ll aa ;;/ hj hj ha hs hd hf hj hk hl/))fasdf j;lkj fasdf j;lkj fasdf j;lkj/))ask all; all fall; }a lad had a fall/++u uj uj e ed ed uj ed g gf gf uj ed g/))uj gf juj ed due due jug due judge;/++as ask keg jug all }due head hedge due/))us use due jug use due ask all due;/''a lad held a full keg as he fell;0''he had a keg; he used} a full keg; 0,,uj ed gf hj fd jk ds kl sa l; gf uj ed0,,use due jug ask all lad led dusk fell; 0,,o o ol old t t tf t}o told told tf o ol*0**n n nj nj an and on ton son and son;40,,of of to an and and do go to ton; ton;>0((old fold sold }to told an tan tank;H0**he had to; he had to go to the lake;R0&&a lad found the dog at the lake;\0((that lad has sung t}hese old songs;f0,,Lee told Hal; Jake and Hal; John told;p0$$an and he the go got; He then;z0$$Hal sold the old house t}o Lee;0++Jake sold that log house at the lake;0++i ik if r rf fir sir fir aid rid sir;0&&I did a line right. It is }fine.0,,.for fir sir he the it is if or do go;0&&Hal has the right kind of light.0,,Len said Jake had fought a hard }fight.0++I think Ken Hart should getthis land.0**I think this the right drill for us.0--I had to take a drill for ju}st an hour.0**Let us lend a hand to those in need.0&&e he he i t it it u us o of n an0**to go if to it is do so or a}n and so0$$I feel sure the drill is good.1))He did not do the drill just right.1**Ken said the line is too hard to d}o.1,,Jake thought he had to do these drills$1,,Let us do all of these lines for Nell..1&&I like to do a thing just rig}ht.81''Hal has gone to lake to see Jane.B1++c cd cod m mj am jam jam w ws sow mowL1,,am cam old cold am jam ham sow mow} cowV1**It is right to do all the work well.`1((That is the man who did this work.j1''We can do more work in less time.}t1((Al works well with me. Don works.~1,,We can go in a week. We will go then.1,,Work well with them. Do all the wo}rk.1((Sam has done all of our work well.1,,I can learn to like to like that work.1**v vf five hive q qa qu quick k} k1&&Ev John and I work quite well.1))Vern works quite well so does Hal.1((Ev is quick; and I too am quick.}1$$I want to do as well as I can.1))We must know and know that we know.1((It is right to learn to work hard.1((It t}akes time to learn. Do right.1''I want to do well. We must know.2--Vern is as quick as James I feel sure. 2((bf fi}b rib rob p; pad za zeal zone2++bug big bog rub map cup dip zeal zinc2++Be quick to work and work with zeal.(2,,Both} of us have zeal for this big job.22**Paul has said the quiz is this week.<2++Brad paid them well all for the food.F2,,}is us it is us he to do as he to do asP2))big bug but pan pal map pan pal mapZ2,,rob rib rub quit quick quit quick quizd}2**We have picked Joe for the big quiz.n2**He can win the goal if he does well.x2**y yj by jay may x xs six ? ?; Is it?}2++way jay hay may fix six box next they2,,May says the laws can be fixed for us.2,,The truth I know: He wins when w}orks.2##May I see the Quick Mix meal?2,,Will Van pick the six men for my quiz?2++Sit up. Keep your feet on the floo}r.2''Strike the key with a sharp blow. D1:TYPING2<EF!"CHECKSPACEPMMISSILEPLAYER1OBJECTBNONAMENAMEARRAYINDEA@iu}u @AU B %%*******************************}%%** ɠ *%%******************************* q +A@1A@C-}q((РǠԠɠӠ5#@@K:5@q +}A@1A@C-q((РǠԠɠӠ A BP}XX(P} If you'd have asked someone what they thought of the ATARI before you boughtWW(Oit, you wouldn't be with us} now. But the more we use ATARI strings, the more#RR(Jwe realize the ingenious method ATARI used in their design...th}e word is(g( SIMPLICITY!(g(L In this lesson, we'll demonstrate how to create a string array, how to use-OO(Gstrin}gs for graphics storage, how to usethem to speed up Player/Missile2YY(PGraphics, and how to use them to save memory. And} except for the first option,7JJ(Beverything we show you can't even be done by many other micros!<X(X(M So the n}ext time one of your friends starts bragging about his TRaSh-80 orAzf(]other computer...well, we don't have to tell you w}hat to do. After all, you did buy an ATARI.p Az AFV(V(K When you dimension a string, memory isreserved i}n the next byte after theKYY(Plast string you dimensioned. The first string dimensioned is stored in the nextPUU(Mbyt}e after the end of the current program in RAM. To find out where theUVV(Naddress of a string begins, use the ADR com}mand. Unlike MICROSOFT Basic, ATARIZYY(PBasic doesn't let you dimension a stringas an array. When you dimension a string}_UU(Mas 50 long, (ie. DIM S$(50) ), you are allocating 50 bytes of space for thisdSS(Kstring. If you wish to design a s}tring array, you must follow three steps:iF(F(; 1. Decide how long each string in the array will be.nUU(M 2. }DIMension a string that will be long enough to hold this string.sTT(L 3. Then decide how many elements you }will need in the array (ie. howx=)(! many names in a name file.).3 A= A}B( Here's an example:.B}PBP`8 AB ATT(L You can use strings for graphics also.Let's say you're using graphics fiveUU(M}(ie. GR.5). Instead of PLOT and DRAWTO, you can POSITION and PRINT#6 (in caseYY(Pyou didn't know you use IOCB #6 to }print in modes above GR.0). All you haveYY(Pto remember is that a 0 corresponds to color register 0, 1 corresponds to c}olorQQ(Iregister 1, etc. In other words, if you set a string equal to '0123', andVV(Nprinted it on the screen in a h}igh-res mode you would see 3 different coloredWW(Opixels. You can't see the pixel where weprinted the '0', because it wa}s printed[.(&on the screen in the background color.1([(% We realize that we're glancing overUU(Mall the string in}formation, but the purpose of this tutorial is to informgS(Kyou of the many uses of ATARI Strings...the experimentati}on is left to you!] Ag AYY(P You may have noticed a box figure bouncing around the first screen in thi}sUU(Mtutorial. That box was a Player/Missile,and we made it move around at machineVV(Nlanguage speed, without one io}ta of 6502assembler language code! How? Well, weUU(Mused strings. We don't have the space here to explain everything yo}u wantedVV(Nto know about player/missile graphics but were afraid to ask, but here are aw&(few addresses to keep i}n mind:)(w(I 54279 - base address of PM Graphics 53277 - a 3 enables PM Graphicsss(k a 0 disenables it } 704 - color of player 0 559 - 46 is double-linejj(b resolution } 53248 - horizontal position of player 0 A Ah,($ Let's take a look at how we did it}:6BP9(<(h(' First we DIMensioned a string (CHECK$)WW(Oto find the address where this string isstored. Then we }dimensioned SPACE$, andVV(Nused the above formula to ensure that the next string we dimension begins onWW(Oa 1K bou}ndary (required to use PM Graphics). Then we dimensioned PM$. PM$WW(Ois the first 384 bytes of PM Graphics which }are unused by Players & Missiles.YY(PThe Missiles (0-3) occupy the next 128 bytes, and then we dimensioned PLAYER1$.}_K(CThis is where we will store the box to be displayed on the screen.U A_ ApBP BP`(((p(}M Then we used the 'trick' in line 25020to clear out strings (and PM memory). YE(=In line 25050, we read in the box and } stored it in OBJECT$.O AY AtBPeBP(((t(P Line 25075 is where we set the color of Play}er 0 to green (198). Then we toldSS(Kthe ATARI to position Player/Missile graphics where it stored PM$. Afterpp(h}enabling double-line resolution players,and player missile graphics, we're readyto start moving our box. A A}tBPBQ(((t(P In line 25095, we store our box in the PLAYER1$, and the rest of the lines move"|h(}`the box from left to right, up to down, right to left, and down to up. Try it...it's easy to do!r A| A,Y(Y}(N Our last example involves saving memory by using strings. Everytime you1SS(Kuse a number in your program, you us}e up6 bytes...which is a lot of memory!6VV(NYou can save memory by defining numeric variables in DATA statements, but this};zz(ris still not the most efficient way to go about it. Let's look at an example bycomparing these 2 DATA statements:@}O(1(&1 DATA 128,128,128,128,128,128,128,1284(O(1 DATA ,,,,,,,EZ(Z(O The first DATA statement takes up 37} bytes of RAM, while the second takes upJUU(Monly 21 bytes. While they don't look thesame the second statement is really }8OWW(OCHR$(128)'s, which you can READ in and translate into numbers by using the ASCT$(command. A$ A}^b( ( ((b(N Well, we've only just scratched the surface of the capabilities of stringscTT(Lon the ATARI. We hop}e we've aroused yourcuriousity enough so that you'll sithSS(Kdown and experiment with what we've mentioned here. Pleas}e send us yourmVV(Nquestions, suggestions, and results, so we can explore them in our next lessonr(on ATARI Strings.}|x-@#76-F:@,%F:@,$AVd('䠠x%A YA(})@>:,4R%>:,0EA7@ @@* A7%D:MENU.* B+}{-@#76-F:@,%F:@,$AVd('堠x%A YA({}$)@(}$:^^DIMENSION 2 STRINGS: 1 TO HOLD EACH ELEMENT AND 1 TO HOLD ALL ELEMENTS:})6-@);@0,;$@0,:55SET ALL BYTES OF THE ARRAY$ TO SPACES.:@67@,. %67A,.} 467@,.@6-:INPUT A NAME::GGIF NAME$<>30 BYTES LONG THEN FILL THE REST WITH SPACE}S:2B:,@0(67B:,%@,. 2 BP5:NOW STICK IT IN THE ARRAY:<.67$@0%@<$@0%@0},.<6-%@:##KEEP GOING TILL INDEX=NONAMES:BP%:a" +AR@"(acc;@,};+P:C:,'A$,%@,$A$&C:,&@,;A,;A(,;A(,aCLEAR MISSILE MEMORYa@67@,}.%67A,.467@,.:6.@6.aREAD IN PLAYERa;@,6.a7 #BP`!-@@ %}"367<,.>:,7 a%%255,255,195,195,195,195,255,255aaddLET'S HAVE SOME COLOR AND SOME SIZE CONT}ROL AND SOME ENABLING!aPAA,BByC:,'AV>AY@FPB2w@a}a77POSITION OBJECT ON SCREEN AND MOVE ITb67@,. b'-@GA#B2H' b$-@}A 67,.$ b0 -A@G6@,B2H0 b- -A@6@)67,.-  b F:A}d,"AUBQ%b<AdAU'B2w9B2H<$ D1:STRINGSe VSSFS@2B6AA&A$** ** a} AF:A,&@A6-+F:A,%@,$AVa@@K: q +AAH}1@C-q((ɠ󠠠 (堠 SS(K If you }have faithfully read the ATARI manual, you already know how to useSS(K If you have faithfully read the ATARI manual, you} already know how to useVV(NBASIC graphic commands. Unfortunately, the dictionary of commands provided doTT(Lnot let} you utilize ATARI graphics to their fullest potential. There is noTT(Lcommand to allow you to redesign a characte}r, no command to let you mix#SS(Kgraphics modes, nothing that let's you print characters in hi-res graphics(PP(Hmodes,} no way to access Players and missiles without complicated and-VV(Nroundabout subroutines. Our goal in thislesson is t}o let you know ways you can2_6(.utilize more of the capability of your ATARI._($ First of all, you should never use7}`V(NSETCOLOR command. You can 'POKE' colors onto the screen utilizing less memory.` B<WW(OReading the manual infor}ms you there are5 color registers (0-4). Locations 708,AWW(O709,710,711,and 712 correspond to these registers. As you can }see, the color ofFTT(La GR.0 screen is blue when first turn onyour ATARi. Translated to a SETCOLORK[;(3command, the sam}e color can be achieved as follows:>([( SETCOLOR 2,,PV(V(K This loads color register 2 with color9, and }luminance 4...blue. LocationUVV(N710 is the shadow register for color register 2. To get the same blue colorZqM(Eon }your screen you would POKE 710,148. Here's how we arrived at 148:P(q( * 16 + = 148_G(=(2where 9 is t}he color number and 4 is theluminance.G BdTT(L You can use the same idea to get any color onto your screen, using} any ofiw(the 5 color registers.!(w(P You can also change the character set very easily by knowing and understanding}nUU(Ma few locations in memory. The first is 57344 (decimal). This is the start ofsTT(Lthe character table in ROM. The} table takes up 1K of RAM (1024 bytes), abdxYY(Pends at 58367. Another location we need to know is 106. value in this by}te let's}WW(Ous know where the top of memory is.The last location we need is 756. The valueWW(Oin here tells us wher}e the character table starts. Let's take a look at what<(( is in these locations right now:2 A< Bd }A(d(O If you multiply the value found in location 106 by 256, you'll end up withVV(Nthe location of the top }of memory. If you multiply the value in location 756UU(Mby 256, you have 57344...which as we said is the location of} the beginningt(of the character table."(t(M Before we can go any further, we have to understand how the character }tableVV(Nis set up. We know there are 256 ATASCII characters. However, there areRR(Jonly 128 different charact}ers. The rest are the same characters printed inVV(Ninverse. Since we that the character table is 1024 bytes long, and} 1024/128a.(&is equal to 8, we can deduce that your8 B;(a(!ATARI uses 8 bytes to define eachUU(MATASCII cha}racter. It's not hard to change the character set with what weUU(Mnow know...the only problem is that the character s}et is in ROM, and we can'tWW(Ochange the contents. What we have to do is move the character table from ROM toPP(HRAM,} change the pointer in location 756 to point to the new start of theYY(Pcharacter set, and lower the top of RAM below the} table so we don't accidentallyRR(Jwrite over it. To change a character, all we have to do is change any ofRR(Jthe} 8 byte combinations that correspond to a character you want to change.WW(OThere are some other things to keep in mind w}hen changing characters, so let's'(look at an example...' BTT(L Take a look at the following figures. Notic}e that they occupy an 8X8 grid,K;(3which is the size of all ATASCII characters:>(H AK(WW(O Somehow we} have to translate these two potential characters into 8 numbers for_U(Meach character. Well, everyone should know that} each bytes contains 8 bits._ Bf A(f(P The easiest way to understand bytes andbits is to know that 1 bit} can either beVV(Na 1 (ON) or a 0 (OFF). One byte can be any number between 0 and 255. Each bitYY(Pin a byte has it}'s own value range. Bit 'A' = 128 if it's on, and 0 if it's off.[Q(IBit 'B' = 64 on and 0 off. Look at the list to the }right of the figures.[ B A,$(!( ABCDEFGH ABCDEFGH$(-))(! 1 A = 128.)})(! 2 B = 64/))(! 3 C = 320yy(q 4 D = 16 } 5 E = 8 6 F = 41TQ(I 7 G = 2 8} H = 1T$(%(} ABCDEFGH ABCDEFGH((//(' 1 = 126 = 126 //}(' 2 = 255 = 255 //(' 3 = 153 = 189 zz(r 4 = 219  } = 153 5 = 255 = 255 6 = 195 = 219ZW(O 7 = 219 =  }195 8 = 126 = 126 Z$f A(f(P Above are results of the calculations we made for e }ach byte. The first byte of\8(0the left character was figured as follows:;(\( 7 6 5 4 3 2 1 0J! }( $(J(! 64+32+16+ 8+ 4 = 126Q(G(}LLOWING TABLE ON THE NEXT SCREEN TO CALCULATE THE NUMBER OF MODE LINES ARE DESIRED FOR EACH GRAPHICS MODE SUCH THAT 1?}THE TOTAL NUMBER OF SCANLINES = 192. EXAMPLE: GR.1 6 MODE LINES 8 SCAN LINES PER= 1@}48 SCAN LINES -------------------GR.7 56 MODE LINES 2 SCAN LINES PER= 112 SCAN LINES REPEAT FOR GR.2= 32 S-1A}LINES=192. scan lines per mode:ӠӭӠ GR.0 8 GR.1 8 GR.2 11B}6 GR.3 8 GR.4 4 GR.5 4 GR.6 2 GR.7 2 GR.8 1 1C} THERE ARE ALSO 5 OTHER INTERMEDIATE GRAPHICS MODES THAT THE OPERATING SYSTEMDOES NOT HANDLE BUT 1D}YOU CAN USE THEM BY CHANGING YOUR DISPLAY LIST. THEY ARE AS FOLLOWS: gr. colors s-lines 1E} 0.1 1.5 10 0.2 4.0 8 0.3 4.0 16 6.5 2.0 1 7.5 4.0 1 1F} THESE MODES ARE VERY INTERESTING. YOU MAY HAVE A 4 COLOR GRAPHICS MODE 0 IF YOU USE GRAPHICS MODE 01G}.2 GRAPHICS MODES 9, 10AND 11 ARE SPECIAL MODES ACCESSED BY THE gtia CHIP AND WILL NOT BE DISCUSSED IN THIS 1H}DEMONSTRATION. step IF THE MAXIMUM RAM MODE IS AT THE TOP OF THE SCREEN, THEN SKIP 1I}THIS STEP. CALCULATE THE LOAD MEMORY SCAN (LMS) BYTE BY ADDING 64 TOTHE OPERATING SYSTEMGRAPHICS MODE BYTE. THESE LMS 1J}BYTES CAN BE FOUND ON THE FOLLOWING TABLE AND ALSO IN THE HARDWAREMANUAL. 1K} lms OP SYS MODE + 64=LMS1L}2 (0) + 64 =66 3 (0.1) + 64 =67 4 (0.2) + 64 =68 5 (0.3) + 64 =69 6 (1) + 64 =70 7 (2) + 64 =71 8 (3)1M} + 64 =72 9 (4) + 64 =73 10(5) + 64 =74 11(6) + 64 =75 12(6.5) + 64 =76 13(7) + 64 =77 14(7.5) + 1N}64 =78 15(8) + 64 =79 FOR OUR EXAMPLE: LMS FOR GR. 1=70 1O} 𠣴 CALCULATE THE MODE BYTE FOR EACH MODE. THESE BYTES CAN BE 1P}FOUND ON THE PREVIOUS TABLE OR FROM THE FOLLOWING TABLE. FOR OUR EXAMPLE: GR.1 = 6 GR.7 1Q}= 13 GR.2 = 7 1R} operating system mode bytes 1S} GR. OP. SYS MODE 0 2 0.1 3 0.2 4 1T} 0.3 5 1 6 2 7 3 8 4 9 5 10 6 1U} 11 6.5 12 7 13 7.5 14 8 15 1V} 𠣵 CONVERT ALL BYTES TODECIMAL. 1W} YOU MAY SKIP THIS STEP, SINCE THE CONVERSION HAS ALREADY BEEN MADE. 1X} 1Y} Р 1Z} EXECUTE A GRAPHICS CALL ON THE COMPUTERUSING THE MAXIMUM RAM MODE FOUND IN STEP #1. 1[} EXAMPLE: 10 GR.7 +16 1\} OR 10 GR.23 1]} Р LOCATE THE DISPLAY LIST BY DOING A PEEK OF ME1^}MORY LOCATIONS 560 AND 561. THESE MEMORY LOCATIONS STORE THE ADDRESS OF THE DISPLAY LIST. 1_} EXAMPLE: 20 DISLIST=PEEK(560) +PEEK(561)*256 + 4 1`}YOU WILL HAVE TO ADD4 TO LOCATE THE LMS BYTE. Р 1a} IF THE MAXIMUM RAM MODE IS AT THE TOP OF THE SCREEN, THEN SKIP THIS STEP. POKE THE L1b}MS BYTE INTO DISLIST-1. EXAMPLE: 30 POKE DISLIST-1,70 1c} THE LMS BYTE TELLS THE COMPUTER WHAT MODE IS ON THE TOP OF THE SCREEN AS WELL AS TELLING THE COMPUTER WHERE TO 1d}GET THE SCREEN DATA WHICH IS PROVIDED - BY THE TWO BYTES FOLLOWING THE LMS BYTE. Р1e} EVERY MODE LINE REQUIRES AN OPERATING SYSTEM MODE BYTE IN THE DISPLAY LI1f}ST IN THE SAME ORDER AS THE MODE LINES APPEAR ON THE SCREEN. THE MODE BYTES MUST BE POKED INTO THE DISPLAY LIST AT1g} LOCATION DISLIST+ OFFSET, WHERE OFFSET= MODE LINE #. Ǡbytes 1q}BŠb%DOS SYSb9AUTORUN SYSb :MENU SYSbCTYPING b1iTYPING2 bDSTRINGS b?GRAPHICS b DL b'GRMODE1 LSTb)GRMODE2 LSTb+COUNT DATb,DEAN DATb DEAN FNTbDEAN MAXbINPUT DATb MAX FNTbPRINT DATb DUTILITY b=ESTIMATE bKWMORSCODE b"ELEKEYER b$CANDLE FOR EXAMPLE: MODE LINE# POKE GR.1 2 POKE DISLIST +2,6 1r} 3 POKE DISLIST +3,6 4 POKE DISLIST +4,6 5 POKE DISLIST +5,6 6 PO1s}KE DISLIST +6,6 GR.7 SEE NEXT PAGE GR.2 63 POKE DISLIST +63,7 64 POKE DISLIST +64,71t} GRAPHICS MODE 7 IS THE MAXIMUM RAM MODEAND THE MODE BYTES WERE ALREADY POKED 1u}IN BY EXECUTING A GRAPHICS 7 + 16 COMMAND, THEREFORE THE MODE BYTES NEED NOT BE POKED IN FOR THE MAXIMUM RAM MODE.1v} JUST SKIP THEM. 1w} Р 1x} POKE A JUMP INSTRUCTION FOLLOWEDBY THE LO BYTE AND THE HIGH BYTE OF THEADDRESS OF THE 1y}DISPLAY LIST. YOU MUST DO THIS IN ORDER TO TELL THE COMPUTER TO JUMP BACK TO THE START OFTHE DISPLAY LIST TO DI1z}SPLAY THE SCREEN CONTINUOUSLY. THE JUMP COMMAND = 65 THE LO BYTE =PEEK (5601{}) THE HI BYTE =PEEK (561) ϠŠРĺ FOR EXAMPLE: 1|} POKE DISLIST+65,65 NOW THE ADDRESS POKE DISLIST+66, 1}} PEEK(560) POKE DISLIST+67, PEEK(561) YOU NOW HAVE A CUSTO1~}M MADE DISPLAY LIST, BUT NOW HOW DOYOU PRINT AND PLOT IN THIS FANCY SCREEN? FOLLOW THE NEXT STEPS. 1} and plotΠĠ Р IF THE MODE LIN1}E #'SF A MODE ON THE SCREEN FALL WITHIN THE RANGE OF THAT MODE'S NORMAL MODE LINE #'S THEN USE THE FOLLOWING 1}PROCEDURE: a. POKE 87,MODE # b. DETERMINE THE Y COORDINATE BY COUNTING THE # OF MODE LINES FROM TH1}E TOP OF THE SCREEN TO THE CURRENT POSITION.c. DETERMINE THE X POSITION IN THE NORMAL MANNER FOR THAT MO1}DE. d. DEPENDING ON THE MODE, EITHER PLOT AND DRAWTO, OR POSITION AND PRINT. e. THESE STEPS 1}MUST BE DONE FOR EACH MODE ON THE SCREEN THAT MEETS THE CONDITION IN STEP #1. 1}EXAMPLES ON NEXT PAGE. FOR E1}XAMPLE: MODE 1: POKE 87,1 POSITION 2,1 PRINT #6; "TEXT" 1} MODE 7: POKE 87,7 COLOR 1 PLOT 20,20 DRAWTO 30,30 MODE 2: SEE STE1}P #2. 1} Р SOME MODES MAY HAVE MODE 1}LINE #'S OUTSIDE OF THEIR NORMAL RANGE. IN OUR EXAMPLE: MODE 2 NORMALLY HAS MODE LINE #'S 1-12 (FU1}LL SCREEN) THESE ARE MODIFIED TO #63 AND #64. TO PREVENT THE ATARIFROM GIVING A CURSOR OUR OF R1}ANGE ERROR MESSAGE, THE FOLLOWING PROCEDURE CAN BE USED: NEXT PAGE ---------- 1}a. SET A VARIABLE LABELLED 'MEMST' TO BE THE DISPLAY MEMORY START POINTER. EXAMP1}LE: MEMST=PEEK(DISLIST)+ PEEK(DISLIST+1) *256 b. SET A V1}ARIABLE LABELLED 'CHRPOS' TO POSITION CHARACTERS TO BE PRINTED ON THE TARGET LINE. EXAMPLE IS ON N1}EXT PAGE. EXAMPLE FOR PART b. CHRPOS=MEMST+ 1} ((M1-1)*R- M2*(R-20)- M3*(R-10))+ X WHERE: 1} X=HORIZONTAL POS. OF CHARACTER ON LINE R=RAM PER LINE OF THE MAX RAM MODE (TWO SCREENS AWAY)M1=THE MOD1}E LINE # OF THE TARGET LINE(63 OR 64 IN OUR EXAMPLE) SCROLL FOR M2 AND M3 1} EXAMPLE FOR PART b. M2=THE NUMBER OF MODE LINES OF 20 BYTES OF RAM PER 1} LINE THE TARGET LINE. M3=THE NUMBER OF MODE LINES OF 10 BYTES OF RAM PER LI1}NE THE TARGET LINE. EXAMPLE: CALCULATE CHRPOS FOR MODE LINE#64 (THE LAST LINE OF THE MOD1}E 2 AREA) AT HORIZONTAL POSITION X=5. EXAMPLE continued X=5 1} R=40 M1=64 M2=7 (6 FROM MODE 1 AND 1 FROM MODE 2 AREA) M3=0 1} CALCULATING 'CHRPOS' CHRPOS=MEMST+((64-1) *40-7*(40-20)- 0*(40-10))+5 OR 1} CHRPOS=MEMST+((63)* 40-7*(20)-0* (30))+5 OR 1} EXAMPLE continued CHRPOS=MEMST+(2520- 140)+5 OR 1} CHRPOS=MEMST+(2380)+ 5 OR CHRPOS=MEMST+2385 1}c. IF FEW CHARACTERS WILL BE PRINTED, THEN EACH CHARACTER'S INTERNAL VALUE MAY BE LOOKED UP IN1} THE INTERNAL VALUE TABLE ON PAGE 55 OF THE BLUE BASIC MANUALc. continued YOU MAY1} THEN POKE THESE VALUES INTO CHRPOS. d. IF STRINGS OF CHARACTERS ARE TO BE PRINTED, 1}WE CAN USE A STRING VARIABLE AND A FOR...NEXT LOOP. USE THE FOLLOWING PROCEDURE: 1} OBTAIN THE APPROPRIATE ATASCII VALUE RANGE FOR THE CHARACTERS. USE THE FOLLOWING TA1}BLE. atascii : value : range : --------------------0-31 :VALUE + 64 32-95 :V1}ALUE - 32 96-127 :NONE 128-159 :VALUE + 64 160-223 :VALUE - 32 224-255 :NONE -------------------- 1} ALL THIS INFORMATIONCAN BE FOUND IN THE BLUE BASIC MANUAL AND THE HARDWARE MANUAL FOR THE ATARI 800 OR 400. 1} EXAMPLE: SUPPO1}SE WE WANT TO PRINT THE WORD "TEXT" IN THE MODE 2AREA OF THE PREVIOUSEXAMPLE USING THE CHRPOS CALCULATED. 1} THESE CHARACTERS ARE IN THE ATASCII VALUE RANGE OF 32-95. THE OPERATION FOR THIS RANGE I1}S VALUE-32, SO 32 MUST BE SUBTRACTED FROM EACH ATASCII VALUE. 1} EXAMPLE continued THE PROGRAM STATEMENTS WOULD LOOK LIKE THIS: 1} DIM T$(4) T$="TEXT" CHRPOS=MEMST+2385 FOR X=1 TO LEN(T$) POKE CHRPOS+X-1, ASC(T$(1}X,X))-32 NEXT X THE FOR...NEXT LOOP POKES THE FIRST CHARACTER OF T$ INTO C1}HRPOS +0. EXAMPLE continued 1} THE NEXT ITERATION POKES THE NEXT CHARACTER OF T$ INTO THE NEXT CHRPOS, AND SO ON1}. YOU NOW HAVE TEXT AND GRAPHICS ON YOURFANCY MIXED GRAPHICSMODE. THE FOLLOWINGTABLE SHOW1}S THE RAM PER LINE OF EACH OPERATING SYSTEM GRAPHICS MODE. USE THIS TO CALCULATE R FOR 'CHRPOS'. 1} ͠Ҡź operating system mode --------------------1}2 0 40 3 - 40 4 - 40 5 - 40 6 1 20 7 2 20 8 1} 3 10 9 4 10 10 5 20 11 6 20 12 - 20 13 7 40 14 1} - 40 15 8 40 ӠҠź operating 1} system mode --------------------2 0 1.5 3 - 1.5 4 - 4 1}5 - 4 6 1 5 7 2 5 8 3 4 9 4 2 10 5 4 11 1} 6 2 12 - 2 13 7 4 14 - 4 15 8 1.5 1.5= BACKG1}ROUND + CHARACTERS LUM FOR AN EXPLAINATION OF HORIZONTAL SCROLLAND VERTICAL SCROLL AND DISPLAY LIST INTERRUPTS, CON1}SULT THE FOLLOWING: HORIZONTAL AND VERTICAL SCROLL-- HARDWARE MANUAL AND 1} DE RE ATARI DISPLAY LIST INTERRUPTS(ASSEMBLY LANGUAGE PROGRAMMERSONLY) ----------- BAC1}K OF ASM/EDITOR MANUAL UNDER "KATHY'S COLOR PALETTE"(EXCELLENT DEMONSTRATION) THE FOLLOWING THREE SCRE1}ENS SHOW: THE EXAMPLE PROGRAM. WHAT THE EXA1}MPLE LOOKS LIKE WHEN RUN. AN EXCELLENT DEMONSTRATION OF A DISPLAY LIST 1} CHANGE AND A DISPLAY LIST INTERRUPT. THIS DEMO IS IN GRAPHICS 7.5 1} Ԡthat: credits go to: 1} Π vince brimhall AND A SPECIAL THANKS TO 1} Š ů 1} still impressed? 1} 1} 1} 1} 0(8888fffffff>`<|fl0fF68of;888>x|f<>>``~pppww``|l`cc>66wwcc0 0 ~~`0 0`c5}cooo`?33sss~ffgggg`cc~ffwww``pp``pppc`oggssssss <<< n~fflggg000ppp~gwggggwoggg5}ccgggccpppccggg~ffwww`ssggggggggggo>gggogsss>ggggggfl7g@`0 xx65}c6>8pp8?5}ww<~~~<x`x`~<~~<5}0~0 ~ <~~<?g``ss```ppp``000005}00000ppp0000005}8x8489CHBASFILECHANUMBEROFPAGEJDISLISCHRPOMEMST9} D,@@ D:COUNT.DAT9@D9}@++@@ D:DEAN.DAT ;@(,6. D:MAX.FNT B + +@AV+9}A@(-@2 B!<:6-F:A , 6-%@,!AV:6-&AV>:6-F:A, 6-9}%@,!AV:6-&AV@:6-F:A, 6-%@,!AV:6-&AVF'A A'A9}P T:,"@@`Z cAAd T:,"@An A +@#9}--6-F:A`,%F:Aa,$AV%@&@@p%@@%@@%@9}@$%@@.%@@8%@c@B%@d@L%@e@e9}V%@fF:A`,`%@gF:Aa,j9@@'-@@9 @TEXTtC@9}@@1,@ @ C/@0@0~/!6-F:,%F:%@,$AV/6-%A#;@,6.TE9}XT-@B:,##%&@@:7<,,&@2  T:,"@A'6-?:B,}/6-P:+9}F:AB,&@,'@,$@L@@6-?:C:hRhUhThYhX V`,<$AV<A$,9} }@AV$d}(@}n}+-@!+-@@)x}!)@!(@>:,}9}}"@26-}2@@@# ' J(@--------------------l(@PUSH button 9}TO CONT2@$ D:DEAN.MAX8@8A@0##@@E:1 +@=}@1@@)A-@!#-@ *(|6-@0=(|A .-@@)#-@"=}*(-.  -@(  @@)@ @0(++@@  D:DEAN.DAT=}2@-@!+-@@)31@*@<   F@K,@@ D:C=}OUNT.DAT9@D@m@@ D:COUNT.DAT(@%@@P;(}TYPE 'Y' TO=} RUN AGAIN,;@,084Y;%Z D:INPUT.DAT<A|||888lllllll8~|80n8l8pv0008ppx|<x<<|xf< xA}|||v~x |||||||x0||8|||8p@`0 >wA}c6>888??888~|8l8~|8p<~~<A}888 <|< 08<><80@8COUNCOUNTE ++@@ D:DEAN.DAT,,@E}@ D:COUNT.DAT##@@P:)@(6-2c-@@"+-E}@@ >*@@0K)@X*@\ _3c <6-%@F* "@@*@E}P33--------------------Z @P D:PRINT.DATDEklS_MAXRAMODEMODEFLAGLMLMMODELINESTOTAMODELINEANSWERFILENAMEFILECHBASMODESLINELINENOOPERAT@I}@@@A@@pAA@    #  ARB 3@I}@@gA @<<9A,9A,;@,;@ ,;@ ,6. D:MAX.FNT B I} +'0@A0@@S-@@e  DISPLAY LISTSw-@@ I}BY DEAN WITTMANNAV. . #GRAPHICS MODE OP-SYSTEM MODE RAM ** " (-I} - " 0 2 9922** " 1 6 674<** " 2 7 424I}F** " 3 8 434P** " 4 9 694Z** " 5 10 117I}4d** " 6 11 2174n** " 7 13 4190x** " 8 15 81I}12: 6 *WHICH GRAPHICS MODE IS YOUR MAX-RAM MODE:!! )!@A0HD ;}HOW MANY GRAPHICS MODEI}S ARE GOING TO BE ON THE SCREENHY -@; WHAT IS YOUR # GRAPHICS MODE?H68,-K U A5I}Y ("8@,6-( A Aq%8@,6-@f A6-@p A6I}-@q A6-@r A6-@s A6-@t A6-@u A6I}-@w A6-@y A0 ! YOUR NEW LMS BYTE = $ 06-@] -@Y +HOW MANY I}MODE LINES OF GRAPHICS MODE 8, DO YOU WANT]6- 68,-  , , !GRAPHICS MODE # OI}F MODE LINES)) !  -@2.  8, 8,2 J}&&  R$  TOTAL  2-@< A0@ R  SCAN LINESJ}"AA"X!A?  YOU HAVE &A TOO MANY SCAN LINES!N  TRY AGAIN!X A'J1  YOU HAVE AJ}& SCAN LINES TO ADD!@  TRY AGAIN!J A,3 / #IS THIS THE WAY YOU WANT IT(Y OR N)364N)4NO%J}@0Y*0YESAJ' # FILENAME (USE C: OR D:)'T @@^ @1000 GRAPHJ}ICS h;"1 @=:,>:AU,; Ar'' @=:%@,>:AU,|CC @&1010 J}DISLIST=PEEK(560)+PEEK(561)*256+4>:AU,"A66 @1020 POKE DISLIST-1,=:,>:AU,J})6-@6-A0)-@##68@,-8@,&@-@8,$ 8,"6-%@$ AJ} A`Z> @=:, POKE DISLIST+=:,,=:,>:AU,L6-%@Z6-%@   W; J}@=:, POKE DISLIST+=:,,65>:AU,I6-%@W6-%@^B @=:, POKE DISLIST+=:, ,J }PEEK(560)>:AU,P6-%@^6-%@BB @=:, POKE DISLIST+=:, ,PEEK(561)>:AU,2@J }2 YOUR DISPLAY LIST IS NOW SAVED!&>  HALELUYA! :  DO YOU WANT ANOTHER DISPLAY LIST>04Y)4YES%J }: +  8,%A0 6-%@$8,$ 6-%@$8,$ 6-%@$8,$ 6-%@J }$8,$ 6-%@$8,$ 6-%@$8,$ 6-%@$8,$ 6-%@$8,$ 6-%@J }$8,$ N8, )8,!@> SORRY CHARLIE, (0-8 ONLY)!A'D'N AP $p A`%8,q6-@J}$r6-@$s6-@$t6-@$u6-@ $v6-@$w6-@$x6-@J}$y6-@$}/6-P:+F:AB,&@,'@,$@L@@6-?:C:hRhUhThJ}YhX V`,<$AV<A$, }@AV$ D:DIHJMNNl~PG6ESNNXXYYKETWDLISLLLLZTIMEW@ @E@xA@N}@@ A @ @ @ @@@N}@GAQ@r;@, ArΠN}Š׮ʮ쮠ӪЪêŠʮî򠱰W6-@ 6-A('6-@T36-@b?6N}-AK"@W6-@BI +@AY+A`@@=Aa@IAy[AAN} 'A3A?ARF(}XAY@4[$+ ,/@+/@9@ Z @N}$-@6@*,. J-@@5@V,@Z  0-(%}0 5 10 15 20 25 30 35N}0$ >6-P:H:,$@9,%@;6-P:H:,$@,%@>$AdAU%F:B2y,"@'% BN} F:Ad,"AU@!$^6-P:@$H:,%,/6-P:@$H:,%,E6-P:@$H:,%,[6-P:@$H:,%N},^$(76-&@*(ǡ٠4 B7$cǠӠd @ @(n] @N}=(#Guess the location of COORDINATES ,](Then press to seexG )@&,@&G(N} 8 )@&,@&.6-%8 AǠӠV @N} @B(& VA`%@% @ @%,@&FARN}@4(} (type 'X,Y') ==>F@@]  A  @,AR8@DAVKN}(]"*"AP @@ A c6-%@=($ Ġˡ G BKY,N }@&c A+ǠӠ,= 6-6-@8!6-@P-6-A96-AP= 6](@N!}}2(}ŠŠԠ](% Line AB@Q @06-6-6-%6-;6-P:@N"}$H:,%,Q6-P:@$H:,%,JW 6-K+"*"@,)+"*"@,)+"*"@,)+"*"@,W6-@TQEN#}+!*"@,)+!*"@,)+!*"@,)+!*"@,Q6-@^ AP% A`_L,@&/N$}@&3,@ @&I/@ %@&L$`J,@/@&1,@ %@G/@ %@&N%}J$aL,@&/@&3,@ %@I/@ %@&L$bJ,@/@&1,@ @N&}&G/@ %@&J$hS )6-&@H4 )!@A`:B6-&I(S A`rH6-%@N'}4(GOOD - YOUR SCORE NOW IS > BH AŠȠC6-@ 6-@V'6-@36N(}-Ah?6-APC <A`(@}( @<A`%@e @#6-P:@$H:,%,'=N)}6-P:@$H:,%,I"@U,@[/e A@ ,/EAR ( },"@;( N*}Կ=>E A`( ȿ=>X  A@@*AR6"@X%+"@&,AAN+}"A @@ A@P6-%@<($}GREAT WORK! - F BP AN,}ǠӠ= 6-6-@V!6-@-6-A96-AP= <(@}<($}1 5 10 15 N-} 1 5 10 15`AV@4(ŠŠԠ`(& Area AB9 @0N.}#6-P:@$H:,%,96-P:@$H:,%,\ @,@+/@@B-@6@L@X,N/}@\ &c,@!/@&//@&;-@GAec@@S:0,@ N0}%@1/@ %@&E/@ @&W-@ @cAe@@S::6-%+N1}$$,%+$!$,D_ )@"6-&@H: )!@A@G(U6-&@_ ANr6-%@N2}<(& ĠǠĠǡ^(YOUR TOTAL SCORE IS NOW: h Br AWǠN3}XC6-@ 6-@V'6-@36-A?6-APC b<A`(@}( @<A`%N4}@@l# @#6-P:@$H:,%,vc,@!/@&//@&;-@GAec@N5}@S:UARU(@} (Estimate Length and Width. Area=L X W.) =>*  A@@N6}*AR% $(} @@% A@q6-%@](D} VERY GOOD ESTIMATING AND CALCULATING! N7} g Bq A&&ǠӠƠӠ= 6-6-A(!6-@-6-@bN8}96-A= `(@}2(}ŠŠԠ`(( Group ABo6-P:@PN9}$H:,%,/6-P:@P$H:,%,396-?6-I A`S@Y6-e6-@!o A`6-%+,%+!,Y N:})@"6-&@H: )!@A@@G(O6-&Y A@p6-%@\(C N;}Ǡ  f Bp A -C6-P:@$H:,%,/6-P:@$H:,N<}%,71CAp  , $ǠӠ C6-@ 6-@D'6-@x36-A?6-N=}@C *]A`(@}I(&} ٠ϠŠŠҠƠ]A`%@4%6-P:AN>}$H:,%,%->- @1#A0),- H9-@AP -A@9ARRa((N?}} =>, 6 APC@OARaA@D\3! &?$)!%?$)N@}6-&3 A@ft "6-%@B(&} CONGRATULATIONS! PERFECT ESTIMATION`( Ҡ̠ŠӺ j Bt NA}Apv!!&?$) %?$)6-%S(%} GOOD WORK.YOU ARE VERY CLOSE TO ITl( v BNB}z A@'#Π(#> +@AY>6-?:C: hhh`,<Bpr&C:,,2#UU6.KaNC}bestimationppGH B A(<#I&67@G<@G,.>:F:@,,I67@H<@H,.>:F:ND}@,,F#I&67@h<@h,.>:F:A`,,I67@i<@i,.>:F:Aa,,P#R6-@6-@*6-@ NE}96-F:A`,>R@K:'Πՠ'v@@4@@E:FA @NF}XA@(jAAvAR'2(ΠŠ/( SCORE = 2($'%%( GUESSING PNG}OINTS %'//(' NAMING COORDINATES ԠϠ&'((( COMPARING TWO LINES ''//(' ESTIMATING NH}LINE LENGTH ԠϠ('((( COMPARING TWO AREAS )',,($ ESTIMATING AREA ԠϠ*'//(' COMPANI}RING TWO GROUPS OF POINTS+'//(' ESTIMATING NUMBERS ԠϠ,'**("Type 1-8 to Begin or Q to quit-'8(NJ}PRESS TO CHANGE8( ׮ʮ̨é.'T @ )@."@B<6-&@HT )!@NK}B08'GGAAAAAAAA*Ԡ* B%D:MENU.*+NL} +  Nd -Ap@P6@62@@N2&@@\-@` d *N 22NM}R-A $ D:ESTIMATEL@AI?AA0A0A0A0A AI Apf (} ((((-@@RO}>6-$@&@H APL P(T(fARf A-@@ D(Enter LESSON NUMBER orRP}Hf @)!@A0xAR@+6-$@&@1(}5(9(C APG(K(N(t( KEYRQ} COMMAND SPEED=x(Q)(!^  Send from Keyboard. Q(#^  Send Random Characters fromK#( RR}  This Lesson. K(#^  Send Random Characters from0R*("  This and Earlier Lessons.R(#^  Select RS}Another Lesson. DE$( <  Decrease Speed. E( >  Increase Speed. X>$(ESC Return to MENU. RT}((>(( ^ = Control )b86-A!-@@!8(䠠l#6- AP# A (RU}  LESSON #(@@ (7<, 7%@<%@, 7%@<%@, 7%@<%@RV}, $b6-@!-@@!((:AR@F"@1R6-@X6-b A 3"@)RW}6-%@)6-@3 A "@0A v6-A!@@!8(=>B APRX}L A`T(>:,h-@Al v Ap6-P:H:,$,%'6-@:7<,,-6-96-@E6-WRY}@@!p(??=>%6-A "% A`' AP-@!@!'(>:,2 "RZ}(ԡ( A 2 A L(Ϡ - "@8(The Character is >:,B A L A z6R[}-%@ A`G(a>:%A(,sounds like this...Q A j(=>p6-z A -@R\}AP $>-@@":(砨=>>!@6-@ @R]}6-@6-Ap Aq +@AR@+6-76-C6-O6-[6-R^}g6-s6-@26-@2 SPEED= 6.6-B:,%@ ,6-A16-F:,,"AUA3R_}& 76- AP7")!@AA0 !@A3  -*@ A6-%@!@R`})6-76-%@A AA !!") @AA A2 !! @)!@AA D6Ra}-%@"&@"B:,.6-@2:6-@D A2 86- &@ B:,.6-@:7<,,8 A2 //Rb}A5A5A5A6A4 6- AAH ; 6.6-H:,% ?016-@x; A4 RRc} '6-@u ?e'6-@\ .67B:,%@,.>:,."@xA40a (6-H:, ?p( A4fRd} o667B:,%@,.>:P:H:,$@,%@H,@ A4J A4Y6-H:,e ?`o A4z $ 9667B:Re},%@,.>:P:H:,$@&,%@e,9$ - 6.6-@-6-P:H:,$B:,, "A5  /7:@2,%6-&@/ A5 "6-%@"!B:,A50 ?7<,0>:@2,'67<,.7<,56-%@Rg}? A5  $W 6.-@@@6-P:H:,$@B,%@P67<,.7<,T W$!!"*"Rh}A1"*"A176-&@ )6-@76-&@,6-@2-"*@, ARi}A6-6-%@F:,A1 @ AB"@A0p-@@Rj}(?("HIT THE SPACE BAR TO RESEND SCREENQ-@@p(HIT ANY LETTER TO RESTART"> -*@ APRk}>!@d* @A0,@2AA06p6-6-'6-36-?6-@2K6-@2Rl}]-@@p(}SPEED  h"*"AFr< -)@,"*"26-< AB0wRm} "*"6-| -*@0 6-6-6--0*@%A(@2AC"@2Rn}AD 6-6-6-076-%@!@)6-76-%@: A1 -"*"A1Ro}S*@6-6-"6-(-=*@%A(C6-I6-S A1[)@6-@("@'Rp}+'8(AJ@@!Q([ A!!"@`)"@bAp!@$"@AQRq}"AU' A@"A&' A8"@26-@$!@C* @`$"@Rr}c$!@d* @$ *!@* A#'6-&@2*$1!A(*AU'6-&A(1 AQRs}"@6-$P& @2*!@''& Ad APpF:,A`z  $X(Rt}6-6@"@b(6-@b' 6-%!@%'6-%@$l @6-@!@`6-@`Ru}-@(@!@((SPEED= 96-P:+','AV,-6-P:',&$AV39Rv}I 6-P:+$@',,'AV=6-P:$@',&$AVCIM"6-P:+$@$','AV,A6-P:$@$Rw}',&$AVGM  ' @6.PARISJrr67B:,%@,.Z BEAM FEET QUAD WHIP TOWER MATCH BALUN RADIO TUBES Rx}DIODE PHASE INPUT OUTPUT PAIR MIX MIXERTrr67B:,%@,.Z AUDIO HERTZ CYCLE VOLT OHM AMP MIC WIRE COAX CITY TOWN RST TORy}NE QUIT QUIET FADE WORD BAND^oo67B:,%@,.W HEAR EAR EARN PER VVV WILL THE AND IF HE SHE ME I YOU WE METER MOTOR HERRz}E IS NAME CALLhoo67B:,%@,.W FOOT HAVE HAS HAD TALK KEY KEYER WALK FIST SPEED FAST SLOW ROTOR CABLE WATT WATTS CODER{}rss67B:,%@,.[ BREAK QUICK DISTANT NODE ANTENNA VERTICAL ELEMENT RECEIVE TRANSMIT SPEAKER PUSH-PULL GAMMA|oo67B:R|},%@,.W SIGNAL HOUR SECOND MINUTE HOUSE HORSE EXTRA ADVANCED GENERAL NOVICE TECHNICIAN AMATEURtt67B:,%@,.\R}} STATE ENERGY CIRCUIT TRAP TUNED TUNE LOW HIGH PASS COIL TRIMMER CONTROL LINK PASSIVE REPEAToo67B:,%@,.W RESIST RR~}EACT VALLEY HILL WILL FILL UNTIL BEFORE ABOVE INTO CAR CART CAP CORE CORD WERErr67B:,%@,.Z AMPLIFY MOUNTAIN MEAN R}TIME CLOCK SOUND SEND RAIN RAINY SUN SUNNY SHADE COULD CLOUDY WOULDrr67B:,%@,.Z DINNER DINER LUNCH BUNCH CARE MOBR}ILE TODAY FAIR FAR FARM TREE ON TWO THREE ONE UNDER OVERoo67B:,%@,.W WAIT QUITE CRAZY LAZY FOX DOG ICE NICE PAPERR} PEPPER 559 599 598 589 578 99 100 CHASSISss67B:,%@,.[ WAS IS HAPPEN WAVE POLE TOO ZOO TOOL LOSE LOOSE CAVE PER PR}ART PARTS BOX BOXES WILD PATTERNss67B:,%@,.[ PATCH EMIT WORK WEEK YEAR DAY MONTH MOTH DEAR REAR FOUR XRAY PHONE WR}IFE KIDS COMPUTER TAPEss67B:,%@,.[ BOOK TEST LICENSE DIRECT OCEAN LAKE STREAM POOL BEAT BEET BEACH CAPE NEW OLD JR}UST JAM JAZZpp67B:,%@,.X WEATHER STORM PAST BLIZZARD BUZZ HUM HUMID WET HOT COLD WARM MILD LINE WIND WINDY WATERR}uu67B:,%@,.] COPY THIS THAT THESE THOSE CHOSE CHOOSE TABLE CHAIR WHERE LOCATION LOCATE YOUR OUR BEGIN END"$(#R}P A@A1B7tAC@@P%D:MENU.*2# +D:MORSCODE.RV2Pt =ODDDELDEAUTCOTIMA A 0A @A P@%Bs@0@ u AUV} @e @ @ u @ ӪЪêŠàS6-A 6-A 0'-A @36-V}A PS@@K:o@@'@@91+@CAR@N(@o(@V} ''(-(@-(@ by gary jensen2.(@.(@ STATION - WD6AKQ<.(@V}.(@ ̠ҮF##(@ ΠӬ̮P=((PRESS TO BEGIN=(PRESS TO QUV}IT/EXITZu6-F:B2y,L@%+"@,%@$+"@,@A^@@h APu%D:MENU.*V}dq +AI6-@%F:AB,$AV%F:AA,]%@@q%@@nB&(V}ENTER DESIRED CODE SPEEDB((3-30 Words per minute)xH A @@ &(*H @)!@0A V}3#A%"!6-$@3@453525 22.75 18.5 16.6 13.812V} 10.75 9.55 8.5 7.97 5.85 5.75 5.2554 4.65 4.5 4.254V} 3.75 3.6 3.5 3.4 3.3 3.25N0((} = quit; = autoplay toggleN(code speed is V} wpm* A*F:@,!@A A A3)6-P:H:,$@%@,3 AV})@$"@2)"AU!(>:,$$!! @B)!@A 55"@X)"@`)"@b)V}"@dA (>:,6- A% $ŠŠ A $5       # V}' + .$5Ҡ˛ "      $"!     $""      $"#  V}    $$     $%     $&     $'   V}  $(     $)     $*     $+    V} $,     $-     $/"      $"1 A$V}3"      $"5  $6    $›7    $Û8   $V}ě9  $ś:    $ƛ;   $Ǜ<    $ț=  $ɛ>    V}$ʛ?   $˛@    $̛A  $͛B  $ΛC   $ϛD  V}  $ЛE    $ћF   $қG   $ӛH  $ԛI   $՛JV}    $֛K   $כL    $؛M    $ٛN    $ڛV}AdAU (F:Ad,AU $06-F:B2y,0"@)"@A  $ A  V} F:B2y,@A*)"@6-((&(A)$4' '6- @0ɠ 6-V}) )2@U@@:-@ 72:$ 6- AV} -@ $-@ $ĠŠ'       # ' / V}      # ' + / '       # ' '       # ' ' V}      # ' '       # ' $3       # 3( (INPUT RST).V}%-@! A% 8- A     ! % ) - B'       # ' L;V}-@  # ' + / 3 7 ; V'       # ' `-@@P $V}ѠŠ?-@@  # ' + / 3 7 ; ? ;       # 7-@V}@; #       # #       # /       # ' V}+ /     $ + D:ELEKEYERT@34OSOJUPDOWNPMBASCANDLFLAMJAOCOFJ@@Z}  qqŠͮZ}à笠㠸𵲩 CCӪЪêŠúZ}ջAA9@P<@,9@<@,;@,;@,`6-F:A,&@2`Z}堲ˠ󠭠󠷠ˠﮛ(S6. hȱ͈`+6. hȑ͈`S̠Z}𠦠2O@@+@O̯<QAR@Z}'AQ($FLAME/OXYGEN EXPERIMENT - ONE MOMENTFDBBy6-$AVDàЯ͠Z}PYAY@b'B2w@YЯ͠Z'AA'Z}宛d(AA(宛n%AA %x(AAT(Z}&A @&讛L-%A$%A C'+ LЯ͠󮛖U @Z},A@u1/A@pC/@@@pU-@P@u=Ae@=@@Z}S:56-%A&5Я͠@ #A!-@%%"-%1 @ᮛZ}-B2IA -46-%AW4Я͠r6-%A0APZ}:%A6,'AVeA+%A6,&P:+%A6,'AV,$AVrЯ͛EAU#-@@P1%Z}A)5 E@B2X@'B2PA@= @!-@@PZ}=16-P:H:@,$A`,1.6-P:H:@,$@,.Z}-!@`* @-!@CA`-!@@* A-!@iA`"K68<@,-%68<@,-Z}K, ,  6(-@@(@V%6-P:H:@Z},$@#,%@cG6-P:H:@,$@#,%@FVJ;68<@,-%68<@,-;Z}T& , 6-@&^s#(}PRESS Ԡ TO MOVE JAR.F(PRESS TO LIGHT CANDLE.I(s($To Z}exit program please press .hU6-F:B2y,&"@AU䠭r^Z}@w="@*"*"A^忛|c"@ A0%"Z}/@C-@@_,8<@,8<@,c "@B4" A@# A`4Z}F6-@!B2HA + A F A`S"#-@@Z}Q/6-?:C:,,3 ?6-@B$SB-@@Q#6-?:C:,,' 36-?6-@B$Z}cc8,8,12,28,28,30,62,62,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126C%6-P:H:@Z},$@,%@C렱栳A#A0%#-@ '"/%3 A 1Z}6,8,12,28,62,62,28,24,8,48,4,6,12,60,60,28,48,16,8!!32,16,24,56,30,30,12,12,4,2[[Z}z"@*"@#@?,8<@,8<@,M6-&Z}@Y"e6-wB2Hz$&/"A/0-@@Z};6-P:H:@,$@#,%@c]6-P:H:@,$@#,%@Fg@,8<@,8<@,68<@,-6Z}8<@,-: @, Ds-@@P@)@E,8<@,8<@,_6-P:H:@,$Z}A`,sNU6-P:H:@,$@,3!@`* @G!@CAUX?!@@Z}* A-!@iA?򡡛b<68<@,-%68<@,-/@5,9 <$'~ BZ}A#@1B2HCB2IUB2PgB2wq+~%D:MENU.*'Z}D:CANDLEX SEATTLE-PUGET SOUND ATARI COMPUTERENTHUS- IASTS Disk #37Educa- tionUpdated:Oct10,86Librarian - Jim Chapman