COMAL Article from "FOGHorn" Magazine - CP/M

This is a discussion on COMAL Article from "FOGHorn" Magazine - CP/M ; COMALFOG.TXT ------------ - "A Review of CP/M COMAL" Ray Carter "FOGHorn", Vol.VII, No.6, March 1988, p.18 (Retyped by Emmanuel ROCHE.) Residing, as we do, on the "trailing edge of technology", we are sometimes overlooked when software is developed. We have, ...

+ Reply to Thread
Page 1 of 2 1 2 LastLast
Results 1 to 20 of 30

Thread: COMAL Article from "FOGHorn" Magazine

  1. COMAL Article from "FOGHorn" Magazine

    COMALFOG.TXT
    ------------

    - "A Review of CP/M COMAL"
    Ray Carter
    "FOGHorn", Vol.VII, No.6, March 1988, p.18

    (Retyped by Emmanuel ROCHE.)


    Residing, as we do, on the "trailing edge of technology", we are
    sometimes overlooked when software is developed.

    We have, however, been fortunate in the area of programming
    languages, as evidenced by the availability of such top notch
    products as Turbo Pascal, FTL Modula 2, Turbo Modula 2, and
    older but still good products like Microsoft FORTRAN.

    With the plethora of good, reasonably-priced programming
    software, one might question why he should concern himself with
    further developments in that area?

    I would like to tell you about a programming language, and
    convince you that it offers a combination of features which
    really makes it worth looking into!


    What is it?
    -----------

    The language is COMAL (COMmon Algorithmic Language). Briefly,
    COMAL is a programming language designed to combine the best
    features of BASIC and Pascal, and it can be viewed as a much
    enhanced SUPER version of BASIC.

    It was designed by Borge Christensen and Benedict Lofstedt in
    Denmark in 1973, and is now the official first programming
    language taught in several European countries.

    Until recently, it was available in the US only for Commodore
    computers, and (a very expensive $500 version) for MS-DOS
    machines. In fact, COMAL has the distinction of being the most
    often purchased language for the Commodore 64!


    What is it like?
    ----------------

    COMAL offers an interactive user interface like BASIC, but adds
    all the nice programming structures of Pascal, without the rigid
    syntax requirements, or the need to pre-declare everything.

    The CP/M version (as do other versions) supports syntax checking
    on entry, which means you cannot enter a line which does not
    live up to COMAL's "grammar" rules.

    Another feature, of which I am particularly fond, is
    system-forced indentation. That means that the COMAL editor
    automatically indents all your structures properly (unlike other
    structured languages, which are not really readable unless you
    supply the proper indentation). The first time you have to edit
    a program in the middle of a structure, you will be convinced!
    The editor also capitalizes all COMAL keywords, and puts
    variable names, etc., in lower case.

    The full-screen editor also supports an AUTO line-numbering mode
    (line numbers are never referenced within the program -- they
    are there only for convenience in editing), and RENUMber
    command.

    When in AUTO mode, each line gets completely reformatted
    (capitalized keywords, missing keywords inserted, = changed to
    :=, NEXT changed to ENDFOR, etc.) on screen, before your eyes,
    when the RETURN key is pressed.

    This is really fun to watch!


    What about structures?
    ----------------------

    COMAL has four loop structures, two conditional branching
    structures, named multi-line procedures and functions with
    parameter passing, and an error trapping structure.

    The REPEAT-UNTIL loop tests for an exit condition at the end of
    the loop.

    WHILE-ENDWHILE loops test for exit at the top of the loop.

    The FOR-ENDFOR loop works pretty much like a FOR-NEXT loop in
    BASIC. It executes a fixed number of times (also permits a STEP
    size for increments other than one).

    The LOOP-ENDLOOP can have an exit test performed anywhere inside
    the loop, or can execute a fixed number of times.

    The CASE structure performs a multiple choice test, and executes
    one of a sequence of code segments, depending on the value of a
    numerical or string expression.

    The IF structure allows use of ELIF (else if) clauses, as well
    as an ELSE section. There is also a one-line short IF.

    The procedure and function facilities allow you to add your own
    definitions, which then can be called effectively like
    additional keywords or system functions.

    I would like to mention that CP/M COMAL also supports recursion,
    and has debugging aids in the form of TRACE (to follow program
    execution line-by-line) and SYMBOLS (to list all the variables
    known at a given point in the program). Both local and global
    variables can be supported.

    By the way, due to the way COMAL stores variables, the names can
    be as long as will still fit on a line (actually, two physical
    screen lines can make up one logical COMAL line), but still only
    occupy 2 bytes of programming storage each time they are
    referenced.

    For example, number'of'minutes'in'an'hour is a perfectly good
    variable name in COMAL, and is distinct from
    number'of'minutes'in'a'day.


    How about interfacing machine language?
    ---------------------------------------

    No matter how complete a programming language is, the time still
    comes when you would like to get to machine level with it (maybe
    to do some machine-specific things like graphics, or to speed up
    some common code).

    COMAL shines here, too! There are 3 ways to use ML from COMAL.

    The most direct method is inline with the CODE statement. In
    this method, the actual numerical values for the assembled code
    immediately follows the CODE keyword, and are executed whenever
    the statement is encountered.

    Another method, which may be familiar to BASIC programmers, is
    to READ data, and POKE it into RAM, and then CALL it.

    The most advanced method is via a ML "package". This basically
    wedges the code into the system, where it acts like built-in
    procedures and functions.

    I have written a BDOS package (that is the one thing they seem
    to have forgotten), and a graphics package for the C128 which
    uses the 80-column RGB screen to do 640x200 bit-mapped graphics.
    The necessary details are outlined in an appendix in the manual.


    Another neat feature
    --------------------

    Most BASIC programmers have, at one time or another, wanted to
    be able to leave what they were doing, try out some neat little
    idea, and then come back to the original program, undisturbed.

    The CP/M COMAL EXTERNAL command will permit just that! Type
    EXTERNAL, and you are in a totally new, empty (although slightly
    smaller) programming space, where you can do what you wish
    without altering the original program which may have been in
    use.

    Type MAIN, and you are returned to the old program, intact.

    You can even nest EXTERNAL calls, and return one level at a time
    with MAIN, if you wish.

    Not trying to confuse you, but EXTERNAL is also used in a
    different context, to call in and execute saved routines from
    disk, without having to include the full routines in your source
    file. This permits a type of overlay technique to be utilized,
    to make programs larger that the available memory.


    How about compatibility?
    ------------------------

    All of this neat stuff would not be too useful if you were the
    only guy around who was able to use it, and if files could not
    be transferred to different machines.

    Although Turbo Pascal and some other languages are available,
    and somewhat compatible between CP/M and MS-DOS, COMAL does even
    better!

    As mentioned above, there are already Commodore and MS-DOS
    versions available. There is another company working very hard
    to finish a cheap ($50) MS-DOS version. Work is also going on
    towards implementations on the Macintosh, Amiga, and Apple II.

    I have transported source code from many Commodore programs, and
    find that things work fine under CP/M, as long as
    system-specific things like graphics routines are not used. I
    also know people who have transported Commodore COMAL programs
    to MS-DOS, and MS-DOS to CP/M. Things are generally more
    compatible than most anything else you can find on the market.

    In fact, I have found that programs from the disk-based
    Commodore version 0.14, which have sound routines, can be made
    to run on the C128 CP/M version by merely CHANGEing all POKE
    commands to OUT. CHANGE and FIND are built-in editing commands.
    PEEK and POKE affect RAM locations, while INP and OUT talk to
    I/O ports.

    There are over 4000 programs available from the "COMAL User's
    Group" on C64 disks. I imagine that, as time goes by, most of
    these will be transferred to CP/M formats, and made available at
    nominal cost.

    I believe that the standard form of distribution for the CP/M
    materials is on Osborne DD disks.

    The CP/M COMAL comes installed for the C128, but does include an
    install program.

    There is also a CP/M run-time module available, which permits
    you to make stand-alone CP/M COMmand files, to be run by people
    who don't have COMAL. (ROCHE> That is to say: COMAL is an
    interpreter... but can produce COM files like a compiler! And
    without changes in the program, contrary to MBASIC/BASCOM...)


    How much?
    ---------

    More good news! The CP/M COMAL 2.10 system is available from the
    "COMAL User's Group USA, Ltd." (...). List price is $69.99 + $5
    for shipping.

    If you are still not convinced, or would like to try it out
    first, there is a demo version available (DEMCOMAL.COM). The
    demo version is a full implementation with sample programs -- it
    does everything, except that it will not SAVE programs you
    write. You will, however, be able to load, run, and list the
    sample programs, and try your hand at writing some programs of
    your own.

    As of this writing, the demo version is available on GEnie, or
    from the "COMAL User's Group" (address above) for $5. When you
    get a copy, be sure to print out the text files included, and
    then make copies and give them to all of your friends -- CUG
    wants it that way!

    There is also a preliminary demo version of the inexpensive
    MS-DOS COMAL available via the same channels.

    After using COMAL (I am not associated with the "COMAL User's
    Group", or anyone else who has a vested interest in COMAL) for a
    couple of years on the C64 and C128, and having used the CP/M
    version now for a few months, I am convinced that it is the BEST
    programming language available for general-purpose use.

    It is simple and easy to learn to use, yet powerful enough for a
    sophisticated user to appreciate and benefit from. I cannot say
    enough good things about COMAL. Try it, you will like it!


    EOF


  2. Re: COMAL Article from "FOGHorn" Magazine

    On Wed, 09 Jan 2008 05:39:20 -0800, roche182 wrote:

    > COMALFOG.TXT
    > ------------
    >
    > - "A Review of CP/M COMAL"
    > Ray Carter
    > "FOGHorn", Vol.VII, No.6, March 1988, p.18
    >


    Where on earth did you ever dig that up? I had entirely forgotten about
    it. I was involved with some of the early work on CP/M Comal in the U.S.
    When I started the only manual available was the original in Danish.
    Fortunately my mother was Danish, so with the help of a Danish to English
    dictionary I translated the whole thing - it was interesting.


  3. Re: COMAL Article from "FOGHorn" Magazine

    Hello, Ray!

    > Where on earth did you ever dig that up? I had entirely forgotten about
    > it. I was involved with some of the early work on CP/M Comal in the U.S.
    > When I started the only manual available was the original in Danish.
    > Fortunately my mother was Danish, so with the help of a Danish to English
    > dictionary I translated the whole thing - it was interesting.


    Obviously in the "FOGHorn" magazine...

    Ok. I don't know if you are a regular of the comp.os.cpm Newsgroup
    but,
    several years ago, I spent one full year trying to ressurrect COMAL
    v2.10
    for CP/M. I managed to find the binary, which is hosted by Peter
    Schorn
    (http://www.schorn.ch/cpm/intro.html). However, despite all my
    efforts,
    I never found any paper doc for it, nor the MS-DOS version (one CP/
    M-86
    version is available on the Internet, but it was for a Swedish
    computer
    ("COMPIS") and I never found someone interested enough to translate
    its paper doc from Swedish to English... (If you are a blonde Swedish
    girl interesting in programming, you are the welcome!)

    So, I you will not mind, could you have a look in your archives, and
    see if you can help, here?

    Also, as written in the comp.os.cpm Newsgroup, when you print the
    help file, you discover keywords being the same as the Z-80 CPU
    registers names... Hence, I think that it is possible to call
    interactively
    assembly language subroutines? But where is the doc? For example,
    I would like to display the names of all the files matching a
    particular
    ambiguous pattern, then do something (like displaying their ASCII
    contents).

    Since I have retyped all the articles that I managed to find about
    COMAL (nobody from this comp.os.cpm Newsgroup ever provided
    one...), I am obviously strongly interested in COMAL.

    The problem is that only the (8-bit) CP/M version is available, while
    I am only interested in programs that used to run the same under
    CP/M 2.2, MS-DOS, and CP/M-86.

    On the Internet, there is a Scotish society selling UniCOMAL V3.1
    for Windows, but it is useless, since it is not portable.

    So, I am searching the binaries for MS-DOS, and the paper doc
    of COMAL v2.10.

    Yours Sincerely,
    Mr Emmanuel Roche


  4. Re: COMAL Article from "FOGHorn" Magazine

    On Wed, 9 Jan 2008 05:39:20 -0800 (PST), roche182@laposte.net wrote:

    >COMALFOG.TXT
    >------------
    >
    >- "A Review of CP/M COMAL"
    > Ray Carter
    > "FOGHorn", Vol.VII, No.6, March 1988, p.18
    >
    >(Retyped by Emmanuel ROCHE.)
    >

    -----------> and snipped here by me--------->

    If you had looked at the WC Cdrom the COMAL bin and many bits of text
    are there.

    Enclosed is the "language manual" such that it is.

    That disk has a few other interesting languages like DRACO.


    Allison


    =====================Start text==================================

    COMAL - THE PROGRAMMING LANGUAGE
    by David Stidolph

    A little over 10 years ago, Borge Christensen, a professor in Denmark,
    couldn't find a computer language he liked enough to teach.

    BASIC was fine for the students - it was interactive and they could
    start learning quickly because they got to see their program execute
    as soon as they typed RUN. Unfortunately the student programs looked
    like spaghetti and it took longer to figure out how they worked than
    it took to write them.

    Pascal, on the other hand, was a teachers dream. Programs were
    readable and precise. The long variable names and procedures and
    functions made checking the programs easy when compared to BASIC. The
    problem with Pascal, however, was that the students had to learn how
    to runhthe compiler before they could run a single line of code. The
    students also found it harder to experiment with Pascal than with
    BASIC. Every variable had to be declared and a student would never
    know about errors until the program was compiled.

    Rather than choosing one or the other, Borge decided to develop a
    language that would include the best features of both BASIC and
    Pascal. This language was called COMAL (COMmon Algorithmic Language).
    His idea was so successful that it has become the official programing
    language of schools in five European countries. A COMAL Standard was
    developed (called the COMAL Kernal), and meetings are held annually to
    maintain compatibility between the various implementations.

    Technically COMAL is a three pass, run time compiler. It combines the
    features of a compiler and an interpreter, providing an easy-to-learn
    language that also is easy-to-use. Explaining the three passes will
    help describe the language.

    Pass One - Entering Program Lines

    The first pass occurs when a program line is entered. The line's
    syntax is immediately checked. If there is any problem, an error
    message is printed below the line and the cursor is placed on the
    problem. For example, look at the following:
    100 hypotenuse=sqr(sidea^2+sideb^2(

    The open parentheses at the end of the line should be a close
    parentheses. COMAL realizes this and displays the message ")"
    expected, not "(" beneath the line as soon as RETURN is pressed. The
    cursor is placed on the open parentheses at the end of the line.

    To correct the error, press the ) key. The line on the screen is now
    correct. Press the RETURN key and the line is entered into the
    program. Also, the error message is removed and the text it erased is
    restored. The command:

    LIST 100

    displays the following line:

    0100 hypotenuse:=SQR(sidea^2+sideb^2)

    Notice that COMAL distinguishes between := for assignment and = for
    comparison, but doesn't require you to type them differently. SQR is
    capitalized to show that it is a built in keyword of COMAL. Variables
    and commands can be entered in either upper or lower case.

    Consider the following line:

    100 balance=12376.35

    This line is valid in both COMAL and BASIC. However, in BASIC, the
    line is stored in its ASCII form, and only the first two characters of
    the variable name are significant (balance would be the same variable
    as bad, bank, bankrupt and backpay). Then, each time the line is
    executed, BASIC must convert the number to floating point format and
    search through memory for the variable ba.

    In COMAL the variable name can be up to 78 characters long (each
    character is significant). To save programming space and increase
    execution speed, the name is stored in a table and a token is used at
    each occurrence in the program. When the program is executing, COMAL
    knows precisely where to find the variable. In addition, the number is
    stored in its floating point form, allowing faster execution.

    Pass Two - Program Structure Check

    When you type RUN and press RETURN, COMAL checks the entire program
    for structural errors and resolves all addressing (noting where
    procedures are located, where to branch for IF..THEN..ELSE, FOR..NEXT
    loops, etc). This scan of the program is not noticeable (usually less
    than a second). For example, if a REPEAT loop was ended with ENDWHILE
    instead of UNTIL, COMAL would give the following error message (xxxx
    is the problem line number):
    at xxxx: "UNTIL" expected, not "ENDWHILE"

    BASIC cannot find a structural error until it executes the line. In
    COMAL each line of the program is checked as it is entered and the
    whole program is checked before a single line is executed. This
    program scan greatly improves program reliability and allows COMAL
    programs to run much faster than BASIC.

    Pass Three - Running the Program

    The last pass is when the program is actually executed. Although the
    program has been checked thoroughly for errors and all necessary jump
    addresses have already been calculated, the possibility of error still
    exists. Look at the following program:

    0010 PAGE //clears screen and homes the cursor
    0020 INPUT "How many apples?": total'apples
    0030 INPUT "How many people?": total'people
    0040 PRINT total'apples/total'people;
    0050 PRINT "apples per person"

    This simple program seems correct, but what if the user typed in a
    zero for total'people (a division by zero error) or typed a name
    instead of a number?

    In most languages the program would halt. In fact, COMAL would halt in
    this case as well. There is a way, however, to trap errors. To "user
    proof" program lines, place them inside a TRAP .. HANDLER structure.
    This may sound complicated, but actually the idea is simple. Look at
    this re-worked example program (indentation is provided by the LIST
    command, you do not have to type the spaces):

    0010 PAGE //clears screen and homes the cursor
    0012 LOOP
    0015 TRAP
    0020 INPUT "How many apples?": total'apples
    0030 INPUT "How many people?": total'people
    0040 PRINT total'apples/total'people;
    0050 PRINT "apples per person"
    0060 EXIT //no errors encountered, leave loop
    0070 HANDLER
    0080 PRINT "Numbers only, and at least one."
    0090 PRINT "Please try again..."
    0100 ENDTRAP
    0110 ENDLOOP

    Now if an error occurs during execution of lines between the TRAP and
    the HANDLER (lines 20 through 60), the program would jump into the
    HANDLER section (lines 80 - 90). If both input requests get proper
    replies, the EXIT command jumps out of the LOOP (and out of the TRAP
    as well).

    Since lines were inserted between 10 and 20, the RENUM command can be
    used to make all the line numbers nice and even. COMAL only uses line
    numbers only for editing programs and can even list a program without
    line numbers.

    Portability of COMAL and Beyond

    Thanks to the early development of a standard, a programmer can write
    a COMAL program that will run virtually unchanged on PC compatibles,
    Commodore 64, CP/M, and soon on the Apple II. With COMAL one language
    can be taught for several different machines. COMAL provides a
    universal language to bridge the gap.

    Once you have mastered a given language, what do you do? No one
    language is perfect for all tasks. Each has its own advantages and
    disadvantages. The purpose of COMAL is to teach programming skills
    with a minimum of "harassment". When you learn COMAL you have learned
    the standard programming techniques of Pascal, Modula II, Ada and
    other structured languages. Many of the concepts you learn in BASIC,
    LOGO, Forth, are actually undesirable and later must be "unlearned".

    Other Features

    COMAL has many other advantages - a full screen editor, strings and
    string arrays of any length (up to the limit of memory) with no
    garbage collection, fast string searches (up to 80 times faster than
    BASIC), print using, cursor control, procedures and functions with
    parameter passing and recursion, local/global variables, user defined
    string functions, and easy file access and control. COMAL also allows
    you to LIST procedures or entire programs to disk and later merge them
    into other programs. No more re-typing the same routine each time you
    need it in a program.

  5. Re: COMAL Article from "FOGHorn" Magazine

    On Sat, 12 Jan 2008 04:50:35 -0800, roche182 wrote:

    > Hello, Ray!
    >
    >> Where on earth did you ever dig that up? I had entirely forgotten about
    >> it. I was involved with some of the early work on CP/M Comal in the U.S.
    >> When I started the only manual available was the original in Danish.
    >> Fortunately my mother was Danish, so with the help of a Danish to English
    >> dictionary I translated the whole thing - it was interesting.

    >
    > Obviously in the "FOGHorn" magazine...
    >
    > Ok. I don't know if you are a regular of the comp.os.cpm Newsgroup
    > but,
    > several years ago, I spent one full year trying to ressurrect COMAL
    > v2.10
    > for CP/M. I managed to find the binary, which is hosted by Peter
    > Schorn
    > (http://www.schorn.ch/cpm/intro.html). However, despite all my
    > efforts,
    > I never found any paper doc for it, nor the MS-DOS version (one CP/
    > M-86
    > version is available on the Internet, but it was for a Swedish
    > computer
    > ("COMPIS") and I never found someone interested enough to translate
    > its paper doc from Swedish to English... (If you are a blonde Swedish
    > girl interesting in programming, you are the welcome!)
    >
    > So, I you will not mind, could you have a look in your archives, and
    > see if you can help, here?
    >
    > Also, as written in the comp.os.cpm Newsgroup, when you print the
    > help file, you discover keywords being the same as the Z-80 CPU
    > registers names... Hence, I think that it is possible to call
    > interactively
    > assembly language subroutines? But where is the doc? For example,
    > I would like to display the names of all the files matching a
    > particular
    > ambiguous pattern, then do something (like displaying their ASCII
    > contents).
    >
    > Since I have retyped all the articles that I managed to find about
    > COMAL (nobody from this comp.os.cpm Newsgroup ever provided
    > one...), I am obviously strongly interested in COMAL.
    >
    > The problem is that only the (8-bit) CP/M version is available, while
    > I am only interested in programs that used to run the same under
    > CP/M 2.2, MS-DOS, and CP/M-86.
    >
    > On the Internet, there is a Scotish society selling UniCOMAL V3.1
    > for Windows, but it is useless, since it is not portable.
    >
    > So, I am searching the binaries for MS-DOS, and the paper doc
    > of COMAL v2.10.
    >
    > Yours Sincerely,
    > Mr Emmanuel Roche


    I'll have a look and see what I can find - we moved 1000 miles not too
    long ago after living in the same house for 22 years, so things are a bit
    in chaos. I did find on the web not long ago, a very basic COMAL for
    Linux. I did not explore it much, but I think there is a link from the
    unicomal web site. As I recall, the author was trying to do it rather
    generically so it could be ported to other OSs.

    You might also find a little info in old issues of Comal Today - it was
    published by Len Lindsay in, as I recall, Madison Wisconsin.


  6. Re: COMAL Article from "FOGHorn" Magazine

    > I did find on the web not long ago, a very basic COMAL for
    > Linux. I did not explore it much, but I think there is a link from the
    > unicomal web site. As I recall, the author was trying to do it rather
    > generically so it could be ported to other OSs.


    http://www.macharsoft.co.uk/opencomal/opencomal1.html

    De

  7. Re: COMAL Article from "FOGHorn" Magazine

    On Jan 12, 7:50*am, roche...@laposte.net wrote:

    > The problem is that only the (8-bit) CP/M version is available, while
    > I am only interested in programs that used to run the same under
    > CP/M 2.2, MS-DOS, and CP/M-86.
    >
    > On the Internet, there is a Scotish society selling UniCOMAL V3.1
    > for Windows, but it is useless, since it is not portable.
    >
    > So, I am searching the binaries for MS-DOS, and the paper doc
    > of COMAL v2.10.
    >
    > Yours Sincerely,
    > Mr Emmanuel Roche

    ---------
    Why are you excluding the 6502 versions of Comal?

    There is no shortage of binaries and documentation for the various
    Apple and CBM versions on the 'Net, and emulators as well if you want
    to run them.

    mike

  8. Re: COMAL Article from "FOGHorn" Magazine

    Aliison "I did it" Parent wrote:

    > If you had looked at the WC Cdrom the COMAL bin and many bits of text
    > are there.


    None of the computers that I have has a CD-ROM drive...

    > Enclosed is the "language manual" such that it is.


    I will try the Retroarchive Web site, to see what there is online from
    this cybercafe.
    Everything that I managed to find about COMAL is on the Web site
    of Peter Schorn already mentioned.

    > That disk has a few other interesting languages like DRACO.


    This thread is supposed to talk about COMAL...

    Yours Sincerely,
    Mr Emmanuel Roche


  9. Re: COMAL Article from "FOGHorn" Magazine

    Hello, Mike!

    > Why are you excluding the 6502 versions of Comal?
    >
    > There is no shortage of binaries and documentation for the various
    > Apple and CBM versions on the 'Net, and emulators as well if you want
    > to run them.


    I don't know if you have been reading this comp.os.cpm Newsgroup for
    long,
    but it is dealing with CP/M, and I tried to ressurrect COMAL for CP/M.

    Find me a version of CP/M for the 6502, and I will be intested.

    Find me a CBM emulator running under CP/M, and I will be interested.

    (You forgot the C=64 and C=128.)

    I repeat: How do you use a Z-80 assembly language "package" from
    COMAL v2.10 under CP/M?

    If you find that in the Apple and CBM versions, I will be VERY
    interested.


    Yours Sincerely,
    Mr Emmanuel Roche


  10. Re: COMAL Article from "FOGHorn" Magazine

    I am back from the Retroarchive Web site.

    All the TXT files are on Peter Schorn's Web sites, so nothing new.
    Peter Schorn has the full working version, while this is the crippled
    demo version. So, it is up to you which version you prefer to use...

    Allison "I did it" Parent wrote:

    > > Enclosed is the "language manual" such that it is.


    I did not manage to find any "language manual" for COMAL v2.10.
    There is a file containing the keywords, but it is inside it that I
    found
    the AF, BC, DE, and HL keywords that I mentioned several months
    (years?) ago, asking if someone knew how to use the "package"
    concept of COMAL...

    > > That disk has a few other interesting languages like DRACO.


    Now that I have been to the Retroarchive Web site, the less that
    I can say is that I am not very impressed by DRACO.

    On the other hand, COMAL enables you to play interactively
    with the registers of the Z-80 CPU... How many other programming
    languages do you know, which enable you to develop interactively
    an assembly language subroutine? In addition, COMAL is an
    interpreter and, after your program is debugged, you can compile it,
    as explained in one of the TXT files. And the compiler is fully
    compatible with the interpreter, contrary to MBASIC/BASCOM,
    where the BASCOM version of a program is so different that
    you need to develop 2 versions of a program to use them!

    DRACO is only a Pascal compiler.

    COMAL was available on the Commodore CMB-8032, C=64, C=128,
    CP/M, CP/M-86, and MS-DOS.

    Which one is more interesting for system software?

    Which one is more portable?

    Which one lasted longer?

    I have been participating to the comp.os.cpm Newsgroup for over
    10 years, now. I cannot wait to see your first DRACO program...

    Yours Sincerely,
    Mr Emmanuel Roche


  11. Re: COMAL Article from "FOGHorn" Magazine

    On Mon, 14 Jan 2008 08:29:55 -0800 (PST), roche182@laposte.net wrote:

    >I am back from the Retroarchive Web site.
    >
    >All the TXT files are on Peter Schorn's Web sites, so nothing new.
    >Peter Schorn has the full working version, while this is the crippled
    >demo version. So, it is up to you which version you prefer to use...
    >
    >Allison "I did it" Parent wrote:


    Your beginning to be rude.

    >> > Enclosed is the "language manual" such that it is.

    >
    >I did not manage to find any "language manual" for COMAL v2.10.
    >There is a file containing the keywords, but it is inside it that I
    >found
    >the AF, BC, DE, and HL keywords that I mentioned several months
    >(years?) ago, asking if someone knew how to use the "package"
    >concept of COMAL...
    >
    >> > That disk has a few other interesting languages like DRACO.

    >
    >Now that I have been to the Retroarchive Web site, the less that
    >I can say is that I am not very impressed by DRACO.
    >
    >On the other hand, COMAL enables you to play interactively
    >with the registers of the Z-80 CPU... How many other programming
    >languages do you know, which enable you to develop interactively
    >an assembly language subroutine? In addition, COMAL is an
    >interpreter and, after your program is debugged, you can compile it,
    >as explained in one of the TXT files. And the compiler is fully
    >compatible with the interpreter, contrary to MBASIC/BASCOM,
    >where the BASCOM version of a program is so different that
    >you need to develop 2 versions of a program to use them!
    >
    >DRACO is only a Pascal compiler.
    >
    >COMAL was available on the Commodore CMB-8032, C=64, C=128,
    >CP/M, CP/M-86, and MS-DOS.
    >
    >Which one is more interesting for system software?
    >
    >Which one is more portable?
    >
    >Which one lasted longer?
    >
    >I have been participating to the comp.os.cpm Newsgroup for over
    >10 years, now. I cannot wait to see your first DRACO program...


    So. I've had the WC CDrom for over 12 years and I learned about it's
    availability here.

    Not likely on DRACO, I wasn't impressed either but then again
    I looked at it over 12 years ago. Nor it's buddy on the disk
    Parasol. They both has a few interesting ideas but nothing
    made them stick.

    Comal is interesting for systems work but like many CP/M higher level
    languages (including C) the the overhead for a Z80 based system is
    high making it a specious claim. I tried a database in it but
    Pascal was faster at runtime. If I had only the two Pascal for speed
    and Comal for one off programs as Comal was easier to write programs
    with fewer keyboard errors with it's error checking. Beats the tar
    out of most Basics for CP/M on 8bitters.


    Allison


    >Yours Sincerely, >Mr Emmanuel Roche



  12. Re: COMAL Article from "FOGHorn" Magazine

    On Jan 14, 10:58*am, roche...@laposte.net wrote:
    > Hello, Mike!
    >
    > > Why are you excluding the 6502 versions of Comal?

    >
    > > There is no shortage of binaries and documentation for the various
    > > Apple and CBM versions on the 'Net, and emulators as well if you want
    > > to run them.

    >
    > I don't know if you have been reading this comp.os.cpm Newsgroup for
    > long,
    > but it is dealing with CP/M, and I tried to ressurrect COMAL for CP/M.
    >
    > Find me a version of CP/M for the 6502, and I will be intested.
    >
    > Find me a CBM emulator running under CP/M, and I will be interested.
    >
    > (You forgot the C=64 and C=128.)
    >
    > I repeat: How do you use a Z-80 assembly language "package" from
    > COMAL v2.10 under CP/M?
    >
    > If you find that in the Apple and CBM versions, I will be VERY
    > interested.
    >
    > Yours Sincerely,
    > Mr Emmanuel Roche


    ---------------
    Umm.. let me go back and see what you were looking for...


    The problem is that only the (8-bit) CP/M version is available, while
    I am only interested in programs that used to run the same under
    CP/M 2.2, MS-DOS, and CP/M-86.

    So, I am searching the binaries for MS-DOS, and the paper doc
    of COMAL v2.10.

    Yours Sincerely,
    Mr Emmanuel Roche


    Ah, I see my misunderstanding; I didn't realize MS-DOS was actually a
    version of CP/M, which it must be since you're discussing it here.

    And I also assumed that since you're looking for documentation for
    2.10, although I haven't looked specifically I thought perhaps
    somewhere in the vast amount of CBM COMAL documentation you might find
    something relevant and useful, perhaps even documentation for 2.10.
    Since it's essentially a "standard" teaching language I also assumed
    that functions and documentation would be similar if not identical
    across the various platforms, but apparently even if it were identical
    word-for-word, if it didn't say CP/M on the front page you would not
    be interested.

    My apologies for wasting your time and bandwidth by trying to be
    helpful.

    Up yours!
    (That's a north american idiom meaning "have a nice day")

    m

  13. Re: COMAL Article from "FOGHorn" Magazine

    On Jan 14, 10:58*am, roche...@laposte.net wrote:
    > Hello, Mike!



    > Find me a version of CP/M for the 6502, and I will be intested.
    >
    > Find me a CBM emulator running under CP/M, and I will be interested.
    >
    > (You forgot the C=64 and C=128.)

    -----
    Well, the C64 version of CP/M *is* probably best forgotten, but I
    think "CBM COMAL" would include those versions...
    -----

    > I repeat: How do you use a Z-80 assembly language "package" from
    > COMAL v2.10 under CP/M?

    ------
    I believe CP/M runs Z-80 assembly language quite well...
    ------

    > If you find that in the Apple and CBM versions, I will be VERY
    > interested.
    >

    ------
    I believe you'll find those just as easily as the MS-DOS and CP/M86
    versions...


    The problem is that only the (8-bit) CP/M version is available, while
    I am only interested in programs that used to run the same under
    CP/M 2.2, MS-DOS, and CP/M-86.


    m


  14. Re: COMAL Article from "FOGHorn" Magazine

    On Tue, 15 Jan 2008 01:41:11 -0800 (PST), MikeS
    wrote:
    ---

    >I believe CP/M runs Z-80 assembly language quite well...


    No, it does not. You statement is wrong.

    Bill

  15. Re: COMAL Article from "FOGHorn" Magazine

    On Wed, 16 Jan 2008 09:11:19 -0600, Bill
    wrote:

    >On Tue, 15 Jan 2008 01:41:11 -0800 (PST), MikeS
    >wrote:
    >---
    >
    >>I believe CP/M runs Z-80 assembly language quite well...

    >
    >No, it does not. You(r) statement is wrong.


    A Z-80 .... ''runs Z-80 assembly language quite well.''

    Doesn't matter whether it's running CP/M or something else.

    Bill

  16. Re: COMAL Article from "FOGHorn" Magazine

    On Jan 16, 10:11*am, Bill wrote:
    > On Tue, 15 Jan 2008 01:41:11 -0800 (PST), MikeS
    > wrote:
    > ---
    >
    > >I believe CP/M runs Z-80 assembly language quite well...

    >
    > No, it does not. You statement is wrong.
    >
    > Bill


    ---
    I stand corrected; thank you.

    So, you're saying that if I tell the CP/M CCP to "run" a program
    written in Z-80 assembly language by typing its name, it would *not*
    run it quite well (assuming, of course, that it was runnable)?

    I was indeed under the impression that one could in fact run Z-80 code
    on a CP/M (as opposed to, say, CP/M86) system, since it would most
    likely also be using a Z-80; apparently I was mistaken and my
    recollections of having done so many times in the past 30 years or so
    are faulty.

    At least I didn't top-post and bring Mr. Falconer into the
    discussion...

    Sheesh; can we move on?

    m

  17. Re: COMAL Article from "FOGHorn" Magazine

    On Jan 16, 10:19*am, Bill wrote:
    > On Wed, 16 Jan 2008 09:11:19 -0600, Bill
    > wrote:
    >
    > >On Tue, 15 Jan 2008 01:41:11 -0800 (PST), MikeS
    > >wrote:
    > >---

    >
    > >>I believe CP/M runs Z-80 assembly language quite well...

    >
    > >No, it does not. You(r) statement is wrong.

    >
    > A Z-80 *.... ''runs Z-80 assembly language quite well.''
    >
    > Doesn't matter whether it's running CP/M or something else.
    >
    > Bill


    --------
    In case there really is a misunderstanding and this is not just
    pedantic nitpicking, yes, I will grant you that my sarcastic reply to
    the OP's question, "How do you use a Z-80 assembly language "package"
    from COMAL v2.10 under CP/M?" did assume, perhaps incorrectly, that he
    was not intending to do that on a system that didn't use a Z-80.

    OK?

    m

  18. Re: COMAL Article from "FOGHorn" Magazine

    MikeS wrote:

    (snip)

    > So, you're saying that if I tell the CP/M CCP to "run" a program
    > written in Z-80 assembly language by typing its name, it would *not*
    > run it quite well (assuming, of course, that it was runnable)?


    > I was indeed under the impression that one could in fact run Z-80 code
    > on a CP/M (as opposed to, say, CP/M86) system, since it would most
    > likely also be using a Z-80; apparently I was mistaken and my
    > recollections of having done so many times in the past 30 years or so
    > are faulty.


    My understanding is that CP/M uses only 8080 instructions, and so can
    run on an 8080. If one is distributing programs for all CP/M users,
    they should not use Z80 only instructions. Most likely using a
    Z80 means that there is still a possibility that it isn't.

    -- glen


  19. Re: COMAL Article from "FOGHorn" Magazine

    On Thu, 17 Jan 2008 09:06:35 -0800, glen herrmannsfeldt
    wrote:

    >MikeS wrote:
    >
    >(snip)
    >
    >> So, you're saying that if I tell the CP/M CCP to "run" a program
    >> written in Z-80 assembly language by typing its name, it would *not*
    >> run it quite well (assuming, of course, that it was runnable)?

    >
    >> I was indeed under the impression that one could in fact run Z-80 code
    >> on a CP/M (as opposed to, say, CP/M86) system, since it would most
    >> likely also be using a Z-80; apparently I was mistaken and my
    >> recollections of having done so many times in the past 30 years or so
    >> are faulty.

    >
    >My understanding is that CP/M uses only 8080 instructions, and so can
    >run on an 8080. If one is distributing programs for all CP/M users,
    >they should not use Z80 only instructions. Most likely using a
    >Z80 means that there is still a possibility that it isn't.



    For example me. I know other ruunning PT Sol (8080) and I have an
    Netronics Exporer 8085 (8085 is basically 8080) so there are two
    non Z80 systems. I also have a few system I made for myself
    just to use some of the 8085s I have laying about and they run CP/M.

    So CP/M usually means 8080 or any compatable 8080 cpu it does
    not mean universally Z80 though probability is high.

    Allison

    >-- glen



  20. Re: COMAL Article from "FOGHorn" Magazine

    MikeS wrote:
    > Bill wrote:
    >> MikeS wrote:
    >>
    >>> I believe CP/M runs Z-80 assembly language quite well...

    >>
    >> No, it does not. You statement is wrong.

    >
    > I stand corrected; thank you.
    >
    > So, you're saying that if I tell the CP/M CCP to "run" a program
    > written in Z-80 assembly language by typing its name, it would *not*
    > run it quite well (assuming, of course, that it was runnable)?
    >
    > I was indeed under the impression that one could in fact run Z-80
    > code on a CP/M (as opposed to, say, CP/M86) system, since it would
    > most likely also be using a Z-80; apparently I was mistaken and my
    > recollections of having done so many times in the past 30 years or
    > so are faulty.
    >
    > At least I didn't top-post and bring Mr. Falconer into the
    > discussion...


    :-) OK. I think the problem is that CP/M itself is written using
    only 8080 op-codes, so it can run on either a z80 or and 8080 (or
    8085). Similarly, applications written in 8080 opcodes can run on
    all CP/Ms. However, the great majority of CP/M machines have a Z80
    (or 64180 or Z180) and thus can run both 8080 and z80 opcode
    programs. This has tended to be the universal situation in the
    past.

    In aid of this, and to improve CP/M 2.2 operation, I prepared
    DOSPLUS 2.5 many years ago. It is written using Z80 opcodes, and
    also handles the 64180. It provides many extensions, and fits
    exactly into the space originally allocated for CP/M 2.2. It (and
    other things) are freely available at:



    --
    [mail]: Chuck F (cbfalconer at maineline dot net)
    [page]:
    Try the download section.



    --
    Posted via a free Usenet account from http://www.teranews.com


+ Reply to Thread
Page 1 of 2 1 2 LastLast