The file p02400.zip contains this text file and the file ds8adr.c
which has been updated to correct for an error in the direct
page addressing mode of AS8xCxxx.

The following email from Vasiliy Petrov summarizes the problem and
shows the change made to ds8adr.c.

*****-----*****-----*****-----*****-----*****-----*****-----*****

I have found the following bug in AS8xCxxx:

AS8xCxxx (V4.00) makes relocations for _DATA direct addresses
(page 0 mode) such that they are resolved to (addr-1) after
linking.  I checked the listings and found that there are *FF
in place of relocations which means (if i understand logic here)
-1 added to addr in linking phase.  Next I tried to compare
sources of as8xcxxx with base as8051 sources and found this
difference, which has solved the problem:

original i51adr.c (lines 136-138):

	/* Must be an expression */
	esp->e_addr = 0;
	expr(esp, 0);

ds8adr.c (lines 139-140):

	/* Must be an expression */
	expr(esp, 0);

I added "edp->e_addr=0;" to ds8adr.c and rebuilt AS8xCxxx
with VC6, the problem dissappeared.

Vasiliy Petrov
VPetrov at eurosibspb dot ru

*****-----*****-----*****-----*****-----*****-----*****-----*****

