From CPCWiki - THE Amstrad CPC encyclopedia!
Jump to: navigation, search

COMAL (COMmon Algorithmic Language) is a computer-programming language developed in Denmark by Benedict Løfstedt and Børge Christensen in 1973.

COMAL80 is a combination of the at the time dominant programming languages for educational purposes, BASIC and Pascal. The intention was to introduce a structured approach to programming where BASIC normally was used.

The programming language described was designed to remedy the weaknesses of BASIC by adding structured constructs and other desirable improvements, while retaining the major features and overall spirit of BASIC. COMAL80 is proposed as an introductory programming language for schools.

COMAL80 is like BASIC an interpreted language. And interpreters was available for a wide range of platforms. A key feauture of COMAL80 was the ability to expand the language features width modules or library's. Because of the structured nature, COMAL80 was often compared to BBC Basic. Besides Denmark, Comal80 was frequently used in schools in Scotland.

COMAL80 for the Amstrad CPC

The Amstrad CPC had two version available.

A generic CP/M version and a native version

CP/M Version

C80MODE  COM         6 400  27/12/12  23:08 C80MODE.COM
COMAL80  COM        28 672  27/12/12  23:07 COMAL80.COM
COMALCNV COM         9 984  27/12/12  23:09 COMALCNV.COM
ERRMSG               2 432  27/12/12  23:07 ERRMSG
FORMAT   COM         1 536  27/12/12  23:09 FORMAT.COM
PIP      COM         7 424  27/12/12  23:12 PIP.COM
SYSTEXT  C80         1 280  27/12/12  23:06 SYSTEXT.C80
SYSTEXT  ASM         2 264  29/12/12  17:31 systext.asm

CPC specific version

The native version was programmed by Freddy Dalgas Kristiansen and distributed through his company Dalgasoft. It was available on tape, disc and finally also a ROM version was available. This version of COMAL80 was compliant to the Commodore 64 Comal80 ver 2.01 and the UniComal variant for the IBM PC.

The first of the tape and disc versions was lacking functions to control the special features of the Amstrad CPC. Functions like sound, graphics and software interrupts. To use the specific functions small modules was released so the programmer could include them in their own COMAL80 programs.

Finally a greatly enhanced version was released. This version occupied three 16Kb eproms. Extensive graphic/sound/timer commands was added together width extended FILE I/O (Random Access File) and the ability to use both DK'tronics and Vortex memory expansion as ram discs or graphic swap space (to use width the advanced windows features). The ROM version was shipped with its own ROM board, micro switches controlled whether to boot directly into COMAL80 or to make the ROM board invisible to allow native CPC programs to run. It is unknown if COMAL80 would have worked on a standard ROM board.

The Danish magazine Amstradbladet, ran a series of articles called "The COMAL school" from Issue 6 1985 til Issue 3/4 1986, to teach its readers COMAL80.


  • (Original danish version - zipped dsk image)



Modern COMAL variants