|16 : Software Compatibility|
Almost without exception, software for PC compatibles is written to run under the MS-DOS Operating System, produced by Microsoft, and its PC-DOS variant produced by IBM, but also written by Microsoft. For all intents and purposes, PC-DOS and MS-DOS are identical. DOS Plus is written by Digital Research as a closely compatible system to MS-DOS, but with extensions which allow CP/M86 compatibility and background program running. These features mean that DOS Plus occupies some 90k more than MS-DOS when running.
Due to slight differences between MS-DOS and DOS Plus, it is not always easy to install and configure MS-DOS applications. There are many reasons why packages won't run, but these are often due to the unusual hardware of the Master 512, rather than differences with DOS Plus itself. This chapter explains the various reasons why software designed for MS-DOS machines may not run on the Master 512, and what, if anything, you can do about it. The areas which cause problems fall broadly into the following categories:
|9)||Screen modes and colours|
As stated above, DOS Plus is not the same as MS-DOS. Whilst the majority of the function calls remain the same, there are subtle differences which can cause problems. These are, however, fairly rare – what is more noticeable is that DOS Plus does not have installable device drivers, and a CONFIG.SYS file, in the same way that MS-DOS has, so programs which attempt to modify the CONFIG.SYS file will not work as expected. Note that the main alteration to the CONFIG file required by most DOS programs is the setting of the number of open files and inclusion of an ANSI device driver. This is present anyway in the 512 system (see below) so references to adding the driver to your CONFIG.SYS file should be ignored. The number of open files is fixed by DOS Plus at 18 which is enough for most programs.
Another problem stems from the fact that the 512 system is, in fact, several years old, and when it was released, DOS Plus was compatible with the then current MS-DOS, version 2.11. The current version 3.30 is greatly upgraded, and programs are starting to appear that mandatorily require DOS 3.0 or higher. These programs will not run on the Master 512.
There is, incidentally, a simple way of testing whether having DOS Plus, rather than MS-DOS is the reason why a program will not run if you have access to an Amstrad PC1512. The Amstrad PC1512, a highly standard IBM compatible, which runs almost everything, comes with both MS-DOS and DOS Plus as optional Operating Systems. Try the same program under both to see the result. If the program doesn't work DOS Plus is probably the culprit. However, if it does work, the problem may still be DOS Plus as the Amstrad version is not quite the same as the Master 512 version.
The maximum memory which can be recognised by a standard PC is 640k (although there are expansion systems which follow a similar system to the 'paged' RAM on the BBC/Master). No DOS program requires more than 640k of memory. However quite a few packages (Javelin, Ventura Publisher) do require the full 640k. Many more packages require at least 512k. The Master 512 is obviously only a 512k device, and as stated above, DOS Plus takes up 90k more memory than MS-DOS, leaving the equivalent available memory at 422k.
Packages which don't require 512k are usually marked as requiring 256k or 384k (which are also convenient hardware sizes) and these will fit into the available memory on the 512.
A possible solution to this problem is to fit the Solidisk 1Mb memory expansion, which expands the available RAM to (at least) the full 640k.
Note that some of these memory-hungry programs may just fit in the machine, and appear to run, but cannot correctly return to DOS, as they have overwritten the memory used by COMMAND.COM. Crashes with an 'invalid opcode error' are often a symptom of memory shortage, although the information provided with this message is of no practical use to the user.
The 80186 is totally compatible with the 8086 and 8088 processors used in IBM PCs and compatibles. It does contain a few extra instructions, but it is extremely unlikely that the different processor would cause any problems.
Until fairly recently, software publishers used copy-protection systems on software, so it could only be used on one computer, and unauthorised copies could not be made. There are many forms of disc protection, most involving unusual track and sector numbering, which requires direct access to the disc controller to interpret correctly. On the 512, the disc controller is the 1770 provided in the BBC Master, which is not the same as the Intel 8272 (Rockwell 6765, µPD765 or its variants) used in PC-compatibles. The controller in the Master can't be accessed in the same way as the controller in the PC.
The only way round the disc protection problem, is to ask the publisher to supply an unprotected copy. Thankfully, more software publishers are producing unprotected discs nowadays, due to user demand. You might occasionally find that a protected package can be 'installed' onto unprotected discs, or a hard disc, and not require the original disc to run. If this is the case, and you also own a normal PC, you could install the software first on the normal PC, and copy the installed version to your Master 512.
Due to the slow speed and limited control of the serial communications part of the Operating System on standard PC's, most programmers illegally access the serial port, which means that most comms programs will not work on the Master 512. Also, even when programs use the legal DOS calls, they still seem to fail when they find the PC serial chip to be absent. Some programs also insist that you select a serial port COM1: or COM2:, and cannot deal with AUX:, the DOS Plus serial port. Although it is perfectly possible to write your own serial port programs on the 512, and operations such as COPY CON: AUX: work correctly, it is generally accepted that standard communications software will not work with the machine.
If you do write your own programs in this area, remember that the BBC serial hardware will not work at more than 19,200 baud, unlike the PC hardware which can be driven, on direct links, to as much as 115,200 baud. If you have a serial printer, then you can often run into the COM1: problem. If this is the case, and you simply cannot get reliable serial printing, then if your program has an option to spool a file to disc, do this, and then send the file to the printer from DOS using:
COPY <filename> AUX:
This is not a very elegant solution, but it does work. Alternatively, you could use the PIP program, which offers further alteration of the file whilst it is being printed. See Chapter 14, and the accompanying programs disc.
This is an area which is almost always performed 'illegally' on the PC, and thus the majority of sound-producing programs will run silently on the 512 system. Ordinary text beeps do work correctly, and are heard according to the various BELL settings on the Master system, ie *CONFIGURE LOUD, and the *FX212-214 values. You can hear the 512 beep by typing ECHO CTRL-G (the CTRL-G will appear on screen as ^G) at the DOS prompt.
The keyboard is another device which is often read 'illegally' by DOS programs. Sometimes this can be solved. The usual symptom is that the program appears to start on screen but will simply not recognise keypresses. This is because keyboard hardware, on a real PC is quite different to that on a BBC/Master, and the DOS Plus keyboard support is consequentially less than perfect.
To solve this problem, check the documentation to see if there are any options concerning the keyboard. These may be in the form of switches (parameters added to the program name) or a separate configuration program, which allows you to change the way the keyboard is used, or which keys do what.
If the program offers 'DOS' instead of 'direct' keyboard reading, then select the DOS option. This is included in many programs to deal with other nonstandard keyboards, or multi-user systems. If it is a question of which key does what, then you have a better chance of success if programs can be operated from standard alphabetic keys, rather than control or modifier keys. For example, if a program requires you to press CTRL-ALT to start, and this can be changed to 'S', then the program may work.
This is particularly important with 'terminate-and-stay-resident' utilities, often called pop-up programs, which sit in the background, and are activated by a certain key. The default key is usually something like ALT-SHIFT or CTRL-/. If these do not work, trying selecting the 'change hot key' option, usually done from a separate utility program to be a normal function key or similar. Note that a special utility SKS is provided with the DOS 2.1 release disc to allow the use of Sidekick, one of the most popular pop-up programs.
There is one unresolvable keyboard problem with the Master 512. Unlike standard PCs, both of the BBC/Master SHIFT keys are hardwired to the same port, and it is impossible to tell that both keys are pressed. What happens is that either SHIFT key has the effect of the left key on a PC keyboard. Some programs require that both SHIFT keys are pressed to achieve a certain effect – this is, therefore, not achievable on the 512. A similar problem exists if software expects an IBM AT keyboard, which has two ALT keys. This doesn't cause much trouble in practice, as these key combinations can usually be redefined.
The use of a mouse with software usually is optional. However, a few programs will only run with a mouse (or other hardware pointing device). In these cases the package will not run, as the Master 512 mouse driver is specifically written to interface with GEM. If the package is a GEM application, however, it will use the mouse via the GEM environment provided with the co-processor on discs 2 and 3.
New GEM applications usually come with a version of GEM supplied, almost certainly this new version of GEM will not work – you must stick to your Master 512 version. As a consequence it is likely that such packages will not run. Some packages will test for the presence of the GEM system already, but in all cases, read the documentation carefully. You must end up with the GEMVDI in GEMSYS directory as the one which came on the Master 512 discs, and not one supplied with the package.
The GEM supplied with the 512 is version 2.0, which is older than the current version 3. Applications written under GEM/3 will not usually run with GEM 2.0, which means that, following the rule above, you will not be able to use GEM/3 packages on the Master. The mouse driver is, in fact, the only known problem, but until a GEM/3-compatible Master 512 mouse driver appears, the modern desktop publishing and graphics packages which have appeared with GEM/3 cannot be used.
Outside GEM, the mouse cannot be used at all, as no software will recognise it. At the time of writing, Dabs Press are working on a standard mouse driver, which will allow the mouse to be used with GEM/3 and other DOS software. Contact Dabs Press directly for further details.
There are quite a few problems associated with the way the Master 512 handles screen output. The 512 system only supports three of the IBM PC screen modes, MDA (80x25 text only), CGA lo-res (320x200 four-colour graphics) and CGA hi-res (640x200 two-colour graphics). <This is wrong. The 512 emulates four CGA modes (80x25 text, 40x25 text, lo-res graphics, and hi-res graphics). It does not emulate MDA. See here for details. The following should be read with this in mind. – YP> Obviously any software which can only run on one of the higher graphics modes (EGA, VGA, MGCA, PGC etc <These would more correctly be referred to as graphic "adapters" or "cards" rather than "modes">) cannot run on the Master 512, and there is no solution to this. Some graphics-intensive programs write directly to the graphics memory for these higher modes, and will seem to run correctly in their text mode on the 512, but just present a blank screen when working in graphics mode.
Within the MDA mode there are also problems, although these are more of an aesthetic nature rather, than anything fatal. A PC-compatible with a colour monitor can display the 80x25 text mode using sixteen colours, or more strictly, eight colours in two intensities (normal and 'bright'). Because of the limitations of the BBC hardware, the 80x25 text mode can only display two colours of text. Whereas you can set these colours to anything you like (using the PCSCREEN program) you still only have two colours, and no shades of grey.
Acorn have made a small attempt to represent the coloured nature of the screen, by printing characters in a bold face whenever the 'intensity bit' is set, ie if the colour is one of the 'bright' range on a PC. This is analogous to IBM mono systems, which support brightness and inverse (and blinking – not supported on the 512), and quite a lot of software works quite satisfactorily using the method. However, there is plenty of software which uses screen colour quite imaginatively, and gives a somewhat unsatisfactory display on the 512.
Also, the bold face used by Acorn is actually less readable than the standard character set, and so some software, printing in bright white as its default colour, ends up being quite difficult to read. The solution to these two problems lies with the options which the program may offer. If you are offered the choice of 'mono' or 'colour' for your display in text-based programs, always choose the 'mono' option. Also, if the program contains ways of redefining the screen colours used, then changing output from 15 (bright white) to 7 (ordinary white) will remove the boldface effect.
The CGA modes, being fully equal in colour and resolution to their IBM equivalents, are less troublesome. One problem you may notice, especially with the four-colour mode, used in many games, is that the screen seems to flash and update itself in large chunks. This is a consequence of the method used by the 512 Operating System to copy screen information to the BBC screen hardware, and nothing can be done about it. Some programs may not select CGA properly, easily rectified by selecting it yourself first with the PCSCREEN command. Many programs leave the computer in 40-column CGA mode after use, but again the PCSCREEN program will put you back in 80-column text mode.
A very popular monochrome graphics standard on PCs is 'Hercules', named after the company which invented it, and one of the few PC third-party suppliers, other than Microsoft <IBM?>, to achieve a standard in this area. Many clone machines contain Hercules-compatible video controllers. The Hercules standard is 720x348 monochrome text and graphics, and is not compatible with the Master 512.
The DOS Plus system, as supplied with the Master 512, always uses ANSI (VT52) control codes for cursor movement, inverse video, etc. These are ESCAPE sequences (strings of ASCII characters preceded by the ESCAPE (27) character) which allow simple programming of highlighted and inverse video displays, and positioned text. The ANSI system also deals with colour, but not on the 512. Most text-based software uses the ANSI codes to work, and everything should work normally. MS-DOS machines need a driver loaded called ANSI.SYS to achieve the same effect. The only problem which might occur is if a package specifically needed ANSI.SYS to be absent.
The character set used on the Master 512 is the ordinary BBC one, and not the standard IBM set, as far as the first 128 characters. The top 128 characters are redefined to match standard IBM character graphics, as most software uses these to draw lines, boxes etc on text screens. Unfortunately, Acorn have not redefined character 96 to its normal ASCII value of ’ (close single quote) and left it as a £ sign. This means that you might get the odd program display messages like ‘TITLE£ when what they mean is ‘TITLE’.
The lack of a maths co-processor usually causes no problems. However, a number of maths intensive applications are becoming available that rely on its presence. Again, there is little prospect of making the program work without a major program rewrite. However, maths co-processors are a rarity even on standard PCs, so don't worry too much about this one.
Many programs when they run, ask you for information concerning your system. These are the answers you should give.
|Screen type:||Text, or CGA (Colour Graphics Adapter)|
|Disc Drive:||(as fitted)|
|Hard Disc Drive:||C|
|Printer Port:||PRN (if possible or LPT1)|
|Printer Type:||(as fitted)|
|Serial Port:||None or COM1: (Try AUX: if possible)|
If you are offered BIOS or DIRECT for any output option, choose BIOS. Although strictly the DOS Plus printer device is called PRN, rather than LPT1, in practice, any software which writes to LPT1 will work correctly with the BBC/Master parallel interface.
If you cannot get a software package to install correctly, you should first look at any configuration programs. These are often in the form of batch files, and would be called INSTALL.BAT, CONFIG.BAT etc, and are readable in a normal text editor. Sometimes there will be a single operation which has to be changed (for example, trying to write to a CONFIG.SYS file) and then the program will install. Another ploy for difficult installations is to install it first on a real PC, and then copy the installed files onto the 512.
Floppy disc installation is usually a configuration process followed by deletion of unnecessary files. The 'installed' floppies can then be transferred to the 512, where they may run. Larger programs, which require a hard disc or 1.2Mb floppy will often run on the 800k 512 special format discs, in which case the program should be installed on the real PC's hard disc, and then the exact file structure noted. The files can be copied off in parts using the common medium of 360k discs, and reconstructed on an 800k 512 disc. This method should also be used when transferring installed hard disc software from a PC hard disc to a Master 512 hard disc.
Note that, when copying installed software in this way, the installation program will probably put all the files you need in one directory, but also a startup file, or other low-level files, may be placed in other directories, usually those pointed to by the PATH command. The only surefire way to check that you have copied off all the files required to make a list of all your files on the hard disc both before and after installation.
Finally, please take note of the copyright notices. Most software may only be run on a single machine, therefore if you install the program on a PC first for transferring to a Master 512, then the PC installed version may have to be deleted to avoid infringement of the manufacturers copyright. Please check and obey the rules.