Add new "no-PPN" variation of the DEVICE system parameter, allowing it to support individual arbitrary directories as devices without any PPNs.
New "no-PPN" variation of the DEVICE system parameter now supports individual arbitrary directories as devices without any PPNs.
DEVICE = dev#:[] path
Examples (two no-PPN devices followed by a single-PPN device) :
DEVICE = TMP0:[] "%TEMP%"
DEVICE = TMP1:[] "C:\TEMP"
DEVICE = BIN0:[1,1] "/vm/miame/bin"
Note that the no-PPN DEVICE definition syntax is similar to the single-PPN version, except without anything inside the []. When referencing the no-PPN DEVICE in code or on the command line, you never specify the [p,pn], whereas with the single-PPN device, if you don't specify the [p,pn] it will default to your current [p,pn] (probably failing unless it just happened to match the one [p,pn] on the device).
The effect is similar to defining a single-PPN DEVICE and then creating an ERSATZ definition to point to that dev#:[p,pn]. The main advantage of the ERSATZ approach is that you can eliminate the device #; the main disadvantage is that it requires two matching definitions (one in the MIAME.INI, the other in an ERSATZ file.) One other advantage to the no-PPN DEVICE is that you can create a series of such definitions using the same base device but different unit numbers (as in the example above) and then perform combined searches on all of the units belonging to that device by just omitting the device # in the wildcard spec. For example, again assuming the above two DEVICE definitions, consider the following:
.LOG BAS:
.DIR TMP:MYFILE.*
Because TMP: is the (automatic) base device for TMP0: and TMP1:, omitting the device # in a wildcard command line context, acts like a wildcard (in this case matching both TMP0: and TMP1:). And since these are no-PPN devices, our current P,PN (7,6) has no bearing on where it searches (as would be the case with a single-ppn ERSATZ definition).
Note that although the ground work for this is embedded into A-Shell, to successfully reference such devices at the command prompt you'll need to update the LIT commands:
DIR.LIT 3.4(178)
COPY.LIT 3.4(149)
MOVE.LIT 3.4(149)
ERASE.LIT 3.4(138)
PRINT.LIT 3.4(139)
SIZE.LIT 3.3(103)
DEVTBL.LIT 3.3(106)
The DEVTBL display was also modernized to eliminate pointless references that only made sense in the AMOS world, and to replace them with indicators of single-PPN and no-PPN devices.
Several other LITs were recompiled with minor internal updates at the same time; use UPDCUR to update them. The updated LITs remain compatible with prior versions of A-Shell.