_  __   _  _         _ _     _      _           _           
  __| |/ /_ | || |     __| (_)___| | __ (_)_ __   __| | _____  __
 / _` | '_ \| || |_   / _` | / __| |/ / | | '_ \ / _` |/ _ \ \/ /
| (_| | (_) |__   _| | (_| | \__ \   <  | | | | | (_| |  __/>  < 
 \__,_|\___/   |_|    \__,_|_|___/_|\_\ |_|_| |_|\__,_|\___/_/\_\
                                                                 
            

COMAL DOC

FILE INFORMATION

FILENAME(S): COMAL DOC

FILE TYPE(S): SEQ

FILE SIZE: 4.2K

FIRST SEEN: 2025-11-30 18:12:24

APPEARS ON: 1 disk(s)

FILE HASH

a2dee176cbf53cb3954a5fcd5d6b08e20b66c7dbf217b9e8b26a2c2bb8171237

FOUND ON DISKS (1 DISKS)

DISK TITLE FILENAME FILE TYPE COLLECTION TRACK SECTOR ACTIONS
DOCUMENTATION 2 COMAL DOC SEQ Sailor, Ganheden 2 0 DOWNLOAD FILE

FILE CONTENT & ANALYSIS

00000000: 80 2A 4E 42 22 43 4F 4D  41 4C 20 44 4F 43 53 22  |.*NB"COMAL DOCS"|
00000010: 0D 80 2A 4C 4D 31 3A 52  4D 36 38 3A 4F 46 31 30  |..*LM1:RM68:OF10|
00000020: 0D 80 2A 30 3D 30 3A 31  3D 31 3A 32 3D 32 3A 33  |..*0=0:1=1:2=2:3|
00000030: 3D 33 3A 34 3D 34 3A 4C  4E 32 3A 50 23 31 0D 80  |=3:4=4:LN2:P#1..|
00000040: 2A 48 44 33 3A 2C C3 CF  CD C1 CC 20 C3 CF CD CD  |*HD3:,..... ....|
00000050: C1 CE C4 D3 2C D0 41 47  45 20 80 23 0D 2A 2F 2A  |....,.AGE .#.*/*|
00000060: 2F 2A 2F 2A 2F 2A 2F 2A  2F 2A 2F 2A 2F 2A 2F 2A  |/*/*/*/*/*/*/*/*|
00000070: 2F 2A 2F 2A 2F 2A 2F 2A  2F 2A 2F 2A 2F 2A 2F 2A  |/*/*/*/*/*/*/*/*|
00000080: 2F 2A 2F 2A 0D 2A 20 20  20 20 20 20 20 20 20 20  |/*/*.*          |
00000090: 20 20 20 20 C3 20 CF 20  CD 20 C1 20 CC 20 20 20  |    . . . . .   |
000000A0: 20 20 20 20 20 20 20 20  20 20 20 2A 0D 2A 2F 2A  |           *.*/*|
000000B0: 2F 2A 2F 2A 2F 2A 2F 2A  2F 2A 2F 2A 2F 2A 2F 2A  |/*/*/*/*/*/*/*/*|
000000C0: 2F 2A 2F 2A 2F 2A 2F 2A  2F 2A 2F 2A 2F 2A 2F 2A  |/*/*/*/*/*/*/*/*|
000000D0: 2F 2A 2F 2A 0D 0D C3 CF  CD C1 CC 20 D3 59 4E 54  |/*/*....... .YNT|
000000E0: 41 58 3A 20 20 C3 2D 36  34 20 2F 20 D6 45 52 53  |AX:  .-64 / .ERS|
000000F0: 49 4F 4E 20 30 2E 31 34  0D 0D CE 4F 54 45 3A 20  |ION 0.14...OTE: |
00000100: 20 C9 54 45 4D 53 20 49  4E 20 42 52 41 43 4B 45  | .TEMS IN BRACKE|
00000110: 54 53 20 28 5B 5D 29 20  41 52 45 0D 4F 50 54 49  |TS ([]) ARE.OPTI|
00000120: 4F 4E 41 4C 2E 0D 0D 2F  2F 20 2D 2D 20 41 4C 4C  |ONAL...// -- ALL|
00000130: 4F 57 53 20 43 4F 4D 4D  45 4E 54 53 20 49 4E 20  |OWS COMMENTS IN |
00000140: 41 20 50 52 4F 47 52 41  4D 0D 2F 2F 5B 3C 41 4E  |A PROGRAM.//[<AN|
00000150: 59 54 48 49 4E 47 3E 5D  0D 0D C1 C2 D3 20 2D 2D  |YTHING>]..... --|
00000160: 20 52 45 54 55 52 4E 53  20 41 42 53 4F 4C 55 54  | RETURNS ABSOLUT|
00000170: 45 20 56 41 4C 55 45 0D  C1 C2 D3 28 3C 4E 55 4D  |E VALUE....(<NUM|
00000180: 45 52 49 43 20 45 58 50  52 45 53 53 49 4F 4E 3E  |ERIC EXPRESSION>|
00000190: 29 0D 0D C1 CE C4 20 2D  2D 20 4C 4F 47 49 43 41  |)..... -- LOGICA|
000001A0: 4C 20 C1 CE C4 0D 3C 45  58 50 52 45 53 53 49 4F  |L ....<EXPRESSIO|
000001B0: 4E 3E 20 C1 CE C4 20 3C  45 58 50 52 45 53 53 49  |N> ... <EXPRESSI|
000001C0: 4F 4E 3E 0D 0D C1 D0 D0  C5 CE C4 20 2D 2D 20 53  |ON>........ -- S|
000001D0: 54 41 52 54 20 41 54 20  45 4E 44 20 4F 46 20 53  |TART AT END OF S|
000001E0: 45 51 20 46 49 4C 45 0D  CF D0 C5 CE 20 5B C6 C9  |EQ FILE..... [..|
000001F0: CC C5 5D 20 3C 46 49 4C  45 23 3E 2C 3C 46 49 4C  |..] <FILE#>,<FIL|
00000200: 45 4E 41 4D 45 3E 2C C1  D0 D0 C5 CE C4 0D 0D C1  |ENAME>,.........|
00000210: D4 CE 20 2D 2D 20 52 45  54 55 52 4E 53 20 41 52  |.. -- RETURNS AR|
00000220: 43 54 41 4E 47 45 4E 54  20 49 4E 20 52 41 44 49  |CTANGENT IN RADI|
00000230: 41 4E 53 0D C1 D4 CE 28  3C 4E 55 4D 45 52 49 43  |ANS....(<NUMERIC|
00000240: 20 45 58 50 52 45 53 53  49 4F 4E 3E 29 0D 0D C1  | EXPRESSION>)...|
00000250: D5 D4 CF 20 2D 2D 20 41  55 54 4F 4D 41 54 49 43  |... -- AUTOMATIC|
00000260: 20 4C 49 4E 45 20 4E 55  4D 42 45 52 49 4E 47 0D  | LINE NUMBERING.|
00000270: C1 D5 D4 CF 20 5B 3C 53  54 41 52 54 20 4C 49 4E  |.... [<START LIN|
00000280: 45 3E 5D 5B 2C 3C 49 4E  43 52 45 4D 45 4E 54 3E  |E>][,<INCREMENT>|
00000290: 5D 0D 0D C2 C1 D3 C9 C3  20 2D 2D 20 52 45 54 55  |]....... -- RETU|
000002A0: 52 4E 20 54 4F 20 C2 C1  D3 C9 C3 20 4D 4F 44 45  |RN TO ..... MODE|
000002B0: 0D C2 C1 D3 C9 C3 0D 0D  C3 C1 D3 C5 20 2D 2D 20  |............ -- |
000002C0: 4D 55 4C 54 49 50 4C 45  20 43 48 4F 49 43 45 20  |MULTIPLE CHOICE |
000002D0: 44 45 43 49 53 49 4F 4E  53 0D C3 C1 D3 C5 20 3C  |DECISIONS..... <|
000002E0: 43 4F 4E 54 52 4F 4C 20  45 58 50 52 45 53 53 49  |CONTROL EXPRESSI|
000002F0: 4F 4E 3E 20 5B CF C6 5D  0D 0D C3 C1 D4 20 2D 2D  |ON> [..]..... --|
00000300: 20 44 49 53 4B 20 43 41  54 41 4C 4F 47 20 28 44  | DISK CATALOG (D|
00000310: 49 52 45 43 54 4F 52 59  29 0D C3 C1 D4 20 5B 3C  |IRECTORY).... [<|
00000320: 44 52 49 56 45 20 4E 55  4D 42 45 52 3E 5D 0D 0D  |DRIVE NUMBER>]..|
00000330: C3 C8 C1 C9 CE 20 2D 2D  20 4C 4F 41 44 20 26 20  |..... -- LOAD & |
00000340: 52 55 4E 20 50 52 4F 47  52 41 4D 20 4F 4E 20 44  |RUN PROGRAM ON D|
00000350: 49 53 4B 0D C3 C8 C1 C9  CE 20 3C 46 49 4C 45 4E  |ISK...... <FILEN|
00000360: 41 4D 45 3E 0D 0D C3 C8  D2 24 20 2D 2D 20 52 45  |AME>.....$ -- RE|
00000370: 54 55 52 4E 53 20 C3 C2  CD 20 C1 D3 C3 C9 C9 20  |TURNS ... ..... |
00000380: 43 4F 44 45 3B 0D 49 4E  56 45 52 53 45 20 4F 46  |CODE;.INVERSE OF|
00000390: 20 CF D2 C4 0D C3 C8 D2  24 28 3C 4E 55 4D 45 52  | .......$(<NUMER|
000003A0: 49 43 20 45 58 50 52 45  53 53 49 4F 4E 3E 29 0D  |IC EXPRESSION>).|
000003B0: 0D C3 CC CF D3 C5 20 2D  2D 20 43 4C 4F 53 45 53  |...... -- CLOSES|
000003C0: 20 46 49 4C 45 53 0D C3  CC CF D3 C5 20 5B 5B C6  | FILES...... [[.|
000003D0: C9 CC C5 5D 20 3C 46 49  4C 45 4E 55 4D 3E 5D 0D  |...] <FILENUM>].|
000003E0: C3 CC CF D3 C5 20 57 49  54 48 20 4E 4F 20 46 49  |..... WITH NO FI|
000003F0: 4C 45 20 23 20 43 4C 4F  53 45 53 20 41 4C 4C 20  |LE # CLOSES ALL |
00000400: 4F 50 45 4E 0D 46 49 4C  45 53 0D 0D C3 CC CF D3  |OPEN.FILES......|
00000410: C5 C4 20 2D 2D 20 4D 41  4B 45 53 20 41 4C 4C 20  |.. -- MAKES ALL |
00000420: 50 52 4F 43 2F 46 55 4E  43 0D 56 41 52 49 41 42  |PROC/FUNC.VARIAB|
00000430: 4C 45 53 20 4C 4F 43 41  4C 0D D0 D2 CF C3 20 3C  |LES LOCAL..... <|
00000440: 50 52 4F 43 4E 41 4D 45  3E 5B 28 50 41 52 41 4D  |PROCNAME>[(PARAM|
00000450: 53 29 5D 20 5B C3 CC CF  D3 C5 C4 5D 0D C6 D5 CE  |S)] [......]....|
00000460: C3 20 3C 46 55 4E 43 4E  41 4D 45 3E 5B 28 50 41  |. <FUNCNAME>[(PA|
00000470: 52 41 4D 53 29 5D 20 5B  C3 CC CF D3 C5 C4 5D 0D  |RAMS)] [......].|
00000480: 0D C3 CF CE 20 2D 2D 20  43 4F 4E 54 49 4E 55 45  |.... -- CONTINUE|
00000490: 20 50 52 4F 47 52 41 4D  20 45 58 45 43 55 54 49  | PROGRAM EXECUTI|
000004A0: 4F 4E 0D C3 CF CE 0D 0D  C3 CF D3 20 2D 2D 20 52  |ON......... -- R|
000004B0: 45 54 55 52 4E 53 20 43  4F 53 49 4E 45 20 28 41  |ETURNS COSINE (A|
000004C0: 4E 47 4C 45 20 49 4E 0D  52 41 44 49 41 4E 53 29  |NGLE IN.RADIANS)|
000004D0: 0D C3 CF D3 28 3C 4E 55  4D 45 52 49 43 20 45 58  |....(<NUMERIC EX|
000004E0: 50 52 45 53 53 49 4F 4E  3E 29 0D 0D C4 C1 D4 C1  |PRESSION>)......|
000004F0: 20 2D 2D 20 50 52 4F 56  49 44 45 53 20 44 41 54  | -- PROVIDES DAT|
00000500: 41 20 46 4F 52 20 41 20  D2 C5 C1 C4 0D C4 C1 D4  |A FOR A ........|
00000510: C1 20 3C 56 41 4C 55 45  3E 5B 2C 3C 56 41 4C 55  |. <VALUE>[,<VALU|
00000520: 45 3E 5D 5B 2C 2E 2E 2E  5D 0D 0D C4 C5 CC 20 2D  |E>][,...]..... -|
00000530: 2D 20 44 45 4C 45 54 45  53 20 4C 49 4E 45 53 0D  |- DELETES LINES.|
00000540: C4 C5 CC 20 3C 52 41 4E  47 45 3E 0D 0D C4 C5 CC  |... <RANGE>.....|
00000550: C5 D4 C5 20 2D 2D 20 44  45 4C 45 54 45 53 20 41  |... -- DELETES A|
00000560: 20 46 49 4C 45 20 46 52  4F 4D 20 44 49 53 4B 0D  | FILE FROM DISK.|
00000570: C4 C5 CC C5 D4 C5 20 3C  46 49 4C 45 4E 41 4D 45  |...... <FILENAME|
00000580: 3E 0D 0D C4 C9 CD 20 2D  2D 20 52 45 53 45 52 56  |>..... -- RESERV|
00000590: 45 2F 41 4C 4C 4F 43 41  54 45 20 53 54 52 49 4E  |E/ALLOCATE STRIN|
000005A0: 47 2F 41 52 52 41 59 0D  53 50 41 43 45 0D C4 C9  |G/ARRAY.SPACE...|
000005B0: CD 20 3C 53 54 52 49 4E  47 20 56 41 52 3E 20 CF  |. <STRING VAR> .|
000005C0: C6 20 3C 4D 41 58 20 43  48 41 52 3E 0D C4 C9 CD  |. <MAX CHAR>....|
000005D0: 20 3C 53 54 52 20 41 52  52 41 59 3E 28 3C 49 4E  | <STR ARRAY>(<IN|
000005E0: 44 45 58 3E 29 20 CF C6  20 3C 4D 41 58 20 43 48  |DEX>) .. <MAX CH|
000005F0: 41 52 3E 0D C4 C9 CD 20  3C 41 52 52 41 59 20 4E  |AR>.... <ARRAY N|
00000600: 41 4D 45 3E 28 3C 49 4E  44 45 58 3E 29 0D 0D C4  |AME>(<INDEX>)...|
00000610: C9 D6 20 2D 2D 20 44 49  56 49 53 49 4F 4E 20 57  |.. -- DIVISION W|
00000620: 49 54 48 20 49 4E 54 45  47 45 52 20 41 4E 53 57  |ITH INTEGER ANSW|
00000630: 45 52 0D 3C 44 49 56 49  44 45 4E 44 3E 20 C4 C9  |ER.<DIVIDEND> ..|
00000640: D6 20 3C 44 49 56 49 53  4F 52 3E 0D 0D C4 CF 20  |. <DIVISOR>.... |
00000650: 2D 2D 20 44 4F 20 54 48  45 20 46 4F 4C 4C 4F 57  |-- DO THE FOLLOW|
00000660: 49 4E 47 20 53 54 41 54  45 4D 45 4E 54 53 0D C4  |ING STATEMENTS..|
00000670: CF 20 3C 53 54 41 54 45  4D 45 4E 54 53 3E 0D 0D  |. <STATEMENTS>..|
00000680: C5 C4 C9 D4 20 2D 2D 20  4C 49 53 54 20 4C 49 4E  |.... -- LIST LIN|
00000690: 45 53 20 57 49 54 48 4F  55 54 0D 49 4E 44 45 4E  |ES WITHOUT.INDEN|
000006A0: 54 41 54 49 4F 4E 53 0D  C5 C4 C9 D4 20 5B 3C 52  |TATIONS..... [<R|
000006B0: 41 4E 47 45 3E 5D 0D 0D  C5 CC C9 C6 20 2D 2D 20  |ANGE>]...... -- |
000006C0: 53 48 4F 52 54 20 46 4F  52 20 C5 CC D3 C5 20 C9  |SHORT FOR .... .|
000006D0: C6 20 43 4F 4E 44 49 54  49 4F 4E 0D C5 CC C9 C6  |. CONDITION.....|
000006E0: 20 3C 45 58 50 52 45 53  53 49 4F 4E 3E 20 5B D4  | <EXPRESSION> [.|
000006F0: C8 C5 CE 5D 0D 0D C5 CC  D3 C5 20 2D 2D 20 41 4C  |...]...... -- AL|
00000700: 54 45 52 4E 41 54 49 56  45 20 53 54 41 54 45 4D  |TERNATIVE STATEM|
00000710: 45 4E 54 53 20 49 4E 20  C9 C6 0D 53 54 52 55 43  |ENTS IN ...STRUC|
00000720: 54 55 52 45 0D C5 CC D3  C5 0D 0D C5 CE C4 20 2D  |TURE.......... -|
00000730: 2D 20 48 41 4C 54 20 50  52 4F 47 52 41 4D 20 45  |- HALT PROGRAM E|
00000740: 58 45 43 55 54 49 4F 4E  0D C5 CE C4 0D 0D C5 CE  |XECUTION........|
00000750: C4 C3 C1 D3 C5 20 2D 2D  20 45 4E 44 20 4F 46 20  |..... -- END OF |
00000760: C3 C1 D3 C5 20 53 54 52  55 43 54 55 52 45 0D C5  |.... STRUCTURE..|
00000770: CE C4 C3 C1 D3 C5 0D 0D  C5 CE C4 C6 CF D2 20 2D  |.............. -|
00000780: 2D 20 45 4E 44 20 4F 46  20 C6 CF D2 20 53 54 52  |- END OF ... STR|
00000790: 55 43 54 55 52 45 0D C5  CE C4 C6 CF D2 20 5B 3C  |UCTURE....... [<|
000007A0: 43 4F 4E 54 52 4F 4C 20  56 41 52 49 41 42 4C 45  |CONTROL VARIABLE|
000007B0: 3E 5D 0D 0D C5 CE C4 C6  D5 CE C3 20 2D 2D 20 45  |>]......... -- E|
000007C0: 4E 44 20 4F 46 20 46 55  4E 43 54 49 4F 4E 0D C5  |ND OF FUNCTION..|
000007D0: CE C4 C6 D5 CE C3 20 5B  3C 46 55 4E 43 54 49 4F  |...... [<FUNCTIO|
000007E0: 4E 20 4E 41 4D 45 3E 5D  0D 0D C5 CE C4 C9 C6 20  |N NAME>]....... |
000007F0: 2D 2D 20 45 4E 44 20 4F  46 20 C9 C6 20 53 54 52  |-- END OF .. STR|
00000800: 55 43 54 55 52 45 0D C5  CE C4 C9 C6 0D 0D C5 CE  |UCTURE..........|
00000810: C4 D0 D2 CF C3 20 2D 2D  20 45 4E 44 20 4F 46 20  |..... -- END OF |
00000820: 50 52 4F 43 45 44 55 52  45 0D C5 CE C4 D0 D2 CF  |PROCEDURE.......|
00000830: C3 20 5B 3C 50 52 4F 43  45 44 55 52 45 20 4E 41  |. [<PROCEDURE NA|
00000840: 4D 45 3E 5D 0D 0D C5 CE  C4 D7 C8 C9 CC C5 20 2D  |ME>].......... -|
00000850: 2D 20 45 4E 44 20 4F 46  20 D7 C8 C9 CC C5 20 53  |- END OF ..... S|
00000860: 54 52 55 43 54 55 52 45  0D C5 CE C4 D7 C8 C9 CC  |TRUCTURE........|
00000870: C5 0D 0D C5 CE D4 C5 D2  20 2D 2D 20 4D 45 52 47  |........ -- MERG|
00000880: 45 20 CC C9 D3 D4 45 44  20 50 52 4F 47 52 41 4D  |E ....ED PROGRAM|
00000890: 20 53 45 47 4D 45 4E 54  0D 46 52 4F 4D 20 44 49  | SEGMENT.FROM DI|
000008A0: 53 4B 0D C5 CE D4 C5 D2  20 3C 46 49 4C 45 4E 41  |SK...... <FILENA|
000008B0: 4D 45 3E 0D 0D C5 CF C4  20 2D 2D 20 C5 4E 44 20  |ME>..... -- .ND |
000008C0: CF 46 20 C4 41 54 41 20  46 4C 41 47 0D C5 CF C4  |.F .ATA FLAG....|
000008D0: 0D 0D C5 CF C6 20 2D 2D  20 C5 4E 44 20 CF 46 20  |..... -- .ND .F |
000008E0: C6 49 4C 45 20 46 4C 41  47 0D C5 CF C6 28 3C 46  |.ILE FLAG....(<F|
000008F0: 49 4C 45 4E 55 4D 3E 29  0D 0D C5 D3 C3 20 2D 2D  |ILENUM>)..... --|
00000900: 20 53 54 4F 50 20 4B 45  59 20 50 52 45 53 53 45  | STOP KEY PRESSE|
00000910: 44 20 46 4C 41 47 0D C5  D3 C3 0D D4 D2 C1 D0 20  |D FLAG......... |
00000920: C5 D3 C3 3C 54 59 50 45  3E 0D 0D C5 D8 C5 C3 20  |...<TYPE>...... |
00000930: 2D 2D 20 45 58 45 43 55  54 45 20 41 20 50 52 4F  |-- EXECUTE A PRO|
00000940: 43 45 44 55 52 45 0D 5B  C5 D8 C5 C3 5D 20 3C 50  |CEDURE.[....] <P|
00000950: 52 4F 43 4E 41 4D 45 3E  5B 28 3C 50 41 52 41 4D  |ROCNAME>[(<PARAM|
00000960: 45 54 45 52 20 4C 49 53  54 3E 29 5D 0D 0D C5 D8  |ETER LIST>)]....|
00000970: D0 20 2D 2D 20 52 45 54  55 52 4E 53 20 45 5E 4E  |. -- RETURNS E^N|
00000980: 20 28 45 3D 42 41 53 45  20 4F 46 20 4E 41 54 55  | (E=BASE OF NATU|
00000990: 52 41 4C 0D 4C 4F 47 53  3D 32 2E 31 38 32 38 31  |RAL.LOGS=2.18281|
000009A0: 38 32 38 34 35 39 30 34  35 2B 29 0D C5 D8 D0 28  |828459045+)....(|
000009B0: 3C 4E 55 4D 45 52 49 43  20 45 58 50 52 45 53 53  |<NUMERIC EXPRESS|
000009C0: 49 4F 4E 3E 29 0D 0D C6  C1 CC D3 C5 20 2D 2D 20  |ION>)....... -- |
000009D0: 50 52 45 44 45 46 49 4E  45 44 20 56 41 4C 55 45  |PREDEFINED VALUE|
000009E0: 20 3D 20 30 0D C6 C1 CC  D3 C5 0D 0D C6 C9 CC C5  | = 0............|
000009F0: 20 2D 2D 20 53 50 45 43  49 46 49 45 53 20 46 49  | -- SPECIFIES FI|
00000A00: 4C 45 20 C9 2F CF 20 49  53 20 54 4F 20 42 45 0D  |LE ./. IS TO BE.|
00000A10: 55 53 45 44 0D C9 CE D0  D5 D4 20 C6 C9 CC C5 20  |USED...... .... |
00000A20: 3C 46 49 4C 45 23 3E 5B  2C 3C 52 45 43 23 3E 5D  |<FILE#>[,<REC#>]|
00000A30: 3A 20 3C 56 41 52 4C 49  53 54 3E 0D D0 D2 C9 CE  |: <VARLIST>.....|
00000A40: D4 20 C6 C9 CC C5 20 3C  46 49 4C 45 23 3E 5B 2C  |. .... <FILE#>[,|
00000A50: 3C 52 45 43 23 3E 5D 3A  20 3C 56 41 52 4C 49 53  |<REC#>]: <VARLIS|
00000A60: 54 3E 0D D2 C5 C1 C4 20  20 C6 C9 CC C5 20 3C 46  |T>.....  .... <F|
00000A70: 49 4C 45 23 3E 5B 2C 3C  52 45 43 23 3E 5D 3A 20  |ILE#>[,<REC#>]: |
00000A80: 3C 56 41 52 4C 49 53 54  3E 0D D7 D2 C9 D4 C5 20  |<VARLIST>...... |
00000A90: C6 C9 CC C5 20 3C 46 49  4C 45 23 3E 5B 2C 3C 52  |.... <FILE#>[,<R|
00000AA0: 45 43 23 3E 5D 3A 20 3C  56 41 52 4C 49 53 54 3E  |EC#>]: <VARLIST>|
00000AB0: 0D CF D0 C5 CE 20 5B C6  C9 CC C5 5D 20 3C 46 49  |..... [....] <FI|
00000AC0: 4C 45 23 3E 2C 3C 46 49  4C 45 4E 41 4D 3E 5B 2C  |LE#>,<FILENAM>[,|
00000AD0: 3C 54 59 50 45 3E 5D 0D  C3 CC CF D3 C5 20 5B 5B  |<TYPE>]...... [[|
00000AE0: C6 C9 CC C5 5D 20 3C 46  49 4C 45 23 3E 5D 0D 0D  |....] <FILE#>]..|
00000AF0: C6 CF D2 20 2D 2D 20 53  54 41 52 54 20 4F 46 20  |... -- START OF |
00000B00: C6 CF D2 20 4C 4F 4F 50  20 53 54 52 55 43 54 55  |... LOOP STRUCTU|
00000B10: 52 45 0D C6 CF D2 20 3C  56 41 52 3E 3A 3D 3C 53  |RE.... <VAR>:=<S|
00000B20: 54 41 52 54 3E 20 D4 CF  20 3C 45 4E 44 3E 20 5B  |TART> .. <END> [|
00000B30: D3 D4 C5 D0 20 3C 53 3E  5D 0D 0D C6 D5 CE C3 20  |.... <S>]...... |
00000B40: 2D 2D 20 53 54 41 52 54  20 4F 46 20 41 20 4D 55  |-- START OF A MU|
00000B50: 4C 54 49 4C 49 4E 45 20  46 55 4E 43 54 49 4F 4E  |LTILINE FUNCTION|
00000B60: 0D C6 D5 CE C3 20 3C 4E  41 4D 45 3E 5B 28 3C 50  |..... <NAME>[(<P|
00000B70: 41 52 41 4D 53 3E 29 5D  20 5B C3 CC CF D3 C5 C4  |ARAMS>)] [......|
00000B80: 5D 0D 0D C7 CF D4 CF 20  2D 2D 20 47 4F 20 54 4F  |]...... -- GO TO|
00000B90: 20 4C 49 4E 45 20 57 49  54 48 20 54 48 49 53 20  | LINE WITH THIS |
00000BA0: 4C 41 42 45 4C 0D C7 CF  D4 CF 20 3C 4C 41 42 45  |LABEL..... <LABE|
00000BB0: 4C 20 4E 41 4D 45 3E 0D  0D C9 C6 20 2D 2D 20 53  |L NAME>.... -- S|
00000BC0: 54 41 52 54 20 4F 46 20  43 4F 4E 44 49 54 49 4F  |TART OF CONDITIO|
00000BD0: 4E 41 4C 20 C9 C6 0D 53  54 52 55 43 54 55 52 45  |NAL ...STRUCTURE|
00000BE0: 0D C9 C6 20 3C 43 4F 4E  44 49 54 49 4F 4E 3E 20  |... <CONDITION> |
00000BF0: 5B D4 C8 C5 CE 5D 0D C9  C6 20 3C 43 4F 4E 44 49  |[....]... <CONDI|
00000C00: 54 49 4F 4E 3E 20 D4 C8  C5 CE 20 3C 53 54 41 54  |TION> .... <STAT|
00000C10: 45 4D 45 4E 54 3E 0D 0D  C9 CE 20 2D 2D 20 52 45  |EMENT>.... -- RE|
00000C20: 54 55 52 4E 53 20 50 4F  53 49 54 49 4F 4E 20 4F  |TURNS POSITION O|
00000C30: 46 20 53 54 52 49 4E 47  31 0D 57 49 54 48 49 4E  |F STRING1.WITHIN|
00000C40: 20 53 54 52 49 4E 47 32  0D 3C 53 54 52 49 4E 47  | STRING2.<STRING|
00000C50: 31 3E 20 C9 CE 20 3C 53  54 52 49 4E 47 32 3E 0D  |1> .. <STRING2>.|
00000C60: 0D C9 CE D0 D5 D4 20 2D  2D 20 49 4E 50 55 54 20  |...... -- INPUT |
00000C70: 46 52 4F 4D 20 4B 45 59  42 4F 41 52 44 20 4F 52  |FROM KEYBOARD OR|
00000C80: 20 46 49 4C 45 0D C9 CE  D0 D5 D4 20 5B 3C 50 52  | FILE...... [<PR|
00000C90: 4F 4D 50 54 3E 3A 5D 20  3C 56 41 52 4C 49 53 54  |OMPT>:] <VARLIST|
00000CA0: 3E 0D C9 CE D0 D5 D4 20  C6 C9 CC C5 20 3C 46 49  |>...... .... <FI|
00000CB0: 4C 45 23 3E 5B 2C 3C 52  45 43 23 3E 5D 3A 3C 56  |LE#>[,<REC#>]:<V|
00000CC0: 41 52 4C 49 53 54 3E 0D  0D C9 CE D4 20 2D 2D 20  |ARLIST>..... -- |
00000CD0: 52 45 54 55 52 4E 53 20  54 52 55 4E 43 41 54 45  |RETURNS TRUNCATE|
00000CE0: 44 20 49 4E 54 45 47 45  52 20 56 41 4C 55 45 0D  |D INTEGER VALUE.|
00000CF0: C9 CE D4 28 3C 4E 55 4D  45 52 49 43 20 45 58 50  |...(<NUMERIC EXP|
00000D00: 52 45 53 53 49 4F 4E 3E  29 0D 0D CB C5 D9 24 20  |RESSION>).....$ |
00000D10: 2D 2D 20 43 55 52 52 45  4E 54 20 4B 45 59 20 50  |-- CURRENT KEY P|
00000D20: 52 45 53 53 45 44 0D CB  C5 D9 24 0D 0D CC C1 C2  |RESSED....$.....|
00000D30: C5 CC 20 2D 2D 20 41 53  53 49 47 4E 20 41 20 4C  |.. -- ASSIGN A L|
00000D40: 41 42 45 4C 0D 3C 4C 41  42 45 4C 20 4E 41 4D 45  |ABEL.<LABEL NAME|
00000D50: 3E 3A 0D 0D CC C5 CE 20  2D 2D 20 52 45 54 55 52  |>:..... -- RETUR|
00000D60: 4E 53 20 53 54 52 49 4E  47 20 4C 45 4E 47 54 48  |NS STRING LENGTH|
00000D70: 0D CC C5 CE 28 3C 53 54  52 49 4E 47 20 45 58 50  |....(<STRING EXP|
00000D80: 52 45 53 53 49 4F 4E 3E  29 0D 0D CC C5 D4 20 2D  |RESSION>)..... -|
00000D90: 2D 20 41 53 53 49 47 4E  20 56 41 4C 55 45 20 54  |- ASSIGN VALUE T|
00000DA0: 4F 20 56 41 52 49 41 42  4C 45 0D 3A 3D 20 20 20  |O VARIABLE.:=   |
00000DB0: 4F 52 20 20 20 3A 2B 20  20 20 20 4F 52 20 20 20  |OR   :+    OR   |
00000DC0: 3A 2D 0D C1 3A 2B C2 20  2D 3E 20 C1 3A 3D C1 2B  |:-..:+. -> .:=.+|
00000DD0: C2 3B 20 20 C1 3A 2D C2  20 2D 3E 20 C1 3A 3D C1  |.;  .:-. -> .:=.|
00000DE0: 2D C2 0D 0D CC C9 D3 D4  20 2D 2D 20 4C 49 53 54  |-....... -- LIST|
00000DF0: 20 50 52 4F 47 52 41 4D  0D CC C9 D3 D4 20 5B 3C  | PROGRAM..... [<|
00000E00: 52 41 4E 47 45 3E 5D 20  5B 3C 46 49 4C 45 4E 41  |RANGE>] [<FILENA|
00000E10: 4D 45 3E 5D 0D CC C9 D3  D4 20 3C 46 49 4C 45 4E  |ME>]..... <FILEN|
00000E20: 41 4D 45 3E 20 50 55 54  53 20 4C 49 53 54 20 46  |AME> PUTS LIST F|
00000E30: 49 4C 45 20 4F 4E 20 44  49 53 4B 0D 0D CC CF C1  |ILE ON DISK.....|
00000E40: C4 20 2D 2D 20 4C 4F 41  44 20 41 20 50 52 4F 47  |. -- LOAD A PROG|
00000E50: 52 41 4D 20 46 52 4F 4D  20 44 49 53 4B 0D CC CF  |RAM FROM DISK...|
00000E60: C1 C4 20 3C 46 49 4C 45  4E 41 4D 45 3E 0D 0D CC  |.. <FILENAME>...|
00000E70: CF C7 20 2D 2D 20 52 45  54 55 52 4E 53 20 4E 41  |.. -- RETURNS NA|
00000E80: 54 55 52 41 4C 20 4C 4F  47 41 52 49 54 48 4D 20  |TURAL LOGARITHM |
00000E90: 4F 46 20 4E 0D CC CF C7  28 3C 4E 55 4D 45 52 49  |OF N....(<NUMERI|
00000EA0: 43 20 45 58 50 52 45 53  53 49 4F 4E 3E 29 0D 0D  |C EXPRESSION>)..|
00000EB0: CD CF C4 20 2D 2D 20 52  45 4D 41 49 4E 44 45 52  |... -- REMAINDER|
00000EC0: 20 4F 46 20 44 49 56 49  53 49 4F 4E 20 28 4D 4F  | OF DIVISION (MO|
00000ED0: 44 55 4C 4F 29 0D 3C 44  49 56 49 44 45 4E 44 3E  |DULO).<DIVIDEND>|
00000EE0: 20 CD CF C4 20 3C 44 49  56 49 53 4F 52 3E 0D 0D  | ... <DIVISOR>..|
00000EF0: CE C5 D7 20 2D 2D 20 43  4C 45 41 52 53 20 50 52  |... -- CLEARS PR|
00000F00: 4F 47 52 41 4D 20 46 52  4F 4D 20 4D 45 4D 4F 52  |OGRAM FROM MEMOR|
00000F10: 59 0D CE C5 D7 0D 0D CE  C5 D8 D4 20 2D 2D 20 41  |Y.......... -- A|
00000F20: 4C 54 45 52 4E 41 54 45  20 46 4F 52 4D 20 4F 46  |LTERNATE FORM OF|
00000F30: 20 C5 CE C4 C6 CF D2 0D  CE C5 D8 D4 20 5B 3C 43  | ........... [<C|
00000F40: 4F 4E 54 52 4F 4C 20 56  41 52 49 41 42 4C 45 3E  |ONTROL VARIABLE>|
00000F50: 5D 0D 0D CE CF D4 20 2D  2D 20 4C 4F 47 49 43 41  |]..... -- LOGICA|
00000F60: 4C 20 CE CF D4 0D CE CF  D4 20 3C 43 4F 4E 44 49  |L ....... <CONDI|
00000F70: 54 49 4F 4E 3E 0D 0D CE  D5 CC CC 20 2D 2D 20 44  |TION>...... -- D|
00000F80: 4F 45 53 20 4E 4F 54 48  49 4E 47 20 28 4E 4F 20  |OES NOTHING (NO |
00000F90: 4F 50 29 0D CE D5 CC CC  0D 0D CF C6 20 2D 2D 20  |OP)......... -- |
00000FA0: 50 41 52 54 20 4F 46 20  C4 C9 CD 20 4F 52 20 C3  |PART OF ... OR .|
00000FB0: C1 D3 C5 20 53 54 52 55  43 54 55 52 45 0D C3 C1  |... STRUCTURE...|
00000FC0: D3 C5 20 3C 45 58 50 52  45 53 53 49 4F 4E 3E 20  |.. <EXPRESSION> |
00000FD0: 5B CF C6 5D 0D C4 C9 CD  20 3C 53 54 52 49 4E 47  |[..].... <STRING|
00000FE0: CF C4 20 3C 44 49 56 49  53 4F 52 3E 0D 0D CE C5  |.. <DIVISOR>....|
00000FF0: D7 20 2D 2D 20 43 4C 45  41 52 53 20 50 52 4F 47  |. -- CLEARS PROG|
00001000: 52 41 4D 20 46 52 4F 4D  20 4D 45 4D 4F 52 59 0D  |RAM FROM MEMORY.|
00001010: CE C5 D7 0D 0D CE C5 D8  D4 20 2D 2D 20 41 4C 54  |......... -- ALT|
00001020: 45 52 4E 41 54 45 20 46  4F 52 4D 20 4F 46 20 C5  |ERNATE FORM OF .|
00001030: CE C4 C6 CF D2 0D CE C5  D8 D4 20 5B 3C 43 4F 4E  |.......... [<CON|
00001040: 54 52 4F 4C 20 56 41 52  49 41 42 4C 45 3E 5D 0D  |TROL VARIABLE>].|
00001050: 0D CE CF D4 20 2D 2D 20  4C 4F 47 49 43 41 4C 20  |.... -- LOGICAL |
00001060: CE CF D4 0D CE CF D4 20  3C 43 4F 4E 44 49 54 49  |....... <CONDITI|
00001070: 4F 4E 3E 0D 0D CE D5 CC  CC 20 2D 2D 20 44 4F 45  |ON>...... -- DOE|
00001080: 53 20 4E 4F 54 48 49 4E  47 20 28 4E 4F 20 4F 50  |S NOTHING (NO OP|
00001090: 29 0D CE D5 CC CC 0D 0D  CF C6 20 2D 2D 20 50 41  |)......... -- PA|
000010A0: 52 54 20 4F 46 20 C4 C9  CD 20 4F 52 20 C3 C1 D3  |RT OF ... OR ...|
000010B0: C5 20 53 54 52 55 43 54  55 52 45 0D C3 C1 D3 C5  |. STRUCTURE.....|
000010C0: 20 3C 45 58 50 52 45 53  53 49 4F 4E 3E 20 5B     | <EXPRESSION> [ |
.*NB"COMAL DOCS"..*LM1:RM68:OF10..*0=0:1
=1:2=2:3=3:4=4:LN2:P#1..*HD3:,COMAL COMM
ANDS,PAGE .#.*/*/*/*/*/*/*/*/*/*/*/*/*/*
/*/*/*/*/*/*.*              C O M A L   
           *.*/*/*/*/*/*/*/*/*/*/*/*/*/*
/*/*/*/*/*/*..COMAL SYNTAX:  C-64 / VERS
ION 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 S
EQ FILE.OPEN [FILE] <FILE#>,<FILENAME>,A
PPEND..ATN -- RETURNS ARCTANGENT IN RADI
ANS.ATN(<NUMERIC EXPRESSION>)..AUTO -- A
UTOMATIC LINE NUMBERING.AUTO [<START LIN
E>][,<INCREMENT>]..BASIC -- RETURN TO BA
SIC MODE.BASIC..CASE -- MULTIPLE CHOICE 
DECISIONS.CASE <CONTROL EXPRESSION> [OF]
..CAT -- DISK CATALOG (DIRECTORY).CAT [<
DRIVE NUMBER>]..CHAIN -- LOAD & RUN PROG
RAM ON DISK.CHAIN <FILENAME>..CHR$ -- RE
TURNS CBM ASCII CODE;.INVERSE OF ORD.CHR
$(<NUMERIC EXPRESSION>)..CLOSE -- CLOSES
 FILES.CLOSE [[FILE] <FILENUM>].CLOSE WI
TH NO FILE # CLOSES ALL OPEN.FILES..CLOS
ED -- MAKES ALL PROC/FUNC.VARIABLES LOCA
L.PROC <PROCNAME>[(PARAMS)] [CLOSED].FUN
C <FUNCNAME>[(PARAMS)] [CLOSED]..CON -- 
CONTINUE PROGRAM EXECUTION.CON..COS -- R
ETURNS COSINE (ANGLE IN.RADIANS).COS(<NU
MERIC EXPRESSION>)..DATA -- PROVIDES DAT
A FOR A READ.DATA <VALUE>[,<VALUE>][,...
]..DEL -- DELETES LINES.DEL <RANGE>..DEL
ETE -- DELETES A FILE FROM DISK.DELETE <
FILENAME>..DIM -- RESERVE/ALLOCATE STRIN
G/ARRAY.SPACE.DIM <STRING VAR> OF <MAX C
HAR>.DIM <STR ARRAY>(<INDEX>) OF <MAX CH
AR>.DIM <ARRAY NAME>(<INDEX>)..DIV -- DI
VISION WITH INTEGER ANSWER.<DIVIDEND> DI
V <DIVISOR>..DO -- DO THE FOLLOWING STAT
EMENTS.DO <STATEMENTS>..EDIT -- LIST LIN
ES WITHOUT.INDENTATIONS.EDIT [<RANGE>]..
ELIF -- SHORT FOR ELSE IF CONDITION.ELIF
 <EXPRESSION> [THEN]..ELSE -- ALTERNATIV
E 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.E
NDFUNC [<FUNCTION NAME>]..ENDIF -- END O
F IF STRUCTURE.ENDIF..ENDPROC -- END OF 
PROCEDURE.ENDPROC [<PROCEDURE NAME>]..EN
DWHILE -- END OF WHILE STRUCTURE.ENDWHIL
E..ENTER -- MERGE LISTED PROGRAM SEGMENT
.FROM DISK.ENTER <FILENAME>..EOD -- END 
OF DATA FLAG.EOD..EOF -- END OF FILE FLA
G.EOF(<FILENUM>)..ESC -- STOP KEY PRESSE
D FLAG.ESC.TRAP ESC<TYPE>..EXEC -- EXECU
TE A PROCEDURE.[EXEC] <PROCNAME>[(<PARAM
ETER LIST>)]..EXP -- RETURNS E^N (E=BASE
 OF NATURAL.LOGS=2.18281828459045+).EXP(
<NUMERIC EXPRESSION>)..FALSE -- PREDEFIN
ED VALUE = 0.FALSE..FILE -- SPECIFIES FI
LE I/O IS TO BE.USED.INPUT FILE <FILE#>[
,<REC#>]: <VARLIST>.PRINT FILE <FILE#>[,
<REC#>]: <VARLIST>.READ  FILE <FILE#>[,<
REC#>]: <VARLIST>.WRITE FILE <FILE#>[,<R
EC#>]: <VARLIST>.OPEN [FILE] <FILE#>,<FI
LENAM>[,<TYPE>].CLOSE [[FILE] <FILE#>]..
FOR -- START OF FOR LOOP STRUCTURE.FOR <
VAR>:=<START> TO <END> [STEP <S>]..FUNC 
-- START OF A MULTILINE FUNCTION.FUNC <N
AME>[(<PARAMS>)] [CLOSED]..GOTO -- GO TO
 LINE WITH THIS LABEL.GOTO <LABEL NAME>.
.IF -- START OF CONDITIONAL IF.STRUCTURE
.IF <CONDITION> [THEN].IF <CONDITION> TH
EN <STATEMENT>..IN -- RETURNS POSITION O
F STRING1.WITHIN STRING2.<STRING1> IN <S
TRING2>..INPUT -- INPUT FROM KEYBOARD OR
 FILE.INPUT [<PROMPT>:] <VARLIST>.INPUT 
FILE <FILE#>[,<REC#>]:<VARLIST>..INT -- 
RETURNS TRUNCATED INTEGER VALUE.INT(<NUM
ERIC EXPRESSION>)..KEY$ -- CURRENT KEY P
RESSED.KEY$..LABEL -- ASSIGN A LABEL.<LA
BEL 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>] [<FILENA
ME>].LIST <FILENAME> PUTS LIST FILE ON D
ISK..LOAD -- LOAD A PROGRAM FROM DISK.LO
AD <FILENAME>..LOG -- RETURNS NATURAL LO
GARITHM OF N.LOG(<NUMERIC EXPRESSION>)..
MOD -- REMAINDER OF DIVISION (MODULO).<D
IVIDEND> MOD <DIVISOR>..NEW -- CLEARS PR
OGRAM FROM MEMORY.NEW..NEXT -- ALTERNATE
 FORM OF ENDFOR.NEXT [<CONTROL VARIABLE>
]..NOT -- LOGICAL NOT.NOT <CONDITION>..N
ULL -- DOES NOTHING (NO OP).NULL..OF -- 
PART OF DIM OR CASE STRUCTURE.CASE <EXPR
ESSION> [OF].DIM <STRINGOD <DIVISOR>..NE
W -- CLEARS PROGRAM FROM MEMORY.NEW..NEX
T -- ALTERNATE FORM OF ENDFOR.NEXT [<CON
TROL VARIABLE>]..NOT -- LOGICAL NOT.NOT 
<CONDITION>..NULL -- DOES NOTHING (NO OP
).NULL..OF -- PART OF DIM OR CASE STRUCT
URE.CASE <EXPRESSION> [
C64 Preview

> CLICK IMAGE PREVIEW FOR FULL MODAL