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

New 16-bit COMAL found

228 views
Skip to first unread message

Mr Emmanuel Roche, France

unread,
Dec 20, 2012, 6:47:20 AM12/20/12
to
Hello, everybody!

I wanted to write you just before Christmas, but something just
happened, I am busy now and will probably be more busy as Christmas
approach. So, better to write now.

Ok. Some of you may remember that, 10 years ago, I tried to ressurect
a Programming Language called COMAL. I managed to find its CP/M
version (which is both an interpreter and a compiler, using a full-
screen editor, contrary to the line editor of MBASIC): Peter Schorn
put it on his Web site.

I had also found a 16-bit version, for CP/M-86, that was used on the
Swedish "COMPIS" computer. According to several correspondents (over
the years), its manual is 355 pages. The interpreter uses both
internal and external error messages. I found how the external error
messages file was produced, and a Swede translated them into English.
I published the internal error messages, and a Swede translated them
into English.

So, 10 years ago, I was ready to disassemble this 55KB interpreter
(twice the size of MBASIC), except that I don't read Swedish, so could
not understand the 355-pages manual.

Since then, no Swede was interested enough in COMAL to translate the
manual into English.

Some time after, a Wikipedia entry for COMAL appeared, saying that the
ultimate reference for COMAL was the "COMAL 80 PROGRAMMING LANGUAGE
REPORT". I have been trying to find it ever since.

The novelty is that Ole Christensen, who publishes from time to time
in the comp.os.cpm Newsgroup, found another 16-bit version of COMAL.

This one is slightly smaller at 48KB, and was running under Concurrent
CP/M on the Danish RegneCentralen RC759 Piccoline.

http://en.wikipedia.org/wiki/Regnecentralen

All this news is brand new: I learned it just a few hours ago, just
the time to hang my computer while searching for more information.

http://datamuseum.dk/wiki/RC/Piccoline

http://rc700.dk/

So, we are back to "square one": a COMAL interpreter without any
documentation in English.

The question is: Should we continue to work on COMPIS COMAL, running
under CP/M-86, or should we work on RC759 COMAL80, running under
Concurrent CP/M?

For the last 10 years, except for the people whose messages can be
found in the comp.os.cpm Newsgroup, nobody was interested in saving
COMAL for CP/M-86.

Would there be a bigger interest for Concurrent CP/M? It is Release
3.1, the 16-bit, multi-user, multi-tasking version of CP/M Plus. One
version was running on the IBM Clown. (For some unknown reason, I
never managed to find COMAL 2 for MS-DOS.)

Yours Sincerely,
Mr. Emmanuel Roche, France

Mr Emmanuel Roche, France

unread,
Dec 20, 2012, 7:06:44 AM12/20/12
to
Just found one interesting PDF file (that did not hang my computer,
this time):

http://heinsvig.com/comal80/piccoline_computer-comal80-1985_01.pdf

Peter Dassow

unread,
Dec 20, 2012, 1:45:59 PM12/20/12
to
On 20.12.2012 12:47, Mr Emmanuel Roche, France wrote:

> [...]
> The question is: Should we continue to work on COMPIS COMAL, running
> under CP/M-86, or should we work on RC759 COMAL80, running under
> Concurrent CP/M?

With CP/M-86, because of the 80x86 CPU, you will be able to have a
separated segment for data and code - without switching banks, and so
without an additional delay. So running CP/M-86 programs on a 80x86 CPU
will be a bit faster regardless of the used CPU frequencies.
Also, most of the time these CP/M-86 versions of a program were usually
newer or higher in their version number.
So if you really insist in using this ancient programming language, with
CP/M-86 would be better, also because PCs are nowadays much easier to get.

P.S.: A 720KB CP/M-86 disk image with Comal can be found here:
http://www.df.lth.se/~pi/compis/diskar.html

Regards
Peter

glen herrmannsfeldt

unread,
Dec 20, 2012, 5:01:04 PM12/20/12
to
Peter Dassow <z8...@arcor.de> wrote:

(snip)

> With CP/M-86, because of the 80x86 CPU, you will be able to have a
> separated segment for data and code - without switching banks, and so
> without an additional delay. So running CP/M-86 programs on a 80x86 CPU
> will be a bit faster regardless of the used CPU frequencies.

If I remember right, there are signals on the 8080 to distinguish
instruction fetch from data fetch, such that a program could have
separate address spaces for instructions and data.

> Also, most of the time these CP/M-86 versions of a program were usually
> newer or higher in their version number.

I suppose no version of CP/M was designed for hardware using that
signal, but it would add interesting features to bank-switched systems.

> So if you really insist in using this ancient programming language, with
> CP/M-86 would be better, also because PCs are nowadays much easier to get.

> P.S.: A 720KB CP/M-86 disk image with Comal can be found here:
> http://www.df.lth.se/~pi/compis/diskar.html

-- glen

Peter Dassow

unread,
Dec 20, 2012, 6:26:52 PM12/20/12
to
On 20.12.2012 23:01, glen herrmannsfeldt wrote:
>> (snip)
>> With CP/M-86, because of the 80x86 CPU, you will be able to have a
>> separated segment for data and code - without switching banks, and so
>> without an additional delay. So running CP/M-86 programs on a 80x86 CPU
>> will be a bit faster regardless of the used CPU frequencies.
>
> If I remember right, there are signals on the 8080 to distinguish
> instruction fetch from data fetch, such that a program could have
> separate address spaces for instructions and data.

All the 8080/Z80 designs I know will use memory bank switching,
especially with CP/M Plus aka 3.0 - a theoretical approach like what you
described is not really worth to be mentioned, if not used in reality.
Believe me, a 80x86 system (later CPU designs reaches more than 4 GHz, a
modern Z80 system 50MHz max - if an eZ80F91 is used) is faster, and
would be much easier to obtain.
If he just asks for usability/probability of usage, I guess I am 100%
right in my assumptions.

