1. LOAD.LIT 2.0(106) now supports two new switches relating to locked memory modules. /L{OCK} causes the newly loaded module to be marked as locked. /U{nlock} is needed to overwrite a locked module with a newer copy of it.
2. DEL.LIT 2.1(105) supports an /U{NLOCK} switch to delete a module that has been locked. Without this switch, any locked modules are simply skipped over. (For example, DEL *.* will only delete the modules that are not locked.) /F{ORCE} may be used as a synonym for /U.
3. XCALL MIAMEX,108 (load module into memory) enhanced to allow you to pass optional flags:
XCALL MIAMEX, 108, SLOT, FSPEC{, FLAGS}
Possible flag values:
USRMEM'LOCKED (2) Lock module in memory (and override locked flag to replace locked module)
USRMEM'NOCACHE (4) Remove module on next module load
USRMEM'UNLOCK (8) Allow overwrite of locked module
4. XCALL MIAMEX,109 (delete memory module) enhanced to allow you to pass optional flags:
XCALL MIAMEX, 109, SLOT, NAME {,FLAGS}
Possible flag values:
USRMEM'UNLOCK (16) Override locked flag (delete locked module)
USRMEM'UNLOCK was 8 in the original 805 release; changed to 16 in build 806 when the user memory flags were reorganized.
5. XCALL MIAMEX,72 (retrieve message from message file) enhanced to allow specification of the message file name, as well as an optional second message parameter:
XCALL MIAMEX, 72, CAT, MSGNO {,ROW, COL {,VAR {,FSPEC {,VAR2}}}}
CAT is the message category number within the message file. MSGNO is the message # within the category within the message file.
If ROW or COL negative, the message is not displayed. If ROW or COL zero (or omitted), cursor is not positioned before display.
If VAR is passed, message is returned there. If FSPEC blank or not specified, the message file is SYS:LITMSG.xxx (xxx is your current language extension). Otherwise FSPEC is treated as a ordinary AMOS filespec with the default extension being that defined in the language definition file. The search path is user memory, then current p,pn, then p,0, then SYS:. (Message files may be loaded into user memory with LOAD; if not they will be auto-cached as needed.)
If VAR2 is passed, an optional message parameter is returned there, if available in the message file.
The message file consists of lines in the following format:
AAA,BBB,"CCC"{,DDD}
Where AAA is the category number (CAT); BBB is the message number (MSGNO), CCC is the message (returned in VAR) and DDD is the optional (numeric) message parameter (returned in VAR2).
Note that the message must be enclosed in double quotes if you are going to specify the optional ,DDD argument. To include a literal quote within the message, use double-double quotes. For example:
001,002,"This message contains a ""quote""",37
5. (WINDOWS) The "Mark" option has been removed from the Edit menu (and replaced with "AutoMouse" as discussed below.) It seemed a bit anachronistic to require you to first select Mark from the menu before you could mark a section of the screen for the purpose of cut/paste. Now, you just click and drag, as you do with most other Windows applications. Note that once you mark an area, either a CR or ^C will copy it to the clipboard. Any other character will simply cancel the mark.
6. (WINDOWS) A-Shell/Windows now supports "AutoMouse". This is basically the same concept as ZTERM's "SmartMouse", but with some variations, mostly to take advantage of its integration within A-Shell. AutoMouse is activated via a new option on the Edit menu which replaces the old Mark option. When activated, you get the following features:
•Double clicking on a "token" anywhere on the screen will generally cause the text of that token to be transmitted into the input buffer. (This function can be temporarily turned off or modified by certain applications, like VUE and INMEMO, where the potential for harm is greater than the likely benefit.) If you have the Beveling option set to Automatic (or ON via program control) then the token will be briefly "buttonized". (The rectangle surrounding the token will have the appearance of being depressed and then released.) If INFLD is active at the time, the token will be followed by a CR unless you are currently within a "fast" field.
•Clicking on an empty area of the screen will transmit a CR.
•In INFLD, clicking on the space immediately to the left of the current field will transmit a backspace. Clicking within the field will move the cursor to the clicked location.
•Note that most AutoMouse features are automatically disabled when mouse cursor reporting is activated (see below.)
7. (WINDOWS) TAB(-1,158) (mouse cursor reporting) is now implemented as described in the AMOS Terminal Server User's Guide. Briefly, this causes a series of characters to be transmitted whenever the mouse is clicked. Since this requires the use of a low level input routine to capture and process, it isn't likely to be of use to most application programmers, and thus we won't bother to document it here. The feature is used within INMEMO to support the functionality described below, and may be added to INFLD and possibly XCALL GET in a future update.
Note that there was an error in usage of TAB(-1,158) in the copy of mouse.bsi included with the release in [7,376] (used by the sample program AMOUSE.BAS.) It is no longer necessary to use TAB(-1,158) if you are using TAB(-1,162) to define hot spots. An update mouse.bsi is now included.
8. (WINDOWS) INMEMO.SBR now supports a number of mouse actions.
•In edit mode, single clicking within the memo will move the cursor to that spot, while double-clicking in the column just to the left of the memo will transmit an ESC.
•In display-scroll mode, double-clicking anywhere within the memo will transmit ESC. Single-clicking on the up and down "arrow" characters will scroll up and down.
•In the menu modes, single-clicking on a choice highlights that choice. Double-clicking on it selects it. (Note this is not affected by fast mode.) Single-clicking on the arrow characters scrolls up and down. Double-clicking in the column just to the left of the memo ESCapes out of the menu.
•Most of these features will be available shortly in the Linux and UNIX versions of A-Shell, provided that the terminal emulator (e.g. ZTERM) supports TAB(-1,158).