[net.micro.atari] developer's package

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