Free COMAL Downloads

Free downloadable software is available here. The files are in .ZIP format, so you'll need a file decompressor to uncompress them. You can download a freeware copy of "Ultimate ZIP" from the Ultimate ZIP.com website. We have a wide range of example programs, with source code, to help in teaching programming with UniCOMAL, and to illustrate links with other programming languages. Most of the download files contain stand-alone compiled versions of the programs, for the benefit of readers who don't yet have UniCOMAL.

We do our best to make sure that any material on this site is safe. We cannot, however, offer any guarantees, and we disclaim any responsibility for any damage resulting from software downloaded from this page. Users are urged to adopt careful antivirus protection measures with this software or any other downloaded software, whatever its source.

Contributors - if you'd like to upload files for this section, please remember to include, at least, a text file with a description of your program and an ASCII format listing file along with the COMAL source code. See the "sets.zip" file below for an example of documentation deluxe!


Click this link for the Alphabetic file list


NL_ghm - A nonlinear modelling package by Guenther Mehring
UniVM - A virtual memory manager in UniCOMAL
FX and FX3 - A module for the Mitsubishi FX PLC
Exact Multiplication - to 40 sig figs using string handling.
The CAPITAL Module - displays large text characters
AmigaCOMAL Demo - free download
Power COMAL interpreter for Commodore 64
WebDice: a WebCOMAL three-dice quiz demo
Files uploaded by Lasse Storr-Hansen
WebCOMAL Message Board example WebCOMAL project.
WebFrame: directing WebCOMAL outputs to frames in HTML
WebCOMAL: support for UniCOMAL as an Internet Scripting language
Buttons Browser: a file system browser with long file names
Metronome: a demo showing event handling in UniCOMAL
Buttons V2.0: an upgrade to the Buttons module
Long file names in UniCOMAL with MS-Windows 95 or 98
The game of GO, by Iain King, using Gadgets
A new programming textbook - download a free sample.
Speech Output from UniCOMAL using WinSpeech
Checks, Db1 and Yahtzee - programs by Nicholas Seachord
Bauernschach - a self-learning strategy game
VCOMbase 0.21 - a demo, starting off Visual COMAL
Y2K Diagnostics - a shareware utility
BOTTLES - 99 bottles of beer, and a link to hundreds of other versions
MCEDIT - a low-level program editor to download
SGM - Scientific Graphic Module - a set of graph-plotting utilities
Recursion - a major tutorial for advanced programming
Buttons V1.3
Gadgets - a UniCOMAL GUI
Uni3D - a 3D wireframe constructor and animator
Dick Klingens' Programs
Acorn COMAL file converter V 0.6
Utilities by Karlheinz Nester (Mannheim, Germany)







NL_ghm - A nonlinear modelling package

by Guenther Mehring (guenther.mehring@t-online.de)

NL_GHM is designed to analyse nonlinear models. It can deal with a wide range of different types of models. They can be defined by functions or by ordinary differential equations. It can even cope with delay differential equations. The program can treat univariate and multivariate models including models with nonlinear constraints. The target users are biology, physics or chemistry scientists who analyse data. However, the program can also be used to solve differential equations or to compute functions and display them graphically. Advanced students of Applied Statistics or even professionals who want to become familiar with the subject of nonlinear modelling may also find it useful.

The download, nl_ghm.zip is quite large by COMAL standards, 716K. Guenther has also kindly provided an update to his Scientific Graphical Modelling package, including some improvements and bug fixes.

Users are urged to adopt careful antivirus protection measures with this software or any other downloaded software, whatever its source.







UniVM - A virtual memory manager for UniCOMAL

Ian King has sent in his Virtual Memory manager which allows the programmer to use the hard drive to store arrays instead of using memory. This means that, for example, a COMAL program can access an array of size limited only by the available hard drive space. Data swapping to and from the drive is transparent. Of course, using the drive instead of the RAM slows the program down, but in these days of fast hard drives, you'll hardly notice.

Iain has provided an example program, "textview.cml", together with a compiled executable called "textview.exe", which can open and display a text file of any size. You can't run "textview" from inside comal, because it expects to be called from the command line and have the required file name supplied as a parameter, like this: "textview hugefile.text"

The download (61.8K) is called "univm.zip".

Users are urged to adopt careful antivirus protection measures with this software or any other downloaded software, whatever its source.







FX and FX3 - Programmable Logic Controller Module

Peder Hoejer, of Holstebro in Denmark, manages an industrial mixing plant which produces blends of tobacco mixtures. The plant relies on the Mitsubishi FX range of programmable logic controllers (PLCs) to open and shut the various valves in the mixing process, and Peder controls these PLCs from a central PC using his own software, an external module written with UniCOMAL V3.11 and the SCOM (serial communications) module.

