rosalia@reed.UUCP (Mark Galassi) (10/19/85)
[] I finally got a chance to browse through the ST developer's package. I don't think I saw the full-blown package, missing were docs to "mince", the new editor "micro-emacs", "kermit" (but there are hundreds of pages of docs for "kermit"). Also missing (that I noticed) was the DDT debugger (or whatever name they gave it). Can anyone tell me if I was really missing that stuff or you didn't see it either? My questions, having used it for a while and read the documentation, is the following: 1) the documentation really points to the OS being based on CP/M68k, there is no mention ever made of MS-DOS (except for when they say that GEM was originally meant for the PC, but can be ported to other architectures). Then why do people here say that it is not a CP/M68k derivative? The compiler-assembler-linker produce CP/M68k executable files, and then there is a utility which converts to GEM applications. Unless there is some other info that I am missing, this seems to say quite convincingly that the OS on the ST comes straight from CP/M68k. 2) Using this system I tried to compile a simple program, it worked fine and fast enough (the floppies on this system are really fast!!), then it assembled (a bit slower, but still fast compared to all compilers I've seen on the Mac with the possible exception of Rascal). Then: HOW DO YOU INVOKE THE LINKER ON A FILE "hello.o" which uses the documented library function "printf()" and nothing else? this is what I tried : I installed "link68" as a "tos application with arguments", which means that the program asks me for arguments. Then I called it up giving it as arguments "hello.o". It told me (quite expectably) that "_printf() was unresolved". Then I tried giving it other files I found on the disk together with "hello.o", for example "gems.o", "acstart.o", "gemlib".... but in those cases it returned to the desktop before I could even see the error message. There are a couple of batch files " linka.bat" and "linkb.bat", but both of them want as input file "file.68k" rather than "file.o". In such a case, my question boils down to "how do I get a 'file.68k' rather than a 'file.o' file????????????????". Sorry for the long and verbose questions. One last thing is: does this system really not have floats and doubles? The documentation says NO, but then lists the function calls "atof" etc.... Other than this confusion of mine, I think the package is nice to work with and there are a lot of utilities. Thank you very much, Mark Galassi ...!tektronix!reed!rosalia ...!tektronix!tekig4!rosalia
randy@nlm-vax.ARPA (Rand Huntzinger) (10/21/85)
In article <2023@reed.UUCP> rosalia@reed.UUCP (Mark Galassi) writes: >1) the documentation really points to the OS being based on CP/M68k, >there is no mention ever made of MS-DOS (except for when they say that >GEM was originally meant for the PC, but can be ported to other >architectures). Then why do people here say that it is not a CP/M68k >derivative? The compiler-assembler-linker produce CP/M68k executable >files, and then there is a utility which converts to GEM applications. >Unless there is some other info that I am missing, this seems to say >quite convincingly that the OS on the ST comes straight from CP/M68k. There are several sets of documentation in the package, two of which document CPM-68K and GEMDOS. MS-DOS is never mentioned, but the GEMDOS system calls are almost identical to the corresponding MS-DOS calls. The CPM-68K system calls are indeed present, and the development software present came from CPM-68K; however, you are free to use the more powerful GEMDOS calls. [NOTE: MS-DOS also includes CPM/86 entry points as a subset] > HOW DO YOU INVOKE THE LINKER ON A FILE "hello.o" which uses the > documented library function "printf()" and nothing else? It sounds like your development kit doesn't contain the same files my does. I have batch files to do most of the linking, but not with the titles you mentioned in your note. [I omitted most of your question above because it is so long] Anyway, the answer is: To link a TOS application, the basic command is: link68 [u] file.68k=gemstart,file.o,gemlib,osbind relmod file Note that all files should be prefixed with whatever drive they are on unless all the files are on the currently selected drive. You can also substitute gems for gemstart, I think some developer's packages have that name. I don't know for sure if osbind is required. You have to add "libf" to the line if you use floating point. [All this was adequately documented in my package, but you didn't seem to get everything from what you said]. Some of the docs were online (like MicroEmacs and the README file). The latter had the linking docs. The 68K file is the output of the linker, not it's input. The "_printf" symbol, which you couldn't find, is in gemlib. The relmod program takes the CPM 68K output file converts it into a file TOS can load. **** Additional Note **** The big "gotcha" in the developer's kit is the fact that the gemstart module only allocates a total of 1K of stack+heap space. You have to edit and reassemble the source to get any more! If you're like me, and try to keep most of your data on the stack (within procedures), that's just not enough. If you run out, you don't get an error message, you just clobber yourself, so I'd suggest you edit the file to give yourself a more liberal workspace before you start on anything fancier than "hello world". Randy