ML}  X c0C)HCCH Mhhݩh `eCDiCD`  RyHP   * 1H0芢@) Y0.Ș`ip#(PMRR\ \b Pgi 0  % @ / ՠ`d   0DDԝL}BANK.EABrrSR d FDSBREAKHL Bh@B@P@QAp} llThis program provides an example of using the BANK command on Atari 130XE computers. It uses the extra(kk}memory for "page-flipping" by drawing four squares of different sizes. Then it switches between these222four squares to a}chieve an animation effect.<FP%;@,;@,%+Zdn``The following line disables the} BREAK key by replacing its vector with a PLA,RTI sequence.xhhThe only way out of this program is to press RESET. You can }use this routine in your own programs,ggsince it is unaffected by GRAPHICS, PRINT, and OPEN commands, as the more convent }ional method is.K 6.h@ 6-P:C:,'AV,36-C:,&AV$?AfKAg@ }'@@dI6-F:A`,%AV$F:Aa,]%@q%@@dAR@22AU }@ E:BANK 1B A -@@ (BANK 1 @:,],'/@9 }9/@9@#K/@#]/22AU@ E:BANK 2B A} -@@ (BANK 2 @:,],@@'/@5@9/@5@ K/@@ ]/@}@22AU@ E:BANK 3B" A, -@@ (BANK 36 @:,@],@}@'/@0@9/@0@K/@@]/@@J22AU@ }E:BANK 4BT A^ -@@ (BANK 4h @:,r],@@ '/@%@ 9/@%@K}/@@]/@@ |6. E:BANK 1A-@:2,@:4,267@<@,.>:,2Change BANK number}((AU@ AWait a while... -@:3,@:1,6@67@<@},.>:,((AU@ AWait again...  A-@@P} $*-BcBsD#' *$ D:BANK.EABEXTBASIC.DOCqyq Thanks fo}r downloading Extended Atari BASIC. It is advised that you use the DOS Copy command to copy this file directly to your } printer, as you will want to have it around for reference. Make sure your printer's print head is on a perforation}, then copy the file from D:EXTBASIC.DOC to P:. This program and its documentation are distributed as Sharewar}e; neither may be distributed without the other, and neither can be modified. If you like Extended Atari BASIC, pl}ease send $10 to: Robert Berry Rt. 3 Box 519LL Tampa, FL 33619 Thanks for sup}porting the Shareware system! } Extended Atari BASIC Copyright (c) 1988, 1989, 1991 by Robert Berry } Extended Atari BASIC ('EAB') is a machine language utility that adds over 30 commands and functions to Atari }BASIC. It requires an Atari 800XL, 65XE, or 130XE (with a disk drive) to operate, and uses about 3K of what is nor}mally free RAM. The extensions themselves are actually over 7K in length; however, EAB takes advantage of the extra } memory in these machines to effectively "hide" most of itself from Atari BASIC. Extended Atari BASIC is not !}a replacement version of BASIC; instead, it is a supplement to the existing Atari BASIC built into the Atari comput"}ers. EAB's commands are all executed in the immediate mode (i.e., when BASIC is awaiting input), not as statements with#}in a program line; however, a method for indirectly accessing the added commands from within a program is discussed$} in Section 4. EAB has been tested and works with DOS 2.5. It also works well with MyDOS, as long as you don'%}t utilize subdirectories; still, using MyDOS will provide you with double-density storage on drives capable of that&} density. EAB IS NOT compatible with SpartaDOS; they both try to use the same memory locations. I would be willing to '}bet that it doesn't work with DOS XL for the same reason, but that hasn't been tested. (}Loading Extended Atari BASIC To make a working copy of Extended Atari BASIC, copy the file EXTBASIC.OBJ from)} this archive to a blank, formatted disk with DOS, and rename it to AUTORUN.SYS. To load Extended Atari BASIC, simply r*}eboot the computer with the new disk. The Disk Operating System will be loaded, then EAB itself. When it's finishe+}d loading, the first thing you'll notice is a different display. There will be a twenty-fifth line at the top of t,}he screen, with the Extended Atari BASIC title and a clock (the clock is explained later in the "Special Functions" -} section). The remaining 24-line display acts as it normally would, and won't interfere with programs that don't issue .}a GRAPHICS command (which will turn off the extra line). /} Extended Atari BASIC - Page 2 Introduction to EAB This documentatio0}n is divided into five sections: DOS Commands, BASIC Helpers, Miscellaneous Commands, Special Functions, and Sample 1} Programs. The first three sections describe added commands, most of which follow the general syntax described below; i2}f a particular command doesn't follow this syntax, its syntax will be discussed within that command's explanation. 3} The syntax for EAB commands is simply that the command must begin on the left margin; preceding spaces will re4}sult in an error. If the command requires any parameters, they should be typed in after the command itself; at thi5}s point, extra spaces are ignored, and can be added wherever you wish. In describing each EAB command, several6} symbols are used to clarify the usage of that command. These symbols are: 1. [ ] - Designate optional para7}meters; Example: DIR[n] indicates that the 'n' is optional. 2. n - Represents a drive number, 1-8. 3.8} hexnum - Represents a 1-4 digit hexadecimal number. 4. decnum - Represents a decimal number between 0 and 65535. 9} Some EAB commands require a filename as a parameter; in all such commands, the Dn: prefix of the filename can :}not be omitted. Other commands (such as DIR) don't require a filename, just a drive number; in these cases, enter ;}only the drive number as a parameter. If no drive number is specified, drive 1 is always assumed. <} Extended Atari BASIC - Page 3 =} DOS Commands The following commands allow DOS functions, such as listing directories and f>}ormatting disks, to be executed without going to Atari DOS. Command: DIR[n] Displays the directory of t?}he drive specified. Example: DIR2 shows the directory of drive 2, and DIR1 (or just DIR) displays the directory of@} drive 1. If the drive being used is an Atari 1050, and the disk being used is enhanced-density, the files whiA}ch extend into sectors not accessible by a single-density drive will be enclosed in '<' and '>'. Example: B}DOS SYS 037 042 This means that the file DOS.SYS can be accessed by any drive, but part C} (or all) of DUP.SYS can be accessed only by an enhanced-density drive. Command: LOCK Dn:FILENAME.EXT LocksD} (protects) the file specified. Command: UNLOCK Dn:FILENAME.EXT Unlocks (unprotects) the file specified. E} Command: DELETE Dn:FILENAME.EXT Deletes the file specified. Command: RENAME Dn:OLDNAME,NEWNAME F} Renames the first file specified to the new name. Only the first file name requires the Dn: prefix. Command: WDG}OS[n] Writes the DOS.SYS file to the drive specified. WDOS will not write DUP.SYS to the disk. CommandH}: FORMAT[n] Formats the disk in the drive specified, in enhanced density on a 1050 drive. Be careful with thiI}s command, since no verification prompts are printed. Command: SINGLE[n] Formats the disk in the drive J}specified in single density, even if the drive is a 1050. Otherwise, it operates just like the FORMAT command. K} Command: BSAVE Dn:FILENAME.EXT,start,end Saves the data in memory between 'start' and 'end', inclusive, to L} the file specified. 'Start' and 'end' are assumed to be decimal numbers, but either (or both) can be a hexadecimal numM}ber if preceded by a '$' character. Examples: BSAVE D:FILE,1536,1792 - Saves all memory locations between N} 1536 and 1792 (inclusive) to D:FILE. BSAVE D:FILE,$600,$700 - Saves the same memory as thO}e above example. Extended Atari BASIC - Page 4 P} Command: BLOAD Dn:FILENAME.EXT Loads the binary file specified, but doesn't run or initialize the fiQ}le as DOS would. Before trying to BLOAD a file, make sure that the file won't over-write any memory used by EAR}B (use the SIZE command, described later, to determine the current memory bounds). Both BSAVE and BLOAD are inS}tended primarily for advanced BASIC programmers and are provided for their convenience. Command: DOS ThT}e first time this command is executed, EAB is deactivated and the system is returned to the way it was before EAB was loU}aded. The second time, it goes to DOS. EAB is not available after this command is executed; you must reboot to reV}-enable EAB. W} Extended Atari BASIC - Page 5 BASIC Helpers EAB provides several X}commands which are intended to actually aid the user in writing BASIC programs. This section deals with these commY}ands. Command: AUTO [start,[inc]] This command turns on automatic line numbering starting at START and Z}incrementing by INC. If only one parameter is specified, it is used as the first line, and subsequent lines will be num[}bered in increments of ten. If there are no parameters, numbering starts at ten and continues in increments of ten\}. Press BREAK to turn off line numbering. Examples: AUTO - Starts numbering at 10 in in]}crements of 10. AUTO 100 - Starts numbering at 100 in increments of 10. AUTO 100,5 ^} - Starts numbering at 100 in increments of 5. Command: REN [start,[inc]] Renumbers the BASIC program in me_}mory; START and INC are used the same as in the AUTO command above. For example: REN - Renumbers `}starting at ten, in increments of ten. REN 100 - Renumbers starting at 100, in increments of ten. a} REN 100,5 - Renumbers starting at 100, in increments of five. When using the REN command, two prb}oblems may occur. The first is if a GOTO, GOSUB, IF...THEN, etc., references a nonexistent line; EAB reports this c}occurance as NF LINE, where LINE is the new line number on which the reference is made. A common way to turn off BASIC'd}s TRAP command is by using TRAP 40000; EAB reports this as a nonexistent line, but there is actually nothing wrong e}with it, and the rest of your program will be correctly renumbered. The second problem occurs when a symbolic f}reference is made; EAB reports this as SR LINE. For example, if this were a BASIC line: 200 RESTORE 1000+A g} the REN command would print SR 200, telling you that a symbolic reference was made on line 200. However, the remainderh} of the program is renumbered as instructed, so all symbolic references will have to be manually corrected. i}Command: VNT Displays the current Variable Name Table. The VNT is simply a list of all variables used by the j}program in memory. As each program line is recognized by BASIC, the line is scanned for any variables. When a varik}able is found, the VNT is searched for that variable name. If it is found, the variable already exists, so BASIC does nol}thing to it. Otherwise, the new variable name is appended to the end of the VNT. Then, space is reserved for the m}variable in the VVT (Variable Extended Atari BASIC - Page 6 Value Table)n}. EAB uses both the VNT and the VVT to display all variables and their current values. If a variable is a scao}lar (numeric) variable, it is shown like this: VAR = 0 This simply means that the variable VAR currently hap}s a value of 0. If a variable is a one- or two-dimensional array, it is shown as NAME(one,two), where ONE is tq}he first dimension and TWO is the second. If the array is one-dimensional, TWO will be 0. Example: VAR1(05,10) r} VAR2(05,0) In this example, VAR1 is a 5 by 10 matrix, while VAR2 is a one-dimensional array DIMensioned to 5s} (i.e., DIM VAR2(5)). The values of arrays and matrices aren't displayed by EAB; however, if you need to see what t}each element of a matrix contains, the following routine can be used (it uses VAR1 from above as an example): u}1000 FOR Y=1 TO 5 1010 FOR X=1 TO 10 1020 ? "VAR1(";X;",";Y;")=";VAR1(X,Y) 1030 NEXT X 1040 Nv}EXT Y String variables use a completely different format. First, the string's name is given, followed by thw}e current length and DIMensioned length. Then, on the next line, the contents of the string are displayed in quotex}s. Example: A$ Length: 06 DIM: 10 "ABCDEF" B$ Length: 0 DIM: 10 "" In the first exy}ample, A$ was DIMensioned to 10, the current length is 6, and it currently contains "ABCDEF". In the second example, B$z} was DIMensioned to 10, but hasn't yet been assigned a value, or it has been assigned a null value (i.e., by a stat{}ement such as B$=""). Both arrays and strings must be DIMensioned before they can be assigned any values. If |}an unDIMensioned array or string is encountered by the VNT command, the variable name is printed, then the word UND}}IMENSIONED, like this: A$ undimensioned A( undimensioned Command: VERIFY D:FILENAME.EXT Ve~}rifies the file specified, to make sure that it was SAVEd properly; if the file was good, you will be told so. Otherwis}e, an error message will be printed. This command also works with LISTed and SAVEd cassette files (not CSAVEd ones}); to use it, type VERIFY C:. Command: DEC hexnum Converts the specified hexadecimal number to decimal. } Command: HEX decnum Converts the decimal number specified to hexadecimal. Examples: DEC E477 } Extended Atari BASIC - Page 7 HEX 58487 The first example prints 58487}, the decimal equivalent of $E477, and the second example prints E477 (just the opposite). Command: ERROR num } Prints the English error message represented by the number given. If, for example, a BASIC program prints ERROR- }141 AT LINE 100, you can type ERROR 141, and CURSOR OUT OF RANGE will be displayed. EAB will automatically pri}nt the error number and error message if one of its own commands generates an error (for example, the DIR command u}sed on a nonexistent drive will print ERROR- 138, DEVICE TIMEOUT). Command: PROTECT This command makes }the computer appear to have "locked up". It can be used if you don't want someone to see a program you're working }on. The only way out of the PROTECT mode is to press START, SELECT, OPTION, and RESET together. Command: CONVERT} Causes the screen editor to convert all lower-case characters to upper-case, and un-invert all inverse-video }characters. When the CONVERT mode is active, a diamond appears on the top line of the screen; pressing RESET won't} affect this mode. Remember when using CONVERT that ALL characters are un-inverted, and all letters are capita}lized (even those in REM and PRINT statements). This allows users to type in any way they feel most comfortable wi}th. Command: NOCONV Turns off the CONVERT mode. } Extended Atari BASIC - Page 8 Section 3 - Miscellaneous Commands } EAB has some commands that don't comfortably fit into either the DOS Commands or BASIC Helpers sections. These} commands are listed below. Command: CPLAY If a cassette recorder (the Atari 410 or 1010 program record}er) is connected when the CPLAY command is executed, an audio tape can be inserted and played through the televisio}n or monitor speaker. Same as POKE 54018,52 Command: CSTOP Turns off the audio tape; same as POKE 5401}8,60. Command: PRON This command redirects output from the screen to the printer. The commands entered} by the user will not go to the printer; they are still shown only on the screen. For example, if PRON is entered, then} LIST, the program listing will be sent to the printer (along with the READY prompt). The PRON command can also be} used to get a printed copy of the disk directory, the VNT, or even a list of error messages, as described in Secti}on 5. Command: PROFF Turns off the PRON command; redirects output back to the screen. Command: REBOOT} Does a cold-start from the keyboard; this is the same as turning the computer off, then back on again, with t}he advantage that power is never actually cut off. Some sources say that turning a computer on and off too many ti}mes can result in damage to the computer; since it's always better to be safe than sorry, the REBOOT command was added t}o EAB. Command: BASICOFF Turns the built-in BASIC off and attempts to go to the Disk Operating Sys}tem; the file DUP.SYS must be on the disk in drive 1 if BASICOFF is to be used. Remember, turning BASIC off will disabl}e Extended Atari BASIC, and will erase anything that was in memory at the time. This command has the same result a}s turning on the computer while pressing OPTION. Command: SIZE Displays the current low-memory pointer,} the current highest-used address, and the highest usable address. This information is of use to programmers who w}ant to reserve space for character sets, Player/Missile Graphics, etc., and need to know the current memory limits.} Command: LOMEM decnum Changes the current low-memory pointer to the address specified; for example, LO}MEM 12000 means that the lowest address usable by BASIC is to be set to 12000. EAB uses memory up to 10779 ($2A1B). Be} sure Extended Atari BASIC - Page 9 not to set LOMEM to less than this v}alue, and be sure not to POKE anything into memory from 7420 ($1CFC) up to these addresses. Command: BANK [n][A,C},B] The BANK command allows 130XE users to control the built-in extra 64K RAM. It simplifies the process of s}electing which 16K bank of RAM is to occupy the addresses between 16384 and 32767. As explained in the 130XE manua}l, the extra 64K is divided into four 16K banks of memory. Depending on what number is stored at location 54017, the CP}U and/or ANTIC have access to either the main bank of RAM normally at locations 16384-32767, or one of the extra ba}nks. In order to select a bank to use, simply type BANK [n][A,C,B], where 'n' is the bank number, 0-4, with '0' re}presenting the normal bank, and 1-4 designating the corresponding extra bank; the default (if no bank is specified) is t}he normal bank. The letter following the bank number decides what has access to the bank. If the letter is an 'A'}, the ANTIC chip has access to the extra memory; if it's a 'C', the CPU has access; and if it's a 'B', or if it isn}'t specified, both the CPU and ANTIC can access the extra RAM. When the CPU is to access the extra RAM, it is important} that your BASIC program doesn't extend past location 16384 (you can check this by using the SIZE command and notin}g the second address given). If it does, your program will probably crash, and the computer may lock up. When ANT}IC is given access to the extra memory, you can make ANTIC use it for screen memory, facilitating "page-flipping." }When the CPU is given access, you can POKE directly into the extra locations, for storing data, character sets, etc. Ho}wever, the BANK command shouldn't be used in conjunction with the 130XE RAMdisk, or, if it is, nothing should be ch}anged. Doing so could destroy the files stored in the RAMdisk. The BANK command is of most use in the program mod}e, an example of which is described in Section 5. } Extended Atari BASIC - Page 10 Section 4 - Special Functions This }section deals with extra functions provided by Extended Atari BASIC. These functions are not commands, even though some} commands are described in this section; these few commands are used to set up certain functions the way the user w}ants them to operate. Each function is presented and explained, and an example is shown for each one; if any comma}nds relate to this function, they are given below the function itself. Function: Joystick cursor control } The cursor can be moved around the screen by moving the joystick (plugged into port one) in the desired direction. By} pressing the button at the same time, the cursor can be made to move faster, in order to get to a certain part of }the screen more quickly. The way the joystick cursor control works is by continuously checking the joystick. }If it is pointed in a certain direction, the computer is made to think that the corresponding arrow key was pressed. } Some BASIC programs rely on the joystick for moving an object around the screen, selecting from a menu, etc. These pr}ograms may also require keyboard input. If the joystick was pressed prior to the input, the computer will move the} cursor at the input prompt, usually resulting in an error. To avoid this problem with such programs, simply press} SELECT and RESET at the same time. This will disable the joystick cursor control, and the program will work correctly.} Function: Real-time Clock The clock appears at the right of the twenty-fifth line at the top of the sc}reen, and defaults to 1:00 when EAB is booted. When I/O operations are performed, the clock will usually stop until suc}h operations are complete. If you do a lot of I/O, you may have to reset the clock every now and then, but otherwi}se it will keep fairly accurate time (it's off by about six seconds each hour). In order to set the clock, you} must use the TIME command. Command: TIME hh:mm This sets the clock to the hour (hh) and minute (mm) specifi}ed. You MUST give two-digit numbers, separated by any character except a space. Example: TIME 05:00 sets} clock to 5:00. TIME 11:30 sets clock to 11:30. Another feature of EAB is the inclusion of seven functi}on keys. These keys enable a programmer to enter a string of up to twenty characters for one key to represent. Eac}h time that key is pressed with the CONTROL key, the characters assigned to it will appear. If the key is pressed }with both CONTROL and SHIFT, the string will appear, and the computer will act as if RETURN was also pressed, thus execu}ting the command. These function keys are numbers 4-0 at the top of the keyboard. To assign a value to a key, use} the DEF command. Command: DEF key,string KEY represents the key number, and STRING represents the string of} characters to be assigned to that key. Example: Extended Atari BASIC - Page }11 DEF 4,DIR This assigns "DIR" to key 4. Whenever CONTROL and 4 are pressed simultaneously, "DIR"} will be printed on the screen, and the cursor will be left right after the "R". If CONTROL, SHIFT, and 4 are pres}sed, "DIR" will be printed, as well as executed, displaying the directory of drive one. DEF 0,ML$(LEN(ML$)+1)=}" This assigns key 0 to 'ML$(LEN(ML$)+1)="', which is a common method used to build up strings in Atari BASIC; sinc}e such assignments commonly occur in many places within the same program, the function keys will help in typing the}se programs. You'll probably want to see what you've defined these keys as, without having to press each one i}ndividually to see what it contains. The KEY command provides a simple method for this. Command: KEY This} displays all seven of the function keys as well as the value they contain. There are also five other special }function keys that aren't user-definable. These keys are described below, along with their function. CON}TROL-ESC: Takes the cursor to the left margin. SHIFT-ESC: Takes the cursor to the right margin. CON}TROL-CLEAR: Takes the cursor to the top left corner of the screen, without clearing the screen. CONTROL-INV: } Takes the cursor to the bottom left corner of the screen. SHIFT-INV: Toggles keyclick on/off. Func}tion: Flashing cursor Command: FLASH [rate] This command starts the cursor flashing at the rate specified. } RATE can be a number between 0 and 255, and is expressed in jiffies (1/60's of a second). The smaller the number, the} faster the cursor will flash. If no rate is given, the cursor will flash at the rate last specified, which default}s to 20. Command: NOFLASH This command will cause the cursor to stop flashing and return to normal. } Function: Accessing EAB's commands from within a BASIC program. Since EAB's commands can only be executed from }the immediate mode (when BASIC is waiting for input), a provision has been made to allow most of these commands to }be executed by a running BASIC program. This involves an addition to the existing screen editor (E: device), and t}akes the form of an XIO function. This XIO command follows the usual XIO syntax: XIO cmd,#iocb,icax1,icax2,fi}lespec where "cmd" is the command byte (0-255), "iocb" is the IOCB number, "icax1" and "icax2" are auxiliary bytes,} and "filespec" is the filename. In the new XIO command, any number greater than 12 will work for the command byte} (cmd), any IOCB can be used (except 0), ICAX1 and ICAX2 are ignored, and FILESPEC is "E:" followed by the command to be} executed. Examples: Extended Atari BASIC - Page 12 XIO 255,#}5,0,0,"E:DIR" This will cause the directory of drive 1 to be displayed while the BASIC program is running. } XIO 255,#5,0,0,"E:LOCK D:FILE" This will lock D:FILE on the disk in drive one. XIO 255,#5,0,0,"E:FLASH" } This will make the cursor flash at the default rate. XIO 255,#5,0,0,"E:TIME 12:00" This will allow a BASIC pr}ogram to set the time; in the example, it will be set to 12:00. The XIO command may be too cumbersome to type }each time you wish to use it, so another function key was added to EAB. By pressing CONTROL and "/" at the same ti}me, this will be displayed: XIO 255,#5,0,0,"E: This can aid BASIC programmers wishing to use the added command}s from their own programs. Pressing CONTROL, SHIFT, and "/" will, unlike the other function keys, have the same ef}fect as pressing just CONTROL and "/". There are some commands that should never be used in this mode. Th}ey are REN, AUTO, and LOMEM; since each of these changes the BASIC program in memory, the computer may lock up when thes}e commands are executed. Also, be aware that REBOOT will do just that, and BASICOFF will go directly to DOS, witho}ut giving you a chance to recover your program. } Extended Atari BASIC - Page 13 Section 5 - Sample Programs } To help clarify the usage of some of EAB's commands, I've included three sample programs in this archive. To u}se them, first boot the disk containing EAB, then LOAD the proper filename. The first program, CONVERT.EAB, is} just a simple demonstration of the CONVERT and FLASH commands. It isn't terribly exciting, but it shows the gener}al format of calling EAB commands from a program. The second program, ERRORS.EAB, provides a means of generating a } list of BASIC error messages, with the option of having the list printed. If you choose to have it printed, be sur}e the printer is on-line before you run the program. The third example, BANK.EAB, shows how the BANK command w}orks. It draws four different sized boxes on the screen and stores each of them in a different memory bank, then i}t flips through them one by one. Before it draws each box, you can watch it clear out the garbage stored in the ext}ra RAM; it will be erased from the top of the screen down to the bottom. This program will only work correctly on a 130}XE, and will most likely erase the contents of the RAMdisk if it is currently activated. } EXTBASIC.OBJEY@o   }V "!$#&%')(+*-,.S/1032r4z57698:;<>=@?ABDCFE}dGZIHJbLKNMO6QPRSRUTV_XWZY\[]7]_^`baced4fghji/kNln}mpoqrtsvuxw{zy|}~o+F&3f'W}(*,UX2 ?1g}-O0 P%Q Mn[}"B#Y5HDKy{$ }Gws A=:)ELJ^uq~|ITv \}ecxt}>Cpm.!98<;`jhlk##uxQwb~O8迟[ϭv~B;N|zl?}?ҟ_ßy5f RuG.hO4*''0y'<;N~ҟ[kqT͆.ӹ0^'Q^#_ْ l.ё`}@EL343=bZOj%Ѩ$kȱ$ZNPxz^#p #@DlO(c{J ;A" PDWx}T5DУ"TdEyP8q!^ PGȡ }DEȊ6CEh_i+"g" hكEB (Bٜڣ^E^5v|T/Z+x6zvh*@!XQvU2nkیV5@] }'Kty{[]! sIޱ ҅ZD3.Gh(-^=Btyl!xn%CqtkD8}z͌>]dE:;ï$ekVʖ# 7y4Fs? }?w*[F?m.ߧ%5GӧrȺ8Og.=ΰr0a QBҎ٫OW⅊HvP.}c/bvhio }!хCSvP.}FpdJ | [N7xu7– ^xQW?la+s.B*l7?B(7 -x 9Liqm-KA}sja !^K=r-Br)'v>f[=O ,owө$vQ=6BZcTNʗ[=Oeb%M|d.A /N%}AiJ:ۨHBEZbZZݢi( \l~"C-$>?016͘wg@E/Ȇ_\Omsv{}Leڲ嵗5# 2b&YnI³1I(1|q{LB$"k]hSu]H]l7PMk^nQZRj_R˦+Kd]FNhd}KxNevYOՑ/8S;ۼbwdtdģ2kf\wz4~5fpWk!87^x:>'<>3s㪳 }3m <e7^}k]Vm$KWZ|Q6_nJ]:]؝sWNr#U;<LK4׹g].N[1qspWM j|}a W)z8̵zfGo)>6gprtT+d<1x LHdf8X#!q} ;l|ɮ6L6azmF#%}dW&_mF#%fwz]mlIGh՜镫P+5.Sr-y/y/Kj 7^%vK%5.}KjD* /6ڣ8G 6R!S! ać眮I;kThR!h怚 Ru}Sa{7`sqDtMŹw^|c@6[Ӗ#ڙ)vڊ|@n -ٙeq刼vf넺"AFu=~O-ع/HM}yPs_.q%%N7>OX7Co.:x 0x15 ćzc!b-ͥŃo@ŹYKnPхٲl:#' Jc6, Jcn^8}| ;ဏu8DVlo,ӕ4*<''T|~j2^/)/HMun%Z4eer*wO !}O-RF%eɺ΍>u8DVl,ӕ4@4]^cɺ<^L}&\j8xv8/)#|~S-@4D9Mc5&d"}V"83^_?8#D͆[ [w~ҟ-}@⿟@N0y'qB˧T o ~|p;!zBCZsSx㿟P/Z#..5BfÛ#}j=*Fŭsx!_5{z75A'^i!%u_<|o7R$^a>HggJ錜,ٗP-8\YҧW7>oyu~}vx$}yu~W7gw~js>M)$ϛmf?v8Z[;1ǩ4gi`Td2>,7r*wo~PFQ徑},>*~Ajs%}auxÊ3bb^c_ܨvtjqF{s/HMunT;Vq:L,n'>J~ /@⿟[^SˆqMȴ[6%s{b&}?29ɸIzӧ錜d\1/Q=" EAQU Vd"R.̖/3Vfscdُ2RD #Hf +Q3))G]j?54w '} Fzɟ)r%%oaUD,7 pn \}@oW<7-m :c| 'tL8H,w}g5f(}bw=xxX#ȈGgвs)Qe,f~j`n`p vftrCN^_< "Ǐ ޹įR"_ppUK8Yީue|\ln[Z+}[Ƭ3,E6ݱ.a`K%e)%e - + + + + + + + + + + + + + + + + + + +,} + + + + + + +BFC{/4C?3tɅ>д0{.yA0< + + +l*X#6`&JN8>d.}w +UKr&MLC}ݣ/]XьVy~2F[]%3 ]{oLծ]˼>lDpCW'nG=JFQ3#F[% /}hE(6=Gyb$0fw{]W9sنoyb$jU{7Kkڽ3:mv~MծWL{>Q +z bV^{Lnu0}W{puiE()r41_F[5hFMn%_ovwwoBcee^iE(fs鵏{s{M3޵oXw }ׇ1}9V}RDn} }ݣĬ~&>ʼ{+L{W]̵w5룤@E4^آ<}h"F9vpa@~va;}8@-.l`}4Fv.k8Pv@hEyeE(:Fز& ?!*0>r30rF7<}{ڄF CONVFLSH.EAB,EY@Q\  8NPHRASELINE kkThis program demonstrates using the=} flashing cursor and capitalization routines to input information.(2<;A ,FV#@@E:>}VOpen IOCB #2 for I/O with the screen editor (E:)PO0@@ @70@@OSet new screen colorsZ`?}3AU@ E:FLASH 15`Make the cursor flash two times per seconddq2AU@ E:CONV@}ERTqConvert all inverse and lower-case characters to normal textn//(@>:A%,Enter a line below:x2-@A}@%(@2@5-@@5(@Here is your line:"-@@"(@(@B}(@$$(Press RETURN to do it again.@ AD:CONVFLSH.EABERRORS.EAB<EY@A3jC}H\E@" d nnThis program will print a list of error messages to the screen, with an D}option to send it to the printer(llinstead. It demonstrates the ERROR, CONVERT, NOCONV, PRON, and PROFF commands of ExtendE}ed Atari BASIC.2<FR;A,?AU@ E:CONVERTRCapitalize inputPOK(B}Do you want to F}print the list of errors on the printer (Y/N)OZZ7@<@,4YHAU@E:PRONZTurn onG} printerdK1AU@E:NOCONVKTurn off capitalizationn (}x-@@!(6.E:ERRORH}(67B:,%@,.=:,3 @( 3Right-justify numbers < 10( - ((AU@ I}C0AU@E:PROFFCTurn off printer D:ERRORS.EABJ}RREADME.TXT+!`O HM)"2ryD 06D &%aڔ B伹fFI̡ 0t&VtHaܐyII-qS':g@H)L}:s\LbD7u)bl2KAf `7Q)&6фCY2iDʐ2d@-A 0ȓ wb4cSBNWi`QdQ xi[V=R ie6M$vJhstUn[hΐAB]SyV}ZHe*Zbl>yXDwCKbJ,nhji⵩Rhj UbkJMsȡ3 \aPUt1`D&-g9W}Wã ڕ&)ELieNr&Ql山L A&\Flybu+CbqLV 0FCFM$EGG[p)CM4Ez(dmBwmFalWoi5 XX}[oD7S׶NFB6F$0 GBpx?/A@Gt80*hD 0H2|$$Z}#)I@C@b O" h p3ppwP2(jdL|-!l @67 .pIOD"=rC  RcԬTI÷Z 6ScH$-r[}(%7<\u4C! jz3MldԠ25F31 iu11[e<4cXb"Rpfq,Ye>0)͓@́>*UI]¬+Dc\}Znre\Ie0)P7ԡ b[/Дq0^7W/jE' f0FaGtÕDy|G H i<ۄtN9@$m5 JUt*U=y%H“b2Ӳ^}9XT⪦n9XX *!cz*'e%)nGDDjoQeJ\O.' SH͋^2!M`EPGXs`[ɓR llX9_}60 g=d킀VM7zt}h:9$Ҕ 8evL)WzYˑ 0gؤb];. l.|T!-r;,x4+ v,T΁fd(`}ٓRSNֳ d) 0W8c#@3W!s@C0J1ˤ8bXrIa!X^!Fc9-AeEQ.X]WR؀3nO3 0ӦܔSa}R* ȐpJ}$GXF0lvKkLr Dm-KjR/ݛ˜ir_[ʰ^V ^a@I 2 Ȥ4Y 7o@$Sb}9鼑S7 6T  :s$RX#68p 0tJY< tSN9.LՒ%gD :ulS"HHϾX Qò 9f$hI+6ÜQc}M6iZ50È9ԩr % ΁fLId͜lʍM# sؼuj֏g#9D-.p[Н;T&B:Limn0nd}a[$p^}@lEYD]aEMEXH5]kzOTnKóvR1єRN͡UpԞBqB 6DfuYci1\ۑegfe}NKTĚw2֡4D$]D<1 aZ1^}"z I mLfaPsToqUr kmr}'O H&rqFhm𧡖ydFf}ƴD1Θlİ $ $OЄD!V\5|1&m妡uvV3Fu & F!gD]@+rmyx:vFT]+VUXA4poxPRDToig}c!rU]l]xi(PI!XIAG ` 4!Ae(F !UQyfBZMDX & cX LaRMxelmu}W35% +!NU:FpC<$0r3<Ӊ]#PVmKȘL}AH yޒJ`sYMkslF( DRUra*B¡{0c~6"Yzv}*(`M+ɂhV{ޮ @ʍ;"M8hL([mi iV+t4 H f .kyCʀK+kĺhSQBN=1G~\,5`w}alvbB`I2g,9KBuD2x s9BS̩a!AuY|XPaRnu"p¹BU)e@B(ꣾ[B'-i9) p3, \47K7q'.r PS0KGPI-bm.rqkZz}qGE/W,c1e3Nc'({&QNgni9ZAtHNr,uy`c@IaU9/am*/p0UCNہ7eo!}qApNڛB6 t?&UEt! )aD"mC~Z%"Va UVE_HFDhdyQXC#Ut9?:vb 9$Ec8:'!;8+BV%,^`%iVT}0i#apLC*Ah$N) v=NuAv$?" v9 =7A=U-x1HssuC#E$A?#"4#NR/.3,5x;}Aw! 3EC`T0Irl_ GU :'D]^v.FAT(!q6y_ 4N@r~Mx.;@^*.M`xR.P)b1 xSJĵ-JtPG[QtxeZ/%L`4H5\9Hki}RQ.&{`TXAQeI$ K=B"r@)s $X!Y ZSiK!:ҙJ7L`b{d"G]6CwXdt7}RÕҜ Ø E];BSƱF@>NN'q:oDwNJLEg;u!XлRy.t35| ջe(Aѳ R -v'BE.B|j 'E!lG̡n9}$I-F -7EDbBd[{3N6 RbQr.V+qdzÍ16dEa3QT1)WRVoB朡sA.y"ۑ}?% C@R-b^H( (!;`b'0|HM$̖ eRܖcۛT"S,H<i9[Id Ă|o!kL}Z (!HDs'{{b0eHBsaZZF 1Z/S*+7D·x'$a*!PPϸQ"XT߾ՎIaHV@%8n@7p|U/VEnh(Wn7}l5+~A-@TUE@2c^V<%.s␶ 0><'L-S57$F~K-=\^?AMǴqp>ߔS8OMOM+a;K}Qjqs0C^vN" 8QNS@2>"85فSpPtJ-d>ryH>Md>­O0rizb>=.}2Xؾ-/ƓrH މ{% 0dOElEȡ/xjޯ&2CPZMf$UYO;?TLuL߳tpwVA6S0䂎hA)gIf?@,tM>91V TKb[h 6NHCoQTpkQ}intˁ'"8AgêKB"rusAGgϖ1zyO&;WQGCN S"xQ]\B> t'I9NU"lcN_=}v6B}uM ʫ}aǭ6^ucT1F iL2# ЮBEn `-hl.@!#Fh6$ O@m[v )8^ѕ?PQK$8}( ]Q1 ;/B+}Ž;Ʃ^ _P!|(0S2 iBUщ!|(,>v-pP21V[QfBC.}F1曓^rGy/0~б-NyjpLuS?aD@KTTP,6 7\ݥ ϖ!@5[1s1HNKV툯9-w}LmZ+Z~I 5[ayrVnazZw0^sX_ƼYiQq4ZNY#-hg\wU@gD,Qrd[f d7S1xYf&"WB}צsiqa MلyЇ?+i:/4\G0M4D0& 0rax~Oͦm'+0R$ d2Ю*ux$P1LEbG=}CSA0=sqf'xI./7 "Ec ش,K!)0/xE Z' `vgMQ dsG0.-g*TVI:GܳT8ԁ>t.H}10-1-q^RAŖ,9?.> 0Z7޽r.+^rd[A%qD@d(&J/ ao -^1HNr??HCN1Q'}|k׿I3M&*h;ۇņC˖P1[t+P).@݆.ϯۇXA3 a4ۮ"sAቶ#;>Dh}\KтB^їQ }"ro2]FDCh4qG-\_)hUpR2'-"/,[ r~z ~;v0{Ie(]z}=MqE@#@h2/4JraMaDzZ^/iQ^0Md^,o-0O6 ?%>rJ#Hc#1pla:+}^rd[4V[^Gz0^eYo5?W9)WLIAVV[^GzbwX\#O|'\4`߫Wh!1v8y}O9[T&i1p/E $8^rb_}mNY?kۭ_b8V8M;o">,L !>;;OHa.ó1 1|޽BHyB}PG -NPxL/!R]Oh cy<`<"JGH1j0>$F$Ӗ>1RAui 2lҭ 9!s%C21 q[BAKbTF9?*B0/wL s.tBC~}NeZXn(8R+\1:<?׭1 F9?#`1!e}i Q|R+Mc4>A;_S?}QM8rnLd˫O_6^66OV6n6y3ө[F:4sRZ~]{2Rq1TsE~Iѵ(,!c BIa'}[(_(DLeY^غ1aXoqK~KBT&@ZCQCJE*M\n'.kฅB$t${NhCkBD$Da?^"ajAFKX}nռb^KB™4L(sBSr.E$_(D0Un5S%Dl B'r10Z aX'052#AAR[ aXoqrDiE>}Ih\E`"4SX[eOؾ-/ୡBZI\y6GEɻ=S'xde,8 7\ݥ ۱xtA[x:}otJզvt pN*;$;@_8.Xmm1;; 5OW8Ѭ%x=öXq1 jTI}WeF9?!4d [Sn\~rYn4lZ27+}ͅv7hO(FxPC&6y.dt';9C1C4afWQ6[Jq}YC&<{4Xóގ5TUXx-?S>!bP쮭iN&" xߎSxJPE6D@z(X1gqUdcᢨXj}U<=K(p$7t#8̩lZAk#AL|B&wlC6AuHWfUmߑ1a$txR/ ;[SPmH{GT}*l! +;qB=ƟxR`M-i,'q~,KaG~A|2@N8ll̒p]*`JkJc=K"$K fH ̩1_b_}3Jо! aYU%T''N4/ ~oL!@Ak뾽Fn~C gH*=D@Ac2-[A1S ߋ|}',8ohT<^dB(4<2'*`D#E9l4XZDZDHED@Anx]1R-fOxE6YzʲWfr\R:;}EGܻo_$V1 B*@-kd|ksuzqronYIV+=Iቶgpf_&VEzAĢN]['s]sd?}B =ZD׶MQ-}^I"x12(ZM(T0ϡ13$lM (XAs.-qGiתYˎwUfE~+l}\&&̣e9\01-/Ɠ%{8.XRO8^B5u#</75X\_T5+tKN`iG5qk '64})Mb3!\۱R0@c3ۣ\ 7\Ͻgdsg EWz(>|zjr"-!Z8SN["g<1r.PG qےkʢ;(@ۗ<}[T%Y,2DL$6Z;d/ BdsP2$ZyZn%kH]!;JA)s4<Cu%j԰d|g#d|kc^8qkAx=}䊶9P2ZQ 4ʋ.<إ!R K5{!1>SZbİ%E!%x$4&I5R18Sp*Ob<nd5 8$F t;|}JXXฅb)H..l!^W,$G6p%B1aXhbic!$IRrwR`X(M+`dL6i5嵼;MQ7Q];y5}j 6BFJ*R`ESbd,8}E<|@}/<%"p]*`:#O$)5F"h\d'eC4H^abRXAp{oK:]g]}]m~;z1[yWg\ӋT!xa6 !x`^8 7\_}GX&g۴zo,I tc> L@=ԇs"ܳ4c8,`b(óLSH2(}qmT=0RB0~'ؗɹ`J-8P+^=L@= 1+@t0bq*ľ͢p\';qTR&+A'IrJ'xZh';D1}m00C}0cCc0m=YX\_4 cPG qےkyE_C.:=S޲c;T2E6lq B<; bgfgDZk]}Wn\̜M)v8%\ a&[ٶ"p'R4:>\tB&wlԳey:!+6f&wlӷH A!;~`1ޗL<ri? #0Q oLdV)4`}Tpm;û)f&wl3^of-b`akf&wlCvc>_;(@rPqB&wlԓ ZTnó+"x@5|"Z`$x9z5"x@5}xr10,w$3|&}Gܻse %؄;CXC0]S2ŖA~>o]a\w$3ZZ!MR_Lr6k+9FUq8-% H]F08GT }9@58wٯ-q708WEzAy-q9PT8G '%s"S@-q6@T8K'hG5@54qT{+-q9PT-q70TsT{}Ɇ-q9ЌU3w9@5*sAT(7tCK2 w5@58',sr]-q9PTcX5-q90Tc GX5wJ'Fnw9@5*sAT(7t}CK2X5-q4pTC̫-q2ЌOsوV-qH5, -ͥ .`:wSS5 ΖQ/e w4@54qL `Ȭ+}-q9PTcGS8wٝɖ,9?-q204qD0&KtR = G3@5*sو#Kb#-q9PTc w2@54qWL lw9@5*sA}T(7tCK2X5-q7T8OrC7t$-q9ЌU3w9@5*sAT(7tCK2X5׌08w-q9PTcg9@5*}s?h-`K& P۷ۀ. `g2@5*skPцF= -q8pTc9@5(p'[:Ӑ-q508qD0[jxR5Q-DM7 }X5-q40*s/s1aXh$k GS8wٝɖ,9?-q204qD0&KtR =M-q90Tc W7@5*s/pE69+-}q40T8:$v>n G7@54qوμ>'8 oE G2@54qWL-q7T8OrC7t$-q9ЌU3WSS57H}PCTAǼmtR-q9PTc X5-q5TCW-q2TCgxE5Q-gvHԲ--q9PTcjT5-q5Ќ}Os/pE& 3'7@5*sh'V oEGX58wJ'Fnw9@5*sAT(7tCK2X5-q9PTcG0 8wB1W+˜/}K-q405OsݙlɒCG4@5*sh'V M5-q204qD0&KtD0&Kte@)͝ 6E 8ppaÇ9fLiC44P!}0cր3FN2n@y7r$TC %HM)"2ry3 xz|Hƒ NYfN4Ӹ!SNj dؘH$Jpިuǭ e|}xEN 5'9 }LPNr~146DHC\Ao bE@(-E4ݦ-. ` Qq5J1 fҰ [uGADs>b1G}} E0r$d`n=$u TQj Y[d#MVe dYgQs=p9TqnFS'T8;.0]#rtD(;}B^5'7Q4)Q\K_"58jOrϜAIޔ4,egD==f@PABy r}!1.A5y[5@2 cz 6hoB#1a.*/1"djy[fUQBp)" z(0QE×vALuЃ(Rk4z64E}'b T^:0ɎcvNV!I\Į!.4Bڮ!Nl [3ַb`Cܜ w exnW6 H&tI `i]^Cа|}`HA 07VXϬ (+gů|],BLv]R~7C\XL h[66qGalpE~ÀW<,-Wzȕ7c^}֚6~}Ornm] ?,f`4zL,Yv @ȀBHnua-pIVla$FSL0‘^)3$i8Yih[ <XDdaTI݁E xaĄ Y↟uX!c$UGURAB}rg pI QFbӜV:٧4HF5}զ+afhItDT(TA*@02 X«k!&U@P36!$S]ѡ&bHHĚLjHU2RHg1D7!:|4Ǚ0 faNfpF>FiJRH} !N 8w+;" ֧2TqI"qV@i40)e fDRI/oYUYh_/=Z(B! .<.O{SޢF Dl}b>BXb§(Ȃh1ջ"LrFJMxZDzh(gx ǡMpfzrI>rcjdX3! ђG0R-IQ}S_UMD2/.pv(aVs1(28L^}ObV) YD!PA LhA>>šj)peTOؽӌ6Wd'C 5A_v1ttvBʇLF}6!k ]:}l O@P 'V(clHez6@za$T plϳ!"!ꪓhMJWUIU2/(V9x3'4mJ4\a p!}1HHdć@| UM֤)eH=ZiP-w,jĄ$%&셕Դ M5bj" .z̈́y@)$$GQ^!!rdS Ei A 7z$x-čw .F Uz} Ml^xk~2۞J! 2hJgiT=+]zIEkkXaf k H ASi3G לSjqR5iƗ'ԽCfh rmTKG}4US~]8#?# <@A⒵I@^N^L'ZohZ 4I l^`S桳YGaQCT|r(_XVpWLQ{}?ku~cs*BnjFk%q?E ,U NPF)A@JyasR% tdjaz>f% !UNPEy!x'A+#7PAJQ)k!oru=COA}7;qzQ2l`rrUjXE0(d 0 8/6rc7FDY7.Zf+0z%jvzFHw^k5.:@'7tBDx`o-p!YQqDQSBG/a1i}LaEVVcPf&r0Bldɘ+F5&uEF3"(r!-d0O7W6&!~[d ro1NmxG"AxhUbMM8X&[w>w}UC 3b8AtlgT%B sSwAY3qYqe4rPO>11C8)B  #Ip rbk.+0҉c;@3R-N;am*U81#5V C }d N'!p!_" _ `R2`v`w0w#%E1U*ck&t(=6-Uc$z:N)[Ere]rFjSӁUBC C浕\-`# }67 ` J[&I q"NכWA@0s}Js5&`x0U2 k םx,rE0 YSCNK-PH;mӓA(Mgme }8H݄9\9.IF*! t SC!Q0[Gt5r?EHc!QhM[\Q^"Q;D n?210R;9 }He7BdtRUdXC'f0?CE^\X*8u.07*A%mhAo$R\)590RT24!&b. .hftUb pL!L^|SB;RFe & }1^x1Q"EҦOep EBwd+x AAJmL/hKS)[v_E$gz@Q95Ngٮts@4!jW!}+DRzH6`+O 6j6:Hd(@'z cEaz1J28~I@(JWv QJ֦l𥱅[3&y ꜆}i-P@IN0.1TRp:bhznH>1t}x7M)+9&~~>>?s_٪q;N!<އIDg:wNK֍?$/YhK'%zCdس%C)!eR}F@^aZD^A~·WFgTЂ_ihM0*(fS+؆+-^~^u.62o_q `tvcV!߳B} CA?120龐^B}!?ۘ5rgtP;)V9G.B-!LS@#Bz#\[wxA=NoQ<ps5}~PDEӮ-.a'dPf$h_kĘgpS=euI ~{fP3H_8f&/*aAh2TN"csE5[ba\}|;P3~4|`jʴY75k[}T]yr75_;/O,~Q/ O@gb#.-P%&JcUw>r{ۮ=.wP'Py}A^[!@TLh,aR EA01q~ 5RS@ti*9]dLfxYmh ˣ97еNV+yD⬜+Wc]OˤX\Dұs. zOϨAՁR4'RFFr]̧>hPOQφF#}zkXFd?NQ}:S:Np:6~vL k<(_q)t9u|Qh(z/ EH.2C'[]d(-? XscJұEx$}d2Dg5DCkeD͎NVe+gtOAģ'ԜM 5{?!&gk5(Ud K{hehR|#\ 8dO௙~*)F&fWFw]%}d[u՘g,PBȍ%2y1ȏ2GS`xdR>w-1' DHp"<ػeNNV+WxԢc XyRUӬkHD!ٙ3"P&}]HSC'<@A.3`a'D*US&7v1y|cn1R*E aPݤ\N,(! 6tm(_5.F LzyQa|쓷g5'}6qR*]umaE`QEp'SX !*`M+J?Y^Jj3D ҕ)l6* DpuMz+ / 5be ZO}Mz(} '5N Z5D#P Б|e'֔LNzNB 4%fxaO4JO~?NS`_E2N0AP]qcOZ)}xE615_C8qdqZy\X<_'jRy%ZFyAwz1,lQ-w)3.qw%Z8.WAYm@04r*}L#Qw)44PXR?3D8HQ&S.vIF9W%=(7"pEq5XqU-ߘY vd-%C0_[&Xہ+}zJ{' Qo0J<{mTYa0/< 1vOSe "lSJpYa0/bM2}]Ӆĥ>I8>ӲVb;k-P!./+3TXt\!?2-.<*B<ƃ<4R-Dr`+ !Yy[0B ю<i=VAmmK!l&Q-#UCU.1%ᦗn.Vi2}Jo8t/^|C=!PzP±m]S045Ng%,d+%X$qARSo0ѬL24U`lbMU{"eZ#oA2AСRl'^mr`3}**pƅn z!dP@-EYks%)ay)#!wћ+31&j,Sc+8zֱn`uP<%SfD / _a4}o,k֔'`SLUJr%ycج@U9F`VV!]S0gP[.5fA0@Z1W3]fSxS^lT;}$QԸK? pGlaQ;к 3(,J;c0mZ Bun{M;tz;`|ODaJB 0 \|=؟'? j=$U>}%`.Aqϓ@`, E 8)?@=)ˢ*HZrܱ.٥.J04 PC0Q%'ޘP1 +BTEsb' tb1o,?}=B]r ÁPAo|>U${A@4"s`Lbh.ZS@24-!6' k8όrZVobA( 놰 X~C.0gWM @}lYgG<2 鄷$v:lL`r/5+6iK PMPv,YI޶G[5?{.S P*dDI'3N( M RdA}(9q3i MW"8n) K].t\7]:A VNJԡASzG~>A.&TYPO3W zPyvmoNBsG582LԠK|ֵB}D 9הjEa±e(D *Uyc#{BtEIOy hE"cn+R0cB,sT!@}]nZ=mN5gm}C}1J1q[Y࠹dE j9[^UodU٘J]I1Yv҄!@J]7ZP[&meXJj # a@7bL$1tD}@(`4(Ātb# L[2X7 /)*1ޚ2_U e/N`| r "/)hyZ `4lE6QA ā+"S4(qE}(V]> N!7_X:H }ßQ&Yq( 4 pP]72p2O\M=Wg\ 3S]MV0.0~ %j $)7"+F}`0kT Cf+K <0E =K!x{l[Rz 7{:,ىJl]5ŭ@>7 PJW+ӂ+M{kf@!,rA ~Y)ijG}r94+E-qX[|)k77HbE*W]E/W1iJ搒1~N"P_ԛNCg]B*3l(t[>}|ݰH}2卐 {>[}κƭЫ|,?>rH@[XAW Qf+_wuzJv O\[Lj{:Vt6©9 l3I}ASKGc5 AS6SBs4O3~}TI0{t4SBC {G)s n*=Wg}ELn}5wAE)(WQE F[ripsQuǁVCIol#FXC6?=$PY%%&`3" K}f``@ / ?1;XA%ABE`B큇7=aT2;x2r#ax 3=2#7X6PYohA(0#8A&xh< L}.> g%A%DbA]88<%E9Gr9x8BlY2 6p:W:3"$*Cj&)Ï!u>$XK醍""aTt22yhgd3`c-cM}#s8.7Ԏ+5<7"A SY" H7%s&DeDŽNhldhzCV-PMA;%%KpK|ixf,^EEi,)```#X(N} _V~bs*4eP*;OCr/PHwgHO { IBF@t,mq ,o;/t㱅j^Ϲs1Ɂ8(.tTQjN` `.Mc9a`O} @Mx"-acЄA7xn+Fh MHs`9!h H,Vpͧwuw Z¹7X3er h ڟHtvG1|g-h2`4#KNP}ҢVØE$=$Nє;J9E X!l1Ic3!3fu{R,j.Jv 5t05juXHX0bCOHRAq@8 2SP@VA0iQq1بxYrQ}wʗJ: Sp!8,0D3w;xJ9ijⳀ3>@HK UyKc5؋wX)5ANGB 8Bꩠ*S: ԒkeUP#Ea%64eLV`Ԋk]yhԯc R~S:2aݕF )C2M6A$f]+(Z}#aEg¾Uig:@Xlcy"}-F}фƦ*҆kf/uB4) *ûG/0-NJ/[B:-ūv{vL&̀6QY"i*8HԠL [}1u` HoPsFLDWR*x&HwS-Л Q`h+—~ُ"mV\MA7*G"92>]D0+Mu.*D(d)3) i|i\}E׷=0\.:($i&h$7|n)Wy{&ܽ'D{2 ޓʟY}?z_ۿ~ *򟬝lR0OFY̦Sp1wm9FۆB0!B]}ͦ"'=&&hl-E}W*hELXWnk|EwW|=uDIG18cdKLO?P;" (;\tW#WW^}ћ2iLH({-ӹwe_Xs:Mi 6 c;lEcnxl@DebDII[1:Ab55.[qKRjn 0McFr~W_}nN qPF5M 9GO)s~lT F7wO:C(Y3/ˠi9v/p`2)LL/ZP2e-̆_G?٪2!%/=rr_a} =)l9&9U+80QJc> , L8ocU>'3V%\&/l<]s?d6 rXb-Zdfb}:ךԞ7CG\QQ/]RoVZn)ZfCfzm7)2Bo`&f##11OS#4l ˢa/#V# !c}#&/ +Y08"0EdLepn |+Y0 "҂/0hpgp"^P [% #=//| -K1/0hpg/ |+Y0B$"ld}z(4-stPY |+Y02B"IHu@\b04Z-F*  [% #*$2| -oI Oepsy.[% #"Rv *Ct/e}|+Y>)" !03*қ3' trnCPIf >ۗUi3 X V.m3K3Y.tq$xK1imR86 >WC76P 3f}?3v] VSiK>C>҉kp5tCaCeNPL >3BW.(Ee%,[],00"@,,!73[^?#3,Z H |hW*Wg} E71T)|â6bnRCPPL][\}kI[ ܃D}6xv^.zXdյ?ڄ&QQ6,`GC8RLhϋ+fG-Q<h}.')6^+ 60ѣيfz?Z,60Qʬm5.KU`BʳF{m!-R@5OI`3amd6S`;OU`B~6~\gUsѦ0i}PtSV%nKynr*:*mp1sE7],PFnKynDl(c0&/y{[npsئ 4lODoEoI#MԆ/ 6ZsaXOUj}xQKt[nY/ X&oTIfq%)ޘN:WiBz\2 a8b; IP \} |b>!aAf]d k>8b;o}0,2~ 63 |В=8bpK MZ-#4Wi¬Bz\aZR^. ]srh dXmXݟ6`5-p hN ɛݟ69e";0#/>#Tp}"oËט&/b`q@%ܭΔ~ӻNu͈(z ɋU;ُA>JH|@vЯn>|w X!aAf]dd!%q}3 لx ؤU+s5Q*U+M%5Wy5W:deS}Tm \ Fp6cIP)\3'j0 ؛PV#2/t ~ r} p%x1弣I{1Vλ>oS\ $dZhG^x-U7Qγkʫ:ϹьX |}C*0b< iu;s;3iXqus}K,%P R;戎8iK`_,%P1қҷdaNd@N@QΌқPȨ,y@ққڼ QNVPܪt}S,7Fp6ˢa7\9<[:R̅ !Af]d$/\{`ߖ"c7xaH@De-:lP:\u}ݻ3&\[2M^?\HzN;QPE0&SFE` E`a,9\\KBNQ<~Rq@*\k}r'?hn)coDO\{t?I0v}}yy]U`3 |%˒Y=^e\v< Ս) 1NPr 4*a3,/b`"WS`C{gz9e\ T3ϐE$"F8:w}0,0 xMn /l<\A6^U,Zwp*݈hx\~ȢLgApOgNsn fR`"WS`CQ|əlfiRT`D;ҋ x}RR)%^ti$6KQj q1R20SVf#%>4#Q#%7"Pn#HsP: %"Sv Ԑ  @ y} O,%k}ߖ"PĪn4 RRv @ -n#qVyF P P #%Dº 3Ha' a.asbG#%#$2bFx_ z}P +0jC)%*gs ;y,0F0(cR¢|c:[)hN#h',/ h*2 +Yf5"Q-V/:ҋ{}|+Y 2| ebp|&/  [%)h&/| ebK8('g  [%)h "2  7!h8A5EL@da hT|}i'h*\ V.m%h \_N.tq$xK1im86 f4a%h S VSiK& h82҉kp5tCaCeNPL BFkX}}TV26Nk5]݄dy,a>5\.|ѫe"h,*FoFk>%xmMA!!:m,9h8\gUѡ"4pP*h@1eK{36~}!#/<)s^Pt3fW-V/h'D2hn;i,s^z[n:D#: uK(#:DQ8#xr}9CjCLt8$'WuW ꣴ} 8$(#@EX8$(#@FdaNA 09#@^8$WWqxBK ŭ9Sp^*#@^8$W sjcp1Ţ}֦b4ZpP*Wk99Vkz?Ѩ\k:S :z8(pXrE6 `%w@iqڼ &W4X%w@Wq8-f9S}kLLw?L<0ke PpR(3λYV@aC&ke.G }Lk#>z8#":1^s*0(0(v2PpkO>za>8$k*}>z#ɒk,_)λ9/RߦRVUPSl2R Sxm{撋˒,m*uz .}l!ڑCλ(J2cn.-{t}Vr0r erlB1Lr:V:V!ڑZ&}Y8veC$W:C(:Q*3V&,/FMCKdE7!#/@ ΰwOCp{C߻Fol},MB> lB1Lr9(:Qi3Jf ۗiWT0Lrs:J2cnϢ\sns ͂%8{SSTYq1a)G¢ߦN}i3g 2F+~Ϣ֦D apFn* Vap^mb, Ӛ1I xK n!A(c :0p18+I&}a txqJ@2V`cA 3a,`,DE #sm0g 93,}{caV4B 1sp77) "Rqs`!>k}HGq4EL e1?rF9qTq0P[&ɶN4 E}(: l|/)9a-F&l fI)/{>kբ }"M E,\L8 "3'+ : NISIx1"(1!vËddQQFU0w M!1HM[LwLHs M0a#Ml#%}|ITa>)YL DG}ASK rW)|Sl) ՀFTqDvM1zAf R3w%w@ y%w@r%K h:}*)FBKI*$}bIQao*| rWk, 33A;TawHK:T1RX12̢afݗf,O:@a};:@)D2S),9#TїT )L2Ta;TAVC)7N/)LVC=%T1ьXŜ([XZÈr&)8 MO}3eu" kDdڑ:/ Bm;Վoo,s3ABqc,m#g6ʳ6s R(6L:6cBm#TM(@M;")}U=!ocpC)9M< q4A3 B-6DHn rWH )3d3 -b 845n ؖ3 R84@Gm tŬCexc-}#FG/~DG7AGl2 t O/9`,`l3 4440 tXO 6"Fc} tXO 6"Fc1DUP.SYSb!` D )Ic:\F3H%ځ\; I8v^% }m=:4 e F }dQ8 5`h.XcW;Pɛ; i̱ @D{2, SG5H`B # wlC 8 }@`]o!B-*2CAXXt,FciDl)H-LeEean̑yl"D RC!rAaB2-T]Q2IX.Ʉx }!br`QDkIV- NYYfD WI x@t BjAr1 Hi$) XcUΪ認D FEx`]SYlMA'a }6-YDuFz:OF|ifq KZVѧAc@5i#tD -/xCU"im4PS4΀`aQG ZXiu }&D6)$s0 ɨLιåb2 h -o&=8s1 Xc0 0  M P 6` N } ; B*:4  B#OD#I#\?9 BvH kA^?8 RPĨa((6R1Bh#&(7RBt }"( (  AaAN8Bd,8 ep-J"*"ŁXiSaꢗ`1O r FNC,H'% B@h)LdAaU }#b@:шyt (T=PApExwhcDGn zE4HJ&5p8JYź '"N8r`Xt$K }&,ddE~5ιd)l;xrLh '[Gd_ƈc,1 u`< @Ȉ7x#>0PtiG*, #a }O4-EPT:Fp 0a.XV,>1sbt@e`95HE СI <>@EH:x!2h"C<&pVhC:2Ncи7A~ }ZƓb 0LH@ĸ7Ac( q~JKg* T(pr@:hۍ 0(@ F(7Rx-lEAh4DR }P, ێ>,ǂ_3DA z @F1hJH< 8G) cz𸇂5PQx c<6 p7`Q2ha?`;P|8 }<\)4QFԁh`V b& J k9H (e.{9 %'i-s08A+X'{|"E"&jE˒`MkߔB+ }p7 <:o|ڮ)t#!F,!C#JaNCxW᠙W6@L8Y* 7[3Є PC UԍHF }#:C5,l#]Z]!"BR *aF6nmq}"B CIS Alr"BА (abdEAIf Yl }A#ވRlA[a_"2X-JE ʼi_hEd6ݩ@yJlDHEj r`B7v0ςV3m't]K U7SF48( }aL!/=@pbx*XV,@p.&uO 9w~p8f4ql"CW4o<ɈtB`E-ܰ| mCP%AW 0I+I }PBP ip'pkɰzbuX")ZmD@&` 0p +eP&`T[x >-<젂p8 4 } X>6AUx0 8[AA   =D&u І SaAa` M h  0<` }@YP%C=Ps'hi5hdX `pU`HYm'AYm'P ͅF8cmǓAՐ EH @ (P Pc 2P }uu9Py ՇP ;i@,2 }?&&DPS@IO1e  w4q221vj Cu XT  ( 2cLptEDO&n'n5 }D'Ev8(d P X 9 ~XR _m0P]ʠ B5)9@ ) Ӏ5 ? P`0@00P9  }2i _ـ $ )석 ba1X α P :#2Db&ttY_ɀre383 xpwbۀ P }pa"2$:$! Ӑ A%  ` PMX 6  NTx'apcR)rXTDT9@pP &9  :SI }f/&04G  d0@Ԥ3K0=jOL73Sz`%t/FP j0JJC3P1aTqPlZ @\@4D@' }o0$cIc ` p8  - ** ()}39 Ƞ)00h_X @ vPH0n`~ & E }T_\S2Ϻ$@ a,k 03 P)`zA/c0"zpa4m`TrPF`=+rK!#8Es`7 ذp p p }pP P PP` ` ``@ 2Ā 0v:S1rҘ⊔$T (pR2r@1H6e@c ƅ } y*xE5Q ;)RIcJ t(2-yb,MŋdVZ5it4$#&h ɑ,$iHm>T!M@)NRʴyCe , /PcH5ioP~i/ }R,j`٤v2% PI,ax4@U܂EC  x@|E@h(rt́{X#18 pDbrB؀Bx,n94ycxC }*nA)4U T0FdHF"t ,{M JtC918rD&6G4KЁ yH  0ЈN {A$ }(3D v@n(+4 &8A+d!A88:rd'@4 / h7Q\ֱބ>AF.7K!<0I@x(j?, }@P!$>r܀ pERp$L] xh'0e&sN0;sN3E@'rt~A={1$XB+ "BAڃz2gA=jMSK# }b 0J 2-i= D _ $PP?j!H(!% V֓ @* -@l-;ڍt,`LX hP_0F#ڙ hi(pʸu,A 0Ú~b }qFH`[#&A]H Z@BQH\ fflH`1P  2 p(5LQ 0BH05LP -sYdFs50Pj `2 }3 (D5t@̀s5\9@S 2 %u" XN;ci9+< u'ЈKg)RA }&}h%(0ȅsM[@y!. S5Y0Q8@E`EXNB-sJ D 087spiL`#` ."zV }`ְ1c C i!BREAD.ME8!`"C @PAf ¸1oiN9sҼY :hʀ R)Y0F&YaZv۱.l }&!7iƈ Q"EqfX6 '8 Δ鹑Mb:wV K)3fVe>aZv۱.l