Mallard BASIC. Mallard BASIC is a BASIC interpreter for CP/M produced by Locomotive Software and supplied with the Amstrad PCW range of small business computers, the ZX Spectrum +3 version of CP/M Plus, and the Acorn BBC Micro's Zilog Z80  second processor.

In the 1980s, it was standard industry practice to bundle a BASIC interpreter with microcomputers, and the PCW followed this practice.  While the PCW was primarily a dedicated word processor for business use running LocoScript, it was running on top of the CP/M operating system.

There were many existing implementations of BASIC for CP/M, such as Digital Research's CBASIC and the third-party ZBasic, but they followed the earlier 1970s model of compilers that were fed source code prepared in a separate text editor. BASIC was not built-in in these cases, the user would prepare a program and then invoke BASIC to run it.

In contrast, home computers of the era had moved to using BASIC as the primary interface for the machine. Instead of booting into CP/M or a similar OS, these machines booted directly into a BASIC normally stored on ROM. These also included a built-in screen editor. Mallard was based on this model, with an integrated editor that was tailored for the PCW's non-standard 90-column screen.

Although the PCW actually had excellent monochrome graphics support for its time and specification, closely comparable to the Hercules Graphics Card for IBM PC compatible computers, Mallard BASIC had no graphics support whatsoever. Instead, Locomotive Software optimised it for business use, with, for instance, full ISAM random-access file support, making it easier to write database applications.

It was also optimised for speed — it is named after the LNER Class A4 4468 Mallard locomotive, the fastest steam locomotive in the world, once again displaying the company's fondness for railway-oriented nomenclature. In fact, the Locomotive Software name came from the phrase "to run like a train" and it was this theme that was used to name Mallard BASIC — no other Locomotive Software product was named after anything railway-oriented.

The Acorn version was designed simply to run the Compact Software small business accounting products Acorn was including to target its Z80 second processor at small businesses. Mallard's major innovation designed specifically for Acorn was the addition of the Jetsam B*-tree keyed access filing system to give similar (but superior) features to the Miksam product Compact had originally designed around.

Graphics could be implemented by loading the GSX extension to CP/M, but this was cumbersome for BASIC programmers.

The lack of graphics support was rectified by several BASIC toolkits, of which the most popular was Lightning Extended BASIC (LEB — see external links). This patched Mallard BASIC, replacing the redundant LET keyword with LEB, which could be followed by a wide variety of parameters to allow sophisticated graphics (for the time) to be drawn on screen, saved to disc, printed, and so on.

Probably the most widespread Mallard application ever was RPED, the text editor supplied with the PCW. The name was short for Roland Perry's EDitor, the program having been quickly written by Roland Perry, the Amstrad executive running the computer product development, when it was realised that CP/M-80 came with no usable full-screen editor, but users had a requirement to edit configuration files. The same problem was apparent with DOS Plus and MS-DOS supplied with IBM-compatible Amstrad computers, but the RPED for those machines was written in Intel 8086 assembler, and not Mallard BASIC.

The IBM PC version of Mallard Basic is still available from LocoScript Software as an MS-DOS program, which will run under Windows as a disc-only version with licence or with the full Introduction & Reference manual.

See also 
 Locomotive BASIC

References

External links 
 Mallard BASIC – Mallard BASIC manual from the Spectrum +3 CP/M Plus package
 PCW: Streamlined BASIC by Geoffrey Childs, author of LEB (PCW-World, 1990)

BASIC interpreters
CP/M software
ZX Spectrum software
BASIC programming language family