Q I see that the BBC BASIC for Windows manual is on your web site,
do I have to be online to read it ?
A No, definitely not. The full documentation is also supplied with BBC BASIC for Windows and you can read it on screen at your leisure without needing an internet connection.
Q Do you supply a printed manual ?
A Unfortunately not. Including a printed manual would mean significantly increasing the price, and comprehensive on-screen documentation is supplied with the product. However if you want to print out your own copy you can download this PDF version; it totals 1000 (A5) pages, or 500 sides of A4!
Q What if I was prepared to pay extra for a printed manual ?
A It's not just a matter of cost. The manual is constantly being improved and extended. The on-screen documentation can also take advantage of hyperlinks for cross-referencing, something which a printed manual (however good the index) cannot compete with.
Q Will BBC BASIC for Windows allow me to read my BBC Micro
disks on a PC ?
A No. Modern PCs, even if fitted with a 5¼" disk drive, cannot read BBC Micro floppy disks. However I can provide a transfer service from BBC Micro 5¼" disks (or casette tape) to CD-ROM at a cost of £10.00 plus VAT each. Alternatively if you still have a working BBC Micro you can transfer files from it to the PC via a serial link. Instructions for doing that are included with BBC BASIC for Windows. Unfortunately I cannot copy Archimedes disks, but see here.
Q My program runs fine on a BBC Micro, but on the PC I get an error message.
What is wrong ?
A BBC BASIC for Windows is not a BBC Micro emulator; it is an implementation of the BBC BASIC language for Windows™ PCs. Most BBC Micro (or Acorn Archimedes, or BBC BASIC (86) for MS-DOS) programs written entirely in BASIC will run with little or no modification, but programs which incorporate assembly language (machine code), access the machine's hardware directly or use features of the Operating System not supported in Windows will not run. It may be possible to adapt such programs, but that will depend on the precise circumstances.
Q My BBC Micro program runs on the PC, but far too quickly. What can I do ?
A Many BBC Micro programs used 'delay loops' (typically FOR...NEXT loops) when it was necessary to pause the program. Because a modern PC runs hundreds or thousands of times faster than the BBC Micro such loops execute far too quickly. The simplest solution is to replace each delay loop with a WAIT statement, for example replace FOR N=1 TO 1000:NEXT with WAIT 50.
Q Can I run my programs full-screen rather than in a window ?
A You can run full-screen, but not in a way fully compatible with BBC Micro screen modes. PC displays can be set to a wide range of different resolutions (800x600, 1024x768 etc.) but none are the same as those of the BBC Micro. By running your program in a window you can achieve better compatibility with other versions of BBC BASIC and at the same time share the desktop with other Windows™ applications.
Q Where can I find out more about the Windows Application Program Interface ?
A The Windows™ API is fully documented on the Microsoft Developers' Network web site (search for Platform SDK) and you can also order it on CD-ROM. However a more manageable version which covers the common functions can be found in the file WIN32HLP.EXE (a mere 13 Mbytes!) which is available for download from here. Alternatively use your favourite search engine to find it. Also consider installing the APIViewer application which makes it much easier to use the Windows API from BBC BASIC for Windows; download instructions can be found here.
Q The Windows API documentation refers to constants by name.
Where can I find the actual values ?
A Follow the instructions here for downloading and installing the APIViewer application and its BBC BASIC plugin. Once you have APIViewer installed on your PC you can discover the numeric values by selecting Constants from the drop-down list. Alternatively install the Windows Constants add-in utility, which will automatically add declarations to your program. If you prefer not to install either utility you can find most of the values you are likely to need in the files WINUSER.H, WINBASE.H, WINGDI.H, WINNT.H, COMMDLG.H, COMMCTRL.H and MMSYSTEM.H. These can be found in the /include directory of the Windows™ Platform SDK or, if you do not have that installed, you can search for them on the web.
Q Where can I learn more about assembly-language programming on the PC ?
A The PDF tutorial PC Assembly Language by Dr. Paul Carter has been recommended and has the advantage of using a syntax very similar to that accepted by the BBC BASIC for Windows assembler. Another reference which some people have found helpful is the Art of Assembly Language Programming by Randall Hyde; however that uses a rather non-standard syntax that makes conversion more difficult. Both need to be read in conjunction with the Assembler section of the BBC BASIC for Windows manual. If you just want an instruction set reference you can download it from Intel's site.
Q There's no AUTO command. Do I have to type in the line numbers myself ?
A No. BBC BASIC for Windows doesn't need line numbers at all, so you can simply type in the lines without numbers. If you prefer to have line numbers you can add them afterwards using the Renumber command in the Utilities menu, or simply by clicking on the 10 20 30 button in the toolbar.
Q How can I transfer files from an Acorn Archimedes to the PC ?
A If you have RISC OS version 3 or later you can write PC-compatible 3.5" floppy disks on the Archimedes. To format a suitable disk click MENU on the appropriate drive icon and select Format... Other formats... DOS 720K or (if you have a high density disk interface) Format... Other formats... DOS 1.44M. From the command line or a task window you can type *FORMAT :0 DOS/M for 720K or *FORMAT :0 DOS/Q for 1.44M, where :0 is the appropriate drive. If you don't have a floppy drive on your PC, external USB drives are inexpensive.
Q I entered my program and typed RUN but nothing happened! What's wrong?
A You probably typed RUN into the program editor; all that does is to add the command to your program. To run your program you need to click on the Run button in the toolbar or press F9. Alternatively open the Run menu and select Run (Alt-R R).
Q How can I move BBC BASIC for Windows to another PC?
A You will need your original master disc or downloaded installation file (BBCSETUP.ZIP), and your personal serial number (registration key). If you can't remember your serial number you can find it in the Help... About BBC BASIC menu selection. Install BBC BASIC for Windows from scratch on the new PC, and when you have done that upgrade it to the latest version by downloading and installing UPGRADE.EXE.
Q Is BBC BASIC for Windows a compiler or an interpreter?
A In traditional terms BBC BASIC is an interpreted language; it has many features which are not compatible with direct conversion to machine code (e.g. the EVAL function and the assembler). BBC BASIC for Windows uses the term compile for the process of creating a stand-alone executable file containing a compressed form of your BASIC program plus a Run Time Engine to execute it. Several modern 'compiled' languages (e.g. Java and the .NET suite) use a similar technique.
Q Why can't I get OPENOUT to work?
A The most likely reason is that you're trying to create the file in a place that isn't allowed by Windows. One solution is to use OPENOUT(@usr$+filename$) which will save the file in your Documents folder, or if it's a temporary file you can use OPENOUT(@tmp$+filename$). If you don't specify an explicit 'path' Windows tries to save the file in the 'current directory', for example C:\Program Files\BBC BASIC for Windows\EXAMPLES\ which is one of the places Windows Vista, Windows 7 and Windows 8 won't let you write unless you have 'administrator' privileges.
Q How similar is BBC BASIC to QBASIC (or QuickBasic)?
A All dialects of BASIC are similar, but since BBC BASIC pre-dates and has very different origins from QBASIC there are significant differences between them (BBC BASIC first appeared in 1982, Microsoft QuickBasic in 1985 and QBASIC in 1991). However there is an automated translator QB2BBC which can translate entire QBASIC programs, or just individual statements, to BBC BASIC for Windows.