Regards
Peter

Ole Christensen

unread,
Dec 20, 2012, 7:15:05 PM12/20/12
to
On 2012-12-20 19:45, Peter Dassow wrote:
> On 20.12.2012 12:47, Mr Emmanuel Roche, France wrote:
>
>> [...]
>> The question is: Should we continue to work on COMPIS COMAL, running
>> under CP/M-86, or should we work on RC759 COMAL80, running under
>> Concurrent CP/M?
>
> With CP/M-86, because of the 80x86 CPU,

Now the "80" or "-80" in the name of Comal don't
point to any last numbers on any Intel CPU,...

Comal80 / Comal-80 is a language standard,...

> P.S.: A 720KB CP/M-86 disk image with Comal can be found here:
> http://www.df.lth.se/~pi/compis/diskar.html

Of witch i'm sure works well ON COMPIS hardware,...
<ole>


Peter Dassow

unread,
Dec 21, 2012, 9:36:34 AM12/21/12
to
On 21.12.2012 01:15, Ole Christensen wrote:
> On 2012-12-20 19:45, Peter Dassow wrote:
>> On 20.12.2012 12:47, Mr Emmanuel Roche, France wrote:
>>
>>> [...]
>>> The question is: Should we continue to work on COMPIS COMAL, running
>>> under CP/M-86, or should we work on RC759 COMAL80, running under
>>> Concurrent CP/M?
>>
>> With CP/M-86, because of the 80x86 CPU,
>
> Now the "80" or "-80" in the name of Comal don't
> point to any last numbers on any Intel CPU,...
>
> Comal80 / Comal-80 is a language standard,...
>

Why continuing such a useless discussion about things, I never said ?
This is my last post related to it.
I know what Comal-80 is, there is also Algol-68 a.s.o., it's not always
related with "8080"/"Z80". Why do you mention this ?

If for you CP/M-86 and Concurrent CP/M does not have any difference in
terms of the used CPU, you will be right.
But Comal-80 was also issued for CP/M-80. NO THATS NOT THE REASON IT WAS
NAMED COMAL-80 I KNOW. Please do not repeat this again.
So if Emmanuel have also these 8-bit implementations in mind, he should
forget them. That was all I wanted to say.

Have a merry christmas and a happy new year, regardless of that.

Mr Emmanuel Roche, France

unread,
Dec 27, 2012, 5:50:45 PM12/27/12
to
Mr Emmanuel Roche, France wrote:

> The question is: Should we continue to work on COMPIS COMAL, running
> under CP/M-86, or should we work on RC759 COMAL80, running under
> Concurrent CP/M?

Apparently, RC759 COMAL80 is running under any version of Concurrent
after Concurrent CP/M Release 3.1.

The only Danish-specific stuff found so far is:

Linje for lang
Ulovligt tegn(Ulovligt linjenummer
Stakoverl|b
Variabel
Fejl i indicering
Operand
Ulovlig type
Syntaks fejl
Fejl i konstant
Navn for langt
Navn Ulovlig kommando$
Ikke implementeret
Rekursion
Ikke mere plads$
For mange variable forventet

M.O.B. i L.

unread,
Mar 31, 2013, 5:32:59 AM3/31/13
to
Den torsdagen den 27:e december 2012 kl. 23:50:45 UTC+1 skrev Mr Emmanuel Roche, France:
> Mr Emmanuel Roche, France wrote:
> The only Danish-specific stuff found so far is:
>
I translated them to English after the equal sign.
>
> Linje for lang = Line too long
>
> Ulovligt tegn(Ulovligt linjenummer = Unallowed character(Unallowed line number
>
> Stakoverl|b = Stack overflow
>
> Variabel = Variable
>
> Fejl i indicering = Error in indexing
>
> Operand = Operand
>
> Ulovlig type = Illegal type
>
> Syntaks fejl = Syntax error
>
> Fejl i konstant = Error in constant
>
> Navn for langt = Name too long
>
> Navn Ulovlig kommando$ = Name Illegal command
>
> Ikke implementeret = Not implemented
>
> Rekursion = Recursion
>
> Ikke mere plads$ = No more space
>
> For mange variable forventet = Too many variables expected

roch...@laposte.net

unread,
Apr 1, 2013, 3:51:12 PM4/1/13
to
Hello, "M.O.B. i L."!

(Are you a fan of Jules Vernes? Do you remember the motto of the "Nautilus" of Captain Nemo in the classic 1870 "Twenty thousand leagues under the sea" ?)

1) Are you Danish?

2) If so, would you be interested in helping me resurrect this COMAL ?

I was told that there is a thread in Danish talking about the various COMAL interpreters made at the time.

So, the first thing to do would be to try to find someone knowledgeable about all those versions (or translate into English a summary of the thread), and especially this Concurrent CP/M version (since nobody is interested in the CP/M-86 version of the Swedish Compis).

Meanwhile, I made a quick study of the program. The only particularity that I saw (except all those unusual Concurrent CP/M system calls) is that the program uses many inline jump tables. The problem is that I have not understood, so far, the mechanism used to indicate the last jump.

Except that, I am pretty sure that I am able to recreate the source code.

So, of course, it would be interesting to know if the source code of this version has been lost. Else, a few hours of work will be enough to create a source file recreating the original file.

You translated into English the only Danish-specific messages so, all that remains to do is find a copy of its original documentation and, if possible, its source code.

I have never recreated a 48-Kb program (twice the size of MBASIC) and especially under Concurrent CP/M. I have no doubt that I am able to do it, but I will need as many information as possible, coming from Denmark.
0 new messages