Welcome to the editor version .8 beta. Changes new to this version are¢listed at the end of this file.¢¢File Format:¢¢The editor saves files in straight ATASCII. It can either keep all spaces¢expanded, or can use $7F TAB characters to reduce the size of the file.¢The text can be freely converted between these formats. TAB compression¢and expansion is done on a line by line basis while you are editing, which¢is different from the way most editors handle TABs. While you are editing¢a line, TAB characters are not present, and the line will edit in the same¢way as if it had only spaces. When the line is saved back into the file,¢the program will see if it can convert any sequences of spaces into TABs,¢based on the configured TAB fields. TABs are not rigidly enforced.¢Meaning, if you slide a comment field a little to the left to make more¢room, that spacing will be retained, and that particular place simply won't¢be TAB converted. Thus, it is simply a manner of saving memory and file¢space. The editor will actually run faster with the TAB setting on.¢Especially with the XEP80.¢¢Currently, this editor will not allow lines longer than the right margin.¢It will allow 79 column lines with the XEP80 device though. Actually, the¢max line length is one shorter than RMARGN to avoid problems with the E:¢device sending an extra EOL. Any lines longer than RMARGN-1 will be split¢in two. One other problem with the line length should be pointed out.¢When using the character insert, it is possible to push a character into¢the last column on the screen. Please note that this character will NOT be¢saved as part of the text, and will disappear the next time the editor gets¢a chance to draw the line. In fact, I had to set LOGCOL equal to RMARGN*2¢to prevent inserts from doing line wrap.¢¢Eventually, I will fix the editor so that it can handle 79 character lines¢in 40 column mode. My time recently has been spread much thinner than¢anticipated.¢¢Configurtion:¢¢The editor has several configurable parameters that can be modified with a¢sector/file editor. These are located at +3 bytes from the start address,¢+9 counting the DOS binary header. Here they are: (Words are 6502 Lo,Hi)¢¢Word - Text buffer start adr. If 0, the editor will use MEMLO. (Default)¢Word - Text buffer end. If 0, the editor will use MEMTOP. Default $A8FF.¢Word - Symbol table start adr. Default $6400. This is located just past¢ the part of the assembler that resides in bank select RAM.¢Word - Symbol table end. Default $7FFF. This configuration puts the¢ symbol table entirely in bank select memory.¢Word - Address for a 256 byte disk I/O buffer that is used when assembling¢ to disk files. Default is set to $500.¢Byte - 0=Replace mode, 1=Insert mode¢Byte - 0=Use spaces only, 1=Convert spaces into Tabs.¢3 Bytes - Tab settings for asm fields.¢Byte - When drawing the screen for a particular location, such as a¢ Find or Goto command, this byte sets the screen row where the¢ desired line will be located. If you set this to 0, the line¢ will be on the top row. $0C will put the line in the middle¢ of the screen. Default is 6.¢Byte - # of lines the PgUp & PgDn command will move by. Setting¢ this to $18 gives single screen paging. If you normally use¢ scrolling for short moves, you can set this value to something¢ like $60 to jump through the file in larger steps.¢Byte - Line length saved in the Undo buffers. Default is 39. You¢ can increase this to 79, if you want entire XEP80 lines saved.¢ You can also decrease this number to something like 25, if¢ you want to increase the number of history buffers without using¢ extra memory. You would only lose the comment field for any¢ restored lines.¢Byte - # of Undo buffers. This number sets how many lines of history¢ can be undo'ed. Default is 16. Multiplied by the number above,¢ equals the total size needed for undo storage, located at the end¢ of the text buffer.¢Byte - Sets what bank of extended memory to put the assembler. It should¢be a value appropriate for the $D301 register. Default is $E7.¢ If you have no bank select memory, this byte should be $FF.¢String - Default drive and dir spec. Must be in the form Dn:?????,¢ like "D3:*.*", or "D3:*.SRC" if you want dir listings to only¢ show a certain file type. Filenames for loading and saving¢ do not require a full "Dn:" filespec. If you type just a¢ name, it will be prepended with the default drive selected here.¢¢The editor begins in the ESC menu. During the session, the ESC key will¢bring this menu back.¢¢Esc Menu Commands:¢¢A - Assemble current file. Hold the Shift key when pressing A to turn on¢ the assembly listing.¢B - Break to the monitor. Actually issues a 00 BRK instruction.¢D - Go to DOS. If you return to the editor by running at the start address,¢ the source file will still be intact. This is automatic in SpartaDOS¢ by using the RUN command. For other DOSes, you will need to supply the¢ starting address which is currently $A900 as of version .8 beta.¢L - Load file. You do not need to type an entire filespec. The default¢ drive 'Dn:' will be prepended if the entered name doesn't have a ':'.¢ Press Shift-L to append into an existing file.¢P - Do Pass 2 only of the assembly. A full assembly must have already been¢ performed, and then this function may be used if the source code was¢ changed in such a way that didn't effect any label addresses. This can¢ save a lot of assembly time, but please do not use it unless you¢ understand what it does and are certain that no label addresses have¢ been changed since the last assembly.¢S - Save File. Save displays the last loaded filename. Press Return to¢ accept it, or backspace and change. Press Shift-S to save a marked¢ text block. To do this, mark the starting line with ^Z, then move to¢ the ending line and enter the Esc-Shift-S command. To print a file or¢ text block, first make sure to convert the text to spaces only, and¢ then save to P:.¢T - Tab convert. It will prompt to convert to Tabs or Spaces. Tab¢ converted text will have $7F TAB characters for any sequences of¢ spaces that can be converted. The conversion is done from back to¢ front for best speed, but it can still take awhile. It is also¢ possible to run out of RAM when converting to spaces. After this¢ command is entered, the editor will remain in the specified mode. In¢ other words, if you do a tab convert to spaces, all future entered¢ lines will remain in an expanded space format.¢V - (Value) Will allow you to enter any expression, and then displays the¢ calculated value in both hex and decimal. This can be handy for¢ getting the value of labels, or as a simple calculator.¢X - Perform cross reference listing. The source file must already have¢ been assembled with the A command. It allows you to enter a label name¢ to start from, or just press return to create a cross reference for the¢ entire symbol table. Be prepared for this to take awhile. This is a¢ simple implementation that requires a full pass of assembly for each¢ label. Yeah, I know. On the positive side, it doesn't require any¢ memory to build an XRef table, and so generating an XRef on large files¢ should not have any problems running out of memory. Plus, being able¢ to specify label names directly makes it very easy to get a report for¢ one or two labels of immediate interest.¢1-9 Directory, and set default drive. If you just want to change the¢ default drive without getting a dir listing, press Esc after pressing¢ the desired number.¢Shift-Clear - Clear text buffer.¢¢Editing Commands:¢¢Standard Atari editing keys apply, with a few exceptions. Clr & Set Tab¢have no effect. Use the configure bytes to change tabs. Pressing the Caps¢key without Shift will always set lower case instead of toggling. Use¢Shift-Caps to set upper case.¢¢Return will insert a new line if pressed at the end of the current line.¢Otherwise, it will just move to the line below.¢¢S^Up (Shift&Ctl&Up) Scroll up¢S^Dn Scroll Down. These two commands are handy, because they scroll¢ immediately, without waiting for the cursor to reach the screen's¢ edge.¢S^< Page up by configurable # of lines¢S^> Page Down¢S^Del Delete to end of line¢^, Start of line¢^. End of line¢^T Top of file¢^B Bottom of file¢^I - Toggle Insert/Replace mode.¢¢^W - (Write) Begin key macro recording. When done, press Esc. Up to 60¢ keystrokes can be recorded.¢^E - Execute Macro¢^K - Prompts for a number, and then will repeat the next entered key¢ that number of times. ^K cannot be used within a macro, but it can¢ be used to execute ^E multiple times.¢¢^F - Find text -- not case sensitive. '%' can be used as a wildcard.¢S^F Find by searching backwards towards the start of the file.¢^R - Replace. F&R Max length=15. Replace only works forwards.¢ It will ask for a Find string and a Replace string. For all matches¢ of the find string, the editor will display an inverse '>' symbol in¢ front of the occurance. You may press Y to replace it, N to skip it,¢ A to replace all occurances to the end of the text, or Esc to abort.¢^N - Next. If the previous operation was a replace, then you will be in¢ the prompted replace mode if the string is found. Otherwise, if the¢ previous operation was a Find, then you will simply be taken to the¢ next occurance.¢^P - Find Previous match, by searching backwards.¢^G - Goto line number. You can also enter a '+' or '-' as the first¢ character to move a number of lines relative to the current location.¢^L - Enter a label name, and the editor will jump to where the label is¢ defined. (By searching from the first column only.)¢^S - Set mark at current location¢^M - Go to Mark¢^J - The editor's version of a JSR. It looks at the operand field of the¢ current line, and jumps to where that label is defined. It also¢ sets a mark at the current line so that you can return with a ^H.¢ The use of this function is not limited to JSR instructions. JMPs,¢ branches, even data variable locations can be traced with this¢ command. For any line that contains an operand field, ^J will attempt¢ to find the location where that label is defined.¢^H - Return to previous position where a ^J command was entered.¢ ^H is also used to jump to locations that gave assembly errors.¢ During the assembly, up to 16 error positions will be remembered.¢^Z - Set block start.¢^X - Cut from block start to current line. (Forwards only -- sorry) If¢ you find you want to mark a block backwards, the easiest way to do¢ this, is to set a mark at the current line, then move backwards¢ to the start of the block. Press ^Z, then press ^M to return to¢ where you started, and give the ^X or ^C command. A clear to end of¢ file command can be done by pressing the keys, ^Z, ^B, ^X.¢^C - Copy text from block start to current line, into the cut buffer.¢ The text is left unchanged.¢^V - Paste cut buffer at current line.¢^D - Duplicate line.¢^U - Undo line deletes, or changed lines. Does not undo block ops.¢¢New for version .8:¢¢Several bug fixes regarding use with the XEP80. Only one known bug¢remains, in that you cannot search for the ATASCII TAB character when using¢the XEP80. I am still trying to work this out.¢¢Find command is no longer case-sensitive. Although, text in the Replace¢field will still be stored in whatever case it was entered in.¢¢Documentation for the Replace command was incomplete, and you may not have¢known what to do in the Replace mode. It's now described under ^R above.¢¢The ^N next command will continue in replace mode if that was the most¢recent activity.¢¢The ^J JSR function is now independant of the ^S and ^M single bookmark. A¢new command, ^H, was added to return from JSRs. ^J will also track up to¢16 levels of subroutine calls now.¢¢^H can take you directly to any source lines that contained assembly¢errors.¢¢All bookmarks, and marks set from the ^J and error position reporting, will¢now auto-adjust to any changes in the source text, so that they will always¢point to the correct line in the source file.¢¢Page up and page down functions are calculated by screen position now,¢instead of by cursor position.¢¢More bug fixes. As of this release, I haven't noticed any more editor¢problems, and I have been typing a lot of code in the last few weeks.¢While it's still a good idea to be cautious, and make backups of your¢source, previous warnings about the safety of this editor can be toned down¢a bit. I'm now using it exclusively for all my code.¢