Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.1 6/24/83; site varian.UUCP Path: utzoo!watmath!clyde!burl!ulysses!mhuxl!ihnp4!zehntel!varian!bob From: bob@varian.UUCP (Bob Palin) Newsgroups: net.lang.c Subject: 68000 C compiler enquiry - esp. Tektronix info. Message-ID: <223@varian.UUCP> Date: Tue, 29-May-84 21:00:19 EDT Article-I.D.: varian.223 Posted: Tue May 29 21:00:19 1984 Date-Received: Fri, 1-Jun-84 08:25:12 EDT Organization: Varian, Walnut Creek, CA Lines: 64 [bug biter] I am currently looking for a C cross compiler for a 68000 to run under 4.1bsd on a VAX 11/780. As you may guess there are a number of these around and I have several, however, they all have some problem or other. The major stumbling block is getting the compilers to place the data classes in the data segments I want them to. I am not doing anything strange ( as far as I know ) for a mixed RAM/ROM system, I just want my initialised variables to go in ROM and the uninitialised ones to go in RAM. This request is handled by only one compiler/ linker suite that I currently know of, the Intermetrics compiler. They do it by using A5 as a pointer to the beginning of static data and the appropriate addressing mode to access any static variable. Their package then allows you to place the ROM/RAM boundary anywhere after this location, this is however a rather restrictive method since the ROM/RAM boundary will change every time a new variable is added. There are ways around that of course but they require too many contortions in a large multi-person project. I know Intermetrics are on the net and if they have any further hints I'd be glad to hear from them. The second compiler I have is one from BBN which is apparently unsupported by them. This does not put initialised data in ROM which is a problem. The third compiler, which I do not have but have tested, is the Tektronix LANDS C compiler. This performs exactly as the BBN compiler with respect to data types. Of the three by far the most attractive to me is the Tektronix, due to it's excellent debugging features and interaction between compiler/linker, Vax and emulator - full symbolic debugging while running in real time in the emulator. However the ROM/RAM problem and it's limited maximum number of defines (800) are drawbacks as I have to port a bunch of C from a Z80 system. The Z80 compiler was a locally modified version of the Vandata C compiler. ( The modifications were made to overcome this problem, so much for portability !! ) SO.. does anybody have any ideas ? Here is an example of what I need: /* desired placement */ unsigned butter; /* global public RAM symbol */ static unsigned bread; /* file public RAM symbol */ unsigned jam = 6; /* global public ROM symbol */ static unsigned honey = 3; /* file public ROM symbol */ func() { unsigned burrito; /* automatic ( stack RAM ) */ unsigned gaucamole = 2; /* initialised auto ( stack RAM ) */ static unsigned taco; /* static ( fixed RAM ) */ static unsigned enchilada = 5; /* static ( fixed ROM ) */ } Thanks to anybody who can help !! Bob Palin zehntel!varian!bob (415) 945-2278 Varian Instruments, 2400 Mitchell Drive, Walnut Creek, Ca 94598