Please enable JavaScript to view this site.

A-Shell 7.0 Release Notes

Navigation: Notes by Version and Date

1778 — 16 September 2025

Scroll Prev Top Next More

1778.2.1   EIR

BASORT: maximum record size increased from 4K to 6K.

1778.1.1   Fix

PYFUNC(): numeric arrays weren't being returned propertly.

1778.0.1   New

The Xcall trace now traces return parameters for Xcall subroutine calls.

1778.0.2   New

LOGDIR enhancements enable the relocating of the ashlog.log file directory.

1778.0.3   EIR

Command line switch refinement: the -ua switch (unattended) now has an additional side effect under Linux to allow background jobs to sit at input prompts without aborting. Normally a process in background will terminate when it tries to input if it doesn't have a real terminal and there is no piped input available, which normally makes sense. But in some cases, it is useful to be able to launch a background task and let it wait for input to be forced to it via the FORCE command. In particular, this technique is used by ADB when debugging a process running in a background task launched by ADB itself.

1778.0.4   EIR

Command prompt refinement: the cursor is now automatically turned on whenever waiting for input at the command prompt. Previously, the cursor status would carry over from the last command that affected it, often making it difficult to edit a command line with no visible cursor.

1778.0.5   New

XTREE enhancement: Add new flag to Ignore ExitChars While Editing.

1778.0.6   New

INFLD enhancement: Type code |{ causes the setdef parameter to be treated as a list of immediate exit characters, which is similar to the ExitChars feature in XTREE. Receipt of any of the characters specified causes the field to exit with exitcode set to -51. The existing contents of the field are returned, minus the character causing the exit.

 

 

 

 

Xcall Tracing Enhancement

The xcall trace (e.g. SET TRACE XCALL ON) now traces return parameters for xcall subroutine calls. Previously, only the parameters passed to the subroutine were traced.

For internal subroutines, the return trace is identical to the calling trace except it will show the updated parameter values. To take a simple example, the following traces:

xcall XSTRIP,S20[  ABCD123  ],S3[123],F8[1]

<---- XSTRIP,S20[  ABCD  ],S3[123],F8[1]

 

... show the xcall XSTRIP being called with the first parameter "  ABCD123  " being changed to "  ABCD  " on return.

Note that there are a few xcall routines, including STRIP (but not XSTRIP) which are converted by the compiler to internal functions, in which case they will not show up in the traces.

For external (SBX) subroutines, it isn't necessary to list the entire parameter list on return because any explicit parameter updates require the user of XPUTARG, which is also separately traced. See the notes for 7.0.1776.0 below which covers XPUTARG tracing in the context of user defined functions but which applies equally to SBX subroutines.

 

 

 

LOGDIR Enhancement

In addition to relocating the ashlog.log file directory via the MIAME.INI LOGDIR directive, you can now do it from the dot prompt with SET LOGDIR, or via Xcall MIAMEX, MX_LOGDIR (206).

.SET LOGDIR          ; with no argument, displays current location

.SET LOGDIR dirspec  ; changes the ashlog.log directory

 

xcall MIAMEX, MX_LOGDIR, op, dirspec

 

where:

opcode  (Num)  [in]

0 for get, 1 for set

dirspec (String)  [in/out]

ashlog.log location

Although it is probably uncommon to change the ashlog location during a session, it comes in handy during debugging on a system with many users, in conjunction with verbose traces like XCALL and FUNCS. Rather than fill the common ashlog.log file with your traces, you can relocate the ashlog location for just your session to a local directory (or '.' for your current directory). You can then use the VIEWASHLOG/LOCAL switch to view the traces in your local copy of the ashlog.

 

 

 

XTREE: Ignore ExitChars While Editing

Add field MISCFLAGS2 to the XTRCTL structure to support the flag, XTMF2_IECWE (&h01) to Ignore ExitChars While Editing. Otherwise, ExitChars are active in all contexts. Note that even when the new flag is set, they remain active in editable checkboxes, but not in any other kind of editable field.

The updated XTRCTL map and defstructs can be downloaded from the SOSLIB, but here is the what the tail end of the structure now looks like:

map2 FOOTERSTYLE,B,1        ! [138] same XTHSF_xxx flags as HEADERSTYLE (6.3.1537+)

map2 COLID,B,1              ! [140] column ID 

map2 COLTYPEID,B,1          ! [141] column Type ID

map2 XDIRTY,B,1             ! [142] exit cell (XROW,XCOL) was changed (i.e. dirty)

map2 XDSPROW,B,4            ! [143] display row corresponding to physical XROW

map2 FILTERED,B,1           ! [143] =1 if rows have been filtered by user

map2 SYNCCTLNO,B,1          ! [144] XTR.CTLNO (+1) of XTREE ctl to sync scroll with 

map2 MISCFLAGS2,B,1         ! [145] Misc flags2, see XTMF2_xxxx

map2 UNUSED2,X,2            ! [145] 

 

And the new flag symbol definition:

define XTMF2_IECWE     = &h01   ! Ignore ExitChars While Editing