QB2BBC
QBASIC to BBC BASIC translator
QB2BBC is an automatic translator from QBASIC (or QuickBasic) to BBC BASIC.
Using the translator most QBASIC programs can be converted
to BBC BASIC without the need for any 'human assistance'. The translated
program can be run directly from QB2BBC - you don't need to install BBC BASIC as well.
All dialects of BASIC are similar, but since BBC BASIC pre-dates and has very
different origins from QBASIC
(BBC BASIC first appeared in 1982, Microsoft QuickBasic in 1985 and QBASIC
in 1991) there are significant differences between them. However BBC BASIC is
sufficiently flexible that it can emulate the behaviour of QBASIC quite
accurately, but that does mean that the translated code can sometimes be
difficult to read, and isn't necessarily much like what an experienced BBC BASIC
programmer would write. Don't be misled into thinking that BBC BASIC
code always looks like that!
Create a suitable directory (e.g. C:\Program Files\QB2BBC\) and copy the
QB2BBC.exe file there. You will need administrative privileges to copy the file
and when you execute it for the first time (in Windows Vista™ and
Windows 7™ use 'Run as administrator');
however it can be run from a normal user account thereafter.
You can, if you wish, create a desktop shortcut to the program by right-dragging
the QB2BBC.exe file to your desktop and selecting 'Create shortcut here' from
the menu that appears when you release the mouse button. You can create a shortcut
in your Start Menu in a similar way.
Although QB2BBC can successfully translate most QBASIC programs, there
are a few limitations caused either by Windows or by BBC BASIC, including:
- A maximum of 8 open files is supported. If the QBASIC program
uses channel #9 or higher an error will occur when the BBC BASIC translation
is run.
- The only graphics line style supported is 'dotted'.
- Flashing text is not supported. Colour numbers greater than
15 are evaluated 'MOD 16'.
- The SCREEN function cannot return a character's colour attributes.
- PEEK, POKE and CALL ABSOLUTE are disabled for safety (they
would be likely to crash BBC BASIC). PEEK returns zero.
- ERASE clears the contents of an array, but does not free its memory.
- LOCK and UNLOCK have no effect.
- You cannot (safely) jump out of loops using GOTO.
- The size of a user-defined TYPE (and hence the size of a file
using such records) may be different from what it would be in QBASIC
(e.g. single-precision numerics are 5 rather than 4 bytes; strings
are one byte longer because of the NUL-terminator).
- ON PEN, ON STRIG, PEN, STRIG, IOCTL,
WAIT, PMAP, PALETTE USING and POINT(n%) are not supported.
- RESUME and RESUME NEXT resume execution at the line (not statement)
in or after the one in which the error occurred.
- CLS clears only the text viewport (it is equivalent to CLS 2).
- PAINT does not support the tile$ or background$ options.
-
The graphics GET and PUT operations require arrays large enough to contain 4 bits-per-pixel.
When you start QB2BBC you are presented with a full-screen window (you
can re-size it if you wish) containing the normal features which make
up the Windows™ Graphical User Interface: a title bar,
a set of drop-down menus, a toolbar
and a status bar.
The main part of the screen is split into two panes: the left-hand pane is
where the QBASIC program appears (and can be edited) and the right-hand pane
is where the BBC BASIC translation appears (which is read-only). Both panes can
be scrolled horizontally and vertically as necessary.
The title bar contains the name of the application (QB2BBC),
the name of the current QBASIC program (or 'untitled' if the New
command has been issued), a minimise button, a maximise button
and a close button. If you right-click in the title bar you will get a
context menu containing the Restore, Move, Size,
Minimize, Maximize and Close items.
The menu bar contains the drop-down menus
File, Utilities, Options,
and Help. These menus
may be activated by clicking on the appropriate menu name or by using a
keyboard shortcut (hold down Alt and press the key corresponding to the underlined
character).
The toolbar provides easy access to the most common commands, without
having to select them from the drop-down menus, simply by clicking
on the appropriate button. The commands for which buttons are provided are as follows:
From the File menu: New,
Load and Save.
From the Utilities menu: Translate
and Run.
When a menu item is highlighted, the status bar displays a brief description of
the function of that command. Otherwise, the status bar displays the version number
and copyright information.
The File menu contains the items New, Load,
Save and Exit. The File
menu can be accessed by clicking on its name in the menu bar
or by means of the keyboard shortcut Alt-F.
The New command deletes the current QBASIC program from
memory, giving you a 'clean sheet' into which to load or type a new program.
The Load command loads a QBASIC program into memory.
The file must be in plain text (ASCII) format and should ideally have been saved from QBASIC,
since that guarantees that it will be formatted appropriately (e.g. have CAPITAL keywords).
The file will normally have the extension .BAS.
The Save command saves the translated BBC BASIC program.
The file is saved in internal (tokenised) format suitable for loading into BBC BASIC for Windows
or BBC BASIC for SDL 2.0 and will normally have the extension .BBC.
Note that no method is provided for saving the QBASIC program (for example if it has been edited).
If you need to save the contents of the left-hand pane right click on that pane (or press
Shift+F10 when the pane has keyboard focus), select Select all
from the menu, right-click again, then select Copy from the menu. You can then paste the
copied text into (for example) Notepad and save it to file from there.
The Exit command quits from QB2BBC and
closes its window.
The Utilities menu contains the items Translate
and Run. The Utilities
menu can be accessed by clicking on its name in the menu bar
or by means of the keyboard shortcut Alt-U.
The Translate command translates the QBASIC program into BBC BASIC. If an error
is detected, or if the program cannot be translated for any reason, a message will be displayed
and the statement that resulted in the error highlighted.
The Run command runs the BBC BASIC program. If no program has been created
(i.e. the right-hand pane is empty) the command opens an 'immediate mode' window into
which BBC BASIC statements may be entered for immediate execution.
The Options menu contains the items Syntax Colouring,
Indentation and Set Font. The Options
menu can be accessed by clicking on its name in the menu bar
or by means of the keyboard shortcut Alt-O.
The Syntax Colouring setting causes keywords, strings, REMarks and labels to be
coloured in the right-hand pane. Clicking on this item toggles between the setting being
enabled (indicated by a tick mark) and disabled.
The Indentation setting causes FOR...NEXT loops, REPEAT...UNTIL loops,
WHILE...ENDWHILE loops, CASE...ENDCASE constructs and multi-line IF...ENDIF
clauses to be indented, making program structure easier to follow. Clicking on this
item toggles between the setting being enabled (indicated by a tick mark) and disabled.
The Set Font command allows the font used in the two program panes to be
selected. The font defaults to the System Fixed Font (FixedSys).
The Help menu contains the items Help Topics,
and About. The Help menu can be accessed by clicking on its
name in the menu bar or by means of the keyboard shortcut Alt-H.
The Help Topics command displays this Help documentation.
The About command displays information about QB2BBC, including
the version number.
©
Richard Russell 2012