Networked Windows environments are quite efficient at serving up entire files over the network from a fileserver (as in word processing applications), but they are relatively slow at serving up record-level operations. Here, the disk operation overhead is much higher than in the Unix world because of the need for machine-to-machine communication. Loading a file from the server may require only a couple of units of machine-to-machine communication, but reading the file via thousands of individual record operations (which is typical of AMOS-style report programs) requires thousands of units of machine-to-machine communications. This overhead typically becomes the limiting factor in Windows installations of A-Shell.
Memory mapping doesn't really help here, since it doesn't eliminate the need for machine-to-machine communication, and in any case, it only works properly for read-only situations anyway. If we can limit ourselves to read-only access to a file in a particular program, then a better solution is to request that A-Shell give you a local copy of the file. In this case, when the file is opened, A-Shell copies the entire file (in one big transfer operation) from the server to the local workstation and then references the local copy until the file is closed (after which the local copy is deleted). This technique can significantly speed up report programs, or any other program that performs many read operations from a file, by eliminating that machine-to-machine communication overhead. As a side effect, it also reduces network traffic and the load on the fileserver, thus potentially speeding up other programs running across the network.
Local copy mode is activated similarly to memory mapped mode, using xcall ASFLAG,64.