Peder describes the module in his own words:

There are two editions - the FX.MOD and the FX3.MOD.
In the FX3.MOD I have supplied some text - just to tell what's going on. The FX.MOD contains no confusing text. The main purpose of the module is to translate the addresses of the devices into some memory-addresses in the PLC.
This module works with the now outdated FX-PLC's, but also works with the newer FX2N-PLC's - the FX2N contains a larger range of internal relays, but as far as you only use the ranges in the FX-module it will work. I have had no need to rewrite the programme.

The download is called hoejer1.zip and is just 10K long.

Users are urged to adopt careful antivirus protection measures with this software or any other downloaded software, whatever its source.








Exact multiplication

Understanding floating-point arithmetic operations on PCs is a major hurdle for high school students to overcome. This little program tries to highlight some of the shortcomings of floating-point arithmetic by comparing the result of an EXACT multiplication with the result of the PC's standard floating-point multiplication. It uses the string-handling facilities of UniCOMAL to carry out "long multiplication" of two numbers up to 20 digits long. The numbers can be positive or negative, whole numbers or decimal fractions, and the result is exact. The result is displayed as a string of up to 40 characters including a minus sign and a decimal point if appropriate, and the floating-point result is also displayed for comparison. The download is called exactmul.zip, and the program goes nicely with the article on text operations in UniCOMAL.

Here is a sample run from the program:

  Please type the first number:
  -.000034256678952

  Please type the second number:
  -.000444597867563211

           Exact result = 0.000000015230446411856733793234872
  Floating-point result = 1.52304464118567E-8

As the sample run shows, the floating-point result gives 15 significant figures, while the exact result requires 26. This level of precision is sometimes needed in Astronomy, Physics and Engineering.

Exact multiplication is part of the wider topic of Exact Arithmetic, a branch of computational mathematics. The above program is a very modest exact arithmetic example - in a university exact arithmetic competition, contestants were required to provide answers to 200 significant figures! If you'd like to explore this topic further, here are a couple of links to help you get started: What is Exact Arithmetic?, and: The Exact Arithmetic Competition: Level 0 Tests - but take care, because the web literature is really heavy! Finally, if you'd like a more useful means of obtaining exact arithmetic results, there is an exact real arithmetic calculator available on the web, written in Java and downloadable as as a "tarball" (a compressed "tar" file for use on Unix/Linux systems). You can explore it coutesy of Hans Boehm on his Constructive Reals Calculator page.

Users are urged to adopt careful antivirus protection measures with this software or any other downloaded software, whatever its source.








The CAPITAL Module

Our thanks are due to Nicholas Seachord for unravelling the workings of this small module, so far undocumented, which is installed with a full installation of UniCOMAL V3.11 Developers'. We have taken Nicholas' discoveries a little further, put together three short demo programs, and bundled the report into a tiny download file called capital.zip. Try it for yourselves!

Users are urged to adopt careful antivirus protection measures with this software or any other downloaded software, whatever its source.








AmigaCOMAL Demo

A few years ago, UniCOMAL A/S produced AmigaCOMAL for the Commodore Amiga. This was a very well-written Amiga-native COMAL which could be used for full application development. To promote the language, a free Demo diskette was produced and a very complimentary review was published in Amiga User International. Much to the disappointment of UniCOMAL A/S (and ourselves), no-one seemed interested and sales were negligible! The demo package is all that's left of this project, and it has SAVE disabled so it's not very easy to use. However, it does include a compiler, so Amiga enthusiasts can write COMAL programs and compile them to give executables which are fully functioning. And it's free.

There are two files included in the download zip, COMAL.LHA and COMAL.TXT. COMAL.LHA is itself an archive, so you'll need an LHA unarchiver to extract the 113 files it contains. We haven't tested this download, so you're on your own (as with C64 COMAL, see below!).....

Click on this link to download the 255K file amigadem.zip.

Users are urged to adopt careful antivirus protection measures with this software or any other downloaded software, whatever its source.








Power COMAL on the C64

It's amazing how durable the Commodore 64 is as an enthusiasts' platform. This download is pinched from an Australian FTP site, and purports to provide a free power COMAL interpreter for your C64. The original text description appears to date from 1988. Our thanks to the unnamed author, whose email address is (or was?) KurtB02@aol.com. If you want to visit the ftp site, it is ftp://ftp.videocam.net.au/cbm/comal/. The help files talk a lot about 1541 drives and flippy disks, so we haven't made any attempt to test this one, either by emulator or otherwise. It's entirely at your own risk, but if you want to try it, the download is 256K in size, and called power64.zip. Internet archaeology is a fascinating hobby.....

