home *** CD-ROM | disk | FTP | other *** search
- COMAL Syntax: C-64 / Version 0.14
-
-
- Note: Items in brackets ([]) are optional.
-
- // -- allows comments in a program
- //[<anything>]
-
- ABS -- returns absolute value
- ABS(<numeric expression>)
-
- AND -- logical AND
- <expression> AND <expression>
-
- APPEND -- start at end of seq file
- OPEN [FILE] <file#>,<filename>,APPEND
-
- ATN -- returns arctangent in radians
- ATN(<numeric expression>)
-
- AUTO -- automatic line numbering
- AUTO [<start line>][,<increment>]
-
- BASIC -- return to BASIC mode
- BASIC
-
- CASE -- multiple choice decisions
- CASE <control expression> [OF]
-
- CAT -- disk catalog (directory)
- CAT [<drive number>]
-
- CHAIN -- load & run program on disk
- CHAIN <filename>
-
- CHR$ -- returns CBM ASCII code; inverse of ORD
- CHR$(<numeric expression>)
-
- CLOSE -- closes files
- CLOSE [[FILE] <filenum>]
- CLOSE with no file # closes all open files
-
- CLOSED -- makes all proc/func variables local
- PROC <procname>[(params)] [CLOSED]
- FUNC <funcname>[(params)] [CLOSED]
-
- CON -- continue program execution
- CON
-
- COS -- returns cosine (angle in radians)
- COS(<numeric expression>)
-
- DATA -- provides data for a READ
- DATA <value>[,<value>][,...]
-
- DEL -- deletes lines
- DEL <range>
-
- DELETE -- deletes a file from disk
- DELETE <filename>
-
- DIM -- reserve/allocate string/array space
- DIM <string var> OF <max char>
- DIM <str array>(<index>) OF <max char>
- DIM <array name>(<index>)
-
- DIV -- division with integer answer
- <dividend> DIV <divisor>
-
- DO -- do the following statements
- DO <statements>
-
- EDIT -- list lines without indentations
- EDIT [<range>]
-
- ELIF -- short for ELSE IF condition
- ELIF <expression> [THEN]
-
- ELSE -- alternative statements in IF structure
- ELSE
-
- END -- halt program execution
- END
-
- ENDCASE -- end of CASE structure
- ENDCASE
-
- ENDFOR -- end of FOR structure
- ENDFOR [<control variable>]
-
- ENDFUNC -- end of function
- ENDFUNC [<function name>]
-
- ENDIF -- end of IF structure
- ENDIF
-
- ENDPROC -- end of procedure
- ENDPROC [<procedure name>]
-
- ENDWHILE -- end of WHILE structure
- ENDWHILE
-
- ENTER -- merge LISTed program segment from disk
- ENTER <filename>
-
- EOD -- End Of Data flag
- EOD
-
- EOF -- End Of File flag
- EOF(<filenum>)
-
- ESC -- stop key pressed flag
- ESC
- TRAP ESC<type>
-
- EXEC -- execute a procedure
- [EXEC] <procname>[(<parameter list>)]
-
- EXP -- returns e^n (e=base of natural logs=2.18281828459045+)
- EXP(<numeric expression>)
-
- FALSE -- predefined value = 0
- FALSE
-
- FILE -- specifies file I/O is to be used
- INPUT FILE <file#>[,<rec#>]: <varlist>
- PRINT FILE <file#>[,<rec#>]: <varlist>
- READ FILE <file#>[,<rec#>]: <varlist>
- WRITE FILE <file#>[,<rec#>]: <varlist>
- OPEN [FILE] <file#>,<filenam>[,<type>]
- CLOSE [[FILE] <file#>]
-
- FOR -- start of FOR loop structure
- FOR <var>:=<start> TO <end> [STEP <s>]
-
- FUNC -- start of a multiline function
- FUNC <name>[(<params>)] [CLOSED]
-
- GOTO -- go to line with this label
- GOTO <label name>
-
- IF -- start of conditional IF structure
- IF <condition> [THEN]
- IF <condition> THEN <statement>
-
- IN -- returns position of string1 within string2
- <string1> IN <string2>
-
- INPUT -- input from keyboard or file
- INPUT [<prompt>:] <varlist>
- INPUT FILE <file#>[,<rec#>]:<varlist>
-
- INT -- returns truncated integer value
- INT(<numeric expression>)
-
- KEY$ -- current key pressed
- KEY$
-
- LABEL -- assign a label
- <label name>:
-
- LEN -- returns string length
- LEN(<string expression>)
-
- LET -- assign value to variable
- := or :+ or :-
- A:+B -> A:=A+B; A:-B -> A:=A-B
-
- LIST -- list program
- LIST [<range>] [<filename>]
- LIST <filename> puts list file on disk
-
- LOAD -- load a program from disk
- LOAD <filename>
-
- LOG -- returns natural logarithm of n
- LOG(<numeric expression>)
-
- MOD -- remainder of division (modulo)
- <dividend> MOD <divisor>
-
- NEW -- clears program from memory
- NEW
-
- NEXT -- alternate form of ENDFOR
- NEXT [<control variable>]
-
- NOT -- logical NOT
- NOT <condition>
-
- NULL -- does nothing (no op)
- NULL
-
- OF -- part of DIM or CASE structure
- CASE <expression> [OF]
- DIM <stringvar> OF <max char>
- DIM <stringarray>(index) OF <max char>
-
- OPEN -- open a file
- OPEN [FILE] <file#>,<filenam>[,UNIT <dev>[,<secondary address>]][,<type>]
-
- OR -- logical OR
- <condition> OR <condition>
-
- ORD -- returns integer representing character; inverse of CHR$
- ORD(<string expression>)
-
- OTHERWISE -- default for CASE
- OTHERWISE
-
- OUTPUT -- select output location
- SELECT [OUTPUT] <type>
- <type> is either "DS:" (for Display Screen) or "LP:" (for Line Printer)
-
- PASS -- pass string to disk command chan
- PASS <disk command>
-
- PEEK -- returns value of memory at address
- PEEK(<memory address>)
-
- POKE -- change memory location
- POKE <memory address>,<contents>
-
- PRINT -- print items to screen/printer/file
- PRINT [FILE <#>:] [<varlist>]
- PRINT [FILE <#>:] USING <format>:<varlist>
- (RANDOM file use: [FILE <#>,<rec#>:])
-
- PROC -- start of multiline procedure
- PROC <name>[(<params>)] [CLOSED]
-
- RANDOM -- random access file type
- OPEN FILE <#>,<filenam>,RANDOM <recln>
-
- READ -- read data from DATA line or file
- READ <varlist>
- READ FILE <file#>[,<rec#>]: <varlist>
- OPEN [FILE] <filenum>,<filename>,READ
-
- REF -- designates call by reference parameter in PROC or FUNC
- REF <var>
-
- RENUM -- renumber program
- RENUM [<targetstart>][,<increment>]
-
- REPEAT -- start of REPEAT structure
- REPEAT
-
- RESTORE -- reuse DATA with READ
- RESTORE
-
- RND -- returns random number
- RND(<num>)
- RND(<start num>:<end num>)
-
- RUN -- run program now in memory
- RUN
-
- SAVE -- record program on disk
- SAVE <filename>
-
- SELECT -- choose output location
- SELECT [OUTPUT] <type>
- <type> is either "DS:" (for Display Screen) or "LP:" (for Line Printer)
-
- SGN -- returns -1 if negative, 0 if zero, 1 if positive
- SGN(<numeric expression>)
-
- SIN -- returns sine (angle in radians)
- SIN(<numeric expression>)
-
- SIZE -- show amount of free memory
- SIZE
-
- SQR -- returns square root
- SQR(<numeric expression>)
-
- STATUS$ -- displays or returns disk channel status
- STATUS$
-
- STEP -- increment FOR loop by this amount
- STEP <numeric expression>
-
- STOP -- halt program execution
- STOP
-
- SYS -- transfer control to machine code
- SYS(<memory address>)
-
- TAB -- print spaces to specified column
- TAB(<column number>)
-
- TAN -- returns tangent (angle in radians)
- TAN(<numeric expression>)
-
- THEN -- part of IF structure
- THEN
-
- TO -- increment FOR variable start TO end
- <start num> TO <end num>
-
- TRAP -- disable stop key
- TRAP ESC<type>
-
- TRUE -- predefined value of 1
- TRUE
-
- UNIT -- specify unit (device)
- OPEN [FILE] <file#>,<filenam>[,UNIT <dev>[,<secondary address>]][,<type>]
-
- UNTIL -- end of REPEAT loop
- UNTIL <expression>
-
- USING -- formatted output
- PRINT USING <format>: <varlist>
-
- WHEN -- choice in CASE structure
- WHEN <list of values>
-
- WHILE -- start of WHILE structure
- WHILE <expression> [DO] [<statement>]
-
- WRITE -- write to a file
- WRITE FILE <file#>[,<rec#>]: <varlist>
- OPEN [FILE] <filenum>,<filename>,WRITE
-
- ZONE -- sets or returns tab interval
- ZONE <tab interval> - sets interval
- ZONE - returns interval (x:=ZONE)
-
-
-
- HIGH-RES & TURTLE GRAPHICS
-
-
- BACK -- move turtle backwards
- BACK <length>
-
- BACKGROUND -- set screen background color
- BACKGROUND <color number>
-
- BORDER -- set screen border color
- BORDER <color number>
-
- CLEAR -- clear the graphics screen
- CLEAR
-
- DRAWTO -- draw line from current point
- DRAWTO <x coordinate>,<y coordinate>
-
- FILL -- fill in area with current color
- FILL <x coordinate>,<y coordinate>
-
- FORWARD -- move turtle forward
- FORWARD <length>
-
- FRAME -- set up a screen window
- FRAME <x0>,<x1>,<y0>,<y1>
-
- FULLSCREEN -- fullscreen graphics (F5)
- FULLSCREEN
-
- HIDETURTLE -- make the turtle invisible
- HIDETURTLE
-
- HOME -- put turtle in its home position
- HOME
-
- LEFT -- turn turtle left
- LEFT <degrees>
-
- MOVETO -- move to x,y point without line
- MOVETO <x coordinate>,<y coordinate>
-
- PENCOLOR -- set current pen color
- PENCOLOR <color number>
-
- PENDOWN -- put pen down-turtle draws line
- PENDOWN
-
- PENUP -- pick up pen-turtle doesn't draw
- PENUP
-
- PLOT -- plot a point in current color
- PLOT <x coordinate>,<y coordinate>
-
- PLOTTEXT -- print text on graphics screen
- PLOTTEXT <x coordinate>,<y coordinate>,<text$>
-
- RIGHT -- turn turtle right
- RIGHT <degrees>
-
- SETGRAPHIC -- turn on graphics screen
- SETGRAPHIC [<type>]
-
- SETHEADING -- set turtle heading
- SETHEADING <degree>
-
- SETTEXT -- turn on text screen (F1)
- SETTEXT
-
- SETXY -- set turtle x and y coordinates
- SETXY <x coordinate>,<y coordinate>
-
- SHOWTURTLE -- make turtle visible
- SHOWTURTLE
-
- SPLITSCREEN -- 2 text lines above graphics screen (F3)
- SPLITSCREEN
-
- TURTLESIZE -- set turtle size (0 to 10)
- TURTLESIZE <size>
-
-
-
- SPRITES
-
-
- DATACOLLISION -- test collision with data
- DATACOLLISION <sprite#>,<reset collision flag>
-
- DEFINE -- set up sprite image for lateruse
- DEFINE <sprite definition #>,<64 byte def$>
-
- HIDESPRITE -- turn off specified sprite
- HIDESPRITE <sprite number>
-
- IDENTIFY -- assign an image to a sprite
- IDENTIFY <sprite number>,<definition#>
- (note: sprite 7 is used for turtle)
-
- PRIORITY -- data priority over sprite?
- PRIORITY <sprite #>,<data priority?>
-
- SPRITEBACK -- set 2 sprite multicolors
- SPRITEBACK <color1>,<color2>
-
- SPRITECOLLISION -- test sprite collision
- SPRITECOLLISION <sprite#>,<reset collision flag>
-
- SPRITECOLOR -- set sprite color
- SPRITECOLOR <sprite #>,<color number>
-
- SPRITEPOS -- put sprite at x,y location
- SPRITEPOS <sprite#>,<x coordinate>,<y coorinate>
-
- SPRITESIZE -- set sprite size (expand or not)
- SPRITESIZE <sprite#>,<x expand flag>,<y expand flag>