1. A-Shell/BASIC now supports a new language statement, VXCALL. It acts just like XCALL, except that it takes a variable or string expression for the subroutine name (to be resolved at runtime) instead of a literal. Like other A-Shell/BASIC extensions, requires /X:2 switch to compile. (The feature was needed to support the remote xcall capability, which will be coming out shortly.)
2. PRINT XXX=YYY no longer prints to the default printer if XXX.INI (or ASHCFG:XXX.PQI) not found. Now it displays an error. (Problem was introduced in build 811 along with the ASHCFG: support.)
3. COMMAND statement in printer INI files may now cause an SBX routine to be called to process the printfile, using the syntax:
COMMAND = SBX:<routine name>
The subroutine is called with the following parameters:
XCALL <name>, STATUS, FSPEC, PRINTER, SWITCHES, COPIES, FORM
STATUS is mapped B,1 and must returned with a positive number if you want the print operation to proceed. Else set it to 0 to cancel the print operation, or a negative number to signify an error. (It gets passed in as -1, so you don't need to set it to abort.)
The remaining parameters are all string format. You can convert SWITCHES and COPIES to numeric variables, but if you want to change them, convert them back to strings before passing the parameters back. You may change any of these parameters in this routine, and the changes will take effect before the print operation proceeds.
A sample routine, GDIPRT, is supplied, with source, in the samples directory, which can be used under A-Shell/LINUX or UNIX, to forward the printfile to be processed on the local PC. (Requires ZTERM and AshLite or A-Shell/Windows on the PC.)
4. SBX modules no longer reset the directory processing resources on return. (Otherwise, PRINT with a wildcard spec would no longer work in conjunction with COMMAND=SBX:<name>).
5. Fix a bug/loophole in the processing of DEL *, which would have led to and "out of global memory handles" situation after repeated use.
6. The startup AMOS command line passed to ashell is now displayed on the screen, making it much easier to debug syntax errors.