Users are urged to adopt careful antivirus protection measures with this software or any other downloaded software, whatever its source.








WebDice - a three-dice quiz game demo in WebCOMAL

Webdice is a simple arithmetic quiz involving three dice. It was written to explore the potential for interactivity in WebCOMAL, and to demonstrate the inclusion of a sound sample in the form of WAV file which would be automatically played without displaying a sound player window. The download file is called webdice.zip (61K). You will need to have the WebCOMAL Project files installed before you can use it.






Uploads from Lasse Storr-Hansen

Click here (hansen.zip, 222K) to download Lasse's contributions so far. More programs are in the pipeline and will be uploaded in due course.

REVEAL: This is a short program to unprotect a protected COMAL program. It can be used to investigate the structure of, for example, MENUS.MOD and WINDOWS.MOD, both of which use UniCOMAL's protection method to conceal them from the user. Lasse describes it as "a sort of hacker-tool". For legal reasons it won't be published on the website. If you would like a copy, please email to "support@macharsoft.co.uk" and we'll talk about it.

TXT2DIF: TXT2DIF is a project Lasse did to help a colleague who had data in an ASCI-textfile and a program that could only import files in DIF (Data Interchangable Format).

EVAL3: This is an extension of the UniCOMAL expression evaluator. This extension accepts named variables in an expression, and when it comes to evaluating the expression, prompts the user for the values of the variables.

BOOTMENU: This program could save a Computing Teacher's sanity! It automatically installs MS-Windows 95 on all the workstations on a network.






webscore.zip - WebCOMAL Message Scoreboard example

These files support the WebScore article on constructing a WebCOMAL rugby scoreboard simulation. They need to be unzipped into your C:\COMAL\WebMessB folder. Click here to download the examples (81 K).






webframe.zip - WebCOMAL Frames examples

These files support the WebFrame article on directing WebCOMAL outputs to HTML frames. They need to be unzipped into your C:\COMAL folder. Click here to download the examples (11 K).

Users are urged to adopt careful antivirus protection measures with this software or any other downloaded software, whatever its source.








webcomal03.zip - The UniCOMAL Web Scripting package

This exciting development is fully described in the WebCOMAL article on the new WebCOMAL page. You can download the package, containing JAVA Servlets, setup instructions and sample WebCOMAL programs, WebCOMAL03.zip, 113K from here. You will also need the Java Development Kit 2 (JDK 1.2.2), available on free download from Sun Microsystems Inc..

Users are urged to adopt careful antivirus protection measures with this software or any other downloaded software, whatever its source.








buttbrow.zip - Another filing system browser

When we found a means of handling long file names in UniCOMAL, we were unable to resist the temptation to try to write a browser which would cope with anything that an MS-Windows 95 or 98 folder could throw at it. The result so far, in very nearly usable form, is "Buttons Browser V0.9", written using the Buttons module. The original attempt was written using Buttons V1.3, but the version in the download file has been upgraded to Buttons V2.0, so that it can respond to right-mouse-button clicks as well as left-mouse-button clicks. It needs only UniCOMAL V3.11 Students, and as usual there's a compiled version for non-COMAL readers.

The browser window displays the contents of the currently selected directory, in alphabetic order, 40 objects at a time. It displays long file names up to 37 characters. Left-clicking on a folder name (yellow), opens that folder and displays its catalogue on the screen. If the folder contains more than 40 objects, they can be displayed one screen at a time by clicking the PAGE UP and PAGE DOWN buttons. Clicking on the "PARENT" button switches to the parent folder, one level up the directory tree.

"Buttbrow" displaying the first page of a Windows directory

The browser uses the command-line facilities of MS-Windows 95 or 98 to display long file names taken from the MS-Windows directory listing. Only those files which can be displayed by the MS-Windows "DIR" command are shown, so hidden files are not displayed by this browser. It creates a temporary text file called 'TEMPDIR.TXT' in the root directory of Drive C: to hold the MS-Windows directory listing while the browser is working on it. This file is deleted on exit from the browser. The launcher procedure may also create a file called C:\DOSERROR.TXT.

Click the X at top left of the window to eXit the browser.

LEFT mouse-button-clicks on FILE names show a panel with the full details of the file. Dates are given in UK format, dd/mm/yyyy.

RIGHT mouse-button-clicks on files attempt to launch the file, depending on its type. Supported file types in this version include .TXT, .DOC, .BMP, .JPG, .GIF, and a variety of multimedia files which are launched into MS-Windows Media Player. This part of the program is distinctly experimental!

