I know it can expanded program memory to 96k via the code banking mechanism. I want to know whether there is anyother way to achieve this arm.
I set Code Rom Size to Huge 8MB program and Hex to HEX-386. Then create HEX file and fire the chip. And the chip doesn't work. What else need to be set?
The example in the folder:
C:\Keil\C51\Examples\NXP 80C51MX\C Linear Rom on MX2
shows how to configure the tools for the P89C669.
Also take a look to this appnote: http://www.keil.com/appnotes/docs/apnt_160.asp
Thank you for your help. And now I can using 96K rom to translate. But I fire the Hex to clip and use it. I find some functions don't work well. Eg. some measured data is not correct, comparing with using 64K rom to translate. I want to know why and what can I do to let the data correct.
Sounds like your code has bugs in it that happen not to manifest with 64K ROM.
That App Note says, "New memory models and memory types have been added and a new assembler, compiler, and linker are required" - so it doesn't sound like a trivial change to switch from one to the other!
Probably, your code makes assumptions that happen to be true in the 64K version, but don't hold when you change to 96K - ie, it only works by luck at 64K!
eg, pointer sizes?
Or maybe your hardware has a fault and/or design error that only affects addresses beyond 64K?
You're going to have to do some debugging to narrow down exactly where the problems are occurring...
Have you tried it in the Simulator?