<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>
Date   : Thu, 23 Nov 2006 00:31:40 +0000 (GMT)
From   : kranser@... (Steve Fewell)
Subject: BASIC variations

--- David Harper <dl.harper@...> wrote:

> Is there a definitive list anywhere of the
> differences between the various 
> BBC BASICs?
> 
> I am particularly interested simply in differences
> between BASIC IV (on the 
> Master) and the earlier versions.

Here is a complete list from Appendix 5 of the Master
Advanced Reference manual:

"APPENDIX FIVE
CHANGES INTRODUCED IN
BASIC 4

Changes from Basic 2 and Basic 3

Provides some formatting of assembly listings
COLOR is accepted as an alternative to COLOUR
SAVE A$+B$ works correctly
Use of . & ? as formal parameters works correctly
A US version listing COLOR instead of COLOUR is
available

Additional changes

The version number in ROM is 4.

Incorporates all the 65C02 (65C12) instructions in
Assembler:
DEC A may be represented as DEA
INC A may be represented as INA for compatibility with
MASM
STZ may be represented as CLR
ASL ALFRED or similar is accepted i.e. the 'A'
indication of accumulator addressing
mode for ASL LSR ROL ROR DEC INC no longer affects
symbol recognition. .
X,Y or A in the assembler may be in lower case. EQUB,
EQUW & EQUD may also be in lower case.

Trailing spaces will always be stripped from lines
entered into the interpreter.
Leading spaces will be stripped from lines entered
into the interpreter when a non-
zero LISTO is set. The assumption is that there will
be a formatted listing on screen
when cursor editing is used when LISTO is non-zero.
LISTO indents loops correctly.

Cross-reference/Search output is available from LIST.
Lines will be Listed IF the
specified string is present e.g.:
       LIST IF DEF
       LIST 10, 1000  IF
       LIST , 2000  IF A%
It is not possible to search for TIME=90 , for
example, as a statement - it will only be
checked for as a boolean expression; PTR# , HIMEM,
LOMEM are similarly affected.
 
RENUMBER or LIST will not be affected by &8D in
comments or strings. In addition, LIST will not be
confused by coloured comments.

A statement to update an open file's extent '
EXT#chan=length , has been added.
This uses OSARGS and so will not work until there are
suitable filing systems.

A display real-time clock pseudo variable TIME$ has
been introduced. It fetches a
fixed 24-byte string from the operating system in
response to PRINT TIME$ (or
similar). The string looks like Wed,31 Dec
1900.23:59:59. Assigning
TIME$=? fred? merely passes the string directly to the
operating system with the
length in the first byte.

AUTO no longer outputs a space after the line number.

General recursion is now allowed in 'FOR' loops e.g.:
DEF FNQ FORJ=lTOl0 :P .J. :N. .=l0
FORI=FNQ-9 TO FNQ STEP FNQ/l0
now works. In previous versions only the first FNQ or
FNQ's without the FOR loop
would work.

A new command EDIT which has identical syntax to LIST
(even the IF section) can
be used to create an in-core text file of the current
program (or section of it e.g.
EDIT l0 ' l00). It then issues the command ?*EDIT hh,
hh? where the hex
addresses are addresses in zero page of the start of
the in-memory text and the
address in zero page of the end of the in-memory text
plus one. LISTO 0 is set
before conversion begins. If there is not enough space
to convert the entire file, the
error message 'No room' will be given together with a
line number which shows how
far through the program it had reached. At this stage
either CLEAR or a different
EDIT command should be used. ESCAPE will behave
similarly, stopping the
conversion to text.

The use of the ?|? character at the end of VDU
parameters can be used to insert
the correct number of remaining zeros."

Steve.


Send instant messages to your online friends http://uk.messenger.yahoo.com 
<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>