@L}5 _$% l0$)$$Hȱ$ UhL" `e$$%`$%`  R@W!( L(1   Y I`  d  Ld M * @  $ % CC$$)%1 Udߥ$9%: !0 S$% DD˙`  }J)Lr d M * @  $ % CC$$)%1 Udߥ$9%: !0 S$%} DD˙`  }J)Lr J  ((  p L ()   J}L= ( L 0q A    IB JC;? D W } LL  ` W )LA!  ߰")-݆ p" } $G@LL 08`Q")<2Q0 -G$Ș݆ UL# ; p8(()(0ʥ)NQ` }$GȘ݆LU )L ݆ L GȘ ݆LL )W>Z   HH)H }p h  hyhy D L> L JJ    ! LA*` BF }7'8  M HN H` 8 Z  \LdJJ!"! GFE@F (!L }EE !E^ ^ E E7EȩEdE/EȩE  D } .L }  ;F d  ;?F7F? ( .   Z D LL d } . D  L    p  E` , d)  D L) 0BM݊L݉} ML  N݆ L NLML [ TEqEHȱEqEh 0Gȹ G} HLL GɛL  LFREE SECTORS G) *Gȩ GȽG GȌ*jj >G} C8jJ3j2CD( C202C ԠBX` N 1?  LlD:RAMDISK}.COMLu L1 L ;LHL  T`  `1  ɐ     `TU  } L ? .  t`GBJ ~DEHI B V0dV!}QDEHI VF9 ,0 ,0 s0hhL  L` H hDHEh"}DEL8HI4 0 HI,0 0  9 .G VLO#},0 L4*IJ`llD1:AUTORUN.SYSNEED MEM.SAV TO LOAD THIS FILE.D1:MEM.SAV Uԅ֩שբ w؅բ w F`$}ԩՠH Uh F``?<0LV`@ʆ v sI FΞ0A l i/DE  Uԅ%}ש w FL  @  Uօԩשբ `E:D1:DUP.SYS w FΝL fXpԩ `xԍҭ)Lk&} ` `֑` 9 V⪍ ઍ  -'}LLu ÝDEHILV 9 .l 9 .l  `` Uԅ֩թע w؅ע w (}F` BLV nB,DE JLV B V BLVDEIʩ BꭝLu } 3E:}DISK OPERATING SYSTEM II VERSION COPYRIGHT 1984 ATARI CORP.A. DISK DIRECTORY I. FORMAT DISKB. RUN CARTRIDG*}E J. DUPLICATE DISKC. COPY FILE K. BINARY SAVED. DELETE FILE(S) L. BINARY LOADE. RENAME FILE M. RUN AT ADDRES+}SF. LOCK FILE N. CREATE MEM.SAVG. UNLOCK FILE O. DUPLICATE FILEH. WRITE DOS FILES P. FORMAT SINGLEL !N',}#"&))9(&*)/h)''-&؆莟R'S  vL/ˢ L }Insert DOS 2.0s, type Y Λx -}DEfHI 1莏#q! @ y0ɛ8A0,' ȅ 1 1ild! 1L!NO SUCH ITEMSELECT.} ITEM OR FOR MENU! 0 .z:*{}.|{ 1 0 0JB 18L%|DL/}%DIRECTORY--SEARCH SPEC,LIST FILE?[# 0 0 &|D3" 1L!NOT A DISK FILEN !B 1L!E# 1 !BD0}ED:}:1BJ|DE 1DEBHI 1 h0ߢ 0.1}  0?詛 1 y0YЛ 1 ;#L" ;#L! BL1TYPE "Y" TO DELETE...DELETE FILE SPEC2}COPY--FROM, TO?OPTION NOT ALLOWED262 FREE SECTORS COPYING---D2:DOSMANOCMl# 0|D .L/%#3}##JB|DE 1BHID#E 1#0: B 1L!#͑### B 1#c$0SY4}S1}:## # # .#Ƚ# # 𩛙## 1,#PD#ELJ- <.BJD#E 5}1 1HH 0hh|DL%1}:̳# L% #D#EL% 1 0 . .0O% 1L!WILD CARDS NOT A6}LLOWED IN DESTINATION 0 <.|K}N 2 FORMAT. t* 5) 1L!`) 0NΞ 0 L1) 1 L!BAD LOAD FILELOAD FROM WHAT FILE?) 0 ?}0#B 1L!WHAT FILE TO LOCK?) 0 0$B 1L!WHAT FILE TO UNLOCK?DUP DISK-SOURCE,DEST DRIVES?TYPE "Y" IF OK TO US@}E PROGRAM AREACAUTION: A "Y" INVALIDATES MEM.SAV.FE! +L1   `*  70 2 2A} 0.* 1 y0 0)INSERT BOTH DISKS, TYPE RETURN^, 1 y038逍 N, 1L! ,B}C, t*  Lx+, 0 ^, 1 y0 , ,0,0 ,L+ ,I0 ,Vǭ0C}Ξ, 0 }, 1 y0C,ШC, 0K'!" H H 'h h Lx+!EF 5L1L!D,I,HhD}` NOT ENOUGH ROOMINSERT SOURCE DISK,TYPE RETURNINSERT DESTINATION DISK,TYPE RETURNE}`  `8 rL1`-* 1P* 1 y0Y`hhL!NAME OF FILE TO MOVE?- 0 0|DL% <.F},^ 1 70 0 .@L# .BJ 1  DEHIB V L1 ,} 1 70,L.  G}JB|,#P#DE 1 HI BDEHHII 1 B 1 ,^ 1 70,0La- B V,#PH},^ 1 70 0L#L!-* 1P* 1 y0Yj383}mm ݭI}}`8}``|* ? ɛ,`|:-)| / 1L!`DESTINATION CANT BE DOJ}S.SYS0 0H{ 24Δ 28/L!/) 2 Π 2 0 ξK}hAΞB,0 J 1 BDEHI,HÝDE 1HIHIDELSAVE-GIVE L}FILE,START,END(,INIT,RUN)O S0 1`BDEPHI V` S0H 1 L!M}0 0 1L~0`PLEASE TYPE 1 LETTER,0`hhL! 70 1L0L<1 ,;ɛ7,"ɛ:ݦ1ݥN}A"D|ݤD|ȩ:|ȩ|ɛ,,(/+.ީ1 1,ɛ`轤{NAMEO} TOO LONG B VL!` L1I H1EΝDL1|mDiE` V0`8d/8 i:222 1 LP}!ERROR- 128ɛ+,' 20*.. өr2 1``2TOO MANY DIGITSINVALID HEXAQ}DECIMAL PARAMETER800 0 8 00`,0'D800 H,ɛh`2L1NEED D1 THRU D8uR} ECIMAL PARAMETER800 0 8 00`,0'D800 H,ɛh`2L1NEED D1 THRU D8u((  @jD$JD@P(DDDDD(DD@@HHD䤤NL"D"",N¤HDJDDDDD N@.T}J"D))DjĪȨΨ䊈ʊ䤤***,**ĪĪʄƨĢJJJJJNNJD((HU}BB".@@((FF```fff$$BB00ss @@F`olll lV}hlx~DNND$ff$))@LJNƨ df`ʊ ̤(j*,*@@DNNJĪƪƂFꊊNNJW}J .N`nljjbb`(ll(*-XXXXXXXX&`Heeh`*HHH*)*)~ * *( **X})Lc*JJJJI*hhh`HHi*i* *+ hh`HHH * * * * *J *XY Y}*hhh` *HHH *J-(* *)* *hhh`()* *HHH * *Z}@hhh`HHH *@hhh`HHH 8+ j+hhh`HH+̥+ 8+L+ j+hh` *HHH)[}+)L+JJJJ+*(eeȌ+hhh`HHO + *L , *hh`H#,OO + *#,h#, *`XXXXXXXXX\}XXXXXXX +HHT,U,*(*L, D, T,T,T, * )D, )L,䊍L,hhL,`) ]}**'L,IL,D,ID,(8nU,hh8` +HH*I*hhL*-.J . 0-`HHW- u*hhhh`OS^}V--RUhh`-#` '-H z-h-J*`BYH-LS-R-B ) i-i-_}h  b.H-S-Rh`h`&TNULVM`'-ݼJK 8+`(-лJ j+``)-ТJ`} +`*-ЌJ +`+-I-T[.T[.`, -L-KJP ,`L.-J  J*a}-` L.`.\2  Z2L.Z2-/2 ɮ 2Z2E$ B VZD2E JKB V`-b}A.0}which refer to addresses in the other source files. This is for two reasons: firstly, because one source file would be absolu?}tely huge and take aeons to load, save and assemble; and secondly the files can be assembled separately thus if an error in 8@}0CIO occurs the others need not be re-assembled. Since the files were developed in the three distinct stages this meant that A}after 80BASICS was working satisfactorily then its innards could be forgotten. This is a very primitive form of "linking": usB}ing procedures from an external file without actually knowing the code they contain.Even though assembler is a low-level laC}nguage, it still needs to be structured and the software was developed using a procedural approach. The A,X, and Y registers D}would not be changed by a subroutine, neither would any memory location, unless this was explicitly stated in the module specE} (a spec written and updated by me throughout the project). Any local variable space that only the one subroutine uses is decF}lared at the top of the subroutine. In many subroutines you will see at each end instructions saving and restoring the registG}ers from the stack.The 80BASICS file contains all the basic routines used by the driver, such as putting a character on scrH}een, inverting characters, getting characters from the screen, scrolling etc. If you are writing a program that uses 80 columI}ns but do not wish to access it through CIO systems, then this file is probably all you need. This provides you with basic scJ}reen control but has no checking for things like scrolling at ends of lines, margins, keyboard input etc. It also does not prK}ovide any graphics functions.The 80XIOS file contains CIO handling code that handle the XIOs functions. This includes instrL}uctions to save the input mode which is destroyed by an XIO command, and control all the CIO commands that do not vary. That M}is, the PUT and GET commands vary a lot depending on the input mode, the TEXT/GRAPHICS mode, and so on. But all other commandN}s, even though they may only be valid in either TEXT or GRAPHICS mode, always have the same function. This is handled by 80XIO}OS and includes OPEN, CLOSE, STATUS, and SPECIAL. It also has a special procedure called CHECK8. This checks whether a GraphiP}cs 8 screen is being displayed and if not opens it. If it cannot be opened, then the CHECK8 procedure does not return to the Q}caller but returns to the caller's caller, which is always the CIO. This means that by placing a JSR CHECK8 instruction in thR}e code it can be assured that the next instruction will only be executed if the screen is open.The 80CIO file contains the S}PUT and GET functions, including all the control code processing and text buffering. It also controls the 8: entry into the CT}IO Handler Table (HATABS) and a small amount of transient code.Most of the code is resident, that is to say it remains in mU}emory after the program has run. The transient code is executed only when the program is first loaded and then is erased fromV} memory and thus does not take any memory. This is used to print the 80: message:80: device by S.Trew 1989.and it also seW}ts MEMLO, reroutes the DOS loader for Reset, and generally tidies. This then calls the resident code.BUGS!The program hasX} been heavily tested, but if you find a bug in the program or a whopper in the documentation, please send full details to me.Y} If you have any problems, please also get in touch. It is quite difficult writing a manual for something you know all about,Z} and inevitably some things will need changing.DISCLAIMER (MY MUM TOLD ME TO PUT THIS IN)These programs and their accompa[}nying documentation are in the public domain and may be freely copied, distributed, disassembled or changed in any other mann\}er for any non-profit-making reason. They may not be used on any commercial basis without written permission from the author,]} who will be happy to oblige. Whilst it is hoped that the programs and documentation are free from errors, the author cannot ^}be held responsible for any actions arising either directly or indirectly from the use of the software, nor from his sense of_} humour.BIBLIOGRAPHYBooks I could not do without:Compute!'s "Revised Mapping the Atari"Atari "OS User's Manual"Atari `}"OS Source Listing"Freud "Insomnia and the Low-Level Programmer".Simon Trew.December 1989.QUESTIONAIRE / REGISTRATION Fa}ORMIf you use the 80: device regularly, please show your appreciation by filling in this short questionaire and returning ib}t to me. If you would like to register for the next release of 80:, please send an SAE, and when I complete the next revisionc} (including some of the features below), I will drop you a line. Please mention anything else you feel would be handy too. Bed} honest! There are no high cliffs around here to jump off.1. How do you rate the program?[ ] Very highly [ ] Highly [ ]e} Average2. How often do you use it?[ ] Most sessions [ ] Some sessions [ ] Occasionally3. The following features may f}be included in a future revision of the program. Please indicate those you would find worth the estimated extra memory usage g}(in brackets).a) ST Mouse Control. (70 bytes)[ ] Very [ ] Slightly [ ] Not Usefulb) Windowing (The ability to set q}Rb%DOS SYSb*)DUP SYSbSAUTORUN SYSb j80COLUMNDOCbDISK CATtop, bottom, left, right margins and have more than one 8: window on screen at once). (300 bytes)[ ] Very [ ] Slightly r}[ ] Not Usefulc) The ability to redefine characters using an XIO command. (50 bytes)[ ] Very [ ] Slightly [ ] Not Uses}fuld) Fast, more versatile PLOTs and DRAWTOs. (300 bytes)[ ] Very [ ] Slightly [ ] Not Usefule) A "flood" graphics t}fill (needs PLOTS and DRAWTOs+150 bytes)[ ] Very [ ] Slightly [ ] Not Usefulf) Auto Wordwrapping (120 bytes)[ ] Veru}y [ ] Slightly [ ] Not Usefulg) Logical lines (300 bytes)[ ] Very [ ] Slightly [ ] Not Usefulh) A "last line rev}call" (50 bytes)[ ] Very [ ] Slightly [ ] Not usefuli) Keyboard macros (300 bytes).[ ] Very [ ] Slightly [ ] Now}t useful4. What other features would you enjoy?(please use more sheets if you would like to).5. How did you findx} the documentation?[ ] Good [ ] Average [ ] Poor [ ] I just opened the envelope, and there it was.If you have any quesy}tions about the program, I will do my best to answer them. If you wish to suggest other improvements or need a custom versionz} of the program, please feel free to write, and I will see what I can do. I've got nothing better to do in the evenings.Ple{}ase send to:Simon Trew322 York RoadSTEVENAGEHerts.SG1 4HW.ENGLAND.Thankyou for taking the time to fill in this quest|}ionaire.to:Simon Trew322 York RoadSTEVENAGEHerts.SG1 4HW.ENGLAND.Thankyou for taking the time to fill in this quest MEMORY USAGEWhen dormant, ie in memory but not with the screen open, the device takes approximately 2740 bytes (this will d ~}epend on the configuration). When opened, the device takes approximately 9880 bytes (compared to 7200 extra for a standard Gr }aphics 8 screen). This is significantly less than, say, the X: device on Page 6 PD disk 62. Incidentally, if you want a speed } test, when compared to that device, a disk-to-screen copy of 15000 characters (approx.) took 1 minute 14 seconds on the 80: }device, and 6 minutes 54 seconds on the X: device! Unfortunately I have not been able to test it against the XEP80, and any s }peed data would be greatly appreciated.MAKING YOUR OWN CUSTOM 80: DEVICEThe program can be configured to suit your own ap }plication; this is done via a Basic program. You should note that all above information assumes the standard configuration, c }reated by loading the Basic program and running it without changing any options.Firstly load "80CONFIG.BAS" from the source } disk. This is the Basic code that creates the machine code 80-column device. You may use this as many times as you wish to c }reate custom 80: devices.The 80: device is not self-relocatable, that is, it cannot move itself around in memory depending }on the size of your system. CIO handlers are a lot of hassle in this way, because the CIO needs to know about 10 addresses of } where it can find various bits of the program, so relocation becomes heavy work for handlers of any size. However, when you }run the Basic program, you can alter the page to start the code at. The page at which you want the program to load will vary }depending on your system.If you know which page, then select option 1 and type the page number, in hex (2 digits). If not, }the program will automatically choose the lowest possible page depending on your system. If you have missed all that "page" t }alk, just follow this advice: Load all the software into memory that you would normally want while using the 80: screen, then } load the "80CONFIG.BAS" program and run.Option 2 allows you to change the machine code file name, this is the file you wil }l run each time you want to use the 80: device. The default is D:AUTORUN.SYS. DOS 2.x (that is, any DOS 2 derivative) users s }hould note that the DUP.SYS package uses the same memory as the 80: device, and for this reason it cannot be loaded from DOS }with the L command, nor can it be in use when DUP is used (this will only happen if the device is called E:). Therefore the b }est bet is to call it D:AUTORUN.SYS.The third option will allow you to change the device name. I recommend 8: but you may w }ant to call it something else, notably E: which will mean as soon as you load it, all normal editor operations will be replac }ed by the new 80-column operations. Note that if you do this, however, you will never be able to use the old E: device while }the 80-column driver is in memory. A special case exists when calling the device E:, and that is that on a Reset channel 0 is } closed and re-opened to E:, this is because the normal Reset process first inserts the old E: handler and opens the screen b }efore allowing other Reset processes to proceed. Some things may insist on using 40 columns, by calling the OS ROM routines d }irectly, so if you encounter problems, you may not want to call the device E:.Option 4 allows you to adjust the default rig }ht margin, set originally to 79. This means that whenever the device is OPENed, the right margin is changed to 79. You may wa }nt to change this to, say, 77 or 39.Options 5, 6 and 7 allow you to change the default colours for foreground, background a }nd border, respectively. Whenever you type these numbers, the colours change on-screen. To change the brightnesses, use Shift }-6 (&) and Shift-7 (') respectively. Only the brightness can be changed on option 5.Option 8, for DOS 2.x users, allows you } to specify a binary filename to load after the 80: device, if left blank, then no file is loaded. This is very useful if you } call the device AUTORUN.SYS, since you can have another binary file also run automatically at bootup. (It is also possible t }o append the 80: device program to an existing AUTORUN.SYS file.) Note that this feature does not remain resident and so does } not take up any more memory.(Note that for typing filenames, you must include the drive specifier eg D:, D2:, D8:.)Once }configured, press G and the binary file will be created. When done, you can boot the disk with your AUTORUN.SYS file on, or i }f you are not using DOS 2.x then you can go to your DOS command line and type the program name. Presto!USING 80: WITH TURBO }-BASICThe 80: device works well with Turbo-Basic, however there are a few caveats.I suggest you call the device D:AUTORUN. }SYS and have it automatically load a file called D:TURBO.COM, and rename your Turbo-Basic file to TURBO.COM.Since Turbo-Bas }ic also modifies the Low Memory pointer, this must be changed after loading to above the 80: device, otherwise your Turbo-Bas }ic program will overwrite the 80: device.There are two ways to do this. The first is to create an 80: device with a start p }age of $38 (the default under Turbo-Basic is $37) and, when first loading, type:DPOKE $2E7,$4300:DPOKE $80,$4300You canno }t do this within a program. The start page has to be bumped up by one, else when you type the above line, you will be overwri }ting the lower end of the 80: character set.The second, and to my mind better, way to achieve this is to remove the low mem }ory pointer from the Turbo-Basic binary file. The Turbo-Basic program 80MODITB.TUR will do this for you, and write a custom T }urbo-Basic file D:TURBO.COM to disk. You can then use this as you would with Turbo-Basic.Another useful feature with Turbo- }Basic is that you can access the DOS menu in 80 columns. Do not try to do a Copy or Duplicate option, though, as this will us }e the memory reserved by Turbo-Basic and the 80: device! You can return to Turbo by typing 2080 at option M (this works on my } 130XE but I have been informed that it does not work on an 800XL).PROGRAM DESIGNThe resultant 80.COM (or AUTORUN.SYS) fi }le is made by appending four separate .OBJ files using the COPY /A command. These files are 80CHAR.OBJ, 80BASICS.OBJ, 80XIOS. }OBJ and 80CIO.OBJ.80CHAR.OBJ has 512 bytes of code and contains the character set. This character set has been designed usi }ng a standard font editor that produces nine-sector (1024 byte) fonts. A small program called 80FONT.BAS, written in BASIC, t }akes the font called 80CHAR.FNT and writes the 80CHAR.OBJ file. If you want to change the font permanently, then load the 80C }HAR.FNT font into your font editor. You will see that only half the width of each character is used: the other must be blank }for 80FONT.BAS to work properly. 80FONT.BAS is a very noddy program since it is only used once or twice.The assembler sourc }e file is split into three parts: 80BASICS, 80XIOS and 80CIO. These are "linked" by a set of equates at the top of each file }which refer to addresses in the other source files. This is for two reasons: firstly, because one source file would be absolu }tely huge and take aeons to load, save and assemble; and secondly the files can be assembled separately thus if an error in 8 }0CIO occurs the others need not be re-assembled. Since the files were developed in the three distinct stages this meant that }after 80BASICS was working satisfactorily then its innards could be forgotten. This is a very primitive form of "linking": us }ing procedures from an external file without actually knowing the code they contain.Even though assembler is a low-level la }nguage, it still needs to be structured and the software was developed using a procedural approach. The A,X, and Y registers }would not be changed by a subroutine, neither would any memory location, unless this was explicitly stated in the module spec } (a spec written and updated by me throughout the project). Any local variable space that only the one subroutine uses is dec }lared at the top of the subroutine. In many subroutines you will see at each end instructions saving and restoring the regist }ers from the stack.The 80BASICS file contains all the basic routines used by the driver, such as putting a character on scr }een, inverting characters, getting characters from the screen, scrolling etc. If you are writing a program that uses 80 colum }ns but do not wish to access it through CIO systems, then this file is probably all you need. This provides you with basic sc }reen control but has no checking for things like scrolling at ends of lines, margins, keyboard input etc. It also does not pr }ovide any graphics functions.The 80XIOS file contains CIO handling code that handle the XIOs functions. This includes instr }uctions to save the input mode which is destroyed by an XIO command, and control all the CIO commands that do not vary. That }is, the PUT and GET commands vary a lot depending on the input mode, the TEXT/GRAPHICS mode, and so on. But all other command }s, even though they may only be valid in either TEXT or GRAPHICS mode, always have the same function. This is handled by 80XI }OS and includes OPEN, CLOSE, STATUS, and SPECIAL. It also has a special procedure called CHECK8. This checks whether a Graphi }cs 8 screen is being displayed and if not opens it. If it cannot be opened, then the CHECK8 procedure does not return to the }caller but returns to the caller's caller, which is always the CIO. This means that by placing a JSR CHECK8 instruction in th }e code it can be assured that the next instruction will only be executed if the screen is open.The 80CIO file contains the }PUT and GET functions, including all the control code processing and text buffering. It also controls the 8: entry into the C }IO Handler Table (HATABS) and a small amount of transient code.Most of the code is resident, that is to say it remains in m }emory after the program has run. The transient code is executed only when the program is first loaded and then is erased from } memory and thus does not take any memory. This is used to print the 80: message:80: device by S.Trew 1989.and it also se }ts MEMLO, reroutes the DOS loader for Reset, and generally tidies. This then calls the resident code.BUGS!The program has } been heavily tested, but if you find a bug in the program or a whopper in the documentation, please send full details to me. } If you have any problems, please also get in touch. It is quite difficult writing a manual for something you know all about, } and inevitably some things will need changing.DISCLAIMER (MY MUM TOLD ME TO PUT THIS IN)These programs and their accompa }nying documentation are in the public domain and may be freely copied, distributed, disassembled or changed in any other mann }er for any non-profit-making reason. They may not be used on any commercial basis without written permission from the author, } who will be happy to oblige. Whilst it is hoped that the programs and documentation are free from errors, the author cannot }be held responsible for any actions arising either directly or indirectly from the use of the software, nor from his sense of } humour.BIBLIOGRAPHYBooks I could not do without:Compute!'s "Revised Mapping the Atari"Atari "OS User's Manual"Atari }"OS Source Listing"Freud "Insomnia and the Low-Level Programmer".Simon Trew.December 1989.QUESTIONAIRE / REGISTRATION F }ORMIf you use the 80: device regularly, please show your appreciation by filling in this short questionaire and returning i }t to me. If you would like to register for the next release of 80:, please send an SAE, and when I complete the next revision } (including some of the features below), I will drop you a line. Please mention anything else you feel would be handy too. Be } honest! There are no high cliffs around here to jump off.1. How do you rate the program?[ ] Very highly [ ] Highly [ ] } Average2. How often do you use it?[ ] Most sessions [ ] Some sessions [ ] Occasionally3. The following features may }be included in a future revision of the program. Please indicate those you would find worth the estimated extra memory usage }(in brackets).a) ST Mouse Control. (70 bytes)[ ] Very [ ] Slightly [ ] Not Usefulb) Windowing (The ability to set }top, bottom, left, right margins and have more than one 8: window on screen at once). (300 bytes)[ ] Very [ ] Slightly }[ ] Not Usefulc) The ability to redefine characters using an XIO command. (50 bytes)[ ] Very [ ] Slightly [ ] Not Use }fuld) Fast, more versatile PLOTs and DRAWTOs. (300 bytes)[ ] Very [ ] Slightly [ ] Not Usefule) A "flood" graphics }fill (needs PLOTS and DRAWTOs+150 bytes)[ ] Very [ ] Slightly [ ] Not Usefulf) Auto Wordwrapping (120 bytes)[ ] Ver }y [ ] Slightly [ ] Not Usefulg) Logical lines (300 bytes)[ ] Very [ ] Slightly [ ] Not Usefulh) A "last line re }call" (50 bytes)[ ] Very [ ] Slightly [ ] Not usefuli) Keyboard macros (300 bytes).[ ] Very [ ] Slightly [ ] No }t useful4. What other features would you enjoy?(please use more sheets if you would like to).5. How did you find } the documentation?[ ] Good [ ] Average [ ] Poor [ ] I just opened the envelope, and there it was.If you have any ques }tions about the program, I will do my best to answer them. If you wish to suggest other improvements or need a custom version } of the program, please feel free to write, and I will see what I can do. I've got nothing better to do in the evenings.Ple }ase send to:Simon Trew322 York RoadSTEVENAGEHerts.SG1 4HW.ENGLAND.Thankyou for taking the time to fill in this quest }ionaire.to:Simon Trew322 York RoadSTEVENAGEHerts.SG1 4HW.ENGLAND.Thankyou for taking the time to fill in this quest