Click buttbrow.zip (120K) to download the browser.

Users are urged to adopt careful antivirus protection measures with this software or any other downloaded software, whatever its source.








metronom.zip - A metronome simulation demonstrating Event handling

This little demo displays a simplified musician's metronome which beats between 20 beats per minute and 200 beats per minute. The beats are timed by an event-driven timer using the "Timers" module from UniCOMAL V3.11 Developers'. Another timer counts and displays bar numbers, and the number of beats to the bar can be altered between 1 and 8. The program uses the graphics and unimouse modules, and is completely mouse controlled. A text file called "comevent.txt", containing the text of our short article on event handling in UniCOMAL, is also included, as is a compiled version for non-unicomal users. The download, metronom.zip, is 130K in size.

Users are urged to adopt careful antivirus protection measures with this software or any other downloaded software, whatever its source.








butt20.zip - The Buttons Module with mouse button detection

This upgrade to the Buttons module allows programs to detect which one of three mouse buttons has been clicked inside a particular screen button, and act accordingly. The new module comes with an example program called "Buttons Minehunt", a simplified version of MS-Windows "Minesweeper" and X-Windows "Demineur". Buttons V2.0 will not work with earlier Buttons programs without a simple change to these programs which is explained in the revised help text. Revised versions of the original example programs are also included to give a coherent distribution. The download file butt20.zip is 186K in size. "Minehunt" features event handling, using the "Unitimer" module to produce a seconds clock to time the progress of a minesweeper game.

Users are urged to adopt careful antivirus protection measures with this software or any other downloaded software, whatever its source.








LONGFILE.ZIP - a way of listing long file names

UniCOMAL uses DOS-style filenames in "8.3" format, that's to say, 8 characters in the stem of the file name, then a dot, then a 3-character file extension used to indicate the file type. (Many diehard DOS-users prefer things this way). MS-Windows 95, 98, NT and 2000 all allow the use of long file names, even containing more than one dot if the user so wishes. It's been a definite limitation of UniCOMAL that it can't handle long file names, so we are very glad to be able to report a way of doing so. The program "Longfile.CML" demonstrates a directory listing of long file names, obtained from the MS-Windows 95 directory listing (which contains both the 8.3 name and the long filename for every entry in the directory) by saving the listing in a text file and using some simple string slicing to extract the relevant information. Longfile.zip is only 5K long.

Users are urged to adopt careful antivirus protection measures with this software or any other downloaded software, whatever its source.




TBOOKDEM.ZIP - a free sample of our new programming text in html format.

Users have asked why there isn't an up-to-date COMAL textbook, taking account of using UniCOMAL with MS-Windows, for example. There didn't seem to be any good reason why not, so we buckled down and wrote one! It's called "UniCOMAL from the Start", and it covers most of high-school programming at an introductory level. It's in HTML format, so that you can read it through a browser and benefit from hyperlinks, copy-and-paste and a pop-up glossary of computer programming. The first two chapters, along with the contents page, the introduction and the glossary, are included in the free download: tbookdem.zip (558K): if you like it, see the prices page for details of how to order the full thing. There's a fuller description on the "UniCOMAL from the Start" page.

The final edition (October 1999) of this demo now includes Chapters 1, 2 and 3, together with most of the Appendices. We hope it will be useful in its own right.

Users are urged to adopt careful antivirus protection measures with this software or any other downloaded software, whatever its source.




SPEECH.ZIP - Files to give a limited speech facility

We have been experimenting with various speech output programs for MS-Windows, in the hope of finding one which was free, which would work with a simplish PC set up, and which could be accessed from inside UniCOMAL. We've got part of the way with WinSpeech.EXE, a shareware Win95 executable which has a simple command-line interface which allows us to PASS a command string from UniCOMAL for WinSpeech to say through a sound card. It works quite nicely and it isn't too big (899K including our demos). Try it for yourself - all you need is in the download SPEECH.ZIP.

Users are urged to adopt careful antivirus protection measures with this software or any other downloaded software, whatever its source.




Nicholas Seachord's programs

Nicholas Seachord, of Washington in Kansas, has uploaded his chequebook control system, CHECKS.EXE. You can read a bit more about Nicholas in the Comalites' Forum. The code is provided as a listed ASCII file (checks.lst), as a UniCOMAL source file (checks.cml) and as a compiled executable (checks.exe). If you want to run the program from the COMAL source, you will need the text windows module supplied with UniCOMAL Developers' version, so users of UniCOMAL Students' won't be able to do this. Everyone, even those without either version of UniCOMAL, should be able to run the CHECKS.EXE version, however. CHECKS is shareware, but Nicholas only asks a very modest fee if you decide to keep it beyond the evaluation period. Click here to download the compressed file checks.zip (138K).

