From: Paul Burke
Subject: Re: Philips XA architecture design
Date: Tue, 29 Oct 2002 08:55:03 +0000
Organization: Scazon Systems
NNTP-Posting-Host: host62-6-112-59.webport.bt.net (184.108.40.206)
X-Mailer: Mozilla 4.7 [en] (Win98; I)
Tim Kortekaas wrote:
> In my previous post (tnx for replies Frank and Paul) someone mentioned
> the EPROM puts the data of the even and next odd adresses on the 16 bits
> bus. But the EPROM has 64k addresses of 16bit words.
> Do you get the confusion ?
Yes, but it's really quite easy. Think of the processor outputting
addresses sequentially (say in a test program). In a system with in 8
bit mode, it will output 0,1,2,3,4.....0xfffe, 0xffff. But in 16 bit
mode it outputs 0,2,4,6.....0xfffc, 0xfffe. What would have been fetched
on the odd addresses in the 8 bit system, is now fetched on the extra 8
bits of the bus.
> Do I have to connect A0-15 of the EPROM to A1-A16 of the
> microcontroller? Maybe I am making just a simple wrong step in the
> beginning of the problem solving...
No, with a 64kx16 memory, you have 128K BYTES of memory. Connect it up
A16..A1. The A0 is implied by the other half of the data bus.
> And about the programming, this isn't clear to me either. The output of
> my compiler (standard compiler from the IC25 databook CD) is in Intel
> Hex File format. In the beginning of a line in this file stands the
> address of the data that has to be written in the EPROM. But it are 8bit
> numbers. Isn't every address of the EPROM filled half then?
If your compiler only outputs 8 bit Intel format, you won't be able to
program data into areas above the 64K limit, as the address at the start
of the line is limited to 8 bits. This limitation may be deliberate by
the compiler vendor, as they want you to buy the more expensive 16 bit
version if you need more memory. Have you tried a simple assembler
program with a segment declared somewhere up the top, to see if it then
generates extended Intel format?