mem@sii.UUCP (Mark Mallett) (10/25/85)
I also got my MIX C compiler a week or two ago and agree with all the positive things that have been said about it here. It seems to be an excellent buy for $39.95 (or $45 with COD)- it comes with a thick paperback-book manual with C tutorial, reference, and lots of examples (there are some errors in the examples so the proofreading may not have been great). The compiler can produce listing files. The linker supports libraries-- you manipulate a library by converting it to an ASCII form and editing it! The linker can deal with either the ASCII or binary form (it appears that the binary form has an awful lot of overhead in it, but no matter there). Multiple overlay areas are supported, which is nice on a CPM80 system. On the negative side: - the linker seems incredibly picky. If you don't give it the commands in the right sequence, you can get a fatal error message or, worse yet, your program simply won't work. - you can define multiple overlay regions in your program, but each region is a fixed size and must be big enough for the largest overlay you are going to put in there. I would much rather see a hierarchical overlay structure, where overlay boundaries depend on the definition of the higher-level overlay. But again, for $40 this is great. - The minimum program size seems to be about 24K. This is because the compiler generates intermediate code; an interpreter occupies the first 20K or so of every program. This interpreter does not have to be linked with the program, so the file size can be small, but in this case you have to have the runtime overlay hanging around on your disc in order to run your programs. - There is no mechanism for linking assembler programs to the C programs. There *is* a mechanism for calling assembler programs, though, if you want to load or initialize code into memory somewhere, you can call it. Kind of like the Atari notion of a BASIC-Assembler interface. - The compiler matches reserved words in either-case mode; you CAN NOT turn this off. That is, the reserved word "int" can be given as "int", "Int", "INT", etc. This is the only thing that I think they did really Wrong. I bought because I hoped that since it generates intermediate code, it would compile some large programs to fit into my CPM80 system better. I haven't proved or disproved this notion yet, but given the horrible code produced by the Aztec and Ecosoft compilers that I have, I don't doubt that there is a size threshold above which programs compiled with MIX will be smaller than with those others. All in all, it seems to be a great buy, especially if you don't care about speed. About the MIX editor: I'll restate what I said several months ago. MIX seems to have done a great job with this too, but (as with the compiler) they made one thing Wrong: the editor doesn't deal with control characters. Like formfeeds and tabs!! So for me, the editor is useless. The folks at MIX say they are going to fix this-- I hope so, because the editor looks really nice. Mark Mallett decvax!sii!mem or ittatc!sii!mem