Nicholas has also uploaded two new COMAL programs - YAHTZEE.ZIP (113K), a UniCOMAL implementation of the Yahtzee game, and DB1.ZIP (83K), a COMAL database program using random-access filing. Both of these programs use the UniCOMAL text windows module, so owners of the Students' version won't be able to run the source code.

Users are urged to adopt careful antivirus protection measures with this software or any other downloaded software, whatever its source.



Bauernschach - a self-learning strategy game

This little program appears by permission of its author, Peter Ruppel, a German COMAL user. It is written in UniCOMAL V3.10 and so works well with V3.11. Readers who do not yet have UniCOMAL can download a compiled version from Peter's own homepage. The program implements an heuristic game of "Pawn Chess", a simple board game on a 3x3 grid. You'll be able to beat the program every time, at first, but keep on playing and the program will start to beat you ...

The COMAL code, the playing instructions and the documentation are all in German, but we've provided a rough translation, and are happy to take the blame for the mistakes!

Click here to download bauersch.zip (11 Kb).

Users are urged to adopt careful antivirus protection measures with this software or any other downloaded software, whatever its source.



VCOMbase 0.21 - a demo to start off Visual COMAL

This is not only a demo but a statement of intent. For over a year now we have been working, slowly and sporadically, on a version of COMAL which will work with Microsoft Windows. We intend to call it "Visual COMAL" and it will, in time have a graphical front end similar to, but much simpler than, Delphi or Visual BASIC. VCOMbase is a sort of dedicated assembler, written in UniCOMAL, which assembles and executes a simple PE file. This PE file creates an MS-Windows interactive Window on screen which responds to events like mouse clicks just as it ought. Unusually, we have only included a compiled version, VCOMBAS1.EXE, and not the source code, for reasons which are explained in the README file in the download.

VCOMbase V0.21 includes a simple help file, and has the "File" menu reduced to provide only an "Exit" button.

Click here to download VCOMbase.zip (63 Kb).

Users are urged to adopt careful antivirus protection measures with this software or any other downloaded software, whatever its source.



Y2K Diagnostics - a shareware utility

Y2Kdiag.exe was a "Millenium Bug" diagnoser for PCs running Windows 3.1, 95 and 98. It has now (07-01-2000) been deleted from the downloads section.




BOTTLES - 99 bottles of beer in COMAL

"99 bottles of beer" is a webpage, hosted by Tim Robinson as part of his "funpage", for comparative programmers. It contains 227 different-language versions of a program which displays the old "ten green bottles" rhyme, only it's 99 bottles (USA version of ten green bottles?). Tim has given us permission to put the COMAL version on this site, and to link to his webpage so that you can have a look at the other 226!

Click here to download bottles.zip (987 bytes).

Users are urged to adopt careful antivirus protection measures with this software or any other downloaded software, whatever its source.



MCEDIT - a programmer's low-level file editor

This program was inspired by Guttorm Vik's wonderful program editor, !StrongED, for the RISC-OS operating system on the Acorn range of computers, from the Acorn A3000 to the Acorn Risc-PC. While I was working on a machine-code project involving Windows 32-bit PE files, I found myself using !StrongED to view these files on my Risc-PC, then saving them from StrongEd and running them in Windows 95 in a Risc-OS window on that machine. Now while all this worked perfectly well and was a nice single-computer working solution to the problem, it irritated me badly that I couldn't do the same thing on an ordinary PC, of which I have many available on which to work, simply because I didn't have anything like StrongED on the Windows platform. Also, I was getting nostalgic for the simpler programming environment of UniCOMAL after several weeks of extremely slow progress with Delphi and Win32 code. So I decided to take a short holiday and try to write an editor like StrongED, but much much simpler, for DOS, to run in a window in MS-Windows 95 on any of the PCs available.

The 'short holiday' became quite a long excursion, as usual, but eventually the thing got finished, sort of, so here it is. It's reasonably friendly and tries to explain itself during use. You could use it to edit any file, even text files, but that's not a good idea because there are much better text file handling facilities in Windows. If you need to type code in in hexadecimal, or alter short (less than 30K) machine-code files quickly and efficiently, then this editor will help. But please take good heed of the disclaimer in the README.TXT file, and don't go messing about with .EXE files unless you really know what you're doing!

Click here MCEDIT.ZIP to download the editor.(64.5K)

Users are urged to adopt careful antivirus protection measures with this software or any other downloaded software, whatever its source.



SCIENTIFIC GRAPHIC MODULE

by Guenther H. Mehring guenther.mehring@t-online.de

