The TinyCOBOL project creator and leader is Rildo Pragana.

See a brief historical note written by him about why this COBOL compiler.

This compiler was first implemented for generating a TSR (terminate and stay resident) program under DOS for my family of micro-terminals[1] connected to a PC. The generated code could not be C (at that time), for there was no freely available C compiler for doing the "second phase" translation. I was supposed to generate masm-compatible assembly language.

The compiler was also required to communicate with a tiny multi task, responsible for making the PC console available for other tasks, while doing all processing on the background. So the code had to be fully reentrant (several terminals could be running it at the same time), with a separate stack and variable data segment areas, but with common literal area.

I had to disassemble a 2 feet high pile of listings, to understand how to make this work inside DOS, so no operation (even "pause" key) could make the system unavailable at the background, or the micro-terminals would not run.

The compiler was tiny, and accept only a subset of COBOL 74 standard, but could easily be expanded to full compliance. There were no "MOVE CORRESPONDING" nor "ALTER" statements, as most of COBOL programmers (our customers) didn't require them. There were no report generating functions also, because of the size constraints. We were supposed to run only with the first 640KB of memory, (I couldn't put at that time interrupts servicing outside that space) while leaving sufficient space for running the "foreground" applications.

I hope everyone understands now why this crappy thing had so many restrictions. Now, as we're moving to Linux, we will do much more, as there are none of those restrictions anymore.


1. MT100 and HandTerm. The first (older) was implemented with a Z80 microprocessor. The second was a single-chip terminal, with an Altera FPGA. It featured a multi point line, (a simple phone-line pair) achieving 250KBps transfer speed. (all done by hardware) My main job is doing hardware design, although I do spend most of my time writing software. Who said software is so "soft"?