what is this "B-Series"?
I would assume 'B-series' being about the CBM-II series, in the US/Canada usually known as B128 (keyboard style) and B256 (CBM 8296 LP style).
The CBM-II series was intended to continue the PET/CBM success by providing a compatible family of machines from home to business use with 3 lines:
- 5xx - Low end 'home' style with additional sound/graphics
- 6xx - Keyboard style business machines
- 7xx - Computer with screen much like the latest CBM-LP models
Combined with 4 memory sizes:
- 05 for 64 KiB
- 10 for 128 KiB
- 20 for 256 KiB
- 30 for 512 KiB
Although not all machines produced really followed this. For one, the 505 was labelled as 500, while the US Models were (mostly) labelled B128/B256.
CBM 610 / B128
(Picture taken from Wikipedia)
CBM 710 / B256
(Picture taken from Wikipedia)
See also Cameron Kaiser's beautiful crafted B128 Floodgap page for more details and pictures
Is this the >3.5 versions that had TRAP and ERR$?
Yes.
They featured an enhanced BASIC 4.0, often mentioned as 4.0+. Like the machines, BASIC development was as well not finished. IIRC there was at least one project to fix all that.
The Reference Manual states inChaper 3 (p.9):
... The most important features of the new interpreter are:
- Screen commands
- Formatted data output
- IF..THEN..ELSE structures
- Editing and directory processing
- Variable and data processing
- Error trapping
- Memory processing
And continues in section 3.5 (p.11) as:
3.5 Error Trapping.
Sometimes it is sensible to trap errors which are normally
processed by BASIC, for example division by zero. In this
instance BASIC would normally give an error message and stop the
program. If a TRAP statement is used, such an error can be dealt
with by the program itself, allowing you to restart the program
where the error occurred. There are several ways of treating an
error. Variables can be corrected in the statement and
re—executed. The program execution can also be restarted at
another point. Error trapping in BASIC 4.0+ also gives
information on the type of error, on the line number in which it
occurred and, if necessary, the text of the standard BASIC error
message which BASIC would have displayed if the error had not been
trapped.
Section 5.3.2 Interception of Program Errors on p.25 describehandling and statements (DISPOSE
, RESUME
and TRAP
) as well as error codes fetched by ERR$()
. The list seems to be the same as found in your first link (Commodore.CA),except it ends with number 42 (*1).
So yes, it seems your assumption is right.
*1 - Which I think of as a a sensible decision to do - then again it might simply be that there were different ROM/Documentation versions and 43 was simply not present at the time when the preliminary manual was made.