[comp.sources.bugs] ADL problems

staylor@mutley.UUCP (Scott G. Taylor) (12/14/87)

Having tried many times to get Ross Cuniff's Adventure Definition
Language to run on our PDP-11/70 with V7, I'm crying help.  The
sources compile fine, however when compiling with adlcomp, all
game compilations  came up with "WARNING: STRING undefined". 
Likewise for TELLER and a few other pre-defines. Additionally,
compiling aard comes back with "WARNING: verb( ACTION ) already
assigned."  

After compiling and informing me that I had 2-5 warnings, adlrun
tells me "Illegal instruction, ip = 4068".  The adldebug program tells
me that the instructions at that location are ok.

I suspect that the problem may be that adl was originally written for
a 32 bit machine (e.g. storage conflicts with 32 vs. 16 bit). 

If anyone has had any experience and feel they might be able
to help me out, please send some E-mail correspondence likewise.

				Mass Appreciates.

cunniff@hpfclq.HP.COM (Ross Cunniff) (12/22/87)

In message <191@mutley.UUCP>, staylor@mutley.UUCP (Scott G. Taylor) writes:
> Having tried many times to get Ross Cuniff's Adventure Definition
> Language to run on our PDP-11/70 with V7, I'm crying help.  The
> sources compile fine, however when compiling with adlcomp, all
> game compilations  came up with "WARNING: STRING undefined". 
> Likewise for TELLER and a few other pre-defines. Additionally,
> compiling aard comes back with "WARNING: verb( ACTION ) already
> assigned."  
These warnings are just that: warnings.  They are informing you
that certain features of the language are not being used (look
in the documentation for what STRING and TELLER do).  The warning
about verb( ACTION ) already assigned is also harmless.  They
are unrelated to the problem below:

> After compiling and informing me that I had 2-5 warnings, adlrun
> tells me "Illegal instruction, ip = 4068".  The adldebug program tells
> me that the instructions at that location are ok.
There are several things that could be wrong here.

	1.  You didn't edit adltypes.h for your local system,
	    and consequently the types int16, int32, and
	    address are not properly defined.  If adldebug
	    give you reasonable looking instructions (i.e.,
	    no ILLEGAL instructions), this is probably not
	    the problem.

	2.  You might need to modify the Makefiles to compile
	    with separate instruction and data space.  The
	    cc option for this is, I believe, -I or -i (consult
	    your local man page).  This is because ADL is a
	    rather large program (although not as big as,
	    say, NetHack).  If you are on a PDP-11, and
	    this still doesn't work, try changing the line
	    in include/adltypes.h from
		#define DEBUG 1
	    to
		#define DEBUG 0
	    This will also make the games run faster.
	
	3.  Users of 80*86 based systems will need to compile
	    with large code and data space in order to get
	    things to run.

> I suspect that the problem may be that adl was originally written for
> a 32 bit machine (e.g. storage conflicts with 32 vs. 16 bit). 
This turns out not to be the case.  ADL was indeed originally written
on a 32 bit machine, but the first port was to an IBM PC (by the way,
if anybody wants to make their code portable, just port it between
a large 32-bit UN*X machine and an MS-DOS clone several times.  Sure
shakes out those word size and byte order assumptions in a hurry!)


> Mass Appreciates.
You're welcome.  E-Mail or post if you have any more questions.

				Ross Cunniff
				...{ucbvax,hplabs}!hpda!cunniff
				cunniff%hpda@hplabs.ARPA