There are problems with getting the Master 512 to do what you think it ought to. The following is a list of some of them, with comments and (in a few cases) some suggestions about what can be done.
Issues covered here are:
As you can see, these are in no particular order. I begin with a trivial one, and then go on to more serious matters.
Calling the machine the "BBC Master 512" gave no hint of what it was for. There is no indication in the name that the machine is meant to run programs for PC-compatibles, and there was very little information published that mentioned this either.
What was fairly widely reported in the computer press was that it was one of the five machines in the "BBC Master" series (the others being the Master 128, the Master Turbo, the Master Econet Terminal and the Master Scientific). Some reports did state that it had a co-processor with 512kb of RAM, based around the 80186 CPU and running the operating system DOS-Plus. But how many people realised that the 80186 was an enhancement of the 8088 (at that stage most of us had not come across the now familiar sequence 80286, 80386, ...) and for that matter how many people actually knew what the chip was at the heart of the PC? Likewise, how many people had heard of DOS-Plus and knew that it was meant to be compatible with MS-DOS?
The name was particularly unfortunate given that the base machine was called the "Master 128". This was marketed in the mid-1980s as the next stage up from the BBC Model B. (The B+ received very little attention.) We all knew that the main problem with the Model B was its memory size – 32kb just wasn't enough – so here came the Master 128 with four times as much. Potential buyers were thus being encouraged to think of memory size more than anything else.
My suspicion is that many people imagined that the "Master 512" was just like the "Master 128" but with four times as much memory again. It certainly appears that many (possibly most, possibly even the overwhelming majority of) people who bought a Master 512 never actually used it other than in native BBC mode. Presumably this means that when they received it they found they did not want to do what it was designed to do. On the other hand, many people who could have used it never even considered it.
This is not so much a problem, more an irritation, and related to the previous issue about the name of the machine. The design of the BBC Computer does not allow for any use of the co-processor or its associated memory when the machine is running in native BBC mode.
If you want to use this memory in native mode, then you might consider using CPFS which turns the 512's co-processor memory into a RAM-disk.
The name "Master 512" is deceptive in this way too. DOS-Plus itself takes up about 25kb more space than the equivalent MS-DOS. (This is mainly because of its extra code for compatibility with CP/M-86.) In addition, the system requires an extra 64kb out of the 512 (48kb for the display system – the Screen Operation document explains why, but doesn't help with solving the problem – and 16kb for ADFS to use the hard disk). On the other hand, when memory size is quoted for a PC the figure does not include the display adapter memory.
The result of this is that the Master 512 has about 90kb less usable memory than you might expect. It is equivalent to a PC with about 420kb of RAM.
The only solution to this is to extend the co-processor's memory. The memory can be doubled to 1Mb. If you do not already have an extended-memory model, then you will not be able to get the work done commercially these days. However there are instructions explaining how to do it in Appendix G of the Master 512 Technical Guide. It is perhaps not a beginner's project, but if you are moderately competent with electronics (and you can get hold of the parts) then it is well worth tackling.
On a 1Mb machine the memory between (absolute) locations 70000h and AFFFFh is filled, giving an extra 256kb for programs and making the machine equivalent to about a 680kb PC (a little more than the standard maximum for 8086/8088 PCs). Also there is a bit of memory available above the screen memory which some programs can use.
This happens for a number of reasons (outlined in my rather technical article on DOS-Plus Interrupts). It has always been a serious problem for users of the Master 512, and affects quite a lot of programs.
Try running PCCE. This puts right most of the causes in DOS-Plus that lead to the keyboard failing to work.
Various annoying things can happen when you try to run a PC program on the Master 512. Sometimes the machine just freezes up; sometimes there is an error message, often with a display of the 80186 register contents; sometimes this display is repeated endlessly; sometimes everything seems to go haywire; and in some cases you are just dropped back to the DOS prompt without warning. In many cases the only way out is a reboot.
There are several reasons for these problems, and you will find quite a lot of them in these pages, but in some cases there are ways round and various tricks that people have discovered.
First (obviously, but we easily forget) make sure that the program is designed to run on an equivalent PC. In particular check that:
the program does not require Version 3 (or later) of MS-DOS. Master 512 DOS-Plus is only compatible with Versions 1 and 2.
it asks for no more than a CGA ("Colour Graphics Adapter") screen. The Master 512's display is not compatible with "Hercules", MCGA, EGA or VGA, and programs that ask for one of these will certainly not run.
the program does not require an 80286 (or later) processor. The 80186 is totally compatible with the 8088 and 8086, but not with the later chips.
the program will run on a PC with about 420kb of memory or less (unless you have an enlarged memory machine). The Master 512 does not have as much free memory (see above) as a PC with 512kb. If you have a 1Mb Master 512, on the other hand, then you have as much memory for programs as a full standard 640kb PC.
Assuming that these are all OK, and so the program ought to run, the following are worth trying:
Make sure you are running Version 2.1 of DOS-Plus. This is quite a bit more stable than the earlier Version 1.2.
Try running the "PC Compatibility Enhancer" (PCCE) program. This sorts out several of the problems that can cause programs to crash.
You can try reloading COMMAND.COM. (Just enter COMMAND at the command line; afterwards just type EXIT to get back to where you were.) There is a bug in the "CP/M version" of the "execute program" code in DOS-Plus, and this causes several .EXE programs to fail. If a program is called from within another program (such as another copy of COMMAND.COM) then a different version of the code is used which does not have the bug.
Note that if you are using PCCE then this trick will not help, since PCCE already eliminates the bug.
An alternative is to use Fix EXE, which deals with just this particular issue.
Some programs fail at the installation stage. You may be able to install the program on a genuine PC, then copy the installed files to the Master 512. In some cases the installed program will run, even though the installation routine will not.
Sometimes the installation program will run on the 512 but you cannot easily use it because of the colour limitations. Perhaps you cannot see which item you are selecting from a menu, for instance. In this case you might be able to make the necessary selections just by counting keypresses. Maybe it will help if you install the program on a PC and follow the installation routine carefully to see what is happening at each stage.
Despite a mouse being provided with the machine, no mouse driver is supplied (except as an integral part of the GEM software). No standard mouse driver will work because the Master 512's hardware, in particular the mouse connection to the BBC's User Port, is totally different from anything on a PC.
Actually the serial port will work provided it is accessed "legally", but in practice very few programs do this because MS-DOS support for serial port functions is so limited. As always on the Master 512, programs which access the hardware directly will not work. Also under MS-DOS the serial port is normally called COM1: or COM2:, whereas DOS-Plus calls it AUX:, and this can lead to further problems.
You may be lucky and find a program that does what you want and uses DOS calls to access the port. There was, I gather, one comms program that would work on the Master 512 (see Appendix A of the Master 512 User Guide) but I have no idea where you could get hold of it today.
A serial printer often will work. If there is a problem (which might well be because of the COM1: vs. AUX: issue) then you may be able to get round it by printing the output of your program to a file, and then using the DOS command line to copy this file to the serial printer using a command such as:
COPY <filename> /B AUX:
There is no "legal" way of producing sounds under MS-DOS, other than simple (ASCII character 7) beeps. All programs that use sound have to do it by poking bytes to the hardware directly. This is never going to work on the Master 512.
Very few programs that run on the 512 use sound as an essential. In most cases it is a decorative extra that we just have to live without.
There is an odd connection on the Master 512 co-processor board that might conceivably have been intended for implementing sound. (See here if you want to know a little more, though it is very obscure.) I had a go at using this once, but couldn't get it to work reliably.
This is inevitable because the Master 512 uses the host BBC Computer's hardware for the screen display, and that cannot manage more than 2 colours on an 80-character-column screen. The PC's CGA screen can handle 16 colours.
The 512's design allows for "intense" characters to appear in a bold font. (This does make them stand out a bit, but it doesn't make them any easier to read, so if you have the option it is worth switching off for large quantities of text – select ordinary rather than "bright" white.) It will also display coloured-background characters in inverse video (black-on-white instead of white-on-black). There is little more that could be done, though, to implement colours on the 512.
Some programs give the option of a "mono" display. It is always worth selecting this if it is offered.
For many programs the monochrome display is dull but functional. It only becomes a difficulty when colours are used to indicate, say, a selection in a list. Many such programs will allow redefinition of colours, or a "mono" option, and it is worth experimenting.
Remember that you can redefine what the colours are by using the Master 512's COLOUR command. You are still stuck with only two at once, though.
A very few programs use a 40-character-column display. The BBC Micro can deal better with this and can display 4 colours, but it is still short of what the PC can do.
If graphics are used then the BBC can do as well as the (CGA) PC. Some graphics-intensive programs may run better on the Master 512 than they do on the PC itself.
See the Screen Operation page if you want to know more about all of this.
This is a facility that was simply left out of Master 512 DOS-Plus. In most cases it is merely cosmetic, but occasionally the cursor size indicates something significant, such as whether you are in "insert" or "overwrite" mode.
The PCCE program allows the cursor size changes.
The MEMDISK program supplied with the Master 512 takes up 90kb of memory over and above the space provided. This is totally unnecessary and can only be considered as a bug.
There is an alternative memory disk program available called RAMDISC which gets round this problem.
Apart, that is, from upgrading DOS-Plus to Version 2.1 if you still have Vn 1.2, and this is certainly worth doing – the newer version is much more reliable.
Version 2.1 is the last DOS-Plus available for the Master 512. It was clearly uneconomic to provide any operating system versions for the machine beyond this. The unique hardware of the Master 512 means that it has to have an operating system written specially for it, or at the very least it would have to have its own BIOS routines. Versions of MS-DOS written for "normal" PCs will not work on it.
DOS-Plus is intended to be compatible with MS-DOS Vn 2, but makes no attempt to be compatible with any later versions. Programs written for MS-DOS 2 can be expected to run on the Master 512 (assuming nothing else prevents them!). Programs requiring MS-DOS 3 or later will almost certainly not run on the machine, and there is no serious hope of getting them to do so.
Note that GEM can be upgraded from Version 2 to Version 3, though you do lose the 256-line screen by doing so.
No, you can't. Tough!
A few programs slow down drastically on the Master 512. This may be because the program is trying to do something in the background that the Master 512 doesn't really like. (Manipulating sound is quite a common one.) If this is a problem try running PCCE. It includes a technique that sometimes gets round it.
Programs running fast is normally a desirable feature rather than a problem! It might be, though, that an object is meant to move across the screen in a sedate fashion but instead it shoots across so quickly that you can hardly see it. This arises in one or two games. It is only going to occur on very early programs where the programmer has assumed that it is being used on the original 8088 PC running at 4.77MHz. The Master 512 is actually quite a lot quicker than that machine.
It would be possible to get round this "too fast" issue by running in the background a program that merely wasted a lot of time. I do not know of one that does this tidily, but it shouldn't be too difficult to write.
The original Master 512 User Guide supplied with the machine really did not provide adequate information about the supplied utilities, especially given that they are different from those supplied with MS-DOS and so guides to the PC do not always help.
The best source of information about the supplied utilitites is almost certainly Chris Snee's book, also called the Master 512 User Guide. Some of the more advanced of the support programs are described in more detail in the Master 512 Technical Guide.
The Master 512's DISK program claims to be able to format disks in IBM DOS format (both 360kb and 720kb). However such disks will not work properly in a PC.
Despite what Chris Snee and Robin Burton suggest in their books and in the 512 Forum, this is not a timing issue. (They argue that the PC cannot cope with the inter-sector gap written by the Master 512. However modern, much faster PCs still cannot use the disks.)
The problem is caused by an error in the system data area written by the Master 512's formatting routine for such disks. (For the more technically minded: the size of the root directory is written incorrectly (as 8 sectors instead of 7). When using such disks DOS-Plus actually ignores this figure and assumes the directory is occupying 7 sectors – normal for a (double-density) MS-DOS disk. Most PCs do use the figure in the system data area. This shifts all the data on the disk by one sector, corrupting everything totally if such disks are used for transferring data between the two machines. It is DOS-Plus that is misusing the disks, not the PC.)
Whatever the cause, the solution is simple. If you need to use 360kb or 720kb disks, then make sure they are formatted on a PC and not on the Master 512.
Note: If your PC is running Windows XP or later, then you cannot format such disks directly from the usual formatting window, because these sizes are not given as options. Instead click "Start | Run..." and enter, for a 360kb (5¼") disk:
format <drive> /t:40 /n:9
where <drive> is "a:" or "b:" as appropriate. For a 720kb (3½") disk replace the "40" with "80".
Further note: Sometimes disks that have been formatted on the BBC Computer (as ADFS or one of the 512's formats) will not work properly after they have been formatted on the PC. This is because remnants of the old filing system left on the disk are confusing DOS. The easiest solution is to re-format the disk on the BBC as a DFS disk (both sides), and then format it again on the PC as a 360kb or 720kb DOS disk. The DFS formatting totally obliterates everything from the PC's point of view, and it will then treat it as a "virgin" disk.
The Master 512 can handle several floppy disk formats, and some are faster than others. When a disk is accessed the machine must first check its format and, because different sector sizes are used, this check can take some time.
First checked is the 800kb Acorn DOS format, so these disks are the fastest.
The 640kb bootable format is the slowest for two reasons: one reason is that it is the last format to be checked; the other is that these disks are accessed through the host ADFS, and Acorn ADFS is slow. The problem is made even worse with such disks if the 512's DISK program has been used to format them. (The technical reason for this last is that the 640kb formatter in DISK does not offset the sector numbers between tracks. Most disk formatters begin each track (after the index mark) with a different sector number, so that when the drive head moves from the last sector of one track to the next track then it encounters the first sector almost immediately. If the sectors are not offset, then the head will usually just miss the first sector, and have to wait until the disk has spun almost a complete revolution before starting to read the next track.)
You can make a faster boot disk as follows: First format a disk with the machine in native (BBC) mode, using the ADFS disk formatter AFORM (using "large" format, of course); then boot up the 512 and, using the DISK program, copy the original boot disk to this new one. This new boot disk will be logically identical to the original, but physically quicker because the sector numbers are now properly offset.
It is most sensible to use 800kb floppy disks for everything except for the boot disk, which can be the faster version just described. The only exception is if you need the disks to be compatible with a true PC, in which case use 360kb or 720kb disks as appropriate, and make sure they are formatted on a PC and not the 512 (see above)!
If the host machine is a genuine BBC Master, then there is a battery-backed "real-time" clock. However the 512 does not seem to read this correctly.
This is really a form of the "Millennium Bug". The clock chip only stores the year as two digits, so it gives dates between the years "00" and "99". (The machine was never expected to last beyond 1999!) When using the machine as a BBC Computer, this is no real problem. The clock can be set to the year "06", for instance, and we know it means 2006.
However, on the Master 512 things are not so simple. The date can be set OK, for example by using DATE from the command line, but next time the machine boots up it reads the clock totally wrongly. The DOS-Plus boot routine expects the date to be between 1980 and 1999. A figure like "06" it treats as a negative date and gets completely confused.
There is now a fix available which will read the clock correctly into DOS-Plus.
There is actually another small date glitch in the system: If you use DATE to write the date during the first few days of March in a leap year (within about a week following the leap-day), then the date stored is one day earlier than it should be. If you need to set the date during this period, then either enter a date one day later than the correct one (except for the one day that cannot be set – around 5th or 6th March) or else swap to native mode and set it in the BBC Master host.