home *** CD-ROM | disk | FTP | other *** search
- Revision History of the Line Editor
- -----------------------------------
-
- Version 2.30 (January 1991)
- ---------------------------
-
- * Fixed problem if recalled lines were longer than the maximum line length
- (due to a new call to OS_ReadLine with a much smaller maximum line length
- parameter). Lines are now correctly truncated when recalled, but are still
- stored in their long form internally.
-
- * OldKey$13 environmental variable is now removed when RETURN is pressed.
- LineEditor$Dir is also removed when the module is *RMKill'ed.
-
- * Changed the key combination used for 'clear and remove single line from
- history' from Alt-Delete (which doesn't return a value from an INKEY)
- to Shift-Insert (obscure, but I'm running out of keys !).
-
- * Added some extra 'safety code' in case workspace pointer is corrupt.
-
- * Split documentation further into a third file, "History" (this one), as well
- as "!ReadMe" and "CompDoc".
-
- Version 2.22 (October 1990) - Emergency bug-fix release
- ---------------------------
-
- * Fixed RMA claim problem if, say, the *Configure RMASize is set to 32K, but
- the *Configure EdSize is set to 63K and the Line Editor module is installed
- outside of the Desktop. This would cause a system crash and a soft reset
- actually performs a hard reset ! The fix involves checking for free RMA
- if outside the Desktop (if inside, the Wimp muscles the RMA from other
- sources) and generating an error if not enough is available prior to the
- claim.
-
- * Fixed problems with *Configure EdSize on-the-fly changes that exceeded the
- RMA space currently available. If this occurs, then the Line Editing is
- disabled until:
- (1) a *RMTidy. This may still not free up enough RMA space for the claim.
- (2) a *Configure EdSize to a lower value. This is the best option to take.
- (3) a soft reset. This is likely to still generate an error during startup.
-
- * Added new Alt-delete feature which removes a single line (the one currently
- recalled) from the command history and also clears the line from the screen.
-
- * Fixed a flag-returning bug - older versions would affect flags other than
- the carry flag when ESCAPE was pressed: V2.22 now behaves correctly.
-
- * Now saves and restores the value of function key 13 (Insert key) before and
- after each line edit. This is done tackily at the moment, but will be
- improved in a later release.
-
- * BASIC front-end only kills module if its (and not the Task Manager's) Quit
- menu option is selected. It will also avoid killing the module if the Shift-
- Ctrl-f12 mechanism (aka Task Manager Desktop Exit) is used.
-
- Version 2.21 (October 1990)
- ---------------------------
-
- * Added *Configure EdCursor command to allow cursor shape customisation.
-
- * *Configure EdSize now takes its parameter in kilobytes rather than the
- totally non-standard "6502 pages" (i.e. 256 bytes) up to a maximum of 63K.
- The default EdSize value is now 4 kilobytes rather than V2.20's 2K.
-
- * Insert key now reverts back to being the toggle for Insert and Overtype
- mode (V2.20 used Home instead). This was achieved by using the undocumented
- fact that Insert is actually function key 13...
-
- * Insert key toggles shape of cursor between underline and block.
-
- * Changed my mind and included a *EraseHistory command after all because it
- is so easy to write !
-
- * Adjust BASIC front-end options to cope with new features. The menu is now
- "peristent" in accordance with Acorn guidelines. Also fixed a bug whereby
- a second run (whilst the first copy was still installed) of the front-end
- would undefine LineEditor$Dir and kill the module, when it shouldn't.
-
- * Fixed soft-reset overkill - a soft reset no longer re-initialises the
- module workspace and it leaves the command history intact.
-
- Version 2.20 (May 1990)
- -----------------------
-
- * The Line Editor now installs an icon on the icon bar if it is started from
- inside the Desktop (it can still, however, be started from the command line).
- The menu associated with the icon allows the EdLines and EdSize values to
- be configured dynamically. This front-end is a separate BASIC program called,
- shock horror, "!RunImage".
-
- * Apart from the above front-end (which is clearly designed for RISC OS),
- support is still miraculously maintained by the module for Arthur 1.20.
-
- * 'Improved' the problems with !Edit's and Twin's Task Windows. I had
- to change the INKEY(0) scan back to a GET because !Edit/Twin intercepted
- OS_ReadC/OS_ReadLine but NOT OS_Byte 129 !! Because of this, I am unable to
- scan for the Insert key for switching Insert/Overtype mode and have reverted
- to the Home key instead. Yes, I know it's far less intuitive, but tell Acorn
- to make Insert return an ASCII code from GET (with *FX 4,1 active) - it's
- the only one of that cluster of 6 keys that DOESN'T !!
-
- * Changed the minimum, maximum and default EdLines and EdSize values (see
- Memory Usage table above).
-
- * Made *Configure EdLines and *Configure EdSize change the command history
- buffer sizes dynamically if a new (different) value is specified. This also
- clears the command history buffer as a side-effect.
-
- * Shift-Delete added (deletes the character directly under the cursor and
- 'sucks' the rest of the line to the left by one character).
-
- * Ctrl-Delete added (clears the command history buffer and erases the current
- line) to simulate VAX/VMS's RECALL/ERASE, but on a key for emergencies
- (the only reason you'd want to clear the buffer is to hide it from prying
- eyes). Surrounded yet more SWI calls by the 'interrupt padding' code to
- cope with this.
-
- NOTE: Since *RMReInit LineEditor, *Configure EdLines, *Configure EdSize and
- Ctrl-Delete can all clear the command history buffer, a *EraseHistory
- command (or something similar) is not needed.
-
- * Added a *Recall command to list the entire contents of the command history
- buffer. No, you can't specify an individual history line by number because
- the list numbering would be shifted by 1 when you press RETURN !
-
- * The *EdStatus command has been improved to show a table of figures rather
- than (incomplete) English prose.
-
- * Split the documentation between this file ("!ReadMe") and "CompDoc" (filename
- completion).
-
- * Finally documented the various * commands in the module in this file...
-
- Version 2.10 (April 1990)
- -------------------------
-
- * Source code released publicly for the first time. Includes a cut-down version
- of the Line Editor in BASIC to show how to call the new filename completion
- routines from your own code.
-
- * Filename completion using the Tab key has been added due to popular demand.
- This was a major upgrade (hence the jump in version numbering) and hence
- has been included in a separate source file.
-
- * The code is now 'Supervisor prompt aware' for both RISC OS and Arthur 1.20.
-
- * SWI calls inside the trapped OS_ReadLine routine now use the padding
- code familiar to those who've written routines to intercept vectors.
- This should make the code more stable, even though it still doesn't
- solve problems with !Edit's Task Window.
-
- * Module compatibilty with Arthur 1.20 maintained (including the GOS 1.20
- bug fix).
-
- * Leading tildes are stripped off unmatched recall lines before execution.
-
- * RISC OS application directory supplied with a trivial !Run file and
- an application icon.
-
- Version 2.00
- ------------
-
- * Service call &27 (End of a machine reset) has been checked to allow a
- nice startup message to appear in the same way as ADFS and BASIC. The
- more useful side-effect is that the Line Editor REMAINS ACTIVE after a
- soft reset (at last, I hear you cry...).
-
- * The following maximum line lengths are used by Acorn :
-
- Arthur 1.20 RISC OS
- BASIC command line/INPUT 238 238
- *GOS supervisor 240 255
- Desktop + f12 >> * prompt N/A 256
-
- Because earlier versions only used a byte to hold the maximum length,
- the 256 value would be moduloed to 0 and no characters could be entered !
- I now use 4 bytes to hold the maximum length, which should be more than
- sufficient. Ironically, OS_CLI doesn't like lines > 255 anyway, so you
- get a 'too long' message if you type all 256 chars...
-
- * Since the Line Editor was inspired by the VAX/VMS DCL line editor, many
- people pointed out that pressing down arrow at the latest command should
- generate a blank line (and ditto for up arrow at the oldest command). This
- has been implemented and I've decided that I may as well let the recall
- wrap around as well (not an original DCL feature, but I like it).
-
- Version 1.03 - Emergency bug-fix release
- ------------
-
- * Changes to V1.01 meant that inline strings were no longer aligned to the
- nearest word in V1.02 causing an 'Address exception' with the *Status
- command. The addition of ALIGN commands (which should have been there in
- the first place) has cured the problem. Thanks to Gary C. Bartlett for
- spotting this rather elementary mistake on my part.
-
- Version 1.02
- ------------
-
- * Added ~<substring> construct. Please moan if you don't like it.
-
- Version 1.01
- ------------
-
- * Command history buffer management much improved. You can now get down to
- '0 bytes free' in the *EdStatus command - something you couldn't do in V1.00.
- The bytes free has now been 'pluralised' i.e. it says 'There is 1 byte free'.
-
- * Overtype mode added for people who like using it (who does ?). The default
- mode for each line is insert mode and you have to press Insert to get into
- overtype mode...which is the way it should be.
-
- * Character read routine now uses INKEY(0) instead of GET because I needed to
- scan (using INKEY(-62)) for the INSERT key, which NEVER returns an ASCII
- code from GET...
-
- * Line Editor now beeps (wow !) if the current line is at its maximum length
- and further characters are typed.
-
- * Ctrl-Cursor Up and Ctrl-Cursor Down commands added - they display the oldest
- and newest command lines respectively. Yes, I confess, this is a poor
- solution to the problem of *RECALL [<numbered history line>] (VAX/VMS has a
- RECALL command which isn't put into the history buffer - I don't think this
- can be done with my Line Editor).
-
- Version 1.00
- ------------
-
- * First version released into the Public Domain via the NEWS system and thus
- set a precedent for being the first EVER Archimedes binary posted up to the
- eunet.micro.acorn newsgroup. The big question is : will it be the ONLY ONE
- EVER ? C'mon all you budding ARM (or even BASIC...) programmers out there
- who are reading eunet.micro.acorn - post your stuff up NOW...
-
- * Written, for the first time, as a relocatable module (much more useful !),
- so now doesn't encroach on application workspace.
-
- * Used two bytes of battery-backed RAM to store its configuration.
-
- * *Help, *Configure and *Status now fully supported.
-
- * New command *EdStatus added to display currently active configuration.
-
- * Very minor bug in Pre-release Version fixed (cursor now goes to the end of
- the input line before a CR-LF is output).
-
- * Cleaned up some slight errors in the *Help LineEditor text.
-
- * Fixed Arthur Supervisor bug.
-
- Pre-release Version V1.0
- ------------------------
-
- * 'Normal' ARM code program that was *RUN and resided at &8E000 (I think -
- it was 'hackable' because the code was relocatable even then).
-
- * Very minor bug - if a line wrapped onto a second or later line, then moving
- the cursor back onto the first line and pressing RETURN would result in just
- a CR-LF being output at the cursor position - hence bringing up the next
- prompt (e.g. BASIC's ">" or Arthur's "*") on the wrong line.
-
- * The location of command history buffer (and the program itself) was suspect
- in the extreme - just plonked straight after the Line Editor program itself.
-