This download has now been updated (March 2002) with some bug fixes and improvements.

This is a COMAL-program to produce scientific graphs in the environment of the COMAL-system. The program consists of the MODules SGM.MOD, SGM1.MOD and the STRUCtures SGM_ASP.STR, SGM_TXTP.STR. UniCOMAL version 3.1 or higher is required. A description of the program is provided in the file SGM_DOC.TXT. The COMAL programs SGM1.CML to SGM6.CML demonstrate various features of the Scientific Graphic Module.

Click this link to download the file: sgm.zip (71 K).

Users are urged to adopt careful antivirus protection measures with this software or any other downloaded software, whatever its source.



BUTTONS V1.3

We have added (May 1999) an hexadecimal calculator to the butt13.zip download, as an extra example program using the Buttons module. See the text file "HEXCALC.TXT", in the updated download file, for an explanation. 'butt13.zip' is now 152K in size.

Our first offering is a module with its associated help file and sample programs, which we hope will help give students the flavour of more modern software development tools for WIMP programming, while still using COMAL. It's called BUTTONS and provides very simple facilities for developing programs which use mouse input and screen buttons for menus. Programs developed using BUTTONS don't use either PRINT or INPUT, but instead have a range of input/output procedures and functions similar in operation to, but much simpler than, those offered by C++, Delphi and Visual Basic. BUTTONS V1.3, including listings, is now ready - to download it click here: Download BUTTONS.ZIP.

Readers who do not yet have UniComal can load the Buttons listings into any text editor (Notepad is ideal) to get a look at the source code and a feel of the structure of a COMAL program. The listings are in files with the extension "LST", like "buttomod.lst" for example. We've included them in response to a suggestion from a reader from the United States - our thanks to him, and why didn't we think of it ourselves?

Schools in Scotland may find BUTTONS particularly interesting, because it is meant for use in software development work in Higher Still Computing at Higher level. It offers a way to progress from COMAL programming at Standard Grade to Software Development at Higher, and give an enhancement to the Higher Programming unit for schools undertaking it.

The first release of BUTTONS is text-based, like the windows and menus module bundled with UniCOMAL V3.11 Developers, although much simpler. It works with DOS and MS-Windows 3.x, but behaves best with MS-Windows 95. Later versions, already in development, will have limited graphics support.

Although MacharSoft retain copyright on BUTTONS, it is classed as public domain software, full source code provided along with the module, and we would be very glad if teachers would care to offer comments, suggestions and even reworkings of it. BUTTONS may be freely copied so long as all the material remains in the public domain and is distributed in its original form without alterations or additions.

Users are urged to adopt careful antivirus protection measures with this software or any other downloaded software, whatever its source.



Utilities by Karlheinz Nester

Karlheinz uploaded his "makedbf" utility for making .dbf database files early in 1998, and in June 98 he sent us "basutil" his collection of string handling functions which extend UniCOMAL's string slicing facilities. There are functions to pick out single words, emulations of BASIC's LEFT$, MID$ and RIGHT$, character strippers, padders and justifiers. They look as if they will be very useful in lexical analysis.

Users are urged to adopt careful antivirus protection measures with this software or any other downloaded software, whatever its source.



Dumper - a simple hex dump utility, and Borg - a PE disassembler

MacharSoft started computing as Acorn users, and were accordingly spoilt silly by the Acorn philosophy of providing good, simple, low-level development tools for code junkies to play with. We got BBC Basic, with built-in 6502 assembler, *LIST and *DUMP, all in 32K of 8-bit ROM-based code. The culture shock on migrating to the PC world was considerable - no decent high-level language, no free assembler, no powerful text editor for programming, and worst of all, no hex dump software built in! (Not to mention the horrific illegibility of C and C++). Very few programmers even contemplate low-level work with PCs these days, especially with 32-bit Windows. Perhaps the lack of comprehensible free software development tools is a deterrent. Well, DUMPER.CML, in the DUMPER.ZIP file, (132K) isn't much, but it will dump any file in hex and ASCII format, and provide a page-by-page hard copy printout on request, and will run from inside Windows 95 or 98. We're using it to examine the structure of Win32 PE ("Portable Executable") files with a view to building some of our own in the near future, so it's a sort of minor spinoff. It's available as UniCOMAL source, a listings file (DUMPER.LST) and as an EXE file (DUMPER.EXE) for deprived but worthy non-UniCOMAL users.

Also contained in DUMPER.ZIP is the BORG PE File disassembler by 'Cronos', (Cronos@Compuserve.com), a freeware package, which disassembles PE Files and reports detailed information on their structure and contents.

Users are urged to adopt careful antivirus protection measures with this software or any other downloaded software, whatever its source.







