@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}}}G,  |||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 ALLOWED514 FREE SECTORS COPYING---D2:DEPE4}NDAS# 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 2.?}D2: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- 162ɛ+,' 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 D4u#9#ΩϢ ͩϩ̅΢̑`#:#5$`BBD'EJK V0BT)[)L'(W)V)U) S)T)`X) B VBHD'EJK VLN&(!)'P =&V)Y)2* %`}TO)\)Z) % (L)L(ɛL(\)W)ʽ\) 'ʽ\) HZ)W) \))Z)L(hL(Z)\) %Y)L=(U)a}BL(( =& &ɛL'(RL,ɼ [)(S)ɾ(T)i`V)8Y)έU)8Ϊ\) %L( % (")*)ɛΎZ)W)8b}Jʩ \))\)Z)L(B:P`P c} Send output to ->Screen*+d}>Printer}Sorry! An error has occurred. Check disk or printer and try again.RU,,T,,1F--e}, % 0& &YL,,,2F--2c- % &YKL,*- %I- % 0& &ɛL, =&ԭ+,,f}!,, SP =&2* % - %,*- %I- % 0& &ɛL,PyZ2|+,,,2,|g}+Тx =&ԩR,,, ,  S ,֩,,2,,8鴍,,P =&,!- %I- % 0& &h},-L,ƍТ =&ԭ,W,,, ,  S ,,.P =&,! - %I- % 0& &ɛL,i}L+,2* %, - %,- % =&L#,i,,i,,,,,ɴ`2Using 2 disk drives? (/)Insj}ert S- .OURCE disk in drive #1.Insert blank disk in drive #1.Press when ready.}Format blank disk first? (/)Ck}opy complete. SELECT FROM MENUInsert DESTINATION disk in drive #1.xb$%X` B V`BBD'l}EK)I.. J V/RUTt. %UT. %0 B V@ B Vp B V B Vөl `RUN "D1:m}VV0QB0OC.0EO" #pppGb""""""""""""""B A@lpppB0B A@ Lh`:`hXS$50,)#!4)/. $)n}342)"54)/. !.$53%/&4()33/&47!2%!2%0%2-)44%$!.$%.#/52!'%$5.$%24(%4%2-33%4&/24().4(%!##/-0!.9).'o},)#%.3%!'2%%-%.42%!$4(%4%2-3#!2%&5,,9"%&/2%53).'/2#/09).'4()3$)3+%44%TOp})&9/5&).$4()33/&47!2%53%&5,!.$6!,5!",% q}0,%!3%%.#/52!'%4()3-%4(/$/&$)3 42)"54)/."92%')34%2)PK.'9r}/52$)3+!.$#/.42)"54).'4/4(%!54(/2s}authorfor4im+ilbythisdiskco8 %802%333hareware"ox "Lt}3perryville 6!3uggestedcontribution u}(/ |`؉n8v|~fn|x``|v}~|:#Ϣ ͩϩ̅΢̑`#:#5$`BBD'EJK V0B}Press RETURN a second time to complete the designing process.6. If you have a printer attached and wish a copy of what's ?} on the screen, press OPTION. If you don't have a printer you may wish to copy the data from the screen for future refere @}nce, although this isn't necessary.7. Press START to continue.WRITING THE ROUTINE The screen will blank for a A}few seconds while a routine is being written automatically to the computer's memory.SAVING THE ROUTINE1. Your routine i B}s temporarily stored in memory. With MMPC you may save the routine to cassette, diskette, or printer. Or you may skip the s C}ave function for now and go directly to running your routine. Make your selection, then press RETURN.2. If you selected d D}iskette storage, you will be asked to enter a filename under which your routine will be stored. Filenames begin with "D" fo E}llowed by a disk drive number and a colon. If you have only one disk drive you may omit the drive number. After that comes F}your routine's name--up to eight characters may be used--, a period, and an extender, if you wish. An example might be D1:M G}IXDMODE.001.3. After a save, the program returns to the menu for another selection. Save your routine to a different devic H}e or RUN your routine.4. Select "RUN your routine" to see the results of your modified display list. Yes, those blac I}k and blue stripes are your screen design, but without any text or graphic statements. Don't worry, it will be beautiful! T J}he next steps will supply data to be displayed.EDITING YOUR NEW ROUTINE1. Press START. Doing so will list your routin K}e by itself on the screen and end the program. You may list the routine again by typing LIST 30000,32000 RETURN. If you w L}ould like to see your screen take shape as you add commands, type RUN RETURN. Pressing START will once again list your M}routine on the screen for editing. This editing feature lets you go back and forth between your screen and its listing, modi N}fying and perfecting your design.2. If you wish to save your refined screen at any time, first type RUN RETURN to display O} your results. Then press OPTION. Once again you will be asked to make a selection. Make your choice as before.3. If y P}ou want to retrieve a routine that was previously stored, use the following procedure. From cassette storage you rewind the Q}cassette, press PLAY, type NEW RETURN, and then type ENTER "C:" RETURN. From diskette storage you type NEW RETURN, then R} type ENTER "D:filename" where filename is the exact name you used when storing the routine. Finally, in both cases, press S}RETURN once again. You will not have MMPC at this point to assist you in editing or saving your design. You will have to d T}o that independently with a LIST command. NOTE: To retrieve a stored routine you should always use the ENTER command rather U}than the CLOAD, LOAD, or RUN commands. This will allow you to merge your custom design with any RAM resident program not us V}ing the same line numbers. You may CSAVE or SAVE your routine then retrieve it with a CLOAD, LOAD, or RUN, but you will not W}be able to merge the routine with other programs.4. Starting at line 30070 you will see lines that POKE numbers into the d X}isplay list. These are two examples: 30070 POKE D+6,2 30080 FOR I=0 TO 1:POKE D+I+7,6:NEXT Y} IThen you will find lines which will POKE 87 with the mode number for that window, state a value for H, GOSUB 30060, and Z}include a REMark statement. A typical line might look like this: 30220 POKE 87,0:H=0:GOSUB 30060:REM * [} GR. 0 commandsYou should have the same number of these lines as you have windows in your design. Find these \} lines in your routine.5. Replace each of the REMarks or add additional lines to contain POSITION/PRINT #6 or PLOT/DRAWTO ]} commands. NOTE: GRAPHICS 0, 1, and 2 windows should use PRINT #6 rather than the standard PRINT command. This peculiarity, ^} for GRAPHICS 0 at least, is necessary when using MMPC. Don't forget the semicolon in PRINT #6 commands. The preceding examp _}le, after modification, might look like this: 30220 POKE 87,0:H=0:GOSUB 30060:POSITI ON 11, `}0:PRINT #6;"THIS IS GRAPHICS 0"6. If this screen is part of a larger program, then you may wish to use your design as a su a}broutine. Place a GOSUB 30000 at an appropriate location in your other program and change the last line of this routine from b} a GOTO command to a RETURN from subroutine command. (See Note under #3 above.)HOW YOUR ROUTINE WORKS MMPC wri c}tes a rudimentary routine that will modify the display list to execute your design. For those wishing to know how your custo d}m routine works, here's a line-by-line explanation. The first line, line 30000, does several things. First it reserve e}s enough memory for your screen with a GRAPHICS call. Sixteen may have been added to the mode number to assure sufficient mem f}ory. A GRAPHICS call also establishes a preliminary display list and screen memory, the latter containing no data as yet. N g}ext, the cursor is turned off with the POKE 752,1 command. The beginning location in memory of the display list changes acco q}B'DOS SYSB*+DUP SYSBUAUTORUN SYSBwDOC BAV0QBBOC0ECBfODG0CEQCEF8BGB00ECHQVGGBGICNMGMJVB0BD0KEGFBLK8VB2QMNNQQ0EGRGB>OVCMMS0DOT0BU0GGVWVVHNNBTCZ0QB0OD0EOBHOG0CVNCEE8BOB00ECQ0VGGBGCCNMCMEVC0BR0OEGFEFK8VBHJNNQQKEGCGBLVCMMM0DOO0BQNGGOYPVHNNBVV0QB0OC0EOBOOG0CVQCEE8BYB00ECQQVGGBHGCCNMGMEVB0BD0OEGFBFK8VBHMNNQQ0EGCGBOVCMMY0DOO0BQ0GGCYVVHNKBtYV0QB0OC0XOBXOG0CVQCEE8BYB00EYQQVGGBCECNMGXEVB0BY0OEGFHFK8VBOMNNQQQEGCGBAVCMMX0DOO0BDV0GGCUEVHNNBVA0QBCOCCEOBBOG0BVQCDE8BEB00EEQQVGEBQCCNQGMEVB0BDQOEGFBQK8VBAMNNQQBEGCGBJVCMJY0DOO0BK0GGCKVVHNNBVN0QB0OC0EGBYOG0EVQCEE8BOB00ECQQBB0BUCCNMGMEVC0BuDQOEGFKFK8VBHMLNQQ0KGCGBOXCMNY0DOO0BQ0AGCYVVHNNBAV0QB0OA0EOBZOG0CYQCEX8BWB00ECQQVGVBGCCNMUUEVB0BT0OETFBFK8VBLMNNLQ0EGCGBZVCMM00DOO0rding to the amount of RAM in the computer and the graphics mode used. But that location can always be found by PEEKing into r} locations 560 and 561 of the computer's memory. So the variable D is defined as the beginning of the display list: D=PEEK(5 s}60)+256*PEEK(256). Screen memory's beginning location is then established with the formula HOME=PEEK(88)+256*PEEK(89). Scr t}een memory's location is also stored in the display list at D+4 and D+5. This is the initial value for HOME, a value that wi u}ll change as you will see later. Finally, if the graphics mode for the first display window is different from the graphics m v}ode expressed at the beginning of this line, then the fourth memory location in the display list, D+3, must be POKEd with a n w}umber called the LMS (load memory scan) byte. Among other things, this number will tell the computer what graphics mode to s x}tart with in the first display window. Line 30010 can be used by you if you wish to change colors with the SETCOLOR co y}mmand. You may have lines 30020-30040 in your routine, if you used modes 9, 10, or 11 in the first window, that is. The fun z}ction of these lines will be explained in a moment. Line 30050 skips over a subroutine at line 30060. Line 30060 is v {}ery important to the functioning of subsequent commands. It establishes for each display window a HOME position by accepting |} a value for H from another part of the program, adding that to HOME, and POKEing that value into locations 88 and 89. Withou }}t MMPC, mixed modes screens are only moderately difficult. But without this little function, positioning data on screen is a ~} nightmare! Locations 88 and 89 tell the computer where POSITION 0,0 is in screen memory and therefore on screen. For each n }ew display window called up by your routine, this subroutine computes the HOME, or POSITION 0,0 position for that window. Th }at way you can use familiar POSITION or PLOT coordinates. Now we come to the major modifications beginning at line 300 }70. For each display window that is different from the initial graphics call in Line 30000 you will find commands to POKE D }plus some number with another number. An example might be POKE D+10,2. This example POKEs the value 2 into the display list } starting location plus ten which happens to be the instruction for the sixth mode line. The value 2 is the ANTIC code for G }RAPHICS 0. If more than one line of any particular graphics mode is to be established in that window, a FOR/NEXT loop does t }he job of POKEing in the ANTIC code. The final line of this modification section will end the process by POKEing three } locations with different numbers. The first POKE, with the value 65, is called a JVB code. This instructs the ANTIC chip t }o wait until the TV's scanning beam is at the top of the screen, then jump to the start of the display list for a screen refr }esh. This happens sixty times per second. The beginning of the display list, found in locations 560 and 561, is POKEd into }the next two display list locations. That marks the end of your custom display list. A longer display list was established }by the initial GRAPHICS call, so a few memory locations between the end of your custom list and the beginning of screen memor }y are left unused. Now, about lines 30020-30040. If you chose GRAPHICS 9, 10, or 11 for the first window, that window } needs special handling. These three modes are incompatible with all the other modes under normal conditions. In order to h }ave one of them and other modes displayed simultaneously, a display list interrupt must be established. A DLI is a machine l }anguage routine, here stored as a string DLI$, that is called at the end of window #1. These three lines set up the DLI serv }ice routine. The call to that routine will be found in line 30070 (or line 30000 if only one mode line in the first window). } POKE D plus some number with 143 (or 207), that's the way it reads. The next part of your routine will identify each } window's mode, establish the HOME position for that window, and provide room for your text or drawing commands. For each di }splay window it is necessary to let the computer know the graphics mode for that window. The routine does that by POKEing th }e graphics mode number into location 87. Simple enough. Then the HOME position needs to be established. A value for H was }computed during the design stage. Now it is carried back momentarily to the subroutine in Line 30060, there to be added to H }OME and stored in the proper locations. After these preparatory steps, any text or graphics commands must be added for } that display window. The REMark is there to remind you of the mode for that window and the option you have of adding print }or draw commands. You will find the same number of these lines as number of display windows in your design.MMPC SAMPLE }ENTRY Here is a step-by-step sample to help you through your first use of MMPC. Have a separate formatted diskette han }dy so that you may save what you will create. NOTE: Press RETURN after each "Enter", "Type", or "Choose" instruction.1. }The first step is to plan your screen design and make a rough sketch. In this sample you are going to create a speedometer s }imulation screen using six modes in the following numbers: WINDOW # MODE # MODE LINES 1. GRAPHI }CS 2 1 2. GRAPHICS 0 1 3. GRAPHICS 1 3 4. GRAPHICS 2 2 } 5. GRAPHICS 0 1 6. GRAPHICS 7 482. Load The Graphics Trilogy and select MMPC by pressing } M.3. When the MMPC program loads and the first screen appears, enter 2 for the first graphics window mode.4. Enter 1 f }or one line of GRAPHICS 2.5. Enter the following numbers, pressing RETURN after each: 0,1,1,3,2,2,0,1,7,48. The scan lin }e counter will decrease and your entries will appear on screen as you enter data.6. Compare the data on the screen with tha }t in step #1. Did you enter any incorrect numbers? If so, press SYSTEM RESET and go back to step #2.7. Our design is co }mplete. Press RETURN. You have used 184 of the 192 scan lines--that's perfectly okay--and six windows of different modes. }8. Press START. Immediately you will see the computer generate a custom program and enter it into memory.9. When the n }ext menu appears, choose "RUN your routine" by typing 4 RETURN.10. You should see a black screen with two blue bands. Ne }xt you will add text and graphic data to complete the design. Press START.11. The custom routine listing scrolls by fast }. You will be able to take a closer look at each line later. For now, let's add some text. Find the six program lines that } have remark (REM) statements embedded. There are six such lines, one for each of six windows designed.12. The first of th }ese, line 30220, calls for GRAPHICS 2 text. At the bottom of the screen type the following: 30230 POSITION 0,0:PRI }NT #6;"MY FIRST SCREEN"13. Type RUN. There is your text in the first window.14. Press START.15. Change the }colors on the screen by typing the following: 30005 SETCOLOR 0,2,12:SETCOLOR 1,4,8:S ETCOLOR 2,0,12:SETCOL }OR 3,8,10:SETCOLO R 4,0,616. Type RUN and see your color changes.17. Press START.18. Type the following: } 30330 POSITION 14,0:PRINT #6;"Stay Ali ve!"19. Type RUN. See, two different modes! This time the position } command centered the GRAPHICS 0 text on its own line.20. Press START.21. Type the following program entries. Line 305 }30 contains two inverse control characters within quotes. To make them, first press the inverse key and then hold the CTRL k }ey down while typing the letter U followed by a space and another U. Finally, press the inverse key once again to return to }normal characters. 30430 POSITION 7,1:PRINT #6;"DRIVE" 30530 POSITION 8,0:PRINT #6;"U U" 30630 PO }SITION 0,0:PRINT #6;" 0 10 2 0 30 40 50 60 70 80 90"22. Type the following lines to create the graphics i }n the GRAPHICS 7 window. Press RETURN after each program line. 30730 DEG :S=0:COLOR 2:PLOT 0,46:DRAWT O } 159,46:PLOT 0,47:DRAWTO 159,47:PLOT 75,45:DRAWTO 83,45 30740 PLOT 75,44:DRAWTO 83,44:PLOT 75, 43: }DRAWTO 83,43:COLOR 1 30750 IF S>73 THEN SETCOLOR 3,1,14:SOU ND 1,25,10,14 30760 IF S<74 THEN SETCO }LOR 3,8,10:SOU ND 1,0,0,0 30770 I=212+S:SOUND 0,117-S/2.1,2,10:X =79+50*COS(I):Y=42+50*SIN(I)*0.8: }PLOT 79,42:DRAWTO X,Y 30780 IF STICK(0)=7 THEN S=S+5:IF S>11 6 THEN S=116 30790 IF STICK( }0)=11 THEN S=S-5:IF S<0 THEN S=0 30800 IF PEEK(53279)=3 OR PEEK(53279)= 6 THEN GOTO 31320 } 30810 IF STICK(0)<>11 AND STICK(0)<>7 THEN GOTO 30780 30820 COLOR 4:PLOT 79,42:DRAWTO X,Y:CO LOR }1:GOTO 30750(Line 30800 is needed here but won't be needed in your saved routine. It can be deleted there.)23. Delete th }e text in the first window by typing 30230 and pressing RETURN.24. Type RUN. If you plug a joystick into controller port } #1, you will be able to control the speedometer on the screen.25. Now is the time to save the design for future use. Pres }s OPTION.26. Insert a diskette into the disk drive (not the X-EXPRESS diskette) and select option 2, "SAVE TO DISK".27. } When requested, enter a file name such as D:DRIVE55.SCR and press RETURN.28. For a printed copy of the complete custom r }outine, position paper in the printer then choose the save to printer option.Congradulations! You are now promoted to the } rank of Mode Mixer Extraordinaire. SUGGESTED READINGDE RE ATARI. Atari, Inc.Kilby, Tim "Character Editor For Th }e Atari." BYTE, December 1982, pp. 167-179.Kilby, Tim "Four-Color Character Editor." In COMPUTE!'S SECOND BOOK OF ATARI G }RAPHICS, pp. 82-92. Greensboro, NC.: COMPUTE! Publications, 1984Kilby, Tim "Subscripts And Superscripts For The Atari." }BYTE, November 1983, pp. 518-520.Small, David and Small, Sandy "Atari Graphics Unveiled." CREATIVE COMPUTING, July 1981, }pp. 172-184.s. You will find the same number of these lines as number of display windows in your design.MMPC SAMPLE  @ }} } !"#$%}&'()*+,-./01234Axa5}6789:;<=d99"}%%"A;,,2 6-F:,6-& &,(}2# 6-%}BBy#6-+%,$eAY'BB1+@CBBrS6-F:,%$F:,YeB7tX'}A@t!A 'B 6-F:,6-F:,6-%$-6-%A%`86-P:',B6-&$ C%@i%@}p-%@q5-?%%C H6.D:OOG0CVQC.EE8- %%@F:,-%@F:,? }A`'Aa3AR?@ Ax4 !46-?:C:hLV,},< %@#)<6-?:C:hLV,,@K:1-@I"%! )%}1%O%@s%@t'%8%@xF:,C%F:,I(}O6-l.B2wA'B2V}.;,EA!AA'9BB@dE@F4 "4XA'.-A$6}"6-%(!.6-E"6-?:<%%$%$@2<%,*-428 AF:,E ` =-62 $}-( , 6-'&=( -@` ( A! LA-@1(ԠB6-?:Ag}<,L A6 --F:, T "  -F:,"  1   #AC!(}'1 }A  ; A42)$"( ;%D:YB00ECQQ.VGG "  %D:HMNNQQ0E.GCG "  %D:GCCNMGME}.VB0H ( $ 2 -2(muce ip mpc $+-@P 2+6-@t92}@ 2+6-$?9!A7 2$<OO0,1,2,3,4,5,6,7,8,10,12,16,64,65,66,72,77,79,88,89,91,1}06,120,250,255,256JJ559,560,561,710,711,755,764,850,852,853,856,857,3100,3500,53248,1536[[104,104,141,21,6,104,141,20},6,104,141,24,6,104,141,23,6,162,0,189,255,255,157,255,255h]]232,224,8,208,245,96,104,104,141,45,6,104,141,44,6,169,0,170,}157,255,255,232,208,250,96,0,3,640m,1,0,72u,2,1,80c,3,2,88\e,4,3,96,5,2,120$i,6,1,12}8p,7,0,136,1,3,160Pm,1,0,168p,7,1,176c,3,2,184| X,0,0,0SC-F:A0,%AV$F:A1},F:A2,%AV$F:A3,OAUS D3F:A8,%AV$F:A9,%@EAB&AYD2:V}V0QB0OC.0EO AV}}}UUUPUUUUUUUUXU}UUUUViVVVVaVVV ZUUZUP} XUUXUXhjhj````}UUUUUUUUU@VVUUV}U`VVUUV }}UUPUUPUUUPUUUUUUUUUUUXUUXUUUXUUUUUUUUUjhV}TU@VTVV)VVVV``VVU`VVVVVVVVUZZZPZZUUZZZUUUXXX}XXXUUXXXUUVU@UVhhUVjhhh*@VU`UV``UV`````ZZUZUUUU}UUUUUUXXUXUUUUUUUUUUUUhUATVVU@VVUUUUjUUjUU`UaVVVU`VVU}UUU`UU` U * U*}}UUUQUUTUUUUPUUUUPTTUUUYUUVUUUUXUUUUXVVVhUU)VVj@jhZZ}V`UUVV````XX ZVVZZUUUUVXVVXXUUUUV}hUUhhVVVU@U`UU``VVVU`UUiVUUZZZZVU}aVUUXXXXVU@UPUPUUUUUVUVUUhZU`UXUXUUUUUVUVUU`X **}}dd>f~ff<x|&&|xcwkcc~00~~  ~}fffff~~~~~~fffff~~@@~~~~~JJJB|f|ff|,~RR~~>ff>f>~~JJ~}4~~BB~~BB~~BB~~BB|ff|``0xHH~~>ff>~~ BO()AOCLEAR2ZEROCLEAR1CLEAR4FILEAMODEQQQ10QQ1QQQ8QQ8DQ8QQ8HOMQ25Q22Q38Q46Q2QQ }Q1QCHBASCHQ2Q69Q6Q12Q12Q1Q1Q1Q2Q3Q3FQ6Q1Q1Q1Q1Q2Q2Q2Q2Q76Q25Q27Q85Q75Q75Q28Q19Q25KEGQ4 }RGQ8PLQ7Q5Q24Q25Q10RTQ2Q4Q6Q8Q18Q47Q48Q51Q56Q56Q84Q89Q90Q8Q25Q27Q77Q16Q18Q20Q80Q90Q21Q24Q25 }Q53RAMTOPMBASVAXXYY@ }  } !"#$%&'()* }+,-./0123456789: };<=>?@ABCDEFGHIJ }KLMNOPQRSTUVWXY }Z[\]^_`abcdefghi }jklmnopqrstuvwx }ss;@,;@,;@,;@,;@,;@,;@,9@<@,;@, A }(.2'%&'-! +2.$2 ՠ< @-FR+(#dit uit oad Set learR(" }Color ,,or ave Set estP/,(! Modes - Now editing modes /$Z6.7<A ,$d!!Π٠ }Πn" F:%,F:%,"$x6 $%&P:+%,',$3P:+%,',6$6 $%&P }:+%,',$3P:+%,',6$6 $%&P:+%,',$3P:+%,',6$6 $%&P:+%,',$3P }:+%,',6$ԠӠY A6-'!6-+&,'-1%%;2%&E$+",O,%%Y,%%! }"!68<%,-P:#+&,%, "68<,-P:#+&,%,7 "68<,-P:#+&,%,768<%,-P:#+&,%,! ! }68<,-!68<%,-B68<,---68<,-8<,%8<,1 B%$%8<, 2 A $M A }6-'!6-+&,'-1%%;2%&C+",M,%%*68<,-P:#+&,%,!*68<,-B68<,- }--68<,-8<,%8<,1 B%$%8<, 2 A $ Ԡ"7 @ A0-7(- Se }lect character -,* )A"!*6-&6 AP A $@ -%$% J6.7< },T) --68<,-" & )$^ԠӠhN -*(Use joystick to move cursor.0-N(Press F }IRE to plot point.r -( ( for MENU)|; A@Af-&(>:,,-5(>:%,;-$ -(>:, } ($ AP% -(>:,-(>:%,%-; -(>:, ! A-Af3!;6-&%!* @ }6-&% A@  6-%4 6-%$- 6-F:%,(6-%4AQ 6-!6-&6-%# }),/,:68<,-Q68<,-8<,%8<,K !6-&6-%#,),468<,-K68<,-8<,%8<, } ! ,,Q 6-!6-&6-%#),/,:68<,-Q68<,-8<,%8<,K !6-&6 }-%#,),468<,-K68<,-8<,%8<, ! ,,Q 6-!6-&6-%#),/, }:68<,-Q68<,-8<,%8<,K !6-&6-%#,),468<,-K68<,-8<,%8<, !  },,Q 6-!6-&6-%#),/,:68<,-Q68<,-8<,%8<,&C !6-%,!, },68<,-C68<,-8<,%8<,0 ! ,,:  A $D= !6-&,&68<,-=68<, }-8<,%8<,N9 !6-&,"68<,-968<,-8<,%8<,X9 !6-&,"68<,-968<,-8<,%8 }<,b9 !6-&,"68<,-968<,-8<,%8<,l9 !6-&,"68<,-968<,-8<,%8<,v9 ! }6-&,"68<,-968<,-8<,%8<,? !6-&,@0(68<,-?68<,-8<,%8<,1 !, }68<,-168<,-8<,%8<,  A $ԠӠU @--(Your typed characters }3-U(will appear below. NORMALP -*(- Press Π for menu -06-6<6.F A0P A@x }@@-B2Y@D6.7@<A',VB2Q@6r67@<@,.x6.i - }#%%@#A:7<,,' ;%@)@eR%@0F:A`,i%@1F:Aa,F:,"A GF:," }@9)F:,"A.6-F:@,=6-F:@,G Ac )"AU A0&(},>A@dO6 }.7<A',Y A c A & (>:,F:@, &@F:@,!@j"B2QF:@ },$%@6A6-F:@,$@%@R6.7<A',j67<%@,.   A ?$+F:,", }" A +F:,"1-?( Š  F:,"- ( NORMAL *5  A@@+@5 A }4< 6. A06.# A 9B2YA:7<,,&<$>6-A:7<,,6-A:7<,,HO%@#%@$- !}%@%;%@&O%@'@eR4%@(F:A`,1%@)F:Aa,4$\ĠҠԠf "}: A A P'-7 A :$pN  A  @#-N(&Enter FILENAME. (e.g. D1:FILE #}NAME.SET)z -  @ $ŠҠԠ: A A P'-7 A :$ $}LARAS')AV5AW='L6-?:A,#A$ #$Ҡ %}ǠH @6-F:A,"-H(>:, An ERROR  has occurred.I"A8)"A90(Check connecti &}ons.?( Try again.I A L#"Ae)"A0)"AFB(You used an bad file name.L A ="AD0( '}Diskette is write protected.3(= A ."Ag!( is locked.$(. A ="Ap ( is not on3(t (}his diskette.= A %%(Check ATARI REFERENCE MANUAL.]-@4(%-@4/(;-@4F( )}٠M)S6-] A 0ˠ1 6-R:,6-T:,"%6-%'+!16-! "6-&' !6-% *}$ "6-& 6-. "6-%!6-8>B2Q%@V%*6.7&<&%,4"*> @@B +} F:, A0L' F:,"(>:, Ap' @`V " ` A0jĠt: A ) ! ,}A'.6-&A(:A~/!@6-&@2/A@d' " A` @P' AU- -}"@ A # @P- AU"@i A"@g A #"@ Ap# @P .}"@w)" @P"@I6- "6-"@Q6-"@A`  $=  /}-! -A37+:=Π==" 0} 33"--"" 1}(P 6-F:,6-& -(>:A%,36-B6-?:A,PK:27 6-+%,$!6-+% 2},$%+1A7<>6-F:,%$F:,%#%)-,(>AB&AFY -(aMCe-<((C)Co 3}pyright 1983 Tim KilbyB-Y(One Moment PleasePZA' 6-?:A%,* A@8-@f<"D%H N 4}ZAZ[6-F:A4,%$F:A5,;6-F:A@,%$F:AA,C6-&Q6-BsD&[ APd3 %% 5}%#%+%3%n9 %%%#%+%3%96.x? 6-%&6-& AP' 6}%/%7%?%C6-F:,%$F:,%&!6-$&+ AP3%;%C%C %6-F:,%$F:,& 7}' AP5%@4C%@576-F:,%$F:,%&! AP)%7%@C;-@D-") 8}%%- 1 ; A :6-P:',6-P:&+$,,(6-P:',76-P:&+$,,:$ŠԠ= 6-6-6- 9} A) A =44 & 5A_ 6-6- A@!-1%%@5 A6-ApG6-M6-S6-_6 :}.4 & 5  $_ 6-6- A@!-1%%@5 A6-A@G6-M6-S6-_6.2 & 3  ;} $үŠӠcAY)-B2aB2e59 EAY-AA_ <}c = -" --B2VB2X37 =7 --@R/%%%@!3 7  =}?-@")%A%@- ?A#@"7 6--%%%! )-3%%7 , >}Ƞ٠Π6 BBr@5+AY%A56-F:,%$F:,J%6-F:%,%$F:% ?},%%@rT= -%% '%AD36.4 & 5= Ap^F A0Af-'-/-; @}(>:%$,? B(F h)AfBBy')B2wj) -A% )ArT A  @P A} 6-?:,&,>AY@FDJT A0|OO0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,18,19,20,24,25,2 B}6,27,28,29,31,32UU42,48,50,63,64,68,76,80,81,87,88,89,100,106,127,128,180,253,380,460,470,480,512cc560,561,694,752,75 C}6,840,850,896,900,0.1,1080,53255,53259,54272,53774,1160,1180,1200,1800,1900??82,192,210,220,240,250,53248,255,256,53279,5 D}4286,1536,764WW104,160,10,162,6,169,7,76,92,228,173,40,6,201,16,208,17,174,195,2,173,41,6,142,41886,141,195,2,169,0,1 E}41,40,6,238,40,6,76,98,228,0,74__72,138,72,152,72,165,203,141,10,212,141,9,212,104,168,104,170,104,64,104,162,16,76,86,22 F}8MM128,0,128,0,128,1,128,1,120,0,120,0,160,0,160,0,100,0,100,0,160,0,160,0!!137,149,161,56,83,91,99,107)AB& G}A)D2:YB00ECQQ.VGGOCLEAR1CLEAR4FILEAMODEQQQ10QQ1QQQ8QQ8DQ8QQ8HOMQ25Q22Q38Q46Q2QQ23cDI}J}K} L} !"#Ay$%M}&'()*+,-./012345N}6789:;<=>?@ABCDEO}FGHIJKLMNOPQRSTP}UVWXYZ[\]^_`abcdQ}e Ap* 6-R:,6-T:,"*!'6-&*$( "* 6-%$2 "* 6-%$< "*R}!6-&$F$"*!* 6-&!6-%$$P$"* * 6-%!6-%$$Z$"*!*!6-&!6-&$$d!S}"* *!6-%!6-&n$  "  F:, AP= 1,,#),-3T},7=, !!@G* @X!6-& "6- "6- "6- "6- U}"6-@$ )( A"@h%6-A($"@`)"A% 3"@p 06-V}?:BF<<<%@,3$""@6-$6CC )!@c******@*@pB@$W} ,6-6-$ ,/6-6-$   AD( ? /(Enter filename to  :5X}9?  4   L7<,0:*7<,0:B("Include the D: or C: device name.L A0 $ 4  Y}*&-0*F:,4  : F:,F:,!':6-?:C:hLV,,     Z}A )+%))%),)3):)A)/ )) !#A%/": [}F:,F:,!':6-?:C:hLV,,   0G( AD`'D:*.*--D(ˠ\}٠G(D4 AD`47<,4 FREE SECTORSADPNE(@  AD`%E7<,4 FREE SECTORSA]}DPX( AD b( ((l$v77(C)COPYRIGHT 1983 TIM KILBY - ALL RIGHTS RESERVED! 6-6-!")^}"AW! 6-6-"6-!6-+( -+(Press a color key ()ff(^Then move joystick left or rig_}ht to select color. Press after last color change. )  AQF:,AQ& 6-R:,`}"6-% !&6- "6-& 6- % APP )-"AU)"@2# A)6-a}-   )! APP  6-&"*6-6-F:%, APPD]( -](2You may change only the backgrb}ound in GRAPHICS  mode. Other colorsIOO(Gcan not be changed independently. Press the key and then move thec}NRR(Jjoystick left or right to select color. Press after change.X AP@pC  (-?(#Entd}er GRAPHICS mode (3-11) Cz6-O:P:,, )!  ")"  6-"6- "6- e} B b=="lOO0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,1f}6,30,32,34,48,64,67,69,76,77,82,83,84v//"UU85,87,88,89,130,162,704,705,706,707g},708,709,710,711,712,752,755,764,850,852,853''"VV856,857,6000,3000,9100,9400,9560,128h}00,106,255,256,410,9000,13000,9700,9500,1911Q*;@,;,;,;,;@#,06-B$@5%%Q6-?:A,i} 6-6-A!6-@8-6-A96-ARE6-@pQ6-@F]6-@xc6-6.h L\@j}LbK6-C:,%6-P:',#6-&$167<,.>:,?67<,.>:,K6-?:C:,,F+ (66-F:A`,%$F:k}Aa,>%F%M-@'( i P"-M(>:,The Basic Image Processor>:,) -)((C)Copyrigl}ht 1983 Tim Kilby$ 6-F:BRt,$6-@I:, Ap6-' Aq9'D:D0OEGFBF.K8V@ m}@W'A&-@6-?:C:hLV,,AB&A4-@4(Enter GRAPHICS Mode (3-n}) :|46.>:A%,!6-?:A%,&4K:P Ap6-O:P:,,' )!9-@3@F( o} P Ap")"Ap "6- "6-(#+ +%  #A%+"<#1 6-6-P:p}',6-P:',%6-+6-16-d# {#39,23,240,0,51, |#79,47,192,3,51, }#79,47,192,3,51, ~#q}159,95,0,15,51, #159,95,0,15,51, #319,191,0,30,51, #5579,191,0,30,48, r} ٛ#&&79,191,0,30,56, #5579,191,0,30,48, ٛ#159,191,0,15,51, #1s}59,191,0,30,51, #9 !'-39#$#K 6-F:,6-F:,6-F:,'6-F:,t}06-F:,96-F:,B6-F:,K6-F:,# 6-F:,$$ B7t$%6-F:A, &%b"Ae)"Ap(u}^(;You used an improper or incomplete filename. Try again.b 0%K"A8)"A9(G($Check all connections v}and try again.K :%c"AD)")"Ag!(_(8Diskette is full or write protected or file is locked.c N%(w}(Error X%9( (((Press any key to continue./)9 B%%& -F:, #'&$%$  x}-F:,!'$$%   '! !")")")"B *b -%(* * * H E L P * * *((H(> Plot Points Dy}rawing ModeK(b(> Draw-To Drawing +a(%(> Fill a Shape with Color((>(> Load a PictureA(a(> Save the Currenz}t Picture++(((> Change Colors in Registers+( +[(> Change Graphics ModeD( (Currently in GRAPHICS )G([{}( Line Colors: *+((> Erase Drawing. ).& "6.save  & A0 .& "6.load |} & A@ . " /"AP0   2D 6-F:,F:AB,++A`17=A D$}}2 +%%  2$SC-F:A0,%AV$F:A1,F:A2,%AV$F:A3,OAUS 3F:A8~},%AV$F:A9,%@EAB&AYD2:GCCNMGME.VB0 B'` ZhR hhh:hL9hE9hh9T:U:V::::: :::@::i:: :: ~: : :L}::: }::L9 ::):): ::::::::L9: : :L9 ::+:+: i:::::::}:L::: ~: :: : :0d)]Ls9:(:: i:::::::LA9:(:: ::::::}:LA9hh`:8:::`:i:` :`BHI V0`:U:V:T`` BHI V` :L}::: kU##MAXMODQQQQQQQQQQ1Q1Q1Q1Q1Q1Q2Q2Q3Q4Q6Q9Q9Q10Q10Q10Q70Q71Q71Q72Q75Q84LKEINVALI}PINTABLBRPMRXHEMCTBDSQ8ZZXXDBYTGDLVLMANLMTWLNTEMPRCCHOM} } !}"#$%&'@(@)*+,-./01}23456789:;<=>?@A}BCDEFGHIJKLMNO ??}ĠӠ͠Ҡ VER. 2.3 rev. 2/16/85""(C) COPYRIGHT 1981 TIM KILBY206-@$F:BRt,@2}06-@<77"F"Z6-%A6-6-$}dEE;@',9<,9,;@,;,;,;,;,;,;,nx 6-6-6-!6-A-6-@<6.>:A'},K6.>:AS,Z6.>:A%,i6.>:@),x6.>:AY,x.67,. 67@t,. (67,..6-}$AB&A}$6-?:A,X+ Ap( B6-F:A`,%AV$F:Aa,J%X%@ ^-@&}(m P c$-^(>:@4,Mixed Modes Program Composer>:@4,N -*((C) Copyright 1981 Tim Kilby0-}N(Press to begin.AdAU Ap F:Ad,"AUA2cAdAU5@}@S:? ApEKWA]c; --68<,-" & .-768,-; }R -(>:AX, R(   6 -6((ՠŠ 192 ΠӠ}ԠϠŮ A -e6(-Enter the MODE for your first display window @ APO6-?:A%,Se )}!AP% 6-P:,68<,- % A`  A 8 - ( 6. scan lines &"86. scan line ` }-,(At each, how many GR.I(mode lines do you want S AW`6-P:, A%$!A8@} A% Ap" !' A A ,4 6-P:,68<,-"68,-$*6-$4 A 6  Ap@< }-(-&<(! WINDOW # MODE # LINESJL -&4($:-L(| %}.TR( GRAPHICS |H($R A`^5-@( #-@'}(--2(5$hA 6-$6-&6-%#6-%-")"7 APA A r AP A %+!,$|J - (}-7(Enter next display window MODE ;J4A  6-A:,6-P:, )!A ! !*  A}! A A@  A A =68<,- %6. scan lines +"=6. scan line a -},(At each, how many GR.I(mode lines do you want S A`Wa Ap  -( AP 6-P:}, A`'%$!A8@ A' A !' A A 6-$6-%<68%,--}($68<,-*-<(| %.( GRAPHICS 6 (|6($ A}`4 -&4($A -(-@"A(" ξ}/+(" Ծ/ &F:,"A0F:,"A`: APD 6.+16"6.N})(ŠԠŠ)@Xb 6-6-6-l-6-8<,6-8<, '!* -6-q> ->(} GRAPHICS :POKE 752,1:D=PEEK(560)+256*v--($PEEK(561):HOME=PEEK(88)+256*PEEK(89)w "6-%A(x+ })( :POKE D+3,#"+6-&!6-%@`"!6-%&1("**"6-%1( POKE D+6,. *}"6-%.( POKE D+6,%A(U!**"6-%K( FOR I=0 TO & :POKE D+I+6,:NEXT IU6-%&}i !*6-%_( FOR I=0 TO & :POKE D+I+6,:NEXT I:POKE D+%,%A(i6-%&* 6-%6-%}-&8<,"* /6-8<,6-8<, #"+6-%/ S !?( FOR I=0 TO & :POKE D+I+,:NE}XT IG6-%O6-%S *( POKE D+,"6-%*6-%Y P( POKE D+ ,65:POKE D+%,PEEK(560):POK}E D+% ,PEEK(561)Y(CONT$ 6-%-($ A#6-?:$%@R<,+(#(   &# #(}ŠԠŠ  AP41 --6-%$8<,"''1 Ap>&6-8<,6-"*!&6-}&@"*+")",6-B "6-D00( POKE 87,:H=8, :GOSUB 30060H# 6.=:,"#6. ANTIC 3}R ( :REM * GR. commands\ f6-%A(CONTp  %AU-(  &A  + A}p#/AT5A6-Be !(Do you wish to-D( 1) save routine on DISKETTEe( 2) s}ave routine on CASSETTEc#( 3) save routine to PRINTER<( 4) RUN your routineI( 5) QUITS A @c(Š}8 -  A`&6-P:,8 )!A @"A"A , A((CONT -#()},&-  ("-6.printer] "E(5Your routine is being listed to printer . . . .H3S}P:] A`e "e(UPlace blank cassette in recorder, press Ġ and ٠, then press Π.- }"C:#6.cassette- A`m -m(_PLEASE ENTER A FILENAME. Use proper format--for example: } D1:MIXDMODE.001Y - 4( Your routine is being ed as-8(B ApJY6.diskette$B&(}LIST to  is complete.4-A8 B A @.g+(Oops! That filename won't work..(=( Try again.K-A}O Y A @](g A@B' 6-"6-6-!6-'6-D! "6-6-6-!6-F! "6-6-}6-!6-H! "6-6-6-!6-L! "6-6-6-!6-V! "6-6-6-!6-`! "6-}6-6-!6-j' "6-@ 6-!6-'6-t! "6-6-6-!6-~' "6-@6-!6-}'6-! "6-6-6-!6-! "6-6-6-!6-! "6-6-6-!6-[ !* 6-}6-6-%6-+!16-=!@ I6-A(O![6-@  6- 6-%$E -(-7(}Ϡ٠Ӡ٠ΠE-A  -($G( -6(125 LN=30000:LNX=:GOTO LND( }GOTO G$H -(->(#٠נŠҠӠH A(G -(-=("٠נ}٠ŠŠG A(* -(-*(Ġ٠#-A - (#$%-@P }2%6-3 22%6-$?3!A@ 2$9-@"( A,}P:29*D-@!-@5'-.)5*9 @*D   - A0S-}7($Sorry! Check connections and power.E-API S A0L +F(4Hope you enjoy your new designs - } Use me often!L#A(  AP2SS(DYou don't have enough RAM for MMPC andyour }routine also! Save your <_C(;routine,type NEW, press RETURN, then ENTER your routine.Q-APU _ A @F1} A(1370(CONT%-((.1&P  A@ Z3 F:,"+(@0&3d}F:,"A 0n Ap`H( FOR I=Q0 TO & :POKE D+I+,:NEXT I:POKE D+99,T+%&, `6-A0}--( :FOR I=0 TO %&:POKE D+I+102, 6-%%6-%$A+ Ap$(>:AS,AF:A,"AG}A0M(Sorry-1(You made an ERROR #F:A,?-APC M A 0B -AU-# /A}U7-; ? B$" $@5%,$(Z -Z(L30020 DIM DLI$(11):RESTORE 30040:FOR H=1 T}O 11:READ I:DLI$(H)=CHR$(I):NEXT HFF(>30030 I=ADR(DLI$):H=INT(I/256):L=I-H*256:POKE 512,L:POKE 513,H88(030040 DATA 72},169,0,141,10,212,141,27,208,104,640(( POKE 623,:POKE 54286,19206-% (CONT-(&  (}$pJJ0,1,2,3,4,5,6,7,8,10,12,13,14,15,16,20,21,33,40,64,98,99,100,101,102z88709,710,712,720,752,842,30000,53279,1224,}1230,1090:u* PLACE SETCOLORS HEREbu BpluP*@%&P:+%,'AV,$AVE@P:+%,'AV,M6-}%P$)AB&A)D2:HMNNQQ0E.GCGQ1Q1Q1Q2Q2Q3Q4Q6Q9Q9Q10Q10Q10Q70Q71Q71Q72Q75Q84LKEINVALI/