Version 3.03 of the DeSmet compiler is an "upgrade" of DeSmet 2.51, but I don't remember what the improvements are. One of the additions is the "large case" compiler, which produces large memory model code (multiple code and data segments to allow up to 1 Megabytes of code and data) instead of the small memory model (code and data are each limited to a single 64K segment) of the "standard" DeSmet compiler.

The (paper!) manual for version 3.03 was later "upgraded" to the version 3.1h manual by adding (and replacing?) pages. I think I still have the original 3.03 pages, if I can find them I'll "downgrade" the 3.1h manual to recover the 3.03 manual. If you have the 3.03 manual, please email me.

If you split the difference between the C88_251.PDF manual (6.3MB) and the C88_31H.PDF manual (10.2MB) you should be "close enough", particularly if you ignore the pages "included" between other pages (pages with a -n after the page number, like pages 10.82-1 and 10.82-2 between pages 10.82 and 10.83) in the 3.1h manual.

If you want to take a crack at a smaller / better OCR'ed manual, please let me know. I can provide you with the .TIF's I scanned, or even a paper copy.

The early compiler version limitation that all structure/union elements must be globally unique names is gone, but remnants still persist through version 3.03 of the compiler. They are even used in the LIB88 program, as an example:

union { int word; char byte; };
char *inin;
will allow references like
i = inin->word;
to reference 16-bit data via a pointer to 8-bit data without explicit typecasting.

Version 3.03 came on six floppies:

Disk 1 which contains the compiler
the compiler (C88.EXE, GEN.EXE)
assembler (ASM88.EXE)
linker (BIND.EXE)
librarian (LIB88.EXE)
editor (SEE.EXE)
standard headers (STDIO.H, MATH.H, DOS.H)
libraries (CSTDIO.S, CSTDIO7.S, EXEC.O)
Disk 2 which contains additional programs
an additional library for DOS Version 1 (MSVER1.O) the profiler (PROF*.EXE)
some utilities (RAM.COM, BUF128.*, DUMP.* LATER.C, CB.C, CLIST.EXE, COMPARE.*)
some games (BUGS!, LIFE)
Note the SEE .O files -- back in the early "not everything was a PC-compatible computer" days, they allowed you to customize the screen I/O of the editor for your system.
Disk 3 which contains the debugger
debugger (D88.EXE)
source/.O files for D88 (D88.O, D88REST.O, FLIP,A, PCIO.A, CONFIG.C) back in the early "not everything was a PC-compatible computer" days, they allowed you to customize the screen I/O of the debugger for your system.
Disk 4 which contains the Large Case compiler
large case compiler (C88.EXE, GEN.EXE)
large case assembler (ASM88.EXE)
large case linker (BBIND.EXE)
large case standard header (STDIO.H)
librarian (same as small case librarian) (LIB88.EXE)
large case libraries (BCSTDIO.S, BCSTDIO7.S, BEXEC.O)
large case profiler (PROF*.EXE)
Disk 5 which contains the Large Case DOS libraries
Note: This also contains "later" versions of BBIND.EXE, BCSTDIO.S, and BCSTDIO7.S
large case linker (BBIND.EXE) (possibly a later version than the one on C88303_4)
large case libraries (BCSTDIO.S, BCSTDIO7.S, BEXEC.O) (possibly later versions than those on C88303_4)
large case Microsoft .OBJ libraries (BC88.LIB, BC887.LIB)
large case Microsoft compatible start up code (BC.ASM, BC.OBJ)
large case exec code (BEXEC.OBJ)
Sample of segmentation controls needed to link to C88 (BSTUB.ASM)
Disk 6 which contains the large case debugger
large case debugger (D88.EXE)
.O files for D88 (D88.O, D88REST.O) back in the early "not everything was a PC-compatible computer" days, they allowed you to customize the screen I/O of the debugger for your system.

The source code to version 3.03 of the DeSmet compiler is available. It was given to me as a .ZIP of someone's development directory, so it contained a fair amount of "fluff" and .BAT files that referred to their machine setup.

This "raw source" is available in the file DES_303.ZIP. It is mostly useful for the "fluff" and minor utilities.

A "clean" copy of the source is available in SRC_303.ZIP. It contains .ZIPs of the source files for the individual programs, and a .BAT file to automate the compile.

One question about the compiler is "which version of the compiler was used to compile the compiler"? This is actually somewhat hard to answer.

I've tried compiling the 3.03 compiler with the available, compatible compiler versions I have (2.40, 2.51, 3.03), and I don't get the same file that is in the distribution. Part of this may be inclusion of the MSVER1.O file, as the compiler runs under DOS 1.0 and later, so it uses FCB's for read(), write(), lseek() and other file I/O. Even so, I still don't get the same file. The version 3.03 compiler will cleanly compile the 3.03 source, so that should be the starting point.

Back to main page



These pages last modified 7/22/2005

[an error occurred while processing this directive]