Make your own free website on

Why this cobol compiler?

brief historical notes


This compiler was first implemented for generating a TSR (terminate and stay resident) program under MsDosTM for my family of microterminals [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 multitasker, responsible for making the PC console available for other tasks, while doing all processing on the background. So the code had to be full reentrant (several terminals could be running it at the same time), with a separate stack and variable data segment areas, but with common literals area.

I had to disassembly a 2'' high pile of listings, to understand how to make this work inside MsDosTM, so no operation (even "puase" key) could make the system unavailable at the background, or the microterminals would not run.

The compiler was tiny, and accept only a subste of ANS-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 understand now why this crappy thing had so much restrictions. Now, as we're moving to Linux, we will do much more, as there are none of those restrictons 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 multipoint 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. How said software is so "soft"?