Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

BBC BASIC - CPM version.

516 views
Skip to first unread message

Katzy

unread,
Nov 29, 2009, 12:46:27 PM11/29/09
to
Hello.

The CPM version of BBC BASIC (Z80) works fine. When you do a *DIR *.* you see
several files preceded by a * which means they are locked. How can I unlock
them? It is not *ACCESS or *ACCESS RW like in the real BBC BASIC. Anybody
knows?

Bye, Katzy.


Peter Hill

unread,
Nov 29, 2009, 2:29:22 PM11/29/09
to
On Sun, 29 Nov 2009 18:46:27 +0100, "Katzy" <ka...@noname.at.all>
wrote:

*UNLOCK ufsp

*LOCK locks them would you believe
--
Peter Hill
Spamtrap reply domain as per NNTP-Posting-Host in header
Can of worms - what every fisherman wants.
Can of worms - what every PC owner gets!

Katzy

unread,
Nov 29, 2009, 3:00:36 PM11/29/09
to
Hello.

Peter Hill wrote in message <5ji5h554lb8do2ko7...@4ax.com>...


>On Sun, 29 Nov 2009 18:46:27 +0100, "Katzy" <ka...@noname.at.all>
>wrote:
>
>>Hello.
>>
>>The CPM version of BBC BASIC (Z80) works fine. When you do a *DIR *.* you
see
>>several files preceded by a * which means they are locked. How can I unlock
>>them? It is not *ACCESS or *ACCESS RW like in the real BBC BASIC. Anybody
>>knows?
>>
>>Bye, Katzy.
>>
>
>*UNLOCK ufsp
>
>*LOCK locks them would you believe

No, not before I have tried... ;)

Thank you, Peter.

Bye, Katzy.


Katzy

unread,
Nov 29, 2009, 4:23:05 PM11/29/09
to
Hello.

Katzy wrote in message <2b2dnWb8leWaTo_W...@giganews.com>...

I tried... It is true for the DOS version, not for the CP/M version of BBC
BASIC. Anyone else?

Bye, Katzy.


Mr Emmanuel Roche, France

unread,
Nov 29, 2009, 5:29:58 PM11/29/09
to
Katzy wrote:

Well, it depends what you mean by "works fine"...

Me, when I simply tried one of the example BBC programs provided with
BBC BASIC (Z80), ANIMAL.BBC, I got an error message...

I am afraid that BBC BASIC is just a "Tiny BASIC". I simply do not
understand why the BBC chose it, rather than a full BASIC (I know of
an english one) or, even better, COMAL. (It would be funny to compare
BBC BASIC versus COMAL!)

However, this got me thinking.

I went to the Web page where I found BBC BASIC (Z80):

http://www.bbcbasic.co.uk/bbcbasic.html

I noticed that there are 3 versions of it:

1) Generic CP/M version
2) Amstrad CPC version
3) Tatung Einstein version

I re-downloaded the "Generic CP/M version". Inside the ZIP file, I
noticed the READ.ME file, which starts with: "This is version 3.00 of
BBCBASIC(Z80)." Ok. I then had a look to the BBCBASIC.TXT. Near the
bottom, I found:

5. OPERATING SYSTEM INTERFACE

The following resident Operating System ("star")
commands are
implemented. They may be accessed directly (e.g. *BYE) or via the
OSCLI
statement (OSCLI "BYE").

However, I could not find any mention of "*LOAD" among them...

I then downloaded the "Amstrad CPC version".

This time, the READ.ME file contains: "This is version 2.30 of BBCBASIC
(Z80)". So, a previous version, probably closer to the original Acorn
BBC version? Indeed, the BBCBASIC.TXT file contains, in Section 5:

*LOCK filespec
Set the specified file to "read-only" status. If the
extension is
omitted, .BBC is assumed.

*UNLOCK filespec
Set the specified file to "read/write" status. If the
extension is
omitted, .BBC is assumed.

So, it seems that I am the first man on Earth to notice a bug with the
example BBC programs provided with BBC BASIC (Z80)... (It would be
interesting to know since when it has been available, and how many
people downloaded it without noticing this bug...)

(As far as I understand, since I have never seen an Acorn BBC, the
only solution is to UNLOCK those files with the Amstrad CPC version,
using an emulator running under Windows. After this work, maybe tell
Richard Russel to modify the BBC files?)

Yours Sincerely,
Mr. Emmanuel Roche, France

Mr Emmanuel Roche, France

unread,
Nov 30, 2009, 3:13:16 AM11/30/09
to
Regarding "*LOCK" and "*UNLOCK":

>    *LOCK filespec
>    Set  the  specified  file to "read-only"  status.  If  the extension
>   is omitted, .BBC is assumed.
>
>    *UNLOCK filespec
>    Set  the  specified  file to "read/write" status.  If  the extension
>  is omitted, .BBC is assumed.

Read-Only? Read/Write?

Funny, I was thinking that BDOS Version 3 was supporting them:

File attributes
---------------

The high-order bits of the FCB filename F1' through F4' and
filetype T1'
through T3' are called "attribute bits". The program can assign or
interrogate
the following attributes:

T1' = 1 --> Read-Only (RO) attribute
T2' = 1 --> System (SYS) attribute
T3' = 1 --> Archive attribute

If a file is set to Read-Only, the system cannot write to the file.

If the file has the SYS attribute, the system treats it as a system
file. For
example, certain utilities such as DIR and PIP do not include
it unless
explicitly specified. Also, the system allows other users to access
user zero
SYS files on a Read-Only basis.

When a file has the Archive attribute, it indicates that the file has
not been
modified since a previous archive (back-up) function. An archive
program
should interrogate this attribute, and set the Archive attribute
when it
copies a file. The system automatically resets the Archive attribute
to off
when the file is updated. The PIP utility supports file archiving.

The file attribute bits F1' through F4' and T1', T2', and T3' are
recorded in
the file's Directory FCB. These attributes can be set or reset only
by the
F_ATTRIB (Function 30) system call.
--------------

However, let us re-read the "Introduction" of the BBCBASIC.TXT file:

BBC BASIC (Z80) is as machine independent as possible and, as
supplied,
it will run on any CP/M 2.2 (or later) system using a Z80
processor
(checks are carried out to ensure that the processor is a Z80
and that
the version of CP/M is at least 2.2). It is minimally configured
for an
ADM3a-compatible VDU.

and:

In order to make full use of the facilities available in BBC BASIC
(Z80)
it is necessary to install a small patch to adapt it to the
capabilities
of the host computer. The source code of the patch present
in the
distribution version is supplied as BBCDIST.MAC.

Looking at this BBCDIST.MAC file, we discover:

;JUMP TABLE - BBC BASIC makes calls to hardware-
;dependent features via this table:
;
JP INIT
CLRSCN: JP CLS ;CLEAR SCREEN
PUTCSR: JP PCSR ;SET CURSOR POSN.
GETCSR: JP GCSR ;READ CURSOR POSN.
PUTIME: JP PTIME ;SET ELAPSED TIME
GETIME: JP GTIME ;READ ELAPSED TIME
GETKEY: JP INKEY ;READ KEY (TIME LIMIT)
BYE: JP REBOOT ;RETURN TO CP/M

Curious: TIME (and DATE) were not present in BDOS 2, but in BDOS 3...

So, it seems that Richard Russell restricted the last version (3.0) of
BBC BASIC (Z80) to the capabilities of CP/M 2.2, while the previous
version (2.3) was able to handle a subset of the "File Attributes" of
CP/M Plus.

Katzy

unread,
Nov 30, 2009, 7:01:47 AM11/30/09
to
Mr Emmanuel Roche, France wrote in message ...

>So, it seems that I am the first man on Earth to notice a bug with the
>example BBC programs provided with BBC BASIC (Z80)... (It would be
>interesting to know since when it has been available, and how many
>people downloaded it without noticing this bug...)

What bug? The bad program you get when loading the file in, or not be able to
lock and unlock files?

Or, can you *Lock and *Unlock the files using your CPM emulator?

Bye, Katzy.


Richard Russell

unread,
Nov 30, 2009, 9:31:41 AM11/30/09
to
On Nov 29, 10:29 pm, "Mr Emmanuel Roche, France"

<roche...@laposte.net> wrote:
> I am afraid that BBC BASIC is just a "Tiny BASIC". I simply do not
> understand why the BBC chose it, rather than a full BASIC

At the time BBC BASIC was chosen for the BBC Micro (1981) it was by
far the most sophisticated 8-bit BASIC available. Features such as
named functions and procedures (which could take an arbitrary number
of parameters and have LOCAL variables), long variable names with all
characters significant, multi-dimensional arrays, 32-bit integers etc.
were generally not available in other microcomputer BASICs of the
day. The only seriously-considered alternative was one of the
Microsoft 8-bit BASICs, which were primitive by comparison.

It is a testament to the power of BBC BASIC that it is still going
strong after more than 25 years:

http://www.bbcbasic.co.uk/bbcbasic/birthday/
http://www.bbcbasic.co.uk/bbcbasic/birthday/french.html

> I re-downloaded the "Generic CP/M version"...


> However, I could not find any mention of "*LOAD" among them...

Look again. Here is an extract from BBCBASIC.TXT:

*LOAD filespec aaaa
Loads the specified file into memory at address aaaa. The load
address must be specified. If the extension is omitted, .BBC is
assumed.

> So, it seems that I am the first man on Earth to notice a bug with the
> example BBC programs provided with BBC BASIC (Z80).

What bug? ANIMAL.BBC doesn't produce an error message when I run it.

Richard.
http://www.rtrussell.co.uk/

Mr Emmanuel Roche, France

unread,
Nov 30, 2009, 9:37:52 AM11/30/09
to
Hello, Katzy!

> What bug? The bad program you get when loading the file in,
> or not be able to lock and unlock files?

A "bug" is an error, not an insect. In this case, the error is
providing Newbies, like me, to BBC BASIC with LOCK-protected files
said to be examples of BBC BASIC (Z80), which prevents its "Generic CP/
M version" from working correctly.

> Or, can you *Lock and *Unlock the files using your CP/M emulator?

Good question!

1) First, I ascertained if my CP/M emulator could run the CP/M Plus'
SET command, by getting ZSID, asking the BDOS to RETURN the VERSION
NUMBER. It was 31, so it could work.

2) I then downloaded SET, then typed (emulator) SET *.BBC [RO].

3) I then restarted BBCBASIC (Z80), then typed *DIR.

Alas, the "*" is still present before all the BBC files...

So, it seems that BBC BASIC (Z80) is using its own way of LOCKing
files, which is not CP/M-compatible.

