Author Message

Many people have expressed interest in the DOS compiler that I
developed some years ago.

Some of you have got back to me with questions and problems, for
example some of you have said that the generated EXE will crash under
Win95 and stuff like that.

Please note that the entire compiler was developed ONLY on DOS 6
the code was tested heavily on DOS 6 at the time and any bugs or
crashes were immediately investigated.

However DOS does NOT catch all runtime faults that a program can
create so some bugs did not ever manifest themselves and were
therefore never seen before.

When you run under Win95, there is a more sophiticated management of
the machine and its registers, and Win95 will report errors that DOS
alone did not.

I have not done much with this compiler for years (apart from port it
to NT) so I havent seen exactly what happens under Win95.

Here is a copy of a reply I sent to someone recently, it may be of
interest to others who have taken the time to explore this software.

Thanks for getting back, I do find it useful to get ANY feedback !

The compiler isnt complete, one of the weaknesses is that the
coprocessor support is untested, +ndp means 'numeric data processor'
this is how Intel used to describe the 80287 and 80387 chips.

When you specify +ndp, the compiler uses the coprocessor to perform
fast array index calculations where required, this is what its doing
here, and your error arises due to this area of the code generator
relatively untested.

The mapcase problem isnt a compiler error, it is correct behaviour.

mapcase is intended for situation where you may have only uppercase
source files (like from an IBM mainframe system).

The compiler ordinarily distinguishes between upper and lower case,
like 'C'. By specifying mapcase, the compiler effectively converts
everything to lower case internally during the compilation.

This means that (X,Y) is 'seen' by the parser as (x,y) and this is a
duplicate of another declaration for x and y.

The ANSI definition does not insist on case being either lower or
so this is needed if you want uppercase keywords to be recognised, for

dcl a           bin(15);
DCL b           BIN(15);

the latter 'DCL' is either a keyword or not, the mapcase option helps
control this at compile time, I guess it could be a pre-processor

Stratus's PLI compiler has exactly the same option and Im told that
DEC VAX PL/I compiler also has this.

What can yo build ?

Here is a list of the code that actually runs and works, and how to

pl1 +code lines
plink lines

pl1 +code pixels
plink pixels

pl1 +code squares
plink squares

pl1 +code largetst
plink largetst

pl1 +code passaray
plink passaray

This last one crashes at the end, no doubt due to a compiler bug of
some sort, but I dont beleive it crashes on a 'pure' DOS 6 machine.

The code was developed on 286 years ago, and although the source code
base for the compiler is high quality, the DOS environment was weak,
you may find that passaray runs fine on a raw DOS 6 machine !

Hope this helps, and thanks for your interest.


Fri, 28 Jul 2000 03:00:00 GMT  
 [ 1 post ] 

 Relevant Pages 

1. Problem: MS-DOS Oberon and copy(to/from)msdos

2. Problems with MS-FORTRAN5.1 and MS-DOS 6.0

3. looking for a PL/I compiler for 386+ in MSDOS or NT-DOS

4. PL/I for MS-DOS

5. PL/I Compilers for MS-DOS

6. Problems with Eiffel/S for MS-DOS


8. Problems with CAClipper 5.3, MS-DOS on Compaq LTE5150

9. MS Fortran 5.1 DOS linking problems !!!

10. MS Fortran v 5.00 - Access to serial COM ports (MS-DOS)

11. How to make MS DOS beep using MS Fortran 5.1

12. PC DOS vs MS DOS:serial communications


Powered by phpBB® Forum Software