Dragon User
1st February 1985Go Flex
If you are thinking of moving up to a professional operating system for your Dragon, then an alternative to OS-9 is Flex from Compusense. The minimum system required is a 64K Dragon and a disk drive, though two disk drives are preferable.
The Flex disk is supplied with a hefty 200 page manual which describes all the commands and the editor/assembler which is included on the system disk. Also included is a booklet describing a few extra features added to the standard Flex set up for the Dragon implementation. Unfortunately, I have not seen a copy of the latter.
It is advisable not to use your original disk, but to immediately make a back-up copy and use this to boot Flex (one crash could wipe out the disk). Once inserted into the disc drive, Flex is started using the BOOT command. After a few seconds the screen goes into 51 column mode, (using PMODE4 graphics) and asks for the current date to be typed in.
The disk supplied has a demo program installed as the startup procedure which 'welcomes' you to Flex (this can be deleted from the disk once you're familiar with the package). Three 'q's is Flex's prompt to signal that it is waiting for a command. The first one to try is CAT which shows a directory of the disk - various parameters can be added to the command so that only certain types of file are listed, etc. The size of the file is also shown.
As with OS-9, the BUILD command allows you to enter a file from the keyboard. The EXEC command can be used to execute this file as a set of instructions. You might, for example, build a file with the necessary commands to copy the disk on a fresh disk in drive 2.
A powerful TTYSET command allows you to alter just about every attribute associated with your terminal, as this is never anything but a Dragon running Compusense's standard 512 column display, this will seldom be used.
A certain degree of I/O redirection is possible. Sending output to a file or printer, rather than the screen, and taking input from a file, rather than the keyboard, are all supported.
The Flex Operating System is comprised of three parts, the File Management System, which allocates disk space, the Disk Operating System, which interfaces the programs and the FMS to the Dragon disk drives, and the utility command Set, which are the commands such as CAT, DELETE, BUILD, etc. All of these are stored on the disk and are only loaded when called by the user. Flex itself is stored in Ram starting at SC000, which just happens to be where the Dragon dos is stored on ROM.
Also included on the Flex disk, as mentioned earlier, is an Assembler/Editor. The editor is used to prepare text files for the assembler. It is a fair text editor, but is in no way a word processor. The assembler is the program worth looking at.
A file is assembled by calling the assembler, called ASMB and following this by the filename of the source code. A number of options can be added to do things like: generate no object code, suppress the assembled listing, suppress the symbol table output and suppress warning messages.
The assembler uses the standard Motorola mnemonics, so most assembly language programs for the Dragon can be entered with the minimum of changes. However, there are some very powerful features that most Dragon assemblers do not offer. Disk files can be assembled into part of the program, using the LIB directive, several conditional assembly constructions using IF are supported, such as:
IF "-" expressions
conditional code goes here
END IF
Finally, perhaps the most powerful option is to include macros into your program. Macros are similar to subroutines, except that when called the code is inserted at the current location. Therefore, three calls to a macro results in three copies of the same code in your program - not very efficient. Macros really become useful when you start using them with parameters - the basic construction of the code is the same each time, but the memory addresses used are different and are supplied as parameters in the macro call. Using conditional assembly statements in the macro itself allows very powerful programming techniques to be used.
If you want to know more about the Flex operating system then there is an advanced programmer's guide available. This is certainly not written for the beginner and none of the information included in it is needed to use Flex efficiently. But if you fancy writing your own Flex commands, or customising your system, then you will find all the information here.
A memory map of all the user caflab.„ routines is included, as well as a list of the useful locations used by Flex. There are sections on the DOS, the file management system, the disk drivers, printer driver and writing your own utility programs. Assembly language examples are liberally scattered throughout the text. Again the manual refers only to Flex, and doesn't mention the Dragon or any particular implementation.
Just released is DBasic, which allows you to use the standard Microsoft Basic in ROM with Flex. When loaded, DBasic copies the ROM into RAM and cold starts the Basic. There are additions such as CSAVEF to save a file on to a Flex disk, and CLOADF to load if back. Using the EXEC command with a string, instead of an address, allows you to Pass a command directly to Flex, such as EXEC "CAT", which will directory the disk.
The cassette filing commands, OPEN, CLOSE, INPUT, PRINT, etc have been extended to handle up to eight files at once - either serial data, random access or text files can be specified, Channel numbers 1-8 are used.
> There are also extensions to the CLS command to use the hi-res 51 column text screen, so you effectively get Compusense's Hi-Res cartridge built in. Existing programs can be loaded and will run, with the exception of those that use DragonDOS commands. This package is only really intended as a cheap alternative to a complicated Basic running under Flex, and to maintain compatibility with present Dragon programs.
Finally, also available for Dragon Flex is the RMS database, which is also available for the OS-9 operating system. The Record Management System allows you to store just about any type of record you want such as personnel, customer, accounting, or club files.
RMS will create the file to store the details for you, and then request the information in form-fill style - that is, you fill in a form on the screen for each record. Once this is done, you can search for and update records from the keyboard. RMS will also produce printed reports to the specification given in a file.
> RMS consists of several modules, to create a new datalile, to input and edit the file, and to print the reports. All data is saved in the standard ASCII format, so RMS files can be read by other Flex programs and languages such as DBasic, RMS takes some getting used to. But once mastered it is a powerful record management system, if not quite a database.
Inevitably, Flex is going to be compared to OS-9 and, to be honest, it comes off worst. Although it has more pre-written software than OS-9, as an Operating System it is much less powerful. There is no multi-tasking available, no piping of data to concurrent programs, and in certain ways it is more clumsy to use. Having said that, the Flex system disk is probably worth buying, just for the Assembler included on it, as this is certainly the most powerful I have seen running on the Dragon.
For the assembler editor, Flex gets 10 out of 10, but for an Operating System I would plump for OS-9.