UniGO - The game of GO using GADGETS

Iain King continues to write creative COMAL. Here is his version of the game of GO, programmed using GADGETS. We've even had it running in a window in Windows 95 (on a Cyrix 300 based PC with a 4 M video card), and here's a screenshot of a game in progress. Click here to download "unigo.zip" (89K). You don't need to have the Gadgets module installed to run the file, nor even UniCOMAL, because Iain has provided a compiled version.

Users are urged to adopt careful antivirus protection measures with this software or any other downloaded software, whatever its source.








GADGETS V1.2 - A UniCOMAL GUI by Iain King

When he wrote "gadgets", Iain King was a computer science undergraduate at Strathclyde University, Glasgow, Scotland. You can read a bit more about him in the Forum.

A long time ago, or so it seems now, we promised to produce a graphics version of the BUTTONS module. Well, Iain beat us to it by a few years! Here is what amounts to a graphical version of 'buttons', with much greater functionality than 'buttons' was ever intended to have - it even has its own installation program, written using 'gadgets' and compiled to an .EXE file. It may even be possible to run it in a MS-Windows DOS box if you've enough video RAM available - try cutting your PC back to VGA video (640 x 480 x 16 colours) and see if it will run in an MS-Windows window.

Gadgets V1.2 incorporates an improvement to the slider redrawing algorithm, and a bug fix in the "changed#" function. See the main README.TXT file for details.

Click here to download Iain's opus.


Uni3D

Uni3D is a 3-D wireframe constructor and animator by Iain King. Iain didn't at first think that such a thing was possible in UniCOMAL because it wasn't fast enough, but he tried his ideas out anyway and was pleasantly suprised by the result. The animations are really impressively smooth - on Iain's P133, at least! If you can, be sure to use COMAL87 to run these programs to get the best floating point performance possible - 3D geometry relies heavily on the trigonometric functions and floating-point arithmetic.

Uni3D2 is "solid" version of Uni3D in whic Iain has filled in the forward-pointing faces of the wireframe. It's in a fairly early stage.

Users are urged to adopt careful antivirus protection measures with this software or any other downloaded software, whatever its source.



Dick Klingens' Programs

Dick Klingens is a high school teacher from Holland who has been involved with COMAL from the earliest days. Read his story for yourself in the Forum. His first collection, klingens.zip contains a simple AI program to produce Haiku poems, a LISP interpreter in COMAL and a function to display the written form of counting numbers in Dutch..... he has also contributed many of the files in the alphabetic list, and his standard of documentation is excellent.


Dick has been exploring filing system access from UniCOMAL, particularly with regard to file attributes and the MOUNT command, and has developed some interesting workarounds for some annoying weaknesses of UniCOMAL in this area. These patches are particularly useful when accessing drives A: and B: from UniCOMAL programs running in a DOS window in MS-Windows. See "files", "mount12", "mount3" and "opendir" in the alphabetic list below, and also have a look at the notes on using UniCOMAL with MS-Windows in the UniCOMAL page.


Dick's April uploads provide a compiler (!) for Nicklaus Wirth's famous PL/0 language, forerunner of PL/1, in UniCOMAL - see "xpl0.zip", and patches for a problem in seeding the random number generator, RND. It seems that UniCOMAL, like most languages which provide pseudo-random numbers, seeds the random number generator from the system clock. With a fast PC, this approach can give the same start sequence if RND is called successively - but read Dick's notes for yourself in "random.zip".


"Printers.zip" is a set of utilities to help debug printer access problems. It includes detailed descriptions of the UniCOMAL handling of LPT1:, LPT2: and LPT3: for printer output, and patches to interrogate the PC's control information area in memory so as to locate the printer port base addresses for a given PC; monitor status changes on the printer ports; and manage printing well from UniCOMAL programs so as to avoid unexpected printer errors. Dick has included compiled versions of the patches as .EXE files for the benefit those without UniCOMAL, They can be found in a 240K .zip file called prnexec.zip.


"Dualout.zip" is a module providing procedures to permit output to be directed both to screen and printer. See the FAQs page for more details of this problem.


Recurs6

"Recurs6.zip" is a major work on the topic of recursion. Dick refers to it as a "tutorial" but it is much, much more than that.

Users are urged to adopt careful antivirus protection measures with this software or any other downloaded software, whatever its source.



An Acorn COMAL bytecode file converter

