home *** CD-ROM | disk | FTP | other *** search
/ The Fred Fish Collection 1.5 / ffcollection-1-5-1992-11.iso / ff_progs / prog_oth / comal.lzh / COMAL / INFOTEXT / KEYWORDS < prev    next >
Encoding:
Text File  |  1991-08-16  |  12.3 KB  |  793 lines

  1. This is a quick reference to the built-in AmigaCOMAL keywords. 
  2. After each keyword (typed in CAPS to allow you to scan them 
  3. quickly) its syntax is shown, followed by at least one example. 
  4. Notation used for displaying keyword syntax is a modified form of 
  5. Backus-Naur notation, similar to that used by COMAL Today, COMAL 
  6. Handbook, and the COMAL Kernal Standard. Generally its rules are: 
  7.  
  8. (a)Normal text not enclosed in < > is typed as shown (you may 
  9.           type in caps or lower case regardless of how the text is 
  10.           shown). 
  11.  
  12. (b)Items enclosed in < > are supplied by the user. The <> are not 
  13.           typed. 
  14.  
  15. (c)Items enclosed in [ ] are optional. If used, do not type the 
  16.           [ ]. 
  17.  
  18. (d)Items enclosed in { } are optional and may have several 
  19.           occurances. If used, do not type the { }. 
  20.  
  21. (e)The | means "or". You choose one or the other of the items 
  22.           divided by the |. 
  23.  
  24. (f)All punctuation should be typed as shown, including the ( ). 
  25.  
  26. Remember that the examples given are only example lines, not entire 
  27. programs. They often require other COMAL statements to actually 
  28. work, such as initialization or procedure and function definitions. 
  29.  
  30. //  
  31.   // 
  32.   // anything typed here 
  33.  
  34. ABS  
  35.   abs(<numeric expression>) 
  36.   PRINT abs(standard'number) 
  37.  
  38. ACS 
  39.   acs(<numeric expression>) 
  40.   temp:=acs(num1+num2) 
  41.  
  42. ALLOCATE 
  43.   allocate(<pointer var>[,<num>]) 
  44.   allocate(new@) 
  45.  
  46. AND  
  47.   <expression> AND <expression> 
  48.   IF number>0 AND number<100 THEN 
  49.  
  50. APPEND  
  51.   OPEN [FILE] <file#>,<filename>,APPEND 
  52.   OPEN FILE 2,"test",APPEND 
  53.  
  54. ARGARRAY$ 
  55.   argarray$(<num>) 
  56.   IF argarray$(-1)="CLI" THEN 
  57.  
  58. ARGNUM 
  59.   argnum 
  60.   IF argnum>0 THEN check'parm 
  61.  
  62. ASN 
  63.   asn(<numeric expression>) 
  64.   PRINT asn(numb) 
  65.  
  66. AT  
  67.   PRINT AT <row>,<col>: [<print list>[<mark>]] 
  68.   INPUT AT <row>,<col>[,<len>]:[<prompt>:][<vars>[<mark>]] 
  69.   PRINT AT 1,1: "Section number:"; num; 
  70.   INPUT AT 10,1,1:"Yes or No? ":reply$ 
  71.  
  72. ATN 
  73.   atn(<numeric expression>) 
  74.   PRINT atn(num1+num2) 
  75.  
  76. AUTO  
  77.   AUTO [<start line>][,<increment>] 
  78.   AUTO 9000 
  79.   AUTO 100,100 
  80.   AUTO ,5 
  81.   AUTO 
  82.  
  83. BITAND  
  84.   <argument> BITAND <argument> 
  85.   show(bnum BITAND %00001000) 
  86.  
  87. BITOR  
  88.   <argument> BITOR <argument> 
  89.   PRINT (bnum BITOR flag) 
  90.  
  91. BITXOR  
  92.   <argument> BITXOR <argument> 
  93.   bnum=(num1+num2) BITXOR %10000000 
  94.  
  95. BYE  
  96.   BYE 
  97.   BYE 
  98.  
  99. CASE  
  100.   CASE <control expression> [OF] 
  101.   CASE reply$ OF 
  102.   CASE choice OF 
  103.  
  104. CAT - converted to DIR. See DIR. 
  105.  
  106. CD - a short form of CHDIR. See CHDIR. 
  107.  
  108. CHAIN  
  109.   CHAIN <filename> 
  110.   CHAIN "menu" 
  111.  
  112. CHANGE 
  113.   CHANGE [<line range>] <text1>,<text2> 
  114.   CHANGE "zz","printout" 
  115.  
  116. CHDIR 
  117.   CHDIR [<string>] 
  118.   CHDIR "testprog" 
  119.   CHDIR 
  120.  
  121. CHR$  
  122.   chr$(<numeric expression>) 
  123.   PRINT chr$(num) 
  124.  
  125. CLOSE  
  126.   CLOSE [[FILE] <filenum>] 
  127.   CLOSE FILE 2 
  128.   CLOSE 
  129.  
  130. CLOSED  
  131.   PROC <procname>[(params)] [CLOSED] 
  132.   FUNC <funcname>[(params)] [CLOSED] 
  133.   PROC newpage(header$) CLOSED 
  134.   FUNC gcd(n1,n2) CLOSED 
  135.  
  136. CON  
  137.   CON 
  138.   CON 
  139.  
  140. COPY 
  141.   COPY "<source filename>","<destination filename>" 
  142.   COPY "test.sav","final.sav" 
  143.  
  144. COS  
  145.   cos(<numeric expression>) 
  146.   PRINT cos(number) 
  147.  
  148. CREATE  
  149.   CREATE <filename>,<# records>,<record size> 
  150.   CREATE "names",128,200 
  151.  
  152. CURCOL  
  153.   curcol 
  154.   column:=curcol 
  155.  
  156. CURROW  
  157.   currow 
  158.   row:=currow 
  159.  
  160. CURSOR  
  161.   CURSOR <line>,<position> 
  162.   CURSOR 1,1 
  163.  
  164. DATA  
  165.   DATA <value>{,<value>} 
  166.   DATA "Sam",134,"Fred",22,"Gloria",46 
  167.  
  168. DATE$ 
  169.   date$ 
  170.   PRINT "Year:";date$(1:4) 
  171.  
  172. DEALLOCATE 
  173.   deallocate(<pointer var>) 
  174.   deallocate(new@) 
  175.  
  176. DEL  
  177.   DEL <range> 
  178.   DEL 460 
  179.   DEL pause 
  180.  
  181. DELETE  
  182.   DELETE <filename> 
  183.   DELETE "test5.sav" 
  184.  
  185. DIM  
  186.   DIM <string var> OF <max char> 
  187.   DIM <str array>(<index>) OF <max char> 
  188.   DIM <array name>(<index>) 
  189.   DIM name$ of 30 
  190.   DIM players$(1:4) OF 10 
  191.   DIM scores(min:max) 
  192.  
  193. DIR  
  194.   DIR [<drive/dir>] 
  195.   DIR 
  196.  
  197. DIR$ 
  198.   dir$ 
  199.   PRINT dir$ 
  200.  
  201. DISCARD  
  202.   DISCARD 
  203.   DISCARD 
  204.  
  205. DISPLAY  
  206.   DISPLAY [<range>] [TO] [<filename>] 
  207.   DISPLAY "names.lst" 
  208.   DISPLAY init 
  209.  
  210. DIV  
  211.   <dividend> DIV <divisor> 
  212.   result=guess DIV count 
  213.  
  214. DO : see FOR and WHILE 
  215.  
  216. ELIF  
  217.   ELIF <expression> [THEN] 
  218.   ELIF reply$ IN "YyNn" THEN 
  219.  
  220. ELSE  
  221.   ELSE 
  222.   ELSE 
  223.  
  224. END  
  225.   END [<message>] 
  226.   END  "All Done." 
  227.  
  228. ENDCASE  
  229.   ENDCASE 
  230.   ENDCASE 
  231.  
  232. ENDFOR  
  233.   ENDFOR [<control variable>] 
  234.   ENDFOR sides# 
  235.   ENDFOR increment 
  236.  
  237. ENDFUNC  
  238.   ENDFUNC [<function name>] 
  239.   ENDFUNC even 
  240.  
  241. ENDIF  
  242.   ENDIF 
  243.   ENDIF 
  244.  
  245. ENDLOOP  
  246.   ENDLOOP 
  247.   ENDLOOP 
  248.  
  249. ENDPROC  
  250.   ENDPROC [<procedure name>] 
  251.   ENDPROC show'item 
  252.  
  253. ENDRECORD 
  254.   ENDRECORD 
  255.   ENDRECORD 
  256.  
  257. ENDTRAP 
  258.   ENDTRAP 
  259.   ENDTRAP 
  260.  
  261. ENDWHILE  
  262.   ENDWHILE 
  263.   ENDWHILE 
  264.  
  265. ENTER  
  266.   ENTER <filename> 
  267.   ENTER "testing.lst" 
  268.  
  269. EOD  
  270.   eod 
  271.   WHILE NOT eod DO 
  272.  
  273. EOF  
  274.   eof(<filenum>) 
  275.   WHILE NOT eof(infile) DO 
  276.  
  277. ERR  
  278.   err 
  279.   CASE err OF 
  280.  
  281. ERRFILE 
  282.   errfile 
  283.   IF errfile=2 THEN 
  284.  
  285. ERRTEXT$ 
  286.   errtext$[(<num>)] 
  287.   PRINT ">>";errtext$;"<<" 
  288.  
  289. ESC  
  290.   esc 
  291.   TRAP ESC+|- 
  292.   IF esc THEN 
  293.   TRAP ESC- 
  294.  
  295. EXEC  
  296.   [EXEC] <procname>[(<parameter list>)] 
  297.   show'item(number) 
  298.  
  299. EXIT  
  300.   EXIT [WHEN <condition>] 
  301.   EXIT WHEN errors>3 
  302.  
  303. EXP  
  304.   exp(<numeric expression>) 
  305.   PRINT exp(number) 
  306.  
  307. EXPORT 
  308.   EXPORT <var>{,<var>} 
  309.   EXPORT riskrate 
  310.  
  311. EXTERNAL 
  312.   PROC <name>[(<parms>)][EXTERNAL <file>] 
  313.   FUNC <name>[(<parms>)][EXTERNAL <file>] 
  314.   FUNC rec'size(name$) EXTERNAL "rec.ext" 
  315.   PROC set'up EXTERNAL "setup.ext" 
  316.  
  317. FALSE  
  318.   FALSE 
  319.   ok:=FALSE 
  320.  
  321. FIELD 
  322.   FIELD <string var> OF <max char> 
  323.   FIELD <str array>(<index>) OF <max char> 
  324.   FIELD <array name>(<index>) 
  325.   FIELD <numeric variable name> 
  326.   FIELD name$ of 30 
  327.   FIELD players$(1:4) OF 10 
  328.   FIELD scores(min:max) 
  329.   FIELD diskkey# 
  330.   FIELD filename!(108) 
  331.  
  332. FILE : see CLOSE, INPUT, OPEN, PRINT, READ, WRITE 
  333.  
  334. FIND  
  335.   FIND "<text string>" 
  336.   FIND " PROC " 
  337.  
  338. FLOAT 
  339.   float(<numeric expression>) 
  340.   float(5) 
  341.  
  342. FOR  
  343.   FOR <var>:=<#> TO <#> [STEP <#>] DO [<statement>] 
  344.   FOR x:=10 TO 1 STEP -1 DO PRINT x 
  345.   FOR getin:=1 TO max DO getinput(getin) 
  346.   FOR num:=1 TO total DO 
  347.  
  348. FREE 
  349.   free 
  350.   PRINT free 
  351.  
  352. FREEFILE 
  353.   freefile 
  354.   editfile:=freefile 
  355.  
  356. FUNC  
  357.   FUNC <name>[(<parm>)] [CLOSED] 
  358.   FUNC <name>[(<parm>)] EXTERNAL <filename> 
  359.   FUNC call'answered EXTERNAL "call" 
  360.   FUNC but'first$(text$) CLOSED 
  361.   FUNC occurances#(text$,c$) 
  362.  
  363. GET$  
  364.   get$(<filenum>,<# of characters>) 
  365.   text$=get$(2,16) 
  366.  
  367. GLOBAL 
  368.   GLOBAL <var>{,<var>} 
  369.   GLOBAL person@,id#,found,press$(),after(,) 
  370.  
  371. GOTO  
  372.   GOTO <label name> 
  373.   GOTO jail 
  374.  
  375. HANDLER  
  376.   HANDLER 
  377.   HANDLER 
  378.  
  379. IF  
  380.   IF <condition> THEN [<statement>] 
  381.   IF reply$ IN "yYnN" THEN 
  382.  
  383. IMPORT 
  384.   IMPORT <identifier> {,<identifier>} 
  385.   IMPORT running'total 
  386.  
  387. IN  
  388.   <string1> IN <string2> 
  389.   IF guess$ IN word$ THEN winner 
  390.  
  391. INKEY$ 
  392.   inkey$ 
  393.   reply$:=inkey$ 
  394.  
  395. INOUT - see SELECT. 
  396.  
  397. INPUT 
  398.   INPUT FILE <file#>[,<rec#>]: <var list> 
  399.   INPUT [AT <row>,<col>[,<len>]:][<prompt>:]<vars>[<mark>] 
  400.   INPUT FILE 2: text$ 
  401.   INPUT AT 5,2,10:"ZIP CODE: ": zip'code, 
  402.   INPUT "Age? ":age 
  403.   INPUT reply$ 
  404.  
  405. INT  
  406.   int(<numeric expression>) 
  407.   tally:+int(number) 
  408.  
  409. KEY$ 
  410.   key$ 
  411.   WHILE key$<>"c" DO WAIT 
  412.  
  413. LABEL  
  414.   [LABEL] <label name>: 
  415.   months: 
  416.  
  417. LEN  
  418.   len(<string expression>) 
  419.   length=len(text$) 
  420.  
  421. LET 
  422.   [LET] <var>:=<value> //numeric or string 
  423.   [LET] <var>:+<value> //numeric or string - incremental 
  424.   [LET] <num var>:-<value> //numeric only - decremental 
  425.   count:=5 // assign a variable a value 
  426.   name$:="none";sum:=0 // assign several variables separated by ; 
  427.   reply$:+mark$ // concatenate mark$ onto end of reply$ 
  428.   score:-1 // decrement score by 1 
  429.   name$(2):="computer" // assign an element of array name$ 
  430.  
  431. LINK -- not a keyword, see USE. 
  432.  
  433. LIST  
  434.   LIST [<range>] [TO] [<filename>] 
  435.   LIST header 
  436.   LIST "myprog.lst" 
  437.   LIST pause "pause.lst" 
  438.  
  439. LISTPACK 
  440.   LISTPACK [<package>] 
  441.   LISTPACK 
  442.   LISTPACK system 
  443.  
  444. LOAD  
  445.   LOAD [<filename>] 
  446.   LOAD "menu" 
  447.  
  448. LOG  
  449.   log(<numeric expression>) 
  450.   PRINT log(number); 
  451.  
  452. LOOP 
  453.   LOOP [<num> TIMES [<simple statement>]] 
  454.   LOOP 10 TIMES 
  455.   LOOP 
  456.  
  457. MAIN 
  458.   MAIN
  459.   MAIN
  460.  
  461. MAKEDIR - converted to MKDIR. See MKDIR.
  462.  
  463. MAXINDEX
  464.   maxindex(arrayname([,]))
  465.   PRINT maxindex(table())
  466.   firstone=maxindex(scores(,))
  467.  
  468. MEMWINDOW
  469.   MEMWINDOW+|-
  470.   MEMWINDOW+
  471.  
  472. MERGE 
  473.   MERGE [<line#>[,<increment>]] <filename>
  474.   MERGE "readrec.lst"
  475.   MERGE 580,1 "checkout.lst"
  476.  
  477. MININDEX
  478.   minindex(arrayname([,]))
  479.   PRINT minindex(table())
  480.   firstone=minindex(scores(,))
  481.  
  482. MKDIR
  483.   MKDIR <string>
  484.   MKDIR "final"
  485.  
  486. MOD 
  487.   <dividend> MOD <divisor>
  488.   rem16=number MOD 16
  489.  
  490. NEW
  491.   NEW
  492.   NEW
  493.  
  494. NEXT : converted to ENDFOR, see ENDFOR
  495.  
  496. NOT 
  497.   NOT <condition>
  498.   IF NOT ok THEN
  499.  
  500. NULL
  501.   NULL
  502.   NULL
  503.  
  504. OF : see CASE, DIM and FIELD
  505.  
  506. OPEN 
  507.   OPEN [FILE] <file#>,<filename>,<mode>
  508.   OPEN FILE 2,"scores",READ
  509.  
  510. OR 
  511.   <condition> OR <condition>
  512.   IF reply$<"a" OR reply$>"z" THEN
  513.  
  514. ORD 
  515.   ord(<string expression>)
  516.   a=ord("a")
  517.  
  518. OTHERWISE 
  519.   OTHERWISE
  520.   OTHERWISE
  521.  
  522. OUTPUT - see SELECT OUTPUT.
  523.  
  524. PAGE 
  525.   PAGE
  526.   PAGE
  527.  
  528. PASS
  529.   PASS <string>
  530.   PASS "info"
  531.  
  532. PEEK 
  533.   peek(<memory address>)
  534.   device=peek(4839)
  535.  
  536. PI 
  537.   pi
  538.   PRINT "Value of PI is";pi
  539.  
  540. POINTER
  541.   POINTER <pointer var> [TO <var>]{,<pointer var> [TO <var>]}
  542.   POINTER len%
  543.   POINTER rec'ptr@ TO freezer'article@
  544.  
  545. POKE 
  546.   poke(<memory address>,<contents>)
  547.   poke(4839,13)
  548.  
  549. PRINT 
  550.   PRINT [AT <row>,<col>:] [USING <form>:] <list>[<mark>]
  551.   PRINT [FILE <#>[,<rec>]:][USING <form>:]<list>[<mark>]
  552.   PRINT FILE 2: text$
  553.   PRINT AT 9,1: USING "$###.##": amount
  554.  
  555. PROC 
  556.   PROC <name>[(<parms>)] [CLOSED]
  557.   PROC <name>[(<parms>)] [EXTERNAL <file>]
  558.   PROC readrec(number)
  559.   PROC compare(t1$,t2$) EXTERNAL "comp.ext"
  560.  
  561. RANDOM
  562.   OPEN FILE <file#>,<filename>,RANDOM <record length>
  563.   OPEN FILE 2,"subs",RANDOM 88
  564.  
  565. RANDOMIZE 
  566.   RANDOMIZE [<seed>]
  567.   RANDOMIZE
  568.   RANDOMIZE 8
  569.  
  570. READ 
  571.   READ [FILE <file#>[,<rec#>]:] <var list>
  572.   OPEN [FILE] <filenum>,<filename>,READ
  573.   READ name$,age
  574.   READ FILE 2,record: name$,adr$,city$,st$
  575.   OPEN FILE 3,filename$,READ
  576.  
  577. READWRITE
  578.   OPEN [FILE] <num>,<filename$>,READWRITE
  579.   OPEN FILE 3,filename$,READWRITE
  580.  
  581. RECORD
  582.   RECORD <name>@
  583.   RECORD person@
  584.  
  585. REF 
  586.   REF <var>
  587.   PROC alter(REF text$) CLOSED
  588.   FUNC slide(REF text$)
  589.  
  590. RENAME 
  591.   RENAME <old filename>,<new filename>
  592.   RENAME "temp","final"
  593.  
  594. RENUM 
  595.   RENUM [<target start>][,<increment>]
  596.   RENUM 100
  597.   RENUM ,5
  598.   RENUM 9000,1
  599.  
  600. REPEAT 
  601.   REPEAT
  602.   REPEAT
  603.  
  604. REPORT 
  605.   REPORT [<error code>]
  606.   REPORT
  607.   REPORT 256
  608.  
  609. RESTORE 
  610.   RESTORE [<label>]
  611.   RESTORE month'names
  612.   RESTORE
  613.  
  614. RETRY
  615.   RETRY
  616.   RETRY
  617.  
  618. RETURN 
  619.   RETURN [<value>]
  620.   RETURN TRUE
  621.   RETURN text$
  622.  
  623. RND 
  624.   rnd [(<start num>,<end num>)]
  625.   dice=rnd(1,6)+rnd(1,6)
  626.  
  627. ROUND
  628.   round(<numeric expression>)
  629.   print round(total)
  630.  
  631. RUN 
  632.   RUN [<filename>]
  633.   RUN
  634.   RUN "menu"
  635.  
  636. RUNWINDOW
  637.   RUNWINDOW+|-
  638.   RUNWINDOW+
  639.  
  640. SAVE 
  641.   SAVE <filename>
  642.   SAVE "zombies"
  643.  
  644. SCAN 
  645.   SCAN
  646.   SCAN
  647.  
  648. SELECT 
  649.   SELECT <direction> <type>
  650.   SELECT OUTPUT loc$
  651.   SELECT INPUT infile$
  652.   SELECT INOUT "sp:"
  653.  
  654. SGN 
  655.   sgn(<numeric expression>)
  656.   flag=sgn(number)
  657.  
  658. SIN 
  659.   sin(<numeric expression>)
  660.   plot(sin(num),y)
  661.  
  662. SIZE 
  663.   SIZE
  664.   SIZE
  665.  
  666. SPC$ 
  667.   spc$(<number of spaces>)
  668.   PRINT spc$(39)
  669.  
  670. SQR 
  671.   sqr(<numeric expression>)
  672.   root=sqr(number)
  673.  
  674. STEP 
  675.   STEP <numeric expression>
  676.   FOR x=1 TO max STEP 2 DO
  677.  
  678. STEP
  679.   STEP
  680.   STEP
  681.  
  682. STOP 
  683.   STOP [<message>]
  684.   STOP "now inside PROC remove'blank"
  685.  
  686. STR$ 
  687.   str$(<number>)
  688.   zip$=str$(number)
  689.  
  690. TAB 
  691.   TAB(<column number>)
  692.   PRINT TAB(col), name$
  693.  
  694. TAN 
  695.   tan(<numeric expression>)
  696.   PRINT tan(number)
  697.  
  698. THEN 
  699.   THEN
  700.   IF NOT ok THEN RETURN FALSE
  701.   ELIF errors>3 THEN
  702.  
  703. TIME$
  704.   time$
  705.   PRINT time$
  706.  
  707. TIMER
  708.   timer
  709.   starting=timer
  710.  
  711. TIMER
  712.   TIMER <num>
  713.   TIMER 0
  714.  
  715. TO 
  716.   <start num> TO <end num>
  717.   FOR x:=1 TO 4 DO
  718.  
  719. TRACE
  720.   TRACE[+|-]
  721.   TRACE-
  722.   TRACE+
  723.   TRACE
  724.  
  725. TRAP 
  726.   TRAP
  727.   TRAP
  728.  
  729. TRAP ESC 
  730.   TRAP ESC+|-
  731.   TRAP ESC- // disable stop/break key
  732.   TRAP ESC+ // enable stop/break key
  733.  
  734. TRUE 
  735.   TRUE
  736.   RETURN TRUE
  737.  
  738. UNIT
  739.   UNIT [<string expression>]
  740.   UNIT data'drive$
  741.  
  742. UNIT$
  743.   unit$
  744.   current$:=unit$
  745.  
  746. UNTIL 
  747.   UNTIL <condition>
  748.   UNTIL reply$="q"
  749.  
  750. USE
  751.   USE <package> [FROM <directory$>]
  752.   USE system
  753.   USE system FROM "AmigaCOMAL:"
  754.  
  755. USING 
  756.   PRINT [AT <row>,<col>: ]USING <format$>: <var list>
  757.   PRINT USING "##> $###.##": x, cash(x)
  758.   PRINT AT 8,5: USING "##": item
  759.  
  760. VAL 
  761.   val(<numeric string>)
  762.   age=val(reply$)
  763.  
  764. VARSIZE
  765.   varsize(<var>)
  766.   temp:=varsize(name$)
  767.  
  768. WAIT
  769.   WAIT [<num>]
  770.   WAIT 2
  771.   WAIT
  772.  
  773. WHEN 
  774.   WHEN <list of values>
  775.   WHEN "Jan","jan"
  776.   WHEN 1,2
  777.  
  778. WHILE 
  779.   WHILE <expression> [DO] [<statement>]
  780.   WHILE NOT EOF(infile) DO process
  781.   WHILE errors<3 DO
  782.  
  783. WRITE 
  784.   WRITE FILE <file#>[,<rec#>]:<var>
  785.   OPEN [FILE] <filenum>,<filename>,WRITE
  786.   WRITE FILE 2: name$
  787.   OPEN FILE 3,"scores",WRITE
  788.  
  789. ZONE 
  790.   ZONE [<tab interval>]
  791.   ZONE 5
  792.   z:=ZONE
  793.