Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: version B 2.10.1 6/24/83; site inuxd.UUCP
Path: utzoo!watmath!clyde!floyd!harpo!eagle!mhuxl!ihnp4!inuxc!inuxd!porter
From: porter@inuxd.UUCP (J Porter)
Newsgroups: net.micro
Subject: COMAL: a better BASIC for your 64
Message-ID: <477@inuxd.UUCP>
Date: Tue, 6-Mar-84 08:28:27 EST
Article-I.D.: inuxd.477
Posted: Tue Mar 6 08:28:27 1984
Date-Received: Wed, 7-Mar-84 07:26:47 EST
Organization: AT&T Consumer Products Div., Indianapolis
Lines: 627
========================================================================
For those of you who have been missing out on the lastest free
operating system for your C64, take note. This is probably of
general interest anyways. COMAL is like SIMON'S BASIC only
better (in most respects), and you can't beat the price, because
it's in the public domain. The following is a short description
followed by a complete command summary. Every 64 owner ought
to have this one.
Jeff Porter (inuxd!porter)
AT&T Consumer Products
Indianapolis
=======================================================================
COMAL FOR THE COMMODORE 64
Welcome to COMAL, the language designed to replace BASIC.
This information is as of November 25, 1983 and is subject
to change.
COMAL TODAY newsletter is the source for up to date
information about COMAL, as well as many helpful hints
and tutorial articles. Contributors to this newsletter
include Borge Christensen (founder of COMAL),
UniComal Aps (Authors of all CBM COMAL systems), and Len
Lindsay (author of COMAL HANDBOOK). It is published by
the COMAL Users Group (USA) for $14.95.
The COMAL HANDBOOK is meant to be a complete reference
for all versions of CBM COMAL. This book is published by
Reston Publishing (1-800-336-0338). It retails for about
$18.95 and is available through most large book
stores, such as B. Daltons, or from the COMAL Users Group
(USA).
The CAPTAIN COMAL series of book/disk packages are meant
to be tutorials to modular programming with COMAL. The
first, CAPTAIN COMAL GETS ORGANIZED, is available from the
COMAL Users Group for $19.95 (including book and disk).
CBM COMAL version 0.14 on this disk includes added
graphics, turtle, and sprite commands. Also the keywords
KEY$ and PRINT USING are included. Otherwise COMAL HANDBOOK
first edition can be used as reference for version
0.14. (Whenever the book mentions version 0.12, just
replace it with 0.14). The only difference is in
selecting the output location. Version 0.12 used
SELECT OUTPUT "LP" and SELECT OUTPUT "DS". Version 0.14
uses SELECT OUTPUT "LP:" and SELECT OUTPUT "DS:". The
colon is now required, allowing it to be compatible with
the advanced file handling system employed by the version
2.00 cartridge due for release Spring 1984.
The graphics, sprite, and turtle commands will be
documented by the book COMMODORE 64 GRAPHICS AND SOUND
WITH COMAL to be published by Reston Publishing
Summer 1984. A brief summary of all these added
commands and statements are included in the data file
on this disk called INSTRUCTIONS. Run the program
SEE'INSTRUCTIONS to read about them. It lists all the words
with their correct syntax. [ed: shown below]
There are two ways to store programs on the disk, and two
corresponding ways to retrieve them:
SAVE "NAME" This saves the program currently in the computer
onto disk as a binary file with the name you
specified inside quotes. It can be retrieved via LOAD,
but only with an exact same CBM COMAL version.
LIST "NAME.L" This stores the program currently in the
computer onto disk as an ASCII file with the name you
specified inside quotes (we suggest that you end the
file name with a .L to remind you later that the file is a
LIST file). The file is a bit larger than the same program
stored via SAVE. However, this ASCII file has many
additional uses. It can be retrieved by ANY CBM COMAL
version. It can be merged with another program at a later
time. It can be read by another program using
INPUT FILE statements.
LOAD "NAME" This will erase the current program first,
then will retrieve the program stored on disk with the
name you specified inside quotes. Then to run the
program issue the RUN command.
CHAIN "NAME" This is similar to the LOAD command, but
the program will LOAD and RUN automatically.
ENTER "NAME.L" This will merge the program or program
segment from disk with the one currently in the
computer (remember the suggested .L at the end of the
file name). Line numbers are significant during this
process in version 0.14. If a line is ENTERed with a
same line number as one already existing in the computer,
the previous line is deleted and the new line ENTERed
replaces it. To avoid this problem, simply RENUMber a
program or program segment to high line number before
LISTing it to disk (ie, RENUM 8000). To retrieve a whole
program, issue the NEW command first, then the ENTER
command.
To list the program currently in the computer to the
printer: SELECT OUTPUT "LP:" LIST
To see what is on your disk: CAT
SPECIAL NOTE: Due to a peculiarity in the C64 serial IEEE
to disk and printer you cannot select output to printer
and then do a CAT. But the COMAL USERS GROUP (USA) has
provided you a way to print a disk directory on the printer
bypassing this problem. Try the program called
"PRINT'DIRECTORY".
NOTE ON OLD COMAL 0.12 PROGRAMS Programs written for version
0.12 will run on version 0.14. But LIST them to disk from
version 0.12 and ENTER them into 0.14. The LOAD/SAVE files
are not completly compatible and could lock out your
system.
Do NOT try to LOAD a BASIC program file into COMAL. COMAL
gets upset.
======================================
COMAL Users Group
5501 Groveland Terrace
Madison, WI 53716
(608) 222-4432
Include $2 Shipping/Handling with every order. Or send a
self addressed stamped envelope for more information.
Prices listed are subject to change.
COMAL KEYWORDS: (version 0.14)
// -- allows comments in a program
//[]
ABS -- gives the absolute value
ABS()
AND -- logical AND
AND
APPEND -- start at end of seq file
OPEN [FILE] ,,APPEND
ATN -- arctangent in radians
ATN()
AUTO -- automatic line numbering
AUTO [][,]
BASIC -- back into BASIC mode
BASIC
CASE -- multiple choice decisions
CASE [OF]
CAT -- gives disk directory
CAT []
CHAIN -- load & run program on disk
CHAIN
CHR$ -- gives that numbers character
CHR$()
CLOSE -- closes files
CLOSE [[FILE] ]
CLOSED -- all proc/func variables local
PROC [(params)] [CLOSED]
FUNC [(params)] [CLOSED]
CON -- continue program execution
CON
COS -- cosine in radians
COS()
DATA -- provides data for a READ
DATA [,][,...]
DEL -- deletes lines
DEL
DELETE -- deletes a file from disk
DELETE
DIM -- allocates string & array space
DIM OF
DIM () OF
DIM ()
DIV -- division with integer answer
DIV
DO -- do the following statements
DO
EDIT -- list lines without indentations
EDIT []
ELIF -- short for ELSE IF condition
ELIF [THEN]
ELSE -- IF struc alternative statements
ELSE
END -- halt program execution
END
ENDCASE -- end of CASE structure
ENDCASE
ENDFOR -- end of FOR structure
ENDFOR []
ENDFUNC -- end of function
ENDFUNC []
ENDIF -- end of IF structure
ENDIF
ENDPROC -- end of procedure
ENDPROC []
ENDWHILE -- end of WHILE structure
ENDWHILE
ENTER --merge program segment from disk
ENTER
EOD -- End Of Data flag
EOD
EOF -- End Of File flag
EOF()
ESC -- stop key pressed flag
ESC
TRAP ESC
EXEC -- execute a procedure
[EXEC] [()]
EXP -- natural log e to n
EXP()
FALSE -- predefined value = 0
FALSE
FILE -- specifies that a file is used
INPUT FILE [,]:
PRINT FILE [,]:
READ FILE [,]:
WRITE FILE [,]:
OPEN [FILE] ,[,]
CLOSE [[FILE] ]
FOR -- start of FOR loop structure
FOR = TO [STEP ] [DO]
FUNC -- start of a multiline function
FUNC [()] [EXTERNAL ]
FUNC [()] [CLOSED]
GOTO -- go to line with this name
GOTO