We have been working on a program to convert Acorn COMAL bytecode files (as saved from AcornSoft COMAL) to UniCOMAL code .dsp files in ASCII format. We think we have made enough progress with this to let it 'escape' onto the web in the hope that people will use it and report problems back! We had hoped to handle graphics and sound calls as well as translating the syntax differences properly, but we haven't got very far with that. This version (0.6) just about manages to translate the syntax, with many exceptions which are described in the README file. The converter is called "Acorncon", and it comes with a very large collection of Acorn COMAL files to test it out on. It uses the filing system navigation procedure, in the form of a module, NAVIGATE.MOD, included in the ZIP file. This module is also available as a procedure in the file navig1.zip in the downloads list.

Users are urged to adopt careful antivirus protection measures with this software or any other downloaded software, whatever its source.



Alphabetic list of files

Users are urged to adopt careful antivirus protection measures with this software or any other downloaded software, whatever its source.

   22nce142.zip    51K A Shareware CP/M Emulator for DOS
   acorncon.zip   128K The Acorn file converter, V0.6
   amigadem.zip   255K The AmigaCOMAL demo diskette

   basutil.zip      6K Karlheinz Nester's string handling functions.
   bauersch.zip    11K Bauernschach - Peter Ruppel's strategy game.
   bottles.zip      1K 99 bottles of beer from Tim Robinson's Funpage.
   butt13.zip     152K The buttons module, V1.3
   butt20.zip     186K The buttons Module, V2.0, with mouse button detection
   buttbrow.zip   120K A file system browser and launcher using Buttons V2.0

   capital.zip      6K Notes on CAPITAL.MOD, a large-text module
   checks.zip     138K Nicholas Seachord's CHECKS program
   comal80.zip    144K PD Demo version of COMAL-80 for CP/M

   db1ns.zip       83K Nicholas Seachord's random-access database
   dualout.zip     20K An utility module to allow printing to both screen and printer.
   dumper.zip     132K A hex file dump utility, and a PE file Disassembler.

   exactmul.zip    54K Exact multiplication to 40 significant figures.

   files.zip       95K A module providing extended file handling facilities

   gadgets.zip    370K Iain King's GADGETS module and examples

   hansen.zip     222K Uploads from Lasse Storr-Hansen
   hoejer1.zip     10K Peder Hoejer's FX and FX3 modules for Mitsubishi PLCs
   hscomal3.zip    69K Higher Still Computing Software Development Unit Section 3 notes

   klingens.zip    29K Haikus, Dutch numbers, simple LISP interpreter

   longfile.zip     5K Long file names listed in UniCOMAL

   makedbf.zip      6K A .DBF file creator by Karlheinz Nester, Mannheim
   mcedit.zip      65K A low-level file editor for programmers
   metronom.zip   130K An event-driven Metronome simulation
   mount12.zip     20K Patches for problems with the MOUNT command
   mount3.zip      19K The final part of the MOUNT patch series.

   navig1.zip      17K A filing system navigator  procedure
   NL_ghm.zip     716K A nonlinear modelling package

   opendir.zip     88K An utility to extend the opendir# function (system module)

   pcbbc.zip       72K An Acorn BBC emulator for PCs - see the cross-platform page.
   pdbeep.zip      67K A simple sound module
   power64.zip    256K A power COMAL interpreter for the Commodore 64
   printers.zip    43K Printer access from UniCOMAL explained
   prnexec.zip    240K Compiled versions of the printers.zip files

   queue.zip        8K A simulation of a queue for the Higher Still Programming Unit

   random.zip      83K Patches for the RND problem on fast machines
   recurs6.zip    503K Dick Klingens' huge "Recursion Tutorial"

   sets.zip       118K Handling integer sets
   speech.zip      99K A speech demo with the WinSpeech shareware program
   sgm.zip         71K Guenther Mehring's Scientific Graphic Module for graph plotting

   tbookdem.zip   558K "UniCOMAL from the Start" textbook evaluation demo

   uni3d.zip       13K 3D wireframe modelling and animation
   uni3d2.zip      12K 3D solid modelling and animation
   unigo.zip       89K The game of GO, using UniCOMAL Gadgets
   univm.zip       62K A virtual memory manager for UniCOMAL

   VCOMbase.zip    63K Visual COMAL prototype V0.21 demo.

   WebCOMAL03.zip 113K WebCOMAL UniCOMAL Internet Scripting package.
   WebDice.zip     61K The WebDice demo for WebCOMAL.
   WebFrame.zip    11K HTML Frames Examples for WebCOMAL.
   WebScore.zip    81K Rugby Message Scoreboard example for WebCOMAL.

   xpl0.zip       169K A compiler for the PL/0 language

   yahtzens.zip   113K Nicholas Seachord's Yahtzee game

   z80mu52b.zip    86K Joan Riff's Z80 Emulator for the PC


Updated 19-April-2004 (most broken links fixed)