NOTES FOR FUNNELWEB 80-COLUMN EDITOR PACKAGE - Vn 5.21 ------------------------------------------------------- Multi-Mode 128 / 2x64 / 4x32 Kb EV-RAM Text Buffer -------------------------------------------------- First Maintenance Update of Lima MUG 1995 Vn 5.20 Part I -- General Features -------------------------- (1) Introduction --- ------------ This update to the Funnelweb system for the TI-99/4a computer is an extensive rewrite of the system editor, and replaces all previous 80-column issues. It uses the 64 Kb extension VRAM block (EVRAM) installed in most 9938/58 based systems as extended text buffer. The entry code checks for presence of this EVRAM block, and if it is not found over-rides any configuration data and sets up a single 64 Kb text buffer. Normal capacity is either a single 128 Kb text buffer, or a dual edit ring of 2 x 64 Kb buffers, or quad ring of 4 x 32 Kb. There is a clipboard facility for copy/paste of up to a page of text at a time between files in the edit ring, and from file view. It will run at full capacity on most 9938 based systems, Mechatronics 80-Z, AVPC with full 192K RAM, Geneve 9640 with the extra 64K VRAM installed, and on the 9958 based TIM. The 128 Kb is now about 6 times the buffer size of previous small buffer versions, and the resulting text files may even exceed 720 sectors on disk (the capacity of an DSSD disk, though this will normally be adequate). As befits the expanded buffer capacity this document file is no longer separated into several pieces, and will not be readable in its entirety with small capacity editors. Geneve 9640 My-Word buffer capacity is somewhat smaller than that of even the 64 Kb mode, so you may need to be considerate when sending long files to My-Word users. This current issue has had heroic measures applied to compensate for the extra CPU burden from the huge increase in text buffer and line table capacity, and from the use of VDP RAM for storage with its clumsy read and write address setting process, and double handling byte by byte. Unfortunately the 9938 does not support VDP commands of the internal processing variety for memory shuffles in text modes. It seems adequately fast on a plain TI-99/4a - not quite as fast as I would like yet, but at least as adequate as the original TI-Writer. The Euro-Writer mode has been retained, and 8-bit All-Characters mode is default standard. The design of the buffer manager is now such that it can be easily (relatively speaking after the effort it took to get this VDP version going) applied to various CPU segmented memory schemes. With this step it should then be possible to extend it to standard 40-column only systems, if interest from the remaining TI-99 community still warrants it. Character files remain as for previous Vn 5.00 editors, but a new set of foreign language command files is used, incompatible with the previous versions. For better or for worse it remains as similar as can be managed in use and feel to the original TI family of editors, such as TI-Writer and E/A editors, but now incorporates multilingual features previously available only in an incompatible form in the European version of TI-Writer (called Euro-Writer or E/W here for short). Also it now allows use on screen of the full IBM PC character graphics set as supported by most modern printers. The Editor is coded on and for the TI-99/4a, and is not specifically a Geneve 9640 program, though it appears to be fully compatible with Geneve TI mode, and no Geneve hostile code has been knowingly included. The extra speed on a Geneve should be a welcome bonus. An RGB monitor of adequate resolution supporting TV scan rates is essential for serious 80-column work, and RGB monitors compatible with the Amiga 500 are suitable and have been readily available in the past. As in all previous versions it does not depend on any given manufacturer's specific hardware extensions and may be run on a minimal system (9938 or 9958 video processor needed of course) as long as it can load Funnelweb, the original TI-Writer or E/A modules not being necessary. In particular it is compatible with use of the Extended Basic module. Those not already familiar with Funnelweb or TI-Writer should consult TI's original manual (which remains copyright material of Texas Instruments and remained available from TI in the US at final clearance prices for many years), or else the various surviving User Groups may have tutorial material or experienced users willing to assist. This document will concentrate on changes from the original. The editor is identified internally as Vn 5.21 but loads with no problems from Vn 4.40 of Funnelweb. At this stage in the history of the TI-99/4a there is no longer any grand plan to issue a full update of Funnelweb, but as individual parts are updated they will be so identified. (2) File Descriptions --- ----------------- This supplementary package contains editor and auxiliary files, some language source files, and various utility programs. If more than one file fits the category an asterisk is used as wildcard in the name. The character files other than CHAR@1 may be in archived forms. New/updated files are indicated by ">" for this Apr/95 update. > ED,EE,EF -- EVRAM editor program files > HELP8W -- Help file for W/P mode > HELP8P -- Help file for P/E mode CHAR@1 -- Normal character file CHAR*1 -- Character files for Euro-Writer CHAR@* -- PC character sets for All-Chars ** > F8TX*E -- Command text language files > INSTALL -- Configuration utility program > CONFIG/ED -- Fully annotated configuration file CHRCOAL/S -- Typical source file for PC character sets CHARUTIL -- Character file analysis utility > FWDOC/E128 -- This file The ED, EE, (or ED80, ED81), FWDOC/TIWR, FWDOC/EDAV files from your Vn 4.40 Funnelweb distribution disks are now obsolete, as is the part of FWDOC/EASM describing edit functions, and these files replace any previous 80-col editor issues. The minimum requirement on your Funnelweb working disk is FW and/or LOAD, with CHAR@1 character file and ED, EE, EF for default only use of this editor, with help files as desired. For non-English or TI Euro-Writer, add character and command text files as needed. The set of language files is not complete, (see note ** below) which reflects both my limited language abilities and the level of interest in Funnelweb from those parts. German and Swedish are complete, and French largely so. Dutch still has some terms in English form, but I understand these would cause no problems to most Dutch computer users. Italian is incomplete to a greater degree, and Spanish has not even been considered. It may be that national users may prefer to use the relevant character set but with English command text, in which case just hide the text file. If you can help I will make available the incomplete partial source files for command text (and the English version for reference) and the FWTXMAKE utility (these were included in early issues). In the existing files each untranslated entry has been left in English, otherwise they are based on the existing TI E/W files. ** -- Special Note for Vn 5.20/5.21 initial issue -- ** At the time of Vn 5.20, to meet the deadline for the initial Lima MUG release date, the only non-English command language files which had been updated were for German and Swedish. The same character files are still used as in previous issues, but the command language files require updating to reflect the increased functionality of the Vn 5.20 editor. French has been added for Vn 5.21. Users, if any still, in other languages can continue with the imbedded English language commands (I know some prefer to do this anyway provided the national character set is available), but the previous F8TX*E files are not usable. If a previous version of the editor is also used, the command language files must not be mixed on the same drive or directory with the Vn 5.21 editor files, or else a work-around patch done. If a nice enough request arrives (which more or less means some show of interest at this late stage in the TI/99 life/cycle), I will update the other file(s), or provide the means to do so as above. (3) Editor Modes and Loading --- ------------------------ The Funnelweb system editor supports two main modes, Word Processor and Programmer's Editor, from the same set of files. The choice is made implicitly from the alternate main Funnelweb selection screens, but may be intercepted and reset at load time. The editor files ED, EE, EF are Funnelweb Option 1 or 2 program files, as is permanently configured in Funnelweb itself. The new Vn 5.21 editor in fact always loads the 8-bit CHAR@1 character file or other character set as part of its initialization, so option 2 is adequate (Option 2 GPL loader deliberately clears control character patterns amongst other things to better mimic the E/A 5 Loader). This means that the main Funnelweb menu may be used to load any other editor (or other program) in this form and name. Going the other way, the Loaders screen may be used to load the files, in which case the implicit result is P/E mode unless intercepted. Loading these files into a standard TI-99/4a without 80-column VDP will cause unpredictable results (TI's euphemism for a total crash). The editor files MUST be loaded from Funnelweb under a 2 letter filename, normally ED, for character, language, and help files to be found on the same drive or directory as ED. The entry time code in ED reads the load path from the Funnelweb name buffer, and adjusts the auxiliary file paths to match that (but does make the simple-minded assumption that the filename was 2 characters long instead of more complex code to parse it properly). This means that it may be loaded, provided the help and other auxiliary files accompany the program files, from other than the Funnelweb drive/directory with all functions intact, but the assumption is made that the pathname is short enough to be a legitimate Funnelweb working directory. (4) Multilingual and All-Characters Capability --- ------------------------------------------ TI released in Europe in 1983 (in Germany at least) a multilingual Version 2.0 of TI-Writer which supported the range of languages implicit in the TI-Writer module selection screen, referred to earlier as E/W. Unfortunately, and for reasons known only to TI, E/W writes Tab records to file which are fatally incompatible with the original USA issue of TI-Writer. It also had a whole range of auxiliary text and character files, and a new Formatter with special transliteration files for the new characters. The new Funnelweb Editor supports both the original TI/Wr and E/W with selection at load time, either preconfigured or from the selection screen. The file loader handles all existing tab records (TI-Wr, E/W, F'Web) transparently. The E/W mode normally writes E/W type tab records to disk in W/P mode, so do not send such files without warning to people without recent Funnelweb editors or E/W. An option in CONFIG/ED allows the user to force writing of tab records to file that are compatible with either form as selected there, but the file itself, if it uses 8-bit characters, may not be read correctly by other editors. The user selection screen is brought up by pressing while the program finishes loading. First choice presented is between Word Processor and Program Editor. This is replaced after the selection has been made by a choice of Editor buffer configuration. (1) A single large text buffer of 128 Kb capacity in up to almost 4500 lines. (2) Dual buffer Edit-ring format with 2 independent 64 Kb text buffers, each with almost 4000 line capacity. (3) Quad buffer Edit-ring format with 4 independent 32 Kb text buffers, each with almost 2000 line capacity. This choice is not presented if the Editor fails to detect the 64 Kb extension EV-RAM, and a single 64 Kb text buffer model is forced. The maximum linecount figures derive from the permissible line table size in CPU RAM or VDP RAM storage. The single buffer model uses all available CPU RAM space, while the multiple buffer models are limited by VDP RAM available for storage of the separate line tables for each file in the edit ring. Typically the text buffer size will be the limiting factor as a 128 kb file of 40 column only lines works out at about 3-4000 lines. The worst case for line count will be very long assembly source files in compacted uncommented form, such as produced by the c99 compiler. The next choice is from 3 options. <1> Default 8-bit, in which character file CHAR@1 is loaded but no further command files. Unless the special entry mode is set, it uses normal 7-bit ASCII characters only. If set it allows keyboard entry of all characters >00 to >FE, for example the complete IBM PC character graphics set (the regular >7F character is now given its PC interpretation of Delete and becomes a control character). All-Characters extension mode, indicated by a hollow arrowhead on the bottom ruler line when made visible, is toggled by and sets the most significant bit in any character entered. It is cancelled by going to Command mode, but can be reset there. Extended tab records as configured are written out in word processing mode. Character >FF ( in this mode) is not available and is replaced by a space in the text buffer. <2> National All-Characters modes, which loads auxiliary character and command text files from the set provided, to support a range of languages, but is otherwise similar to the default. <3> TI Euro-Writer, which apart from redefined normal characters, allows entry of various modified versions of vowels, using keys and . These are encoded as ASCII 128 to 167 (>80 - >A7). You will need your Euro-Formatter and transliteration files to handle these E/W files correctly in printing if they contain modified vowel characters. It may be that E/W users will prefer to use All-Chars mode which will mesh more easily with standard printer fonts and E/W may well disappear from future versions. The assumption has been made in the supplied help files that All-Chars will be the most common mode of operation. The next option box allows selection (1-8) of the various national languages. These choices use various auxiliary files, depending on the mode selected. E/W mode loads text/command files F8TXE, and character files CHAR1. National language mode loads files F8TXE, and alternate character files CHAR@<1-8>. The normal imbedded language is English, and the USA and Britain options do not load a new command text file. Only one set of command text files is allowed for. With languages such as German and Swedish where 7-bit characters suffice for the command text, it makes no difference between E/W and All-Chars modes, while for others such as French there will be minor variations, and for Dutch only 1 letter. In this case choose or alter the one which matches your dominant usage. The character files CHAR1 are the same as for the TI Euro-Writer with only very minor modifications. The CHAR@x files have TI type control character patterns and the other 7-bit character patterns from the corresponding E/W file, but otherwise match the full character sets found on PCs as in code page 437. All these files have a dummy 6 byte E/A program header. I realize that character patterns to fit a textmode 8x6 matrix will not be all that wonderful on screen but it does open a new dimension for TI-Writer editing. Loading an All-Chars or E/W workfile into the Editor in default 8-bit mode and re-saving will not corrupt the file. If in doubt about a file which may be of European origin, then try E/W if the All/Chars national mode does not seem right. CHRCOAL/S is the source file for a self building character set and may serve as a starting point for customization, requiring only alteration of the character pattern entries which are all labelled for convenience. It also serves as an example of how a program written to run under Funnelweb can call on the QD directory utility program normally called with from the Funnelweb main menu screens. CHARUTIL is a utility for converting existing char-files to source form, or trimming null sectors from char-files. They are included because I found existing public domain working tools for character sets quite unsatisfactory for practical use. Whatever the character set, the character patterns for >7F (ASCII 127 -- Del - normally blank) and >FF are redefined as the solid and hollow bottom line indicator characters. The Delete character is now treated as a back-delete control key, and neither of these can be entered into the text buffer from the keyboard, and the >FF character is always transformed to a space, as it is used in the internal run-length encoding of the text buffer. The >1F pattern (the edge char in Basic) is also always redefined as the solid mid-line as used in several of the Help screens. The cursor of the moment is the >1E pattern. One of the Help screens provided allows examination of and ready reference by ASCII value to the current character set. (5) Editor Configuration --- -------------------- The INSTALL program allows a range of initial options to be installed in the ED file from a DV/80 text file. CONFIG/ED is such a file, and is its own documentation. Keep this file for reference, but a cut down version such as CON/ED will do the job just as well. If you wish to retain English language command text, but to use a particular national character set, then just omit or hide the particular command text file from view. No error will be issued if it is not found, as the effect is non-fatal but immediately obvious. (6) Printing --- -------- The usual Funnelweb modification of the Formatter will work as before with 7-bit files. Printer codes to set national character sets will depend on your particular printer. All-Chars files should print directly from the Editor to printers (most nowadays) that support the PC character graphics set. No work has yet been done on interfacing the the E/W Formatter, and we do not intend to supply it or its auxiliary files. For the moment change the word in your copy at >30 in the first sector of FORMA1 from >130A to >100A so that you at least can use it with Funnelweb or E/A. Edit the drive # and language letter in the string DSK1.TXTFA in sector >0D, and at >20 of sector >0E change >D800 to >9800 to disable the language selection path from the TI/Wr module. A rewrite of the Formatter would seem to be in order at this stage, using the existing TI-Writer manual as base specification in the absence of original source code, but life seems just too short with too many other things to do. The existing Formatter functions normally for 7-bit files with the following enhancements over the original TI issue. (i) The printer device-name is preconfigured in the main FW/LOAD program by CF/CG and may be changed to suit your convenience. (ii) The Formatter will display the filename last used or marked. If it cannot locate a name then the utility pathname set in FUNNELWEB with CF/CG becomes the default. (iii) The key now returns directly to FUNNELWEB's central menu screen. The Formatter does not need to reload from disk if reselected immediately. (iv) Pressing AID invokes a directory routine similar to QD. File QF is loaded if present on the boot disk when the Formatter first loads for this to be available. File marking is active, but is not apparent until the workfile name is edited - is not enough but even a cursor movement will do. (v) The Formatter may now have 4 disk files open at the same time. (vi) The FO/FP files load purely as an Option 2 (E/A 5) program, and another Formatter program in this form may be substituted. PART II -- COMMAND and CONTROL ------------------------------- (1) Editor Modes --- ------------ Each of the Word Processor (W/P) and Program Editor (P/E) has two sub-modes, toggled by . In W/P these are the familiar word-wrap mode (solid cursor) and fixed mode (hollow rectangular cursor), and are essentially the same as set out in the TI-Writer manual to which you are referred. In P/E mode the initial state is a modified and locked fixed mode with hollow cursor, and is set up for writing source code in languages such as c-99. Tabs are initialized to E/A editor settings. Word-wrap is permanently disabled to prevent accidental reformatting of source files into one giant paragraph, and s are never written except in special character mode. toggles to the new ASMode (with diamond cursor) for writing assembly source code. In this mode each line is partially parsed as assembler code before it is stored in the text buffer when the cursor leaves the line. The label, opcode, and operand fields are automatically up-cased as required by the assembler and some checking is done for common errors such as unmatched quotes or "." instead of "," in the operand field, and non-alpha characters in opcodes. The c hecks include matching of double quotes enclosing filenames for COPY directives. My experience is that use of ASMode significantly reduces the number of trivial nuisance assembly time errors. (2) List/Selection boxes ------------------------- At various times from the command line, usually when more than one selection is available , a box will pop up showing a list indexed by number <1> up to at most <8> for selection. Pressing <1> up to <8> will select the numbered item, and where appropriate presents it for further editing on the usual command entry line. Pressing will usually return the last selection made from that box. (1) Edit Ring -- this box shows the current buffer state, the filename, the number of lines in the file, and an "E" if the buffer has been edited (characters entered) since loading or last saving. The box is shown only for multiple file buffers, of which there are up to 4 in the 4x32 Kb mode of the current implementation. This box does not appear in single file-buffer modes, and in multiple buffer modes the first buffer behaves like a single buffer mode until other buffers are invoked. (2) Load / Save -- keeps a running record of up to 8 of the most recent files loaded or saved, or marked from in SD. If, as initially, the buffers are unnamed and only the Funnelweb workfile name is known to the system the box does not appear and operation follows the familiar pattern. When the box appears, pressing goes directly to the current workfile name displayed on the command entry line, while pressing a number key in the displayed range replaces it with that entry. The command entry line is then available for editing, and if edited is added to the head of the list, with the rest being pushed down. (3) Print device -- allows selection of a print device for either Print File or for Directory Printer. This box always appears and is initialized to a single entry as configured in Funnelweb. (4) Hard pathname -- maintains the list of path-names for use in ShowDirectory for devices which do not have or simulate the standard TI floppy disk sector structure. (5) View File -- allows previously viewed files to be selected for View again directly from the command line command. (6) Help Screens -- a list of the 8 help screen titles is available for selection. An initial press of will bring up help screen #1. (3) Safe Text Features --- ------------------ Various precautions have been taken to prevent accidental loss of text, either from the Editor text buffer(s), or to protect existing files on disk. If no text entry has been made in an initialized (purged) buffer, an attempt to Save File will not succeed, so that you do not wipe out your current workfile in a careless moment or from language confusion. Each file buffer maintains a "edited" flag, and if the Quick Quit exit command is used, this is checked. If any text entry has been done since loading or saving the current file, a reminder to save the current work first will be issued. This warning also operates before Purge. The checking of the safe-text flag has been extended so that a Save First (Y or N) is given if you attempt to load a file over an existing one that has seen keyboard text entry since the last SF. A reply of over-rides the flag and goes ahead with the intended action, while returns to the command line to allow to be invoked first. Further if in SD a new filename is marked when the current altered buffer content has not been saved, a brief warning is flashed - use to back out gracefully, or to confirm the change. The "Save File First" will still be given before subsequent LF/SF operation. Explicit purging of the current text buffer before it is to be replaced is probably a good working habit to acquire. In multiple buffer modes even if the current ring file has been declared safe, a check is done on the other text buffers and if any have been edited the ring file window is displayed to show the "E" flags. Pressing takes you directly back to the command line, and any other key allows you to continue. Normally at this stage you would use and then check the various ring files, saving as necessary. (4) New and Updated Editor Command Line Entries --- ------------------------------------------- Several new command line 2-letter entries have been introduced in various categories. An important and the most obvious change to command mode is that text may be scrolled by line or page using the normal set of up/down scroll control keys. This allows the text to be inspected anywhere during command line entries, so that line numbers do not have to be remembered for large Copy/Move/Delete operations. Copying of small regions of text, 22 lines or less on a command mode or View page, may now be done without line numbers by using the clipboard Copy/Paste functions as , . The new entries are specified here by their English language version. -- in single buffer mode returns directly to the Edit mode as always. In multiple buffer mode it brings up the selection box showing the current buffer file names. These are initialized as "noname" until a file is loaded or a file name entered or selected for saving to. -- for Tabs is not strictly new, but now brings up a second command line which asks TABSETS (1-9)? and indicates the current setting as the default entry. Nine tabsets may be defined, of which the sets 1-3 are saved in document tab records. The current tab line is written into the ruler line when confirmed by and also when a new file is loaded and a tab record read in. Tab records are saved with files by the Word Processor and not saved by the Program Editor, but are recognized by both. -- for View of whatever file is selected from the List/Selection box. A "please wait" message will appear while the file reading advances to the previously marked line number, before the first page of View display. Alternatively this can be reached from SD, and the same key controls apply in either case, any key for page scroll except or for line scroll, for Mark to View list, to enter py marking mode, and to exit. If no file has already been marked as a View file, the process will stop at the SD screen. -- for Help mode brings up a series of up to 8 help screens which were loaded initially. First selection is by list number, and then with paging between them by and exit by . Re-entry to Help is at the last screen viewed on the previous invocation of Help if is pressed directly. See later for details of preparing Help screens. -- for COpy now sets up Mark/Copy/Append to the clipboard of some or all of the lines visible on the screen. A new small set of key functions comes into play for the mark process on the current screen. The same function is available from the iew mode. All marking is on the current page and other keys are inactive until exit from mark mode. Key functions then are .. extends the the marked lines (indicated by the secondary color set) down a line at a time. .. shrinks the marked area up from the bottom a line at a time. If this makes the marked area vanish, the mark mode is exited. .. shifts the whole marked block down a line. .. shifts the whole marked block up a line. .. exits the marking mode immediately. .. copies the marked block to the clipboard, replacing any previous clipboard contents, and then exits the marking mode. .. appends the marked block to the clipboard contents within the size limit, and then exits mark mode. -- for PAste of the COpied clipboard contents into the current file being edited. This requires a "paste after" line number for pasting in of the clipboard contents, and the current top of screen is supplied as default entry using the mark line message, though the line to be pasted after does not have to be visible on screen. The clipboard contents remain unaltered until another Mark/Copy operation rewrites them, and may be used to transfer a block of text within the edit file, from one edit file to others, or from a viewed file to multiple others. -- for Quick Quit back to Funnelweb. See the earlier discussion under the Safe Text heading. This is the safe exit which invokes checking the edited status of the text buffer(s). The standard exit by way of uit followed by xit bypasses any such checks, and should be used only if certain that nothing need be saved. -- for LoadTemporary file. The temporary loadfile name may be entered directly, or marked in SD with . This allows for inserting all or part of external files into the edit workfile without disturbing its name. This filename is not entered into the L/S list, but a separate record of the last one used is kept for each buffer. The filename is initially blank. -- for SaveTemporary file. This is the Save version of and is generally similar in function. The filename is shared with . -- for set showDirectoryPrinter name. This allows the device name used by rint directory in SD to be preset to something other than the PF name. It is initialized to the PF print device at load time, and this is the initial entry in the List/Select box. -- for MarK position in file. This sets a marker after line number entry, or else enter this with at the current top line, which may be scrolled to any line in the workfile while still in CMD mode. Key in Edit mode is an alternative and usually easier method for setting the bookmark. -- for HardDisk pathname instructs SD to read the directory using the catalog pseudo-file for the pathname, running an assembly version of the standard Basic disk catalog program. The pathname is presented for editing first, and a stack of these is maintained for the List/Select box. The sectors used and free counts may be beyond the normal display range with hard disks and show nonsense values. -- for choice of WildCard character for use in FS/RS search strings. This initialized as the "*" character. < > -- a blank CMD line. On the main CMD line this returns to the Edit mode at the original exit point. -- from the main command line a number acts like a Show lines command. "E" for EoF is not recognized in this direct return as a letter may conflict with other commands. You can just use a big number, say 9900, instead but it is probably easier to use for Show line. Some control key presses now have new special functions in CMD mode, and mostly were of no function before. Where the new function also applies in Edit mode it will be listed in that section. For a summary of all key functions see the help screen supplied or else consult the original TI-Writer manual. now writes the current top of page line number at the cursor position on the command line setting insert mode. If you must have on the command line use or special character mode. toggles the VDP between NTSC and PAL display standards. The effect on screen will depend on your monitor. exits from command mode to the current top of page. It has the same effect as followed by . exits from command mode to the original departure point from edit mode. cycles through command and ruler line colors with main screen colors still set by . toggles the bottom ruler line on and off. Make sure you are in command mode for this as this key in edit mode duplicates the line above the cursor over the cursor line. If you do blunder, immediate use of Oops before any other key will restore the line to its prior state. toggles the VDP in and out of interlace mode. (5) Find and Replace String --- ----------------------- Find/Replace String commands now take up to 3 numbers ahead of the string entry. Two numbers give the start and finish column for the search. For 3 numbers or 1 number the first or only number is the number of match occurrences to skip before stopping. This is similar to the E/A editor. In case you had not noticed, RS always worked like this. Also when no more matches are found, both FS and RS give an audible bloop and stop where they are. The start position for the search is resumed with . Any non-numeric character may be used as delimiter, so that /ABC/defg/ or -ABC-defg- or aABCadefga as RS string entry will all search for string ABC to be replaced with string defg. A wildcard character, set by , can be included in the search string. The search procedure ignores the character in the text line corresponding to each wildcard occurrence in the search string. Neither delimiter nor wildcard can be a regular part of the search string. During RS ll operations the successive line numbers in which the search string is found are displayed at the right side of the top command line. If a Replace operation in word-wrap mode has altered the line count, this will be reflected in the number displayed on subsequent hits. (6) New Edit Mode Functions --- ----------------------- Changes have been made to the edit control keys so that many functions are available from the left hand in a compact block without stretching. Some of these key functions were already in place such as the cursor diamond which duplicates , and as shadow of . pages towards the start of file (). pages towards the end of file ( fctn-4>). places the cursor after the end of the current line and is no longer the alternate Oops key which remains on . shows the first page of the current workfile. shows the last page of the workfile. breaks the current line at the cursor in all modes, but does not enable s with in word-wrap mode. In W/P fixed mode it replaces which splits the line only in wordwrap mode. has various functions. In all modes other than wordwrap in W/P it inserts the contents of the next non-blank line (blank includes paragraph break lines with only) into the current line at the cursor position. Leading spaces and trailing spaces and s are trimmed from the inserted material. If the effect displeases, just use Oops immediately. So there is now a way in the various fixed modes to insert material into a line without having to retype it. This also acts to undo the effects of line splitting with . in wordwrap mode no longer shadows , but takes the lines as they would be reformatted by and does a Right Margin Adjust on each line to the current right margin. The Formatter is thus no longer needed for this function. The redefined no longer duplicate . In Program Editor search, instead of for s marking paragraphs, for either asterisks "*" in the first column as marking assembly comment lines, or for the c-99 comment delimiter "/*" at the start of a line. Strictly speaking the search is for the first non-blank line following the target item. This substitutes jumping between comment lines in source code for paragraph jumping in W/P text. It also removes the annoyance of time consuming traversals to the start or end of source files if these keys are accidentally pressed in P/E mode. Some minor changes have been made to improve safety and convenience in editing. in Edit mode now inserts a New line to avoid unintended deletions when NTSC/PAL toggle was intended. This also matches usage on PCs, as in Borland editors. To reflect the nature of word-wrap mode, and in this mode only, cursor movement past the right margin drops the cursor to the left margin of the next line, and arrowing back past the left margin wraps the cursor back to the right margin on the previous line. Up/down case change and tab by words have the same effect. Margin release will have temporarily reset both margins to the extremes. The key is not strictly a control key, but returns >7F (ASCII 127) the DEL or rubout character. In previous versions it inserted this character in the text, but in this Vn 5.2x the behaviour has been changed to be like the Del key on PCs, and performs a back-delete function of the character to the left of the cursor, while moving the rest of the line one character to the left. It does not skip back to the previous line. now freezes the edit screen below the cursor line, and normal editing and scrolling take place in the upper part of the screen. Entering command mode or pressing again clears the frozen part to normal continuation of the current upper part of the screen. The frozen part of the screen is displayed in the secondary color set. sets a bookmark for the line at the current cursor line. It is equivalent to MarKing in command mode. effectively does a Show Line with the currently marked ( or MarK) line at top of screen. It is reasonably intelligent in the face of changing workfile contents, and if confused reverts to line #1. returns to the Original line after some operations such as , RS, and FS. in the Program Editor only, inserts a blank line following the current line and places the cursor on the new line under the first character of the current line. If this line was blank the cursor stays in its current column. It retains its New Para function in word processor mode. in the Program Editor only, deletes the current line if and only if it is blank between the current left and right margins. This makes it a lot safer for deleting a bunch of blank lines than which can do real damage in careless moments. It remains as Reformat in W/P word-wrap mode (solid cursor). The two functions do have some similarity. has effect only in All-Chars default or national language modes. To show high-bit setting is toggled in, the baseline moving marker shown with the ruler line changes to a hollow arrowhead. In this mode the MSbit of character entries is set. As the special character function allows regular control character (ASCII code below 32) entry, any character value except >FF and DEL >7F (ASCII 255 and 127) can now be entered into the text buffer. Patterns so displayed depend on the character set currently loaded. One of the help screens provided shows the character pattern associated with each key combination, and blank if the keycode is not available in the particular mode (eg E/W mode shows patterns only up to >A7 (ASCII 167)). Other help screens supplied show the 8-bit All-Chars characters in various ways. in Euro-Writer mode only, modifies the normal vowel under the cursor to one with a circumflex accent. Vowels so modified must be retyped to normal form for changing the accent. Some of the modified forms may already be available in some national character files as alternative versions of regular 7-bit ASCII codes. ,, similarly apply umlaut, grave, and acute accents respectively. It is not explicitly visible from outside, but in the new buffer encoding blank lines are listed in the line table only. This means that deleting of blank lines goes a little faster in long files than for non-blank lines because only the line table has to be adjusted. (7) Previous Performance Enhancements --- --------------------------------- This update retains all enhancements of recent versions over the TI original, and those not mentioned elsewhere in these notes are listed here. (i) The color selections using and are the 10 configured in FUNNELWEB using CF/CG. (ii) The printer device-name is read in from the main program and used as default for PF and directory printout in SD. (iii) The current Funnelweb system workfile name is used as LF and SF default. At the initial Funnelweb load a default workfile name may be configured with CF/CG into FUNNELWEB. If left blank the default utility pathname or the pre-existing filename will be set. If your system has 32Kb RAM in battery backed form, as on some RAMdisks, it may well survive power cycling if not otherwise wiped out by programs which are not Funnelweb aware. (iv) The system Quit key ( in AVPC machines) remains disabled at all times while in the Editor, including SD. (v) The text buffer manager routines have been completely rewritten and screen painting has been speeded up slightly to give "crisper" screen scrolling. Delay in word-wrap has been reduced so that there is less problem with loss of keystrokes (though it is becoming a problem again in the big buffer versions), and Reformat is faster. (vi) Delete Lines is greatly speeded up, particularly on freshly loaded files, though more complex and slower in this EVRAM version because of text buffer segmentation. (vii) Copy Lines is now very rapid, and does not leave partial copies if 'Text Buffer Full' would occur. In this new EVRAM version it is a more complex and slower process than before. (viii) Move Lines is now instantaneous and no longer can cause the 'Text Buffer Full' condition. It now merely shuffles the pointers in the line table instead of copying and then deleting as was the TI way. I have a suspicion TI's programmers were following big company rules for structured programming, with the usual result of bloated and slow code. (ix) A right margin warning beep has been incorporated as a beep occurring 8 spaces in from the right margin during typing. (x) Alpha case conversion is provided, in either Edit or Command modes. converts a lower case letter under the cursor to upper case, and below it on the keyboard converts upper to lower case, with auto-repeat. (xi) The End-of-File message has been replaced with a full width ruler line which shifts with window and line number selection. (xiii) The margin release key now gives full release on both left and right margins. (8) Minor Variations --- ---------------- The horizontal windowing code is still present in the 80-col editor, but is only 6 columns shift. When line numbers are suppressed (load time default in W/P) the horizontal shift function has no effect. When line numbers are displayed (P/E default), the effect is to toggle between these states, and taking the cursor past the right margin shifts over to the window without line numbers. (9) No Longer Supported --- ------------------- The Recover Edit function from the command line is no longer included. This had lost most of its original function in Funnelweb as the line buffer contents are overwritten on return to Funnelweb which has to reside in CPU high memory, unlike the original TI-Writer which returned to GPL code in the module GROM. As noted above under Quick Quit, a warning is issued if the file contents have been added to by keyboard character entry since last loading or saving. This matches common practice on PCs. The Oops line recovery function remains unaltered on . The 40-column display mode of early 80-col small buffer releases has also been removed as it is not compatible with the use of VRAM as text buffer. It may or may not be restored in future developments that use banked CPU memory as extended text buffer. Part III -- Auxiliary Features ------------------------------ (1) Help Function --- ------------- A series of help screens may be invoked from the main command line (see part II). The help screens are stored in VDP memory at load time from the DV/80 files HELP8W or HELP8P. Content of the help screens is completely at the user's discretion, and they are prepared as DV/80 files using the Editor itself. Each screen has a header line that appears in the Help List/Select box, followed by 26 lines of 80-col help screen. Lines beyond the 8th screen's worth are ignored when the help file is loaded initially. Help screens prepared with the extended character set may not show correctly in E/W mode. The pictorial guide to the keyboard for All-Chars is courtesy of L. Tippett. The Help screens included in the issued package as DV/80 files may be examined and edited as desired with the Editor itself, and will not be described in detail here. In the initial issue of HELP8W one screen has been left almost blank. As provided the help files have a line past where the screens are read which gives a list of the line numbers where the entry headers must be located. (2) Show Directory Functions --- ------------------------ The Show Directory screen is independent of the 8-bit graphics characters used by the Editor for text display. The filename display is similar to that in DiskReview except that no check is done on program file type. Three filename buffers are displayed, showing the current workfile, the temporary loadfile, and the current directory print device. Further information is given on the remaining text buffer and line table capacity, and the edit ring number if in multiple buffer mode. If a new workfile is selected by , the name is added to the stack of filenames for the Load /Save List/Selection box and the name indicated is installed as work-file name for the current ring file on exit from SD. If you pine for the permanent view buffer function of the earlier issues, use the dual 64 Kb buffer option and the second file will have the full 64 Kb buffer capacity and be fully editable as well. <1 to 9> -- causes the directory to be read from the floppy drive unit number indicated, or from the RAMdisk emulation. This function assumes standard floppy sector access is supported at DSR sub-program level, and that the TI specifications for the disk DSR and floppy disk structure have been maintained (the CorComp RAMdisk deviates from TI standard in unsympathetic ways and must be treated as a pathname access). In particular the Myarc DSQD extension to 720Kb drives (with 2 sectors per allocation unit) is supported, but individual file sizes are reported as sectors used rather than as sectors allocated (either 1 or 2 less than actually allocated). The disk sectors used/free are as allocated. Floppy drive identification outside the range 1-9 is not supported, and any RAMdisk emulated drive so designated must be accessed as a pathname. <0> -- as the disk number reads the Internal, Relative 38 catalog pseudo-file for the pathname as configured or as last entered by from the command line. This entry uses an assembly language version of the standard Basic program for reading the catalog file as specified by TI for any drive or as extended by Myarc to directories on hard drives. It has been specifically coded to cover quirks of the Myarc HFDC. This mode operates at file DSR level only, and a directory so obtained does not indicate fractured files. File protection is shown, but nothing can be done about it, as alteration may require sub-programs not defined in standard floppy disk DSRs. Marking, deleting, and viewing are at file level and function normally. The sectors used/free display may well be nonsensical for hard disk directories, but is retained for occasions when it is correct. -- in pathname mode reads the parent directory of the currently displayed sub-directory. The sub-directory name is also trimmed off the pathname stored in the name buffer. -- move the cursor bar up or down, paging the display as appropriate. -- page the directory display up or down, as do also to match paging in the Editor itself. -- marks the Display/80 file under the cursor bar as the current workfile, as used for LF and SF. In pathname mode, if the cursor bar is on a Sub-Dir entry, it will cause that sub-directory name to be appended to the existing pathname, and the catalog is generated for that sub-directory. The altered pathname becomes the current pathname as stored in the name buffer. -- marks the Display/80 file under the cursor bar as the editor temporary file name for LoadTemp or SaveTemp. -- restores the work and temporary filenames to those originally existing at the current entry to SD. -- prints a directory out to the DirectoryPrint device as a DV/80 file in Append mode. This device-name is initialized at load time to be the PrintFile device but is maintained separately after that, and is edited by from the command line. -- set the file under the cursor to Protected or Unprotected respectively, but not for pathname catalogs. -- deletes the file under the cursor bar, but first asks for confirmation (Y/N). The directory is re-read automatically for confirmation. -- shows the contents of the Copy/Paste buffer. Return to SD by using . The one-way scroll of previous Funnelweb editors is the standard view mode using or and now may be scrolled by single lines . A new set of control keys operates in View mode, and are listed after the commands which load View from the directory. -- displays page by page the current Display/80 file. The filename, with line #0, is entered into the stack of names for the View List/Selection box called up from the command line as for below. -- is similar to except that the filename is not entered into the View list at initial invocation. -- enters the current filename into the View list with the current top of page line number. , -- scrolls the iew down a line at a time. -- enters the Mark/Copy to clipboard function as described under the py command line function. As a last little addition, the SD screen also shows the fraction of capacity of the text buffer free, expressed as a percentage. Buffer capacity is now much increased .... use of 64K extension VDP RAM has to buy something! Separate buffers are maintained for text and line table, and this latter is set up to support about 4400 lines in the 128 Kb buffer mode. For the text buffer indication only the % sign shows for less than 1% free. A second entry shows the number of lines that may be added. The text buffer figure includes the effects of buffer encoding and the corresponding disk files may be much longer. The utilizable capacity will depend to a small degree on the details and edit history of the current file. A shortage of space on either account triggers the same "Text Buffer Full" error message. Invoke SD to find which is the problem. (3) New Load/Save Functions --- ----------------------- The Load/Save module now has code which performs extensive validation tests on incoming tab records from any mode into any mode. Euro-Writer files do not crash this version no matter which mode is being used. Loading and saving of text records bypass DSR search and go directly to the opened DSR for improved speed. A line count is at the upper right of the screen to show progress in loading or saving. Changes under user selection are in the option codes for PrintFile, where the following new options are available. M -- sets PF to output the file in DisFix/128 TI file format with MS-DOS end of line separators and end of text marker. This is the TI file format that is the nearest equivalent to an unstructured stream file format of indefinite length. U -- does similarly for Unix format with separators and at end of text. M and U both cancel the L option for line numbers. P -- if a printer start-up control code sequence has been installed this will be sent to the print device before any text records. Q -- if a printer reset control code sequence has been installed this will send it to the print device after all text records have been output. A -- opens the DV/80 output file in Append mode. If it is desired to keep a Tab record in Word Processor mode (Tab records need not be at the end of the file), SaveFile should be used to start the diskfile. There is no provision for external files in the M/U formats to be read in directly, and external conversion programs will be needed to produce DV/80 files first for loading by the Editor. For a quick summary of these and the other PF options see the relevant help screen, or else consult the original TI-Writer manual. (7) Fairware Notice --- --------------- This program is distributed as FAIRWARE. Consequences of its use are entirely the responsibility of the user. The files as sent out are not disabled in any way, unlike the frequent and unpleasant custom of "crippleware" in the PC world. The usual fairware conditions remain in force for this extension of the Funnelweb system. If you don't think it is worth supporting or don't bother to, then be honest and don't use it, but at the very least please show your appreciation of the free trial by passing it on to others who may. The license to use this package includes the condition that the "About" page in the help files not be deleted or altered. (8) Final Words --- ----------- Please report any bugs found, particularly including Geneve or HFDC oddities, or send suggestions. We are always trying to squeeze more functionality on to standard TI-99 hardware, and this version is is my personal judgment at this stage of development of what is best included, given that hardware limitation. It also reflects my own view that TI did do a pretty good fit to the capabilities of the TI-99/4a with the E/A and TI-Writer editors in the first place, and changes have not been made for change's sake, or in imitation of editors or word processors on other systems, unless I thought it was worth doing. This issue represents something close to the ultimate version using 9938/58 VDP RAM only, apart from minor fiddles, and further developments will involve use of banked CPU RAM in whatever forms are available and working here. Immediate intentions would be to use a surplus small HRD, and this would allow a large buffer 40-col version, as well as more flexible 80-col versions. GENEVE 9640 NOTE -- If you have a standard Geneve 9640 with only 128Kb VDP memory for the 9938 video processor then you will see only a single 64 Kb text buffer, but this is set up automatically. Users of Geneve 9640 machines with EVRAM fitted are not left out, and no Geneve-hostile code is knowingly included. Mapping particular keys on the Geneve keyboard to TI-99/4a keys remains the responsibility of MDOS's simulation of the 99/4a (the same holds true for PC keyboards with adaptors to the 99/4a, such as by RAVE). In the absence of any local Geneve, covering of the various incompatibilities of the Geneve with the TI-99/4a has to be done by guess and remote feedback (same goes for hard disk pathname functions for the Myarc HFDC, at least until the WHT SCSI DSR becomes available). WARNING - it seems that the ROM based ROS for HRDs by J.P. Hoddie is incompatible with 80-column adapters because it ignores TI system guidelines. Use the Bud Mills/OPA Vn 8.14 ROS in RAM instead, which though still not satisfactory in design, better respects TI system rules. WARNING - English speakers fooling around with the Swedish model should remember that LF in Swedish is short for SaveFile!! You will forget only once. Various other little traps for the unwary may exist also in this or other languages. WARNING - The Myarc HFDC operating as a floppy disk controller has problems with multiply fractured files, unless the fixed DSR by Geoff trott has been installed. At least some Myarc FDC 80-track DSR ROMs do not always handle file length allocations correctly on 80 track disks. These problems cannot be worked around by the Editor. APPENDIX - Updates and Bugfixes ------------------------------- Updates are only mentioned briefly. For details of new or improved features, see the relevant sections of this document. (a) April 1993 ---- o Updates -- (1) Separate type and language configuration for W/P and P/E. (2) Replace String in ASMode now does the ASM syntax checks on altered lines. (3) First of further help screen choices (L. Tippett via C. Good). o Bug Fix -- (1) Replace String in Fixed modes caused partial lockup of Geneve (not TI-99). Code fixed. (2) Tab recognizer code blanked last character of potential but rejected tab record. Fixed. (3) from SD to view existing View buffer file failed to set correct char-set in All-Chars mode. Fixed. (b) May 1993 ---- o Updates -- (1) User can configure All-Chars tab record sent to file to be either of USA TI-Writer type or Euro-Writer compatible. (2) Directory Print from SD in Hard Disk mode now writes the pathname in the header line. (3) Files may be appended into the View buffer using . (4) Directory tree traversal added to HD directory displays. (5) More Help screens available for choice. o Bug Fix -- (1) As always bug-fixes bring new bugs. RS locked up after the last "fix". The fix is now itself fixed. (2) Minor correction All-Char help screen. (c) July 93 ---- o Changes -- (1) Command text sources and utility now omitted. o Bug Fix -- (1) Appending of files into View buffer fixed after incomplete first file read (stopped with ) or initial line scroll back. (2) append-view function in SD modified for better user control. (3) Minor change in German command text. (d) December 93 ---- o Changes -- (1) Now requires 64Kb 9938/58 VDP extension RAM to support the extended text buffer. (2) Mark/Copy/Paste introduced from View and current file via a clipboard into the current file. (3) ASMode line entry parsing improved to cover filenames in COPY directives. (4) Save file warnings extended. (e) March 94 ---- o Changes -- (1) Euro/Writer restored to Jan 93 test edition National 7-bit now uses CHAR@ sets rather than CHAR1 sets. (2) Right Margin Adjust in W/P mode as alternative paragraph reformat mode. (3) 40-column mode removed as incompatible with use of EVRAM as text buffer. (4) Line number indicator added to RS ll search to show hits. (5) Append added to clipboard copy function. o Bug Fix -- (1) Buffer corruption problems in Jan 93 test edition eliminated. (f) April 94 ---- o Changes -- (1) Cursor behavior in word-wrap mode. o Bug Fix -- (1) Truncation of long Load Temp marked path.file names. (g) June 94 ---- Limited issue test Edit Ring version. (h) April 95 ---- Vn 5.20 released at Lima MUG 95. o Changes -- (1) Configurable text buffer model, either 128 Kb or 2 x 64 Kb or 4 x 32 Kb. (2) Automatic reconfiguring to single 64 Kb if extension VRAM not found. (3) Help screens from single DV/80 files separate for W/P and P/E (8 screens each). (4) now provides PC style back-delete function. (5) List/Selection pop-up boxes for various command line functions. (6) All-Chars becomes standard default mode for text handling. (7) in all Fix Modes does a line Rejoin from next non-blank line. (8) in Program Edit deletes current line only if all-blank within margins. (9) in Program Edit inserts new-line with cursor aligned to start of previous. (10) Improved safe text features. (i) May 95 ---- Vn 5.21 maintenance update of Lima release o Bug Fix -- (1) Corruption of stored FW code (L&R loader failure). (2) COpy from Edit to clipboard now does not truncate 80 character lines to 74. (3) TI/Corcomp FDCs now load CHARxx files correctly. (4) INSTALL now sets all buffer modes, not just the 128 Kb single buffer. (5) Text buffer reinitialized correctly to a blank line after total line deletes. o Changes -- (1) French language command file now updated to Vn 5.2x level and included. (2) Very minor corrections to help screens. Tony McGovern 215 Grinsell St. Kotara, NSW 2289 Australia (049) 52 3162 e-mail -- phpam@cc.newcastle.edu.au Delphi -- GLOBAL01 on TINet May / 14 / 95 €Ž€Ī—Ÿ©³½ĒÕÕÕÕÕÕÕÕÕՀ“€€Ė˜Ÿ©³½ĒÕÕÕÕÕÕÕÕÕՀ€¢€Ė‹•Ÿ©³½ĒÕÕÕÕÕÕÕՀ¢