(I had the curiosity of using MS-DOS ATTRIB, in the "DOS Box" of my
Windows 98SE computer used to read this comp.os.cpm Newsgroup. I could
remove the "R" stamp of the BBC files. After re-loading BBC BASIC
(Z80), there was no "*" present in front of the BBC files... but
ANIMAL still does not run! *ERA and all the commands dealing with the
directory still don't run. I quit.)

Richard Russell

unread,
Nov 30, 2009, 9:51:02 AM11/30/09
to
On Nov 30, 8:13 am, "Mr Emmanuel Roche, France" <roche...@laposte.net>
wrote:

> In order to make full use of the facilities available in BBC BASIC
> (Z80) it is necessary to install a small patch to adapt it to the
> capabilities of  the  host  computer...

> Curious: TIME (and DATE) were not present in BDOS 2, but in BDOS 3...

You seem to have mis-read "host computer" as "version of CP/M". Many
CP/M 2 based micros had time and date facilities - not provided by CP/
M but by the machine's own OS - and the purpose of the 'patch' was to
allow such facilities to be accessed by BBC BASIC.

> So, it seems that Richard Russell restricted the last version (3.0) of
> BBC BASIC (Z80) to the capabilities of CP/M 2.2, while the previous
> version (2.3) was able to handle a subset of the "File Attributes" of
> CP/M Plus.

Not at all. The version number (e.g. 3.0 or 2.3) refers to the BASIC
*interpreter*, not to the interface with the OS. Since the 'generic'
BBC BASIC (Z80) - whether version 2.3 or 3.0 - assumes only a CP/M 2
compatible OS it doesn't support *LOCK/*UNLOCK. In contrast the
'Amstrad' version does support *LOCK/*UNLOCK because it knows it is
running under CP/M Plus.

Richard.
http://www.rtrussell.co.uk/

Richard Russell

unread,
Nov 30, 2009, 10:08:39 AM11/30/09
to
On Nov 30, 2:37 pm, "Mr Emmanuel Roche, France" <roche...@laposte.net>
wrote:

> So, it seems that BBC BASIC (Z80) is using its own way of LOCKing
> files, which is not CP/M-compatible.

No. The * is displayed if the regular read-only bit (bit 7 of the
first character of the extension) is set.

> ANIMAL still does not run! *ERA and all the commands dealing with the
> directory still don't run. I quit.)

What error message do you get when you run ANIMAL?

There are no known bugs in BBC BASIC (Z80) so if you're experiencing
problems it is indicative of an issue elsewhere. For example, BBC
BASIC relies on all the Z80's registers being available; it will not
run if (for example) the OS unexpectedly modifies the 'alternate'
registers (AF', BC', DE', HL'). Some Z80-based CP/M machines used the
alternate registers in interrupt routines without saving them; BBC
BASIC will not run on such machines.

Richard.
http://www.rtrussell.co.uk/

Richard Russell

unread,
Nov 30, 2009, 10:15:55 AM11/30/09
to
On Nov 30, 2:37 pm, "Mr Emmanuel Roche, France" <roche...@laposte.net>
wrote:
> 2) I then downloaded SET, then typed (emulator) SET *.BBC [RO].
>
> 3) I then restarted BBCBASIC (Z80), then typed *DIR.
>
> Alas, the "*" is still present before all the BBC files...

Of course - you set all the files to read-only! You should have done:

SET *.BBC [RW]

Richard.
http://www.rtrussell.co.uk/

Peter Hill

unread,
Nov 30, 2009, 12:56:46 PM11/30/09
to
On Sun, 29 Nov 2009 22:23:05 +0100, "Katzy" <ka...@noname.at.all>
wrote:

>Hello.
>
>Katzy wrote in message <2b2dnWb8leWaTo_W...@giganews.com>...
>>Hello.
>>
>>Peter Hill wrote in message <5ji5h554lb8do2ko7...@4ax.com>...
>>>On Sun, 29 Nov 2009 18:46:27 +0100, "Katzy" <ka...@noname.at.all>
>>>wrote:
>>>
>>>>Hello.
>>>>
>>>>The CPM version of BBC BASIC (Z80) works fine. When you do a *DIR *.* you
>>see
>>>>several files preceded by a * which means they are locked. How can I unlock
>>>>them? It is not *ACCESS or *ACCESS RW like in the real BBC BASIC. Anybody
>>>>knows?
>>>>
>>>>Bye, Katzy.
>>>>
>>>
>>>*UNLOCK ufsp
>>>
>>>*LOCK locks them would you believe
>>
>>No, not before I have tried... ;)
>>
>>Thank you, Peter.
>>
>>Bye, Katzy.
>
>I tried... It is true for the DOS version, not for the CP/M version of BBC
>BASIC. Anyone else?
>
>Bye, Katzy.

Sorry, my version is for Tatung Einstein which it seems has additional
features as it ran under a CP/M clone called Crystal XDOS. BBC Basic
was a key selling point for the Einy, Crystal Basic was crap.

Mr Emmanuel Roche, France

unread,
Nov 30, 2009, 3:36:16 PM11/30/09
to
Hello, Richard!

> > 2) I then downloaded SET, then typed (emulator) SET *.BBC [RO].
>
> > 3) I then restarted BBCBASIC (Z80), then typed *DIR.
>
> > Alas, the "*" is still present before all the BBC files...
>
> Of course - you set all the files to read-only! You should have done:
>
> SET *.BBC [RW]

Egad! You are right. Ok. Let us check this. I erased BBCBASIC.CPM and
all the BBC files, then re-downloaded from WinZip, and renamed
BBCBASIC.COM as BBCBASIC.CPM.

I re-start BBC BASIC (Z80), do a "*DIR": all the BBC files are
preceded by a "*". (ATTRIB shows the A and R flags for all of them.)

I go back to the system prompt, type (emulator) SET *.bbc [RW], then
re-enter BBC BASIC and do a "*DIR": all the BBC files are preceded by
a "*"... No change. (ATTRIB still displays the A and R flags for all
the BBC files.)

In another message, I wrote:

"I could not find "*LOAD" among the Version 3"

I made a typo: I wanted to write "*LOCK" as the context shows, since
all the contents of this message is about the absence or presence of
*LOCK.

(I must explain that I am typing this from MS-DOS, so cannot copy at
will the text of previous messages.)

Ok. Finally, you wote: "What bug? ANIMAL.BBC does not produce an error
when I run it."

So, I restart (for the Xth time) BBCBASIC, then type LOAD "ANIMAL",
then RUN. I assume a dog. After entering Y in answer to "Is it a
dog?", the question "Are you thinking of an animal?" re-appear and I
answer N. The program then displays the animals that it knows, and ask
the question: "Do you want to save these on disk?" I then press the Y
key, and see appear on screen:

Bad command at line 950
>

It is the X+1 time that I see it (I think that you say "untenth" in
English).

So,
>EDIT 950
950 IF OPENIN"ANIMAL.DAT" THEN *ERA ANIMAL.DAT

If I try to *ERA a BBC file, I get:

>Bad command

Is it a bug? I don't know. Somewhere, I seem to remember to have a
look to the "Torch" manual for more information about BBC BASIC...
Needless to say, I don't have it, or any Acorn BBC manual. I am a CP/M
fan, and am sorry to report that, so far, I am not very favorably
impressed by BBC BASIC.

I am sorry that someone disturbed you. Me, I always try to fix bugs
alone. I suggested to warn you, once the bug would have been erased,
to updates the BBC files in the Generic CP/M version, so that the BBC
files are no longer LOCKed (or, to reput *LOCK and *UNLOCK in Version
3.0, this time working as the "Files Attributes" of BDOS 3).

I re-read a last time all the messages...

Ho, by the way, do you know since when the "Generic CP/M version" has
been available, and how many persons downloaded it without noticing
the ANIMAL bug?

(By the way, I got the same error from 2 CP/M emulators: 22NICE and
CPMEMU.)

I have re-read your paragraph about BBC BASIC. I stand by my words: it
would be funny to compare BBC BASIC versus COMAL... It is obvious, at
least for me, which one would be superior in almost any respect. (One
can only wonder if the fact that COMAL was invented in Denmark was not
a factor in the BBC adopting a Tiny BASIC made by an Englishman?
According to Wikipedia, this man incorporated several features of
COMAL to produce BBC BASIC...)

To finish, this is why I like computers: there is no ambiguity: either
the program runs, or it doesn't. Me, I have simply followed the
instructions given by the program, a dozen of times, under 2 different
CP/M emulators, and it always stopped at line 950. Since I am a Newbie
at BBC BASIC, my conclusion is clear: there is a bug. I seem to have
seen a 2000 date, somewhere. So, the problem has been laying silent
for 9 years but, computers being perfect, this bug can be reproduced
at will, even 9 years later.

As to how to get rid of this bug, I leave it to BBC BASIC experts. All
the texts that I have read mention countless times: "Version X, Y, and
Z of BBC BASIC". Is the bug only present in one version? I don't know.
Too many versions, so not portable, contrary to, say, CBASIC Compiler.
So far, no difference found in CP/M 2.2, CP/M-86, and MS-DOS.

Peter Hill

unread,
Nov 30, 2009, 4:09:18 PM11/30/09
to
On Mon, 30 Nov 2009 06:31:41 -0800 (PST), Richard Russell
<ne...@rtrussell.co.uk> wrote:

>On Nov 29, 10:29�pm, "Mr Emmanuel Roche, France"
><roche...@laposte.net> wrote:
>> I am afraid that BBC BASIC is just a "Tiny BASIC". I simply do not
>> understand why the BBC chose it, rather than a full BASIC
>
>At the time BBC BASIC was chosen for the BBC Micro (1981) it was by
>far the most sophisticated 8-bit BASIC available. Features such as
>named functions and procedures (which could take an arbitrary number
>of parameters and have LOCAL variables), long variable names with all
>characters significant, multi-dimensional arrays, 32-bit integers etc.
>were generally not available in other microcomputer BASICs of the
>day. The only seriously-considered alternative was one of the
>Microsoft 8-bit BASICs, which were primitive by comparison.
>
>It is a testament to the power of BBC BASIC that it is still going
>strong after more than 25 years:
>
> http://www.bbcbasic.co.uk/bbcbasic/birthday/
> http://www.bbcbasic.co.uk/bbcbasic/birthday/french.html
>

A big thanks from me.

It was dead easy to hack code up in BBCBASIC and then port to Turbo
Pascal.

John Elliott

unread,
Nov 30, 2009, 4:47:33 PM11/30/09
to
Richard Russell <ne...@rtrussell.co.uk> wrote:
: Not at all. The version number (e.g. 3.0 or 2.3) refers to the BASIC

: *interpreter*, not to the interface with the OS. Since the 'generic'
: BBC BASIC (Z80) - whether version 2.3 or 3.0 - assumes only a CP/M 2
: compatible OS it doesn't support *LOCK/*UNLOCK. In contrast the
: 'Amstrad' version does support *LOCK/*UNLOCK because it knows it is
: running under CP/M Plus.

Why? CP/M 2 supports the Read-Only and System file attributes.

STAT filename $R/O
STAT filename $SYS

It's only CP/M 1 that doesn't.

--
John Elliott

Thinks: This is what a nice clean life leads to. Hmm, why did I ever lead one?
-- Bluebottle, in the Goon Show

Richard Russell

unread,
Nov 30, 2009, 6:10:05 PM11/30/09
to
On Nov 30, 8:36 pm, "Mr Emmanuel Roche, France" <roche...@laposte.net>
wrote:

> No change. (ATTRIB still displays the A and R flags for all
> the BBC files.)

So, reset the R flag using ATTRIB in Windows:

attrib -r animal.dat

> the question: "Do you want to save these on disk?" I then press the Y
> key, and see appear on screen:
>
> Bad command at line 950

This is no doubt, as you suspected, because the file is read-only.

> If I try to *ERA a BBC file, I get:
>
> >Bad command

Again, this is because the file is read-only.

> Is it a bug?

No. If *ERA fails (for any reason) BBC BASIC (Z80) reports 'Bad
command'.

> I suggested to warn you, once the bug would have been erased,
> to updates the BBC files in the Generic CP/M version, so that the BBC
> files are no longer LOCKed

I think it is reasonable for the example *program* (.BBC) files to be
locked, since you are not expected to change them. The file which is
resulting in the 'Bad command' error isn't a .BBC file, it's the data
file ANIMAL.DAT. I agree that it is inappropriate for that file to be
read-only, because the user is expected to change it when running
ANIMAL.BBC. I have modified 'bbccpm.zip' so that file is not locked.

> I have re-read your paragraph about BBC BASIC. I stand by my words: it
> would be funny to compare BBC BASIC versus COMAL... It is obvious, at
> least for me, which one would be superior in almost any respect.

COMAL was never an option for the BBC Micro. Right from the start the
BBC specified that the resident language must be a dialect of BASIC.

> (One can only wonder if the fact that COMAL was invented in Denmark was not
> a factor in the BBC adopting a Tiny BASIC made by an Englishman?

In no sense is (or was) BBC BASIC a 'tiny' BASIC. As I explained, it
was the most advanced 8-bit BASIC of its era, and at 16 Kbytes it was
twice the size of most BASIC ROMs of the time.

> Since I am a Newbie at BBC BASIC, my conclusion is clear: there is a bug.

The term 'bug' is usually reserved for a software fault (e.g. a coding
error). The problem in this case is that the file ANIMAL.DAT was set
to read-only in the ZIP archive. That may well have been a mistake on
my part, but using the term 'bug' is misleading. There isn't anything
wrong with BBC BASIC (Z80).

Richard.
http://www.rtrussell.co.uk/

Jonathan Graham Harston

unread,
Nov 30, 2009, 7:50:29 PM11/30/09
to
roch...@laposte.net wrote:
> Me, when I simply tried one of the example BBC programs provided with
> BBC BASIC (Z80), ANIMAL.BBC, I got an error message...
>
> I am afraid that BBC BASIC is just a "Tiny BASIC". I simply do not

BBC BASIC is ***NOT*** a tiny BASIC, it is a fully-fledged,
structured, flexible, detailed BASIC.


> understand why the BBC chose it, rather than a full BASIC (I know of

Because it **IS** a full BASIC, with a lot more functionality than
anything else that was around at the time.


> an english one) or, even better, COMAL. (It would be funny to compare
> BBC BASIC versus COMAL!)

Ok, go ahead, COMAL is available for the Beeb.

> 1) Generic CP/M version

> I re-downloaded the "Generic CP/M version". Inside the ZIP file, I

The generic CP/M version makes *ABSOLUTELY* *NO* *CALLS* or
assumptions beyond absolutely basic CP/M, so no use of file
attributes, no graphics, no sound, nothing other than BDOS file I/O
and BDOS character I/O.


> 2) Amstrad CPC version
> 3) Tatung Einstein version
> I then downloaded the "Amstrad CPC version".
> *LOCK filespec
> Set the specified file to "read-only" status. If the

Because the Amstrad and Einstein versions known they are running on
the Asmtrad and Einstein and consequently known that there are
specific capabilities that are available on the Amstrad and
Einstein that cannot be depended on on an plain, generic, vanilla
CP/M version. You're gonna complain that SOUND on the Amstrad
version works, but doesn't on the generic CP/M version.


> (As far as I understand, since I have never seen an Acorn BBC, the
> only solution is to UNLOCK those files with the Amstrad CPC version,

$&5C=CHR$0+"FILENAMEEXT"
E%=&5C:D%=0
C%=&1E
CALL 5

or, from the CCP:

STAT *.* R/W

Do I need to fetch a spoon?

--
J.G.Harston - j...@arcade.demon.co.uk - mdfs.net/User/JGH
Whitby Yards Gazetteer - http://mdfs.net/Docs/Books/YofWhitby/Gazetteer

Jonathan Graham Harston

unread,
Nov 30, 2009, 7:50:28 PM11/30/09
to
ka...@noname.at.all wrote:
> The CPM version of BBC BASIC (Z80) works fine. When you do a *DIR *.* you
see
> several files preceded by a * which means they are locked. How can I unlock

Are you sure? I've just tried here, and none of them are.


> them? It is not *ACCESS or *ACCESS RW like in the real BBC BASIC. Anybody

That's not BBC BASIC. That's the filing system. Try selecting tape,
ROM, IEEEFS, TeleSoft, *ACCESS gives an error.A Review of Sheffield City Council's Members' Allowances Scheme
See http://mdfs.net/payreform

Mr Emmanuel Roche, France

unread,
Dec 1, 2009, 7:22:27 AM12/1/09
to
Hello, Jonathan!

> BBC BASIC is ***NOT*** a tiny BASIC, it is a fully-fledged,
> structured, flexible, detailed BASIC.

By the way, speaking of "detailed"... Where is the documentation?

> Because it **IS** a full BASIC, with a lot more functionality
> than anything else that was around at the time.

This must be an example of "British humour"!

> Ok, go ahead, COMAL is available for the Beeb.

I am a fan of CP/M: I don't have a Beeb.

> The generic CP/M version makes *ABSOLUTELY* *NO* *CALLS* or
> assumptions beyond absolutely basic CP/M, so no use of file
> attributes, no graphics, no sound, nothing other than BDOS file I/O
> and BDOS character I/O.

By "CP/M", I assume that you are talking about CP/M-80. Then, for your
education, there were 4 *different* versions of CP/M (but most people
differentiate them according to their BDOS: there were 3 *documented*
Versions of BDOS): CP/M 1.4, CP/M 2.2, CP/M Plus, and "Personal CP/M".
As I showed, BDOS 3 allowed "File Attributes" to be added to filenames
in the directory. BDOS 2, being a predecessor, allowed a subset of
those.

> $&5C=CHR$0+"FILENAMEEXT"
> E%=&5C:D%=0
> C%=&1E
> CALL 5

Typical example: Where is the documentation of the "inline Z-80
assembler"?

> Do I need to fetch a spoon?

You just need to get a brain. For you.

For the record, my first 3KB program in 8080 assembler was "Palo Alto
Tiny BASIC Version 3.0", which was published in the comp.os.cpm
Newsgroup. I was a fan of DDJ, who published countless versions of
Tiny BASIC. So, I know one when I see one.

So, it is (to say the least) annoying to me to see that you are unable
to accept the evidence, from someone who know more than you.

This said, I don't want to start a "flame war" for the following
reasons:

1) I must finish my DATE subroutine in assembler. After that, I must
prove that it checks the output of my TESTDATE program, for all the
65535 cases. Then, once both will work, I must write a file explaining
all I know have DATE and CALENDAR.

2) I must also finish proof-reading a 90 pages text about BASIC
programming, that has been suspended for one week.

3) Finally, I have started a world-wide discussion about...
meteorological buoys in a Yahoo Group!

So, the less that I can say is that I am pretty busy, those days.

So, I don't have time to argue with a Newbie who knows less than me.

I have several interesting things to do, me.

I still think that it would be a good idea to make a comparison
between BBC BASIC and COMAL. According to Wikipedia, the original
author of BBC BASIC copied several features of COMAL to create BBC
BASIC. It is not me who says (or writes) this: it is Wikipedia.

Ho, by the way, if you are a fan of BBC BASIC, maybe you could do the
obvious, and ask directly the author of BBC BASIC if he was a genius
and created BBC BASIC directly from his brain, or if he "borrowed"
ideas from other programming languages that existed, at the time...

peter....@acm.org

unread,
Dec 1, 2009, 12:15:01 PM12/1/09
to
Peter Hill wrote:
> On Mon, 30 Nov 2009 06:31:41 -0800 (PST), Richard Russell
> <ne...@rtrussell.co.uk> wrote:
>
[...]

>> At the time BBC BASIC was chosen for the BBC Micro (1981) it was by
>> far the most sophisticated 8-bit BASIC available. Features such as
>> named functions and procedures (which could take an arbitrary number
>> of parameters and have LOCAL variables), long variable names with all
>> characters significant, multi-dimensional arrays, 32-bit integers etc.
>> were generally not available in other microcomputer BASICs of the
>> day. The only seriously-considered alternative was one of the
>> Microsoft 8-bit BASICs, which were primitive by comparison.
>>
>> It is a testament to the power of BBC BASIC that it is still going
>> strong after more than 25 years:
>>
>> http://www.bbcbasic.co.uk/bbcbasic/birthday/
>> http://www.bbcbasic.co.uk/bbcbasic/birthday/french.html
>>
>
> A big thanks from me.
>
> It was dead easy to hack code up in BBCBASIC and then port to Turbo
> Pascal.

I have included BBC BASIC in the Basic Collection
(http://www.schorn.ch/cpm/zip/basiccollection.zip) available for the
AltairZ80 simulator (http://www.schorn.ch/cpm/intro.php). After
unpacking and running "altairz80 cpm2" you will find it on E:.

It runs flawlessly without any issues as one would expect.

Thanks to Richard for making it available.

Peter
---
peter....@acm.org

Peter Hill

unread,
Dec 1, 2009, 2:38:45 PM12/1/09
to
On Tue, 1 Dec 2009 04:22:27 -0800 (PST), "Mr Emmanuel Roche, France"
<roch...@laposte.net> wrote:

>Hello, Jonathan!
>
>> BBC BASIC is ***NOT*** a tiny BASIC, it is a fully-fledged,
>> structured, flexible, detailed BASIC.
>
>By the way, speaking of "detailed"... Where is the documentation?
>
>> Because it **IS** a full BASIC, with a lot more functionality
>> than anything else that was around at the time.
>
>This must be an example of "British humour"!

OK other than Matrix ops what do you think is missing? Only version of
Basic I ever used that had matrix ops was HP Basic on a 2000E.
http://encyclopedia.thefreedictionary.com/HP+2000E

The extensions made it a "proper" computer language.

Multiline function definition.

Procedures with vars passed by value (as local private var and not the
referenced global var that many other Basics used like the one I put
in the bin, so re-entrant and recursive) or referenced (using address
of indirection operator "?").

The "address of" indirection operator is very powerful.

>> Ok, go ahead, COMAL is available for the Beeb.

COMAL was hardly known of outside Denmark before the Beeb and has
never been mainstream [1]. The Beeb's spec was dictated by the BBC for
the TV series they planned to support the Dept of Industry's "Computer
Literacy Project" and was not Acorn's desision to make. The Computer
Literacy Project's staff must been aware of most languages and
selected the one that was being taught to Engineering and Science
students [2] in the late 70's / early 80's at ALL UK Universities and
even some Technical Colleges with computing facilities (via 110baud
modems). It wasn't intended to run computing courses on the Beeb but
they wanted to teach structured programing as a transferable skill to
many other languages that had this feature.

The fact that COMAL messed with your code may have been a slight
issue.

>I am a fan of CP/M: I don't have a Beeb.
>
>> The generic CP/M version makes *ABSOLUTELY* *NO* *CALLS* or
>> assumptions beyond absolutely basic CP/M, so no use of file
>> attributes, no graphics, no sound, nothing other than BDOS file I/O
>> and BDOS character I/O.
>
>By "CP/M", I assume that you are talking about CP/M-80. Then, for your
>education, there were 4 *different* versions of CP/M (but most people
>differentiate them according to their BDOS: there were 3 *documented*
>Versions of BDOS): CP/M 1.4, CP/M 2.2, CP/M Plus, and "Personal CP/M".
>As I showed, BDOS 3 allowed "File Attributes" to be added to filenames
>in the directory. BDOS 2, being a predecessor, allowed a subset of
>those.
>
>> $&5C=CHR$0+"FILENAMEEXT"
>> E%=&5C:D%=0
>> C%=&1E
>> CALL 5
>
>Typical example: Where is the documentation of the "inline Z-80
>assembler"?

Well it's in MY paper manual at page 41.

I used it to make calls to the Einy's MOS. Things like graphics screen
capture and print.

[1] Except in Ireland where they copied the BBC Computer Literacy
Project but with a computer that used COMAL.

[2] The course was 6 weeks, 1 hour / week in the first term of the 1st
year. I was "trained" in the use of computers when I had produced a
program to solve quadratic equtiions.

Tom Lake

unread,
Dec 1, 2009, 6:09:30 PM12/1/09
to

"Peter Hill" <peter....@nospam.demon.co.uk> wrote in message
news:lhlah5dpu2t3vj1de...@4ax.com...

> OK other than Matrix ops what do you think is missing? Only version of
> Basic I ever used that had matrix ops was HP Basic on a 2000E.
> http://encyclopedia.thefreedictionary.com/HP+2000E

BBC BASIC for the TI-83/84 even has some of those! Everything except
INV()

Tom Lake

Mr Emmanuel Roche, France

unread,
Dec 2, 2009, 3:18:48 AM12/2/09
to
Hello, Peter!

I am trying to do at least 3 things at the same time right now, so
this "energic" thread annoys me. It seems that BBC BASIC fans are
quite sentimentally attached to it, and cannot see its advantages and
drawbacks. Me, I have been programming for 30 years, now, and have
never used it. So, the world can live without it. For me, it is
obvious that some programming languages are better fitted to solve a
problem than others. Saying that one PL is better for all the problems
is the sure sign of a Newbie. You can only understand this if you have
met and used a number of PLs during your career. That's why I think
that the most vocal BBC BASIC fans are just Newbies, who only know it,
so simply cannot understand that there are very different PLs, out
there, like Lisp/Logo, APL, or MUMPS.

> The extensions made it a "proper" computer language.

I don't know what is "proper". In computing, there has always been a
problem with "standards". Most standards were "de facto" (like the
Centronics, the RS-232C, ASCII, etc), rather than "de jure". In the
matter of BASIC, things are clear: the standard is MBASIC. BBC BASIC
is too different from MBASIC, while Mallard BASIC is a superset. So,
Mallard BASIC is standard, while BBC BASIC is not. QED.

> >Typical example: Where is the documentation of the "inline Z-80
> >assembler"?
>
> Well it's in MY paper manual at page 41.

Reference! (Please...)

Just a few days ago, John Elliott provided a link to the online manual
for Mallard BASIC for the Spectrum +3:

http://www.worldofspectrum.org/Plus3CPMManual/index.html

Where is the equivalent manual for the BBC BASIC (Z80)? I have
downloaded and tried to run BBC BASIC (Z80) a dozen of times. Except a
summary of the difference from the "Torch" version, I have never seen
a manual. Does it contain a chapter about the famous inline Z-80
assembler?

Richard Russell

unread,
Dec 2, 2009, 5:24:21 AM12/2/09
to
On Dec 2, 8:18 am, "Mr Emmanuel Roche, France" <roche...@laposte.net>
wrote:

> It seems that BBC BASIC fans are
> quite sentimentally attached to it, and cannot see its advantages and
> drawbacks.

Oh, believe me, I am very well aware of the shortcomings of BBC
BASIC. I even have a page in one of my notebooks on what changes
might be desirable if one could turn the clock back to 1981! In fact,
far from being blinded to its limitations, my very close association
with BBC BASIC for the last 28 years, and my considerable experience
of other BASICs, probably makes me more critical than most.

However I am in no doubt that BBC BASIC is one of the best and most
flexible BASICs around. Where I have been able to improve it -
without breaking compatibility with earlier versions - I have done
so. If only it was practical to reverse-engineer the features of 'BBC
BASIC for Windows' into the older versions such as BBC BASIC (Z80)
(although as Tom Lake mentioned that has already happened to some
extent in the TI-83/84 version)!

> Me, I have been programming for 30 years

Only 30 years? :-)
I think I wrote my first program (either on an IBM 1130 in Fortran or
a DEC PDP-8 in FOCAL, I don't know which was first) in around 1970,
which would make it 39 years now. I still have one of my very first
programs (in punchcard form) beside me as I write. My first
experience of programming a microprocessor (an 8080) was in around
1975.

> That's why I think that the most vocal BBC BASIC fans are
> just Newbies, who only know it,

You are calling me and Jonathan Harston 'newbies' ???!!

> BBC BASIC is too different from MBASIC

If by 'MBASIC' you mean 'Microsoft BASIC' then, yes, BBC BASIC is
significantly different in some ways. Having said that there is no
single Microsoft BASIC 'standard', especially when you look at the
various incarnations of Visual Basic, which bear little resemblance to
the earlier Microsoft BASICs (or, some people would say, to BASIC at
all!).

Nevertheless when BBC BASIC was specified, i.e. the 1980-1981
timeframe, it was a requirement that it should be fairly compatible
with the Microsoft BASICs of the day, because the BBC Computer
Literacy Project needed to be able to target its educational materials
at a range of different micros (most of which used a variant of
Microsoft BASIC) , not just the BBC Micro. So it is far more
compatible than, say, Acorn's Proton BASIC might have been had the BBC
not got involved.

> Where is the equivalent manual for the BBC BASIC (Z80)?

I don't believe the full BBC BASIC (Z80) manual, specifically, is
online. It was written in the 1980s (by Doug Mounter of M-Tec
Computer Services) on some dedicated word processing device and I've
never had a machine-readable copy (if somebody would offer to scan it
I would be interested).

However all versions of BBC BASIC are similar so to a large extent you
can use the online documentation for 'BBC BASIC for Windows' as a
guide (the assembler is used in the same way; it's only the
instruction mnemonics that differ):

http://www.bbcbasic.co.uk/bbcwin/manual/bbcwina.html

> Ho, by the way, if you are a fan of BBC BASIC, maybe you could do the
> obvious, and ask directly the author of BBC BASIC if he was a genius
> and created BBC BASIC directly from his brain, or if he "borrowed"
> ideas from other programming languages that existed, at the time...

You could probably do the same; Sophie Wilson is still very much alive
and kicking. She had previously developed Atom BASIC from scratch,
which had a number of 'unusual' features. I expect she would
acknowledge the influence of other programming languages too. But,
yes, she's probably about as close to being a genius as anybody gets!

Richard.
http://www.rtrussell.co.uk/
To reply by email change 'news' to my forename.

Mr Emmanuel Roche, France

unread,
Dec 2, 2009, 6:17:12 AM12/2/09
to
Ho, my...

Richard, when I write: "Hello, Peter!" are you obliged to write: "You


are calling me and Jonathan Harston 'newbies' ???!!"

Are you sure that you don't have a twisted mind? Me, I am trying to
calm this thread, that threatens to escalade into a "flame war".

This is the comp.os.cpm Newsgroup. We are interested in programs
running under CP/M. The documentation of "BBC BASIC (Z80)" is nowhere
to be found. You, you are *selling* a Windows version. Don't you have
a conflict of interest? Me, I have written and published, publicly,
programs in the comp.os.cpm Newsgroup for 10 years, now. All of them
perfectly free, and I spent quite a lot of time explaining them so
much that I got complains: "Your program is too simple!" Except that I
was the first to write some of them, like my WordStar-to-HTML File
Converter. Who, today, is working on a CALENDAR program, and a DATE
subroutine for CP/M? You?

The BBC BASIC is only used in England. You worked at the BBC when it
appeared, and decided to make money from it. Apparently, you suceeded.
Me, I am not English, so am not influenced by the BBC. I have never
seen a computer running BBC BASIC in France. I think that it is the
same in the USA and China. (India may be different, since it was a
colony of England.)

Why the BBC chose BBC BASIC will probably remain a mystery.

The only thing that is certain: it had no influence on computing.

It remains a strict English phenomenon.

Personally, I think that a comparison of COMAL versus BBC BASIC would
show that COMAL is superior in almost every respect. But the BBC
decided otherwise, in a date that I don't know, since I am not
English.

You have to understand that the comp.os.cpm Newsgroup is a world-wide
group. If you are only interested in BBC BASIC, stay between
yourselves. In addition, the comp.os.cpm Newsgroup is concerned about
CP/M, not BASIC. However, I have never seen a CP/M computer without
MBASIC.

It is not a government agency, like the BBC, that imposed all the
schools to use it. In the USA, all the Universities are using Unix, so
they know nothing else. Using command lines like CP/M is a total,
closed foreign world to them.

So, should we fight each other, if we are different? Do you want to
oblige me to use BBC BASIC for Windows? But I am working on keeping
using CP/M-86 Plus, not Windows. Do you accept Windows? Then, why
don't you use the PLs that it uses? Do you know better than Microsoft?
If you are a Windows fan, what are you doing in the comp.os.cpm
Newsgroup? Is it rational?

Katzy

unread,
Dec 2, 2009, 7:04:03 AM12/2/09
to
Hello.

Jonathan Graham Harston wrote in message <091201...@arcade.demon.co.uk>...


>ka...@noname.at.all wrote:
>> The CPM version of BBC BASIC (Z80) works fine. When you do a *DIR *.* you
>see
>> several files preceded by a * which means they are locked. How can I unlock
>
>Are you sure? I've just tried here, and none of them are.

YES, since yesterday.

>> them? It is not *ACCESS or *ACCESS RW like in the real BBC BASIC. Anybody
>
>That's not BBC BASIC. That's the filing system. Try selecting tape,
>ROM, IEEEFS, TeleSoft, *ACCESS gives an error.

And? It's part of the whole. Read from the manual:

'Star' commands and the OSCLI statement
As with the 6502 version, operating system commands can be issued from BASIC
either by preceding them with a star (eg *FX 4,1) or by using the OSCLI
statement (eg OSCLI "FX 4,1") However, before being passed to the operating
system the command is checked to see if it corresponds to one of the
CP/M filing system commands (see overleaf). If it does, the appropriate CP/M
function is carried out and control is returned to BASIC; if it does not, the
command is passed to the 6502 operating system in the usual way. If you
need to pass an operating system command to the 6502 which happens to have
the same name as one of the CP/M commands (eg *DIR) then it should be preceded
with another star; ie **DIR $ or OSCLI "*DIR $" will cause the Acorn DFS to
set its default directory to "$" rather than result in a CP/M disc directory
listing.

Bye, Katzy.


Richard Russell

unread,
Dec 2, 2009, 10:12:42 AM12/2/09
to
On Dec 2, 11:17 am, "Mr Emmanuel Roche, France" <roche...@laposte.net>
wrote:

> The only thing that is certain: it had no influence on computing.

http://www.naec.org.uk/events/the-bbc-micro-and-its-legacy-a-special-ccs-seminar

Richard.
http://www.rtrussell.co.uk/

Richard Russell

unread,
Dec 2, 2009, 10:35:15 AM12/2/09
to
On Dec 2, 12:04 pm, "Katzy" <ka...@noname.at.all> wrote:
> >Are you sure? I've just tried here, and none of them are.
> YES, since yesterday.

If you download bbccpm.zip from my site now, you will find that
ANIMAL.DAT is *not* flagged as read-only. I am grateful for
discovering the mistake, via this group, but I am quite surprised that
nobody had informed me of it earlier. I wonder if not all 'unzip'
utilities preserve the state of the read-only flag.

> And? It's part of the whole. Read from the manual:

The text you quoted comes, I presume, from the Torch BBC BASIC manual
because it contains a mixture of CP/M and BBC Micro terminology and
talks about 'passing commands to the 6502 operating system'. It's
largely irrelevant to the generic CP/M version of BBC BASIC (Z80),
which I thought was the topic under discussion in this thread.

Richard.
http://www.rtrussell.co.uk/

Katzy

unread,
Dec 2, 2009, 11:09:58 AM12/2/09
to
Hello.

Richard Russell wrote in message ...


On Dec 2, 12:04 pm, "Katzy" <ka...@noname.at.all> wrote:
> >Are you sure? I've just tried here, and none of them are.
> YES, since yesterday.

-If you download bbccpm.zip from my site now, you will find that


ANIMAL.DAT is *not* flagged as read-only.

Yes, since yesterday. My earlier version was locked, that's why I started this
thread to find out how to unlock them.

- I am grateful for


discovering the mistake, via this group, but I am quite surprised that
nobody had informed me of it earlier. I wonder if not all 'unzip'
utilities preserve the state of the read-only flag.

Thanks to Mr. Roche, France, that is...;)

> And? It's part of the whole. Read from the manual:

-The text you quoted comes, I presume, from the Torch BBC BASIC manual


because it contains a mixture of CP/M and BBC Micro terminology and
talks about 'passing commands to the 6502 operating system'. It's
largely irrelevant to the generic CP/M version of BBC BASIC (Z80),
which I thought was the topic under discussion in this thread.

No, it is not from the Torch BBC BASIC manual, it is called the Z80 BBC BASIC
user guide. The Torch second processor did use a pseudo CPM, named CPN.

Katzy.


Richard Russell

unread,
Dec 2, 2009, 11:57:23 AM12/2/09
to
On Dec 2, 4:09 pm, "Katzy" <ka...@noname.at.all> wrote:
> No, it is not from the Torch BBC BASIC manual, it is called the Z80 BBC BASIC
> user guide.

In that case it's for the Acorn Z80 Second Processor. That was
architecturally the same as the Torch, i.e. it was a Z80 communicating
with the BBC Micro I/O processor (6502) via the so-called 'tube'.
Either way, the text you quoted is not applicable to the generic CP/M
version.

Unfortunately the only way of putting the manual for the generic CP/M
version of BBC BASIC (Z80) online would be to scan its 400-or-so
pages; not something that I could seriously contemplate.

Richard.
http://www.rtrussell.co.uk/

Peter Hill

unread,
Dec 2, 2009, 1:02:26 PM12/2/09
to
On Wed, 2 Dec 2009 00:18:48 -0800 (PST), "Mr Emmanuel Roche, France"
<roch...@laposte.net> wrote:


>> Well it's in MY paper manual at page 41.
>
>Reference! (Please...)

ISBN 1-85086-015-7

Mr Emmanuel Roche, France

unread,
Dec 2, 2009, 2:16:42 PM12/2/09
to
Hello, Peter!

> >> Well it's in MY paper manual at page 41.
>
> >Reference! (Please...)
>
> ISBN 1-85086-015-7

Ok. According to my English dictionary, the references of a book are:

1) its title,
2) its author
3) its publisher
4) its date of publication

What you gave is the International Standard Book Number (ISBN).

That is to say: a 10-digit number that uniquely identifies books
published internationally.

http://www.isbn.org/Standards/Home/isbn/us/isbnqa.asp

Thanks to this number, one can find the exact references of your book:

- "Tatung Einstein Colour Micro Computer"
Mounter & Russell
Pion Ltd, 1984

(There is one currently for sale on amazon.co.uk.)

Mr Emmanuel Roche, France

unread,
Dec 2, 2009, 4:55:48 PM12/2/09
to
I honestly *HOPE* that this will be my last message about BBC BASIC
(Z80)...

I have found yet another problem.

However, this time, I also found a solution.

Ok. I checked the "Generic CP/M version" of BBC BASIC (Z80) found on:

http://www.bbcbasic.co.uk/bbcbasic.html

I unzip all the files in a directory.

I know of 2 ways of using it under a MS-DOS emulator: 22NICE and
CPMEMU.

I rename the 3 COM files to CPM files.

1) 22NICE

I run 22NICE, then generate the COM file with the following command
line (else, it does not work):

gencom bbcbasic dis=adm pro=z80

I then type "bbcbasic" at the system prompt, followed by *DIR:

BBC BASIC (Z80) Version 3.00
(C) Copyright R.T.Russell 1987
>*DIR
D: MERGE BBC D: ANIMAL BBC D: SORT BBC D:
SORTREAL BBC
D: F-RSER2 BBC D: F-WSER1 BBC D: F-WSTD BBC D: F-
WSER2 BBC
D: F-RAND1 BBC D: F-WESER1 BBC D: F-WESER2 BBC D: F-
RSTD BBC
D: F-RSER1 BBC D: F-RAND0 BBC D: F-RAND2 BBC D: F-
INDEX BBC

All the BBC files are UNLOCKed. I then type LOAD"ANIMAL" and get:

File not found
>

I then leave BBCBASIC, and type ATTRIB *.BBC. I get:

A R MERGE.BBC D:\TOTO\MERGE.BBC
A R ANIMAL.BBC D:\TOTO\ANIMAL.BBC
A R SORT.BBC D:\TOTO\SORT.BBC
A R SORTREAL.BBC D:\TOTO\SORTREAL.BBC
A R F-RSER2.BBC D:\TOTO\F-RSER2.BBC
A R F-WSER1.BBC D:\TOTO\F-WSER1.BBC
A R F-WSTD.BBC D:\TOTO\F-WSTD.BBC
A R F-WSER2.BBC D:\TOTO\F-WSER2.BBC
A R F-RAND1.BBC D:\TOTO\F-RAND1.BBC
A R F-WESER1.BBC D:\TOTO\F-WESER1.BBC
A R F-WESER2.BBC D:\TOTO\F-WESER2.BBC
A R F-RSTD.BBC D:\TOTO\F-RSTD.BBC
A R F-RSER1.BBC D:\TOTO\F-RSER1.BBC
A R F-RAND0.BBC D:\TOTO\F-RAND0.BBC
A R F-RAND2.BBC D:\TOTO\F-RAND2.BBC
A R F-INDEX.BBC D:\TOTO\F-INDEX.BBC

So, despite what says BBC BASIC (Z80), the BBC files in the ZIP file
are all Read-only. Ok, so I type: ATTRIB -R *.BBC and get the above
display without any "R" flag.

This time, when I type LOAD"ANIMAL" under BBC BASIC, I get:

>LOAD"ANIMAL"
>RUN

and ANIMAL.BBC works correctly. (So, as Richard Russell explained, the
problem was coming from the ANIMAL.DAT file being Read-only. Why am I
the only one to have found it?)

2) CPMEMU

CPMEMU is Jim Lopushinsky's CPM.EXE and Z80.CMD.

It uses ANSI.SYS for its screen output, so the screen does not clear
when you run BBC BASIC (Z80) that Richard Russell patched for an
ADM-3A terminal. 22NICE having an emulation of this terminal among its
possibilities, it is better suited for such a screen-dependent
program. For example, CLS now works, for the Newbies.

So, CPMEMU uses ANI.SYS and emulates WordStar's keys.

The way to run BBC BASIC (Z80) under CPMEMU is:

CPM Z80 BBCBASIC

I re-load BBC BASIC (Z80), then type *DIR:

BBC BASIC (Z80) Version 3.00
(C) Copyright R.T.Russell 1987
>*DIR
D:*MERGE BBC D:*ANIMAL BBC D:*SORT BBC
D:*SORTREAL BBC
D:*F-RSER2 BBC D:*F-WSER1 BBC D:*F-WSTD BBC D:*F-
WSER2 BBC
D:*F-RAND1 BBC D:*F-WESER1 BBC D:*F-WESER2 BBC D:*F-
RSTD BBC
D:*F-RSER1 BBC D:*F-RAND0 BBC D:*F-RAND2 BBC D:*F-
INDEX BBC

This is the BBC files straight from the ZIP file, so they are LOCKed.

However, when I type

>LOAD"ANIMAL"
>RUN

ANIMAL.BBC works correctly, no longer being disturbed by the Readonly
ANIMAL.DAT file.

Conclusion: It is me, who has an objective view of BBC BASIC (Z80),
who found how to use it under the 2 most-often used CP/M emulators.
Apparently, some BBC BASIC fans could not care less about its future
under CP/M.

Why am I the only one to find bugs?

Axel Berger

unread,
Dec 2, 2009, 7:09:00 AM12/2/09
to
*Mr Emmanuel Roche, France* wrote on Wed, 09-12-02 09:18:

>That's why I think that the most vocal BBC BASIC fans are just Newbies,
>who only know it, so simply cannot understand that there are very
>different PLs, out there, like Lisp/Logo, APL, or MUMPS.

Come on now, you yourself are one of the most vocal BASIC advocates in
this group and this thread is all about different flavours of BASIC,
not BASIC versus other languages. I do not know the facts, but the
point made to you was, that BBC is a full fledged and not a tiny BASIC,
so either refute that or concede it but don't try to change the topic.

Axel Berger

unread,
Dec 3, 2009, 1:44:00 AM12/3/09
to
*Mr Emmanuel Roche, France* wrote on Wed, 09-12-02 20:16:
>According to my English dictionary

The standard ISO 2108 was passed in 1972. Your dictionary was published
when? And please remember it always takes time for new developments to
percolate down into standard dictionaries.

>Thanks to this number, one can find the exact references

Wasn't that the point of your question? What are you grouching about?

Mr Emmanuel Roche, France

unread,
Dec 3, 2009, 9:16:28 AM12/3/09
to
Hello, Axel!

> The standard ISO 2108 was passed in 1972. Your dictionary was published
> when? And please remember it always takes time for new developments to
> percolate down into standard dictionaries.

My personal copy of the "Robert-Collins Dictionnaire Français-Anglais
Second Edition" is dated 1987. But I should have said the "MLA
Handbook for Writers of Research Papers" (Third Edition, Joseph
Gibaldi and Walter Achtert, The Modern Language Association of
America, 1988). According to this classic text:

References to an entire book should include the following elements:

author(s) or editor(s)
the complete title
edition, if indicated
place of publication
the shortened name of the publisher
date of publication
medium of publication

> Wasn't that the point of your question? What are you grouching about?

Yes, exactly: I asked the reference, and instead Peter gave the
ISBN-10. So, to be clear, I published the exact full reference. I am
not "grouching": Are you able, merely by glancing at an ISBN number,
to give the title and author of a book? Not me. I am human. "Humanum
Errare Est... Perseverare Diabolicum!"

Tom Lake

unread,
Dec 3, 2009, 5:17:45 PM12/3/09
to
> Yes, exactly: I asked the reference, and instead Peter gave the
> ISBN-10. So, to be clear, I published the exact full reference. I am
> not "grouching": Are you able, merely by glancing at an ISBN number,
> to give the title and author of a book? Not me. I am human.

Since you ARE human, you should be able to search for the ISBN yourself.
No need to waste space in a group listing all those things when you only
need one number to find out any further info you require.

Tom Lake

Mr Emmanuel Roche, France

unread,
Dec 4, 2009, 3:42:03 AM12/4/09
to
Hello, Axel!

> Come on now, you yourself are one of the most vocal BASIC
> advocates in this group and this thread is all about different
> flavours of BASIC, not BASIC versus other languages. I do
> not know the facts, but the point made to you was, that BBC
> is a full fledged and not a tiny BASIC, so either refute that
> or concede it but don't try to change the topic.

Ho, no! Not you, Axel! <sigh> It is amazing how this thread refuses to
die.

Ok. I have a few comments.

1) I am not "one of the most vocal BASIC advocates in this group". I
never said that you must drop X, Y, or Z and use only BASIC. Me,
despite starting with COBOL, I found nothing simpler and easy to use
than Mallard BASIC (MBASIC's line editor was made for an ASR-33
Teletype. Some people were fans of Turbo Pascal's full-screen file
editor.). Maybe the fact that I am the only one to publish (BASIC)
programs in this Newsgroup led you to believe this. On microcomputers,
there is no doubt that BASIC is the "standard" PL.

2) "this thread is all about different flavours of BASIC, not BASIC
versus other languages." Well, as far as I know, this thread is about
BBC BASIC (Z80) specifically. My idea, when I mentioned "different
PLs" was that some BASICs are so different that they can be viewed as
different languages. That's why I cited "Lisp/Logo, APL, or MUMPS": to
give an example.

Demonstration: CBASIC Compiler versus MBASIC. SBASIC versus Mallard
BASIC. BBC BASIC (Z80) versus COMAL. They are so different that, at
first glance, it is difficult to believe that they are all BASICs!

3) "the point made to you was, that BBC is a full fledged and not a


tiny BASIC, so either refute that or concede it but don't try to
change the topic."

I have been thinking how to do it.

The big problem of BBC BASIC (Z80) is that no doc is available (and I
have searched it). So, if I say something, someone could counter:
"Just use Version 3.14". Apparently, there are dozens of versions,
each of them telling you to use the documentation of the original
Acorn BBC version... It is a zoo!

Me, each time I studied a PL, I retyped, first of all, all its paper
doc.

Of course, I could simply disassemble BBC BASIC (Z80) to know the
details, but it seems a little strange, since Richard Russell is still
alive, and is selling BBC BASIC.

And, anyway, a mere glance tells me that it is a Tiny BASIC, so why
recreate its source code?

So, the problem is how to prove it.

There are official "standards" defining BASIC but, by the time they
were announced, MBASIC was the "de facto" standard. So, in a sense,
the only way to judge a BASIC is to compare it to MBASIC, and see how
it differs.

And BBC BASIC (Z80) differs greatly, since it contains an in-built
Z-80 assembler.

So, the problem is not simple.

If someone has an idea of how I should proceed, I would be interested.

Fortunately, I have the doc of Tiny BASIC, since I recreate "Palo Alto
Tiny BASIC Version 3.0" and the original "Tiny BASIC Extended (TBX)".

(Several years ago, I asked for a volunteer, to scan a "Test Suite for
ANSI Minimal BASIC": Nobody offered to help me. Since then, I retyped
about 2 dozens of those (120) programs, but I have found a problem:
when I run them, my BASIC converts the source code. So, by the time
they run correctly, I no longer have the original text... So, I will
be obliged to restart from "square one"... But this is the only "Test
Suite" for a BASIC that I know, and I have it. Apparently, I am the
only one interested in proving that a BASIC interpreter runs
correctly.)

Axel Berger

unread,
Dec 3, 2009, 1:37:00 PM12/3/09
to
*Mr Emmanuel Roche, France* wrote on Thu, 09-12-03 15:16:

>Are you able, merely by glancing at an ISBN number, to give the title
>and author of a book?

No, but I'm able to find the book, which I may not be with all those
other data, as all of them can, in certain cases, turn out to be
ambiguous.

Tom Lake

unread,
Dec 4, 2009, 8:05:19 AM12/4/09
to
> (Several years ago, I asked for a volunteer, to scan a "Test Suite for
> ANSI Minimal BASIC": Nobody offered to help me. Since then, I retyped
> about 2 dozens of those (120) programs, but I have found a problem:
> when I run them, my BASIC converts the source code. So, by the time
> they run correctly, I no longer have the original text... So, I will
> be obliged to restart from "square one"... But this is the only "Test
> Suite" for a BASIC that I know, and I have it. Apparently, I am the
> only one interested in proving that a BASIC interpreter runs
> correctly.)
>
> Yours Sincerely,
> Mr. Emmanuel Roche, France

I must have missed the invitation. I'd certainly be willing to
help you in any way I can. What would you like me to do?
I have scanners and OCR programs available as well as
a full version of Adobe Acrobat so I can edit PDFs. Just let me know
how I can help. I am definitely interested in a test suite for BASIC.

How about one for full ANSI/ISO BASIC as well?

Tom Lake

Katzy

unread,
Dec 4, 2009, 8:32:01 AM12/4/09
to
Hello.

Mr Emmanuel Roche, France wrote in message
<5dd414e9-7510-4ce8...@g12g2000yqa.googlegroups.com>...

>2) "this thread is all about different flavours of BASIC, not BASIC
>versus other languages." Well, as far as I know, this thread is about
>BBC BASIC (Z80) specifically. My idea, when I mentioned "different
>PLs" was that some BASICs are so different that they can be viewed as
>different languages. That's why I cited "Lisp/Logo, APL, or MUMPS": to
>give an example.

It started how to Lock/Unlock the files in BBC BASIC - CPM version.

BTW, did you write this in the Wiki about BBC BASIC?

<quote>
BBC BASIC is a programming language, developed in 1981 as a native programming
language for the MOS Technology 6502 based Acorn BBC Micro home/personal
computer, mainly by Sophie Wilson. It is a version of the BASIC programming
language adapted for a U.K. computer literacy project of the BBC.

BBC BASIC, based on the older Atom BASIC (for the Acorn Atom), extended
traditional BASIC with named procedures and functions, REPEAT-UNTIL loops, and
IF-THEN-ELSE structures inspired by COMAL.
</quote>

Bye, Katzy.


Katzy

unread,
Dec 4, 2009, 9:13:51 AM12/4/09
to
Hello.

Richard Russell wrote in message ...

On Dec 2, 4:09 pm, "Katzy" <ka...@noname.at.all> wrote:
> No, it is not from the Torch BBC BASIC manual, it is called the Z80 BBC
BASIC
> user guide.

-In that case it's for the Acorn Z80 Second Processor.

Now I wonder what is the difference between Z80BBCBASIC and BBCBASIC(Z80).

The BBC computer did need the Z80 to run CP/M on it. CP/M was delivered on a
floppy.

From the Z80 Second Processor User Guide:

The Z80 pack in action

Programming languages
BBC BASIC is the advanced version of BASIC that was developed for the BBC
Microcomputer. BASIC is by far the most popular of microcomputing languages,
probably because it's particularly easy to learn and use. There is a full
reference guide to the BBC version in the User Guide which comes with every
BBC Microcomputer.
The BBC BASIC in the Z80 pack is slightly different from ordinary BBC BASIC,
because there are essential hardware differences be-tween the Z80 and the BBC
Microcomputer's processor. But the two BASICs are compatible, and the guide to
BBC BASIC included in the Z80 pack gives details of the differences.

Professional BASIC runs programs written in a dialect of BASIC similar to
those of the industry-standard BASICs developed by Microsoft and Digital
Research. These are the dialects most com-monly used for business software.
You'll be likely to use BBC BASIC to write your own software, and Professional
BASIC to run programs written professionally by others.

CIS COBOL, developed by the British company Micro Focus, is the leading
microcomputer version of COBOL. This is the language that has proved itself
over the last twenty years with commercial applica-tions on large mainframe
computers. The CIS COBOL in your Z80 pack includes two useful programming
aids: ANIMATOR, an award-winning debugging tool which takes you step by step
through your COBOL program on the screen, and FORMS2, an aid to designing
data-entry screens.

Bye, Katzy.


Mr Emmanuel Roche, France

unread,
Dec 4, 2009, 12:57:06 PM12/4/09
to
Hello, Tom!

1)

> Since you ARE human, you should be able to search for the ISBN
> yourself. No need to waste space in a group listing all those things
> when you only need one number to find out any further info you require.

I am a book worm. I have been in countless libraries and dealt with
countless librarians. They have always asked me the full reference of
a book. And, if you make one error in one digit, how do you refind the
book?

2)

> I must have missed the invitation.  I'd certainly be willing to
> help you in any way I can.  What would you like me to do?
> I have scanners and OCR programs available as well as
> a full version of Adobe Acrobat so I can edit PDFs.  Just let
> me know how I can help.  I am definitely interested in a test
> suite for BASIC.

Really? It was the "WANTED: Volunteer to Scan Old Programs" thread,
published the 18 March 2008 on the comp.os.cpm Newsgroup. If
interested, I would advice you to read the full thread (46 messages!),
to see the comments. By the way, it is not 120 programs, but 208...

> How about one for full ANSI/ISO BASIC as well?

You could search on your side but, from what I remember (I searched
the history of BASIC, and found one message by Kemeny on this
subject), by the time they finally agreed on "ANSI Minimal BASIC",
MBASIC had become the "de facto" standard. It was furnished with
almost every Z-80 microcomputer or, thanks to CP/M, could be copied
very easily. So, when they saw that it was the "standard", and
remembering how long it had taken them to agree on something like the
4K version of Altair BASIC, they simply dropped the matter.

I could be wrong, but this is what I remember.

So, there is a "Test Suite" only for "Minimal BASIC". (Even better: I
found "Version 2" of it... "Version 2 of anything computer-related is
the first to work.")

Richard Russell

unread,
Dec 4, 2009, 1:45:52 PM12/4/09
to
On Dec 4, 2:13 pm, "Katzy" <ka...@noname.at.all> wrote:
> Now I wonder what is the difference between Z80BBCBASIC and BBCBASIC(Z80).

There is no difference!

The BBC Microcomputer was one of the first home computers to make a
clear distinction between the 'language' (e.g. BBC BASIC) and the
'Operating System' (e.g. Acorn MOS, CP/M, Windows etc.). On the BBC
Micro they even occupied different ROMs and address spaces (the
language from 0x8000 to 0xBFFF and the OS from 0xC000 to 0xFBFF). You
could change the language by (for example) replacing the BASIC ROM
with a COMAL ROM.

In BBC BASIC, as with any programming language, some statements/
commands are intrinsic to the language (e.g. FOR) and others have a
dependency on the OS (e.g. OSCLI). So in the case of BBC BASIC (Z80),
statements that are intrinsic to the language can be looked up in the
documentation for *any* version (e.g. the Einstein version or the
Torch version or the generic CP/M version). However commands which
depend on the OS for their operation must be looked up in the
documentation for the specific version that contains them.

So if you're using the documentation for the Acorn Z80 Second
Processor version of BBC BASIC you must appreciate that, on any other
platform, it applies only to the statements/commands that are
intrinsic to BASIC. The commands which were being discussed earlier
in the thread (e.g. *LOCK, *UNLOCK) depend on the OS, and therefore
the documentation for one version won't (necessarily) be relevant to
another version.

Richard.
http://www.rtrussell.co.uk/

Tom Lake

unread,
Dec 5, 2009, 2:29:38 AM12/5/09
to
>> I must have missed the invitation. I'd certainly be willing to
>> help you in any way I can. What would you like me to do?
>> I have scanners and OCR programs available as well as
>> a full version of Adobe Acrobat so I can edit PDFs. Just let
>> me know how I can help. I am definitely interested in a test
>> suite for BASIC.
>
> Really? It was the "WANTED: Volunteer to Scan Old Programs" thread,
> published the 18 March 2008 on the comp.os.cpm Newsgroup. If
> interested, I would advice you to read the full thread (46 messages!),
> to see the comments. By the way, it is not 120 programs, but 208...

OK. I read the thread and my offer still stands. If you need programs
scanned send me good copies of the documents.

Tom Lake
--
"I'd rather be doing something than having a meeting and
talking about doing something."
- Me

Mr Emmanuel Roche, France

unread,
Dec 5, 2009, 3:37:23 AM12/5/09
to
Tom Lake wrote:

> OK.  I read the thread and my offer still stands.  If you need
> programs scanned send me good copies of the documents.

I re-found it! Whew! I have so much stuff that I needed more than one
hour to refind it...

Ok. Tom, you must be aware that I have already been "burned". Many
years ago, I sent my only copy of the "DR Graph User's Guide" (to an
American), and never received it back...

Me, I have some long-term interests (like COMAL) but I lack some time
and money to finish some of my programming projects.

In this case, since it is the source code of programs, I think that it
should be easy to scan and OCR them. (The characters are huge.)

The problem is that there are 208 programs.

The book is huge, compared to a novel. 484 pages of 11" paper.

It would be stupid to photocopy it, since most programs fit on 2
pages.

The way I see it, the only solution is to rip apart delicately a page,
scan and OCR it, then repeat the process. (Each program appears twice:
1) the source code, and 2) what it outputs. So, grosso modo, you have
484 / 2 = 242 pages to scan.)

What interests me is the "Test Suite", not the manual. So, I don't
care if this rarity is ripped apart.

However, I would like you to resend it to me, so I can put it next to
Volume 1, and check the outputs with my BASICs.

Americans are not famous for being able to do this kind of "grunt
work".

So, I am asking you to publish a public message in the comp.os.cpm
Newsgroup, stating that you promise to send me back this manual, once
you have finished scanning and OCR it. I just hope that you will be
able to do it in a few months.

There are 208 programs on roughly 242 pages. Unfortunately, most of
them have some lines on the next page. So, the way I see it, you scan
and OCR one page, save it in ASCII, scan and OCR the missing lines,
add them to the ASCII file, then repeat 208 times.

If you manage to do 10 files per day, then you could do it in a month.

The problem will be how much free time you have, and when during the
day.

Me, I don't watch television, so I have all my evenings free. This is
how I retyped all those CP/M manuals, during the Winter nights. I did
not see the time pass.

But, since you are American, I am not sure that you will manage to do
it.

(I can receive mails from this spam box. If you agree, send me your
postal address, and I will send you the manual next Monday.)

pe...@nospam.demon.co.uk

unread,
Dec 5, 2009, 5:23:02 AM12/5/09
to
In article <31dbd2a4-0677-4c9b...@d21g2000yqn.googlegroups.com>
roch...@laposte.net "Mr Emmanuel Roche, France" writes:

[snip response to Tom Lake's kind offer]

Perhaps I read this post as a native English speaker and
understand things that were not intended, but it came across as a
crude and rude attack on "Americans".

Tom has apparently made a bona fide offer to you, Emmanuel, and
all you can do is respond in such language that I would be not at
all surprised if that offer be withdrawn.

Regulars in this group understand, I believe, your passion for
CP/M in all its flavours and your dedication to its preservation
but help is more likely to be forthcoming from folk who feel
respected.

Please be aware that there are good and bad (and many middle)
people of all nations.

And you might care to remember that CP/M was conceived and
written by an "American"...

Sincerely,
Pete
--
"We have not inherited the earth from our ancestors,
we have borrowed it from our descendants."

James Moxham (Dr_Acula)

unread,
Dec 5, 2009, 6:34:35 AM12/5/09
to
BBC Basic looks fun. The BBC was quite a popular computer here in
Australia in the early 1980s, particularly in schools. From BBC Basic
I learnt two important things that I have used ever since:

1) Structured Programming
2) How to Touch Type at 60 words per minute.

I don't like instruction manuals. Like most males, I never read them.
I prefer to jump in with a real world example and learn from the
instructions being used in a real program.

Peter Schorn posted something a few days ago about the BBC Basic
example on the Altair SIMH. So I thought I would run this on the
N8VEM:

N8VEM Single board computer
32K-1M EPROM & Permanent RAM
CP/M drives are A, B and F
Essential files on drive B
CP/M V2.2C
SuperSUB V1.1
CP/M V2.2C
A>DIR
A: PIP COM : XMODEM COM : XMODEMF COM : DIRX COM
A: SUPERSUB COM : AUTOEXEC SUB : BBCBASIC COM : TEST BAS
A: ANIMAL BBC : ANIMAL DAT : $$$ SUB
A>BBCBASIC ANIMAL
ANIMAL
Creative Computing Morristown New Jersey


Play 'Guess the Animal'
Just let me refresh my memory
Are you thinking of an animal ? Y
Does it fly? Y
Is it an insect? Y
Does it have black stripes? Y
Is it a wasp? Y
Why not try another one?


Are you thinking of an animal ? Y
Does it fly? N
Does it live in water? Y
Is it a mammal? N
Is it a fish? Y
Is it a goldfish? Y
Why not try another one?


Are you thinking of an animal ?
Animals I already know are:
bat ant goldfish canary
elephant whale robin kangaroo
seagull cat lobster crab
wasp spider octopus snake
worm dolphin anteater sparrow
duck dog frog toad
giraffe beaver otter deer
rabbit hippopotamus
mouse man
bee gnat
Room for 289 more.
Do you want to save these on disk? N
>*BYE
CP/M V2.2C
A>BBCBASIC


BBC BASIC (Z80) Version 3.00
(C) Copyright R.T.Russell 1987

>LOAD "ANIMAL"
>LIST
10 CLS:@%=10:WIDTH 0:PRINT TAB(15)"ANIMAL"
20 PRINT "Creative Computing Morristown New Jersey"''
30 REM by Nathan Teichholtz & Steve North
40 REM from an original idea by Arthur Luehrmann.
50 REM Modified by Chris Atkinson and Richard Russell.
60 :
70 ON ERROR IF ERR=17 THEN 830 ELSE PRINT:REPORT:PRINT" at line
";ERL:END
80 MAX=(HIMEM-TOP)/40
90 DIM A$(MAX)
100 PRINT "Play 'Guess the Animal'"
110 :
120 X=OPENIN("ANIMAL.DAT")
130 IF X<>0 PROCread ELSE FOR I=0 TO 3:READ A$(I):NEXT I
140 N=VAL(A$(0))
150 :
160 REM ***
170 REM MAIN CONTROL SECTION
180 REM ***
190 REPEAT
200 IF FNquery("Are you thinking of an animal ")="N" THEN 830
210 K=1
220 REPEAT
230 PROCquestion
240 UNTIL LEFT$(A$(K),2)<>"\Q"
250 A$=FNquery("Is it "+FNart(MID$(A$(K),3)))
260 IF A$="Y" THEN PRINT "Why not try another one?"'' ELSE PROCnew
270 UNTIL FALSE
280 ;
290 REM ***
300 REM NEW ANIMAL
310 REM ***
320 DEF PROCnew
330 INPUT "OK, I give up."'"Tell me what animal you were
thinking"'"of ",V$
340 V$=FNstrip(FNconvlc(V$))
350 PRINT "Please tell me a question that would"'"distinguish ";
360 PRINT FNart(V$);" from ";FNart(MID$(A$(K),3))
370 INPUT X$:X$=FNcapital(X$)
380 IF RIGHT$(X$,1)="?" THEN X$=LEFT$(X$,LEN(X$)-1)
390 A$=FNquery("For "+FNart(V$)+" the answer would be ")
400 IF A$="Y" THEN B$="N"
410 IF A$="N" THEN B$="Y"
420 Z1=VAL(A$(0))
430 A$(0)=STR$(Z1+2)
440 A$(Z1)=A$(K)
450 A$(Z1+1)="\A"+V$
460 A$(K)="\Q"+X$+"\"+A$+STR$(Z1+1)+"\"+B$+STR$(Z1)+"\"
470 ENDPROC
480 ;
490 REM ***
500 REM PRINT QUESTIONS
510 REM ***
520 DEF PROCquestion
530 Q$=A$(K)
540 C$=FNquery(MID$(Q$,3,INSTR(Q$,"\",3)-3))
550 T$="\"+C$
560 X=INSTR(Q$,T$,3)
570 Y=INSTR(Q$,"\",X+1)
580 K=VAL(MID$(Q$,X+2,Y-X-2))
590 ENDPROC
600 ;
610 REM ***
620 REM READ DATA FILE
630 REM ***
640 DEF PROCread
650 PRINT "Just let me refresh my memory"
660 Z=0
670 REPEAT INPUT #X,A$(Z):Z=Z+1
680 UNTIL EOF#X OR Z=MAX+1 OR A$(Z-1)=""
690 CLOSE #X
700 ENDPROC
710 ;
720 REM ***
730 REM PRINT NAME OF ANIMAL
740 REM ***
750 DEF PROCprint
760 PRINT TAB(10*X);MID$(A$(I),3);
770 X=(X+1) MOD 4
780 ENDPROC
790 ;
800 REM ***
810 REM LIST CONTENTS
820 REM ***
830 ON ERROR OFF
840 PRINT ' "Animals I already know are:"
850 X=0:I=0
860 REPEAT I=I+1
870 IF LEFT$(A$(I),2)="\A" THEN PROCprint
880 UNTIL A$(I)="" OR I=MAX
890 PRINT ' "Room for ";INT((MAX-I)/3);" more."
900 IF FNquery("Do you want to save these on disk")<>"Y" THEN END
910 :
920 REM ***
930 REM DUMP FILE IF REQUESTED
940 REM ***
950 IF OPENIN"ANIMAL.DAT" THEN *ERA ANIMAL.DAT
960 X=OPENOUT"ANIMAL.DAT":Z=0:IF X=0 PRINT "Directory full":END
970 REPEAT PRINT# X,A$(Z):Z=Z+1
980 UNTIL A$(Z)="" OR Z=MAX+1
990 CLOSE# 0
1000 END
1010 ;
1020 DATA 4,\QDoes it fly\N2\Y3\,\Agoldfish,\Asparrow,
1030 ;
1040 REM. NOW THE FUNCTIONS
1050 ;
1060 DEF FNart(noun$):REM Indefinite article appender
1070 IF INSTR("AEIOUaeiou",LEFT$(noun$,1)) THEN ="an "+noun$ ELSE ="a
"+noun$
1080 ;
1090 DEF FNstrip(name$):REM Article stripper
1100 name$=FNnospace(name$)
1110 LOCAL AT$,Z
1120 RESTORE 1170
1130 REPEAT Z=Z+1:READ AT$
1140 UNTIL AT$=LEFT$(name$,LEN(AT$)) OR Z=10
1150 IF Z<10 THEN name$=MID$(name$,1+LEN(AT$))
1160 =FNnospace(name$)
1170 DATA A ,AN ,THE ,a ,an ,the ,An ,The ,THe ,,
1180 ;
1190 DEF FNnospace(name$)
1200 name$=" "+name$
1210 REPEAT name$=MID$(name$,2)
1220 UNTIL LEFT$(name$,1)<>" "
1230 =name$
1240 ;
1250 DEF FNconvlc(name$)
1260 LOCAL L%,A%,B$
1270 FOR L%=1 TO LEN(name$)
1280 A%=ASC(MID$(name$,L%))
1290 IF A%<97 AND A%>64 THEN A%=A%+32
1300 B$=B$+CHR$(A%):NEXT L%
1310 =B$
1320 ;
1330 DEF FNcapital(name$)
1340 LOCAL A$
1350 name$=FNnospace(FNconvlc(name$))
1360 IF ASC(name$)<97 THEN =name$
1370 A$=CHR$(ASC(name$)-32)
1380 A$=A$+MID$(name$,2)
1390 =A$
1400 ;
1410 DEF FNquery(prompt$)
1420 LOCAL A$
1430 REPEAT
1440 PRINT prompt$;:INPUT A$:A$=LEFT$(FNcapital(A$),1)
1450 UNTIL A$="Y" OR A$="N"
1460 =A$
>
>*BYE
CP/M V2.2C
A>

There seem to be lots of examples of programs out there. If anyone has
a link to an instruction manual it would be very helpful.

James Moxham

dott.Piergiorgio

unread,
Dec 5, 2009, 6:44:20 AM12/5/09
to
pe...@nospam.demon.co.uk ha scritto:

> Perhaps I read this post as a native English speaker and
> understand things that were not intended, but it came across as a
> crude and rude attack on "Americans".
>
> Tom has apparently made a bona fide offer to you, Emmanuel, and
> all you can do is respond in such language that I would be not at
> all surprised if that offer be withdrawn.
>
> Regulars in this group understand, I believe, your passion for
> CP/M in all its flavours and your dedication to its preservation
> but help is more likely to be forthcoming from folk who feel
> respected.
>
> Please be aware that there are good and bad (and many middle)
> people of all nations.
>
> And you might care to remember that CP/M was conceived and
> written by an "American"...

I fully concur; And I point that the key in understanding U.S. is not
"united" but "states"

More broadly, the issue here is that nothing can substituite a
face-to-face conversation (and a third eye...) in assessing people, so I
can understand the doubt of M. Roche, but (as I pointed in previous
threads, BTW), if "rude and crude attack" are there, I guess is because
of a not stellar word choice and/or rendering of his thinking in English.

Hope to have contribuited (better ?) to cooling the situation, and
Best regards from Italy,
Dott. Piergiorgio.

Ole Christensen

unread,
Dec 5, 2009, 7:49:16 AM12/5/09
to
Mr Emmanuel Roche, France skrev:

> Me, I don't watch television, so I have all my evenings free. This is
> how I retyped all those CP/M manuals, during the Winter nights. I did
> not see the time pass.
>

Don't know if this can help You, but i do have a couple of:
"Primax Colorado Direct" flatbed scanners, (not made in US of A),
from the recycling bin, (as new)...
(should work with Win98 & older WinOS)

You can get one of them for the cost of postal.
(not that much more than letting a book cross the sea)

1: You know where Your book are,
2: Maybe You don't need to rip it up,
3: You do the scanning, "others" could help out with OCR.

<ole>

Bill Leary

unread,
Dec 5, 2009, 10:52:34 AM12/5/09
to
"Mr Emmanuel Roche, France" <roch...@laposte.net> wrote in message
news:31dbd2a4-0677-4c9b...@d21g2000yqn.googlegroups.com...

> Americans are not famous for being able to do this kind of "
> grunt work".

Actually, we kind of are. That's what production lines are all about. I
know a guy who installed dashboards in cars for forty years. And I've
worked with people who do data entry. The clerk in almost any store does
the same thing day in and day out for years at a time. Guys who built
ships, when we were a major ship builder, did their jobs over and over. My
father used to run printing presses. As he described it, it was a
moderately complex job, repeated to boredom. My son worked at a place that
did mass mailings. The only thing interesting, he said, was when the
machines fouled up. Another son did manual mass mailings. No machines, all
by hand. That was not only boring but painful if you didn't work out just
the right rythm.

It was actually reasonable to verify that someone you're going to send
something rare to would promise to return it. Things do happen, and you've
got a specific case of it happening to you. But the jab at American's was
unnecessary and inaccurate.

- Bill

Tom Lake

unread,
Dec 5, 2009, 10:58:00 AM12/5/09
to

>
> The problem will be how much free time you have, and when during the
> day.
>
> Me, I don't watch television, so I have all my evenings free. This is
> how I retyped all those CP/M manuals, during the Winter nights. I did
> not see the time pass.

I wouldn't feel comfortable tearing out the pages if this manual means
a lot to you. If you rip out the pages and send them to me, I'll copy them.
Don't worry about me having enough time. I only watch an hour or two
of TV a week. Plus, I have a high-speed page scanner that scans both sides
at once (8.5"x11" pages), has a 200-page sheet feeder and also performs
OCR on the fly. It shouldn't take too long to do the whole manual. Of
course I'll have to proofread it afterwards since we all know that OCR
accuracy is variable, depending on the quality of the original and the
capability of the OCR software.

Tom Lake

Peter Hill

unread,
Dec 5, 2009, 12:22:25 PM12/5/09
to
On Sat, 05 Dec 2009 13:49:16 +0100, Ole Christensen
<ole2...@newsguy.com> wrote:

>Mr Emmanuel Roche, France skrev:
>
>> Me, I don't watch television, so I have all my evenings free. This is
>> how I retyped all those CP/M manuals, during the Winter nights. I did
>> not see the time pass.
>>
>
>Don't know if this can help You, but i do have a couple of:
>"Primax Colorado Direct" flatbed scanners, (not made in US of A),
>from the recycling bin, (as new)...
>(should work with Win98 & older WinOS)

I've got 2 flatbed scanners. Both of which are useless for this task
as the volume of material means it needs an automatic document feeder.
I can see Emmanuel's reluctance to cut or unbind the documents, that
means more specialist museum "archival" scanners are needed.

http://www.bookeyeusa.com/products_BE_planetary.htm
http://www.digitise-it.com/services/bookscan.html

You may as well just get the highest res digital camera and make a
frame for it. Still no auto feed, that needs a robot.

http://library.stanford.edu/depts/dlss/bookscanning/

>You can get one of them for the cost of postal.
>(not that much more than letting a book cross the sea)
>
>1: You know where Your book are,
>2: Maybe You don't need to rip it up,
>3: You do the scanning, "others" could help out with OCR.
>
><ole>

Mr Emmanuel Roche, France

unread,
Dec 5, 2009, 12:42:01 PM12/5/09
to
Hello, James!

> I don't like instruction manuals. Like most males, I never read
> them. I prefer to jump in with a real world example and learn
> from the instructions being used in a real program.

> (....) If anyone has a link to an instruction manual, it would be
> very helpful.

Ok. English is not my mother tongue.

If I understand you well, you never read instruction manual, but find
them very helpful...

Maybe you are watching the picture on the cover?

(Are you sure that you don't mix with "Playboy"?)

Mr Emmanuel Roche, France

unread,
Dec 5, 2009, 12:45:17 PM12/5/09
to
Hello, Ole!

Many thanks for your kind offer, Ole, but I have no time and money:
that's why I was looking for a volunteer.

(In addition, I have had very bad experiences connecting anything to
my Windows computer.)

Mr Emmanuel Roche, France

unread,
Dec 5, 2009, 12:50:29 PM12/5/09
to
Hello, Bill!

Ok. Bill, understand me well: I don't want to start a "flame war". Ok?
I just react to the following:

> Actually, we kind of are.  That's what production lines are all about.

The only slight problem with the above sentence is that, for decades,
the Americans have been sending the production of their goods in
China...

Ever heard the expression "Factory of the world"?

Which country does this designate?

(I am a child of World War II, so, yes, I know that the USA broke all
previous records during the war (In France, it was the same during
World War I.). But that was 60 years ago. Since then, history has
changed. ("The end of history".))

Mr Emmanuel Roche, France

unread,
Dec 5, 2009, 12:53:15 PM12/5/09
to
Hello, Tom!

1) I did not see "I promise to send back his rare ANSI manual to
Emmanuel Roche, as soon as I finish to scan and OCR it, as quickly as
possible."

2) I did not receive any postal address in the spam box.

You have until Monday morning to think.

Mr Emmanuel Roche, France

unread,
Dec 5, 2009, 1:03:07 PM12/5/09
to
Hello, Peter!

> I've got 2 flatbed scanners. Both of which are useless for this task
> as the volume of material means it needs an automatic document feeder.
> I can see Emmanuel's reluctance to cut or unbind the documents, that
> means more specialist museum "archival" scanners are needed.

Many thanks for your offer.

"volume of material" There are only about 250 pages. The last time I
counted, I had retyped more than 5,000 pages of manuals. And this was
the easy part: the real difficulty is proof-reading them, since it
cannot be automatized.

Finally, since they deal with "ANSI Minimal BASIC", they have no
value.

> You may as well just get the highest res digital camera and make a
> frame for it. Still no auto feed, that needs a robot.

Hahaha! A robot! For such a simple job!

Ok. Let me give you a clearer idea of this manual. There are 484 pages
(that is to say: 242 sheet) of US 11" pages. They are simply glued
("perfect binding").

There is almost one inch of white space all around the text which,
being a program, sits mainly on the left side.

The characters are really huge (10CPI?) and computer produced.

So, I think that someone used to a scanner/OCR program should be able
to scan/OCR it quite easily.

The main problem is the size: 208 programs.

(I checked: it is not on BitSavers Web site.)

Tom Lake

unread,
Dec 5, 2009, 2:03:36 PM12/5/09
to

"Mr Emmanuel Roche, France" <roch...@laposte.net> wrote in message
news:49f63590-c100-444d...@p32g2000vbi.googlegroups.com...

I can't promise anything until you let me know if you will
do the unbinding rather than sending the book to me to
do it.

Tom Lake

Bill Leary

unread,
Dec 5, 2009, 10:16:41 PM12/5/09
to
I figured someone to respond mentioning SEA.

But I meant what I said.

All the examples I gave, except my father (since he's been retired 20
years), were current activities going on right now. And lots more like
them. Stuff got off-shored because the labor was cheaper, not because we
wouldn't do it. Quite a lot of us do still do that sort of work. Two of my
three kids do, and quite a lot of their friends as well.

I specifically didn't mention WWII because it was far too obvious.

- Bill

"Mr Emmanuel Roche, France" <roch...@laposte.net> wrote in message

news:e3d10716-a118-4569...@p30g2000vbt.googlegroups.com...

Mr Emmanuel Roche, France

unread,
Dec 6, 2009, 2:51:41 AM12/6/09
to
Tom Lake wrote:

> I can't promise anything until you let me know
> if you will do the unbinding rather than sending
> the book to me to do it.

??? What a curious demand! Hahaha!

Ok. Please, wait.

Mr. Emmanuel Roche, France

Mr Emmanuel Roche, France

unread,
Dec 6, 2009, 3:42:07 AM12/6/09
to
Ok. I am back.

Done. All the pages are now free. By comparing my 2 messages, you will
see how long it took me.

There are many ways to bind a book, but the most common methods are:
edition binding (also known as hardcover or case binding), perfect
binding (widely used for inexpensive paperback books), and mechanical
binding (spiral or plastic, for manuals and textbooks).

In the case of the ANSI Test Suite, 29-years old, the glue had
hardened. In the middle, some pages were starting to come loose. So, I
started from the middle, and tore off delicately the pages, one by
one, until the extremities.

It will be even possible to re-glue the book.

Axel Berger

unread,
Dec 5, 2009, 1:25:00 PM12/5/09
to
*Mr Emmanuel Roche, France* wrote on Sat, 09-12-05 09:37:

>If you manage to do 10 files per day, then you could do it in a month.

Are you nuts? I have dome up to 200 pages per hour without harming the
book on my book scanner. Making a decent PDF takes another three
quarters or less and sending that through my OCR doesn't require my
attention. Proof reading is your fort�, isn't it?

My offer to help in this way stands too, but I would require a little
bit of general interest and not just an audience of one.

Tom Lake

unread,
Dec 6, 2009, 5:27:01 AM12/6/09
to

"Mr Emmanuel Roche, France" <roch...@laposte.net> wrote in message
news:ab603c45-fb36-46f3...@p32g2000vbi.googlegroups.com...

OK! Now I promise to send the book back to you after scanning it.
I'm sending you a private email with my address.

Tom Lake

Axel Berger

unread,
Dec 6, 2009, 4:22:00 AM12/6/09
to
*Mr Emmanuel Roche, France* wrote on Sat, 09-12-05 19:03:

>> I've got 2 flatbed scanners. Both of which are useless for this task
>> as the volume of material means it needs an automatic document feeder.

I can't find the referenced message, so I'll have to link to this one.

I disagree. I have scanned 500 page books on my book scanner, not a
traditional flatbed with a frame all round, because that means opening
the books fully and hurting them a lot.

I do agree a sheet feeder would be much more comfortable whrerever
feasable.

N:B: I have just ordered an A3 scanner as the pages from my mother's
old photo albums are just too big for my A4 one. I offer doing a
limited amount of work for the cause on that too.


Mr Emmanuel Roche, France

unread,
Dec 7, 2009, 5:19:22 AM12/7/09
to
Tom Lake wrote:

> OK!  Now I promise to send the book back to you after
> scanning it. I'm sending you a private email with my address.

I am back from the Post Office.

- "Does it contain valuable things?"
- "A pre-IBM PC computer manual."
- "Then, it is worth nothing."
- "I see that you are knowledgeable about computers..."

So, the future destiny of this "Test Suite for Minimal BASIC" now
rests on the shoulders of Tom Lake.

Tom Lake

unread,
Dec 7, 2009, 7:03:52 AM12/7/09
to

> I am back from the Post Office.
>
> - "Does it contain valuable things?"
> - "A pre-IBM PC computer manual."
> - "Then, it is worth nothing."
> - "I see that you are knowledgeable about computers..."
>
> So, the future destiny of this "Test Suite for Minimal BASIC" now
> rests on the shoulders of Tom Lake.

I am humbled. I just hope my knees hold out!
Oh yeah. About Americans being so lazy: Who is it that
takes about two or three months vacation a year? I've never
seen a country with more excuses for a day off than France!

Tom "Proud to be an American" Lake


Mr Emmanuel Roche, France

unread,
Dec 7, 2009, 10:06:31 AM12/7/09
to
Tom Lake wrote:

> I am humbled.  I just hope my knees hold out!
> Oh yeah.  About Americans being so lazy:  Who is it
> that takes about two or three months vacation a year?
>  I've never seen a country with more excuses for a day
> off than France!

Yes, you can be. I did not know that your shoulders were placed at the
level of your knees. I never said that Americans are lazy:

> Americans are not famous for being able to do this kind
> of "grunt work".

Meaning: this is a very difficult task to do, by hand. I know: I
retyped two dozens of those programs. Each time, I simply abandoned.

As for the "about two or three months vacation a year" most French
people only have one month. It is pupils that have 3 months off: July
and August, and several weeks off during the year. The historical
reason was that, before World War I, 80% of the French population was
peasants, and children were helping them during the harvests, the most
productive months of the year. As a result, teachers also have 3
months of vacations per year.

Many person have signaled that this custom was contrary to logic:
Normally, you work during Summer, and rest during the Winter. With
this "school calendar", it is the reverse: children work a lot during
Winter, and do nothing during Summer... Crazy!

Especially now, when less than 3% of the French population is
peasants.

Most people are living in cities, now, and "tractors" have been used
since World War II. Only a few lunatics still farm with animals.

Finally, if you "have never seen a country with more excuses for a day
off than France!" that means that you did not travel a lot.

Even better: according to historians, when Rome ruled (Remember, Roma?
Its empire was bigger than Europe...), people were working only half
the time. The rest of the time, they were watching games at the
Coliseum, and were getting their daily bread for free... ("Panem et
Circenses")

According to some, the USA is the only "super power" on Earth, yet I
don't recall them providing games (television or films) and food
(bread) for free to its population. Especially now.

Tom Lake

unread,
Dec 14, 2009, 9:34:43 PM12/14/09
to
> Meaning: this is a very difficult task to do, by hand. I know: I
> retyped two dozens of those programs. Each time, I simply abandoned.

The "instant potatoes" (according to the box the manual was shipped in)
arrived. I'll get to scanning the pages tomorrow.
If the OCR doesn't work well, I'll just send you a PDF. In any case, I'll
send
the manual back ASAP.

Tom Lake

Mr Emmanuel Roche, France

unread,
Dec 15, 2009, 3:25:02 AM12/15/09
to
Hello, Tom!

> The "instant potatoes" arrived.

Good.

>  I'll get to scanning the pages tomorrow. If the OCR doesn't work well, I'll just send you a PDF.

Let us pray that your OCR will work.

>  In any case, I'll send the manual back ASAP.

This year, I will spend one week around Christmas with some members of
my family that left the original village. Since I won't be back before
the end of December, you can keep the manual until after Christmas
before sending it back to me.

You will be able to see if you got some programs correctly. There is a
(big) difference between the input and the output. I can generate
without problem the output, but I had not noticed that I needed to
keep a copy of the initial TXT (or ASC) file, before RUNning it in
BASIC. Just typing "LIST" in my BASIC was enough to convert the source
code. So, getting the input files right would have involved lots of
iteration between a file editor outside BASIC and the BASIC line
editor. Or, I could have written a variation of my "To REM or Not To
REM" article, for dealing with pure ASCII files from BASIC? In this
case, the problem is that BASIC, by default, saves its files in
"compressed" form, not ASCII. Not obvious. This "Test Suite for
Minimal BASIC" is really the result of lots of work. Good luck. (It
would be funny to run it with "Altair BASIC 4K".)

0 new messages