[net.micro] missing file in small C V2.0

jim (01/14/83)

I noticed the missing tabs.  Another thing which is a little less
obvious is that a lot of the files have carriage returns at the ends of
the lines in addition to newline.  This probably won't hurt anything,
but it is not standard Unix and if your favorite editor or downloader
doesn't like the files that could be the reason.

rej (01/15/83)

The reason that there is no stdio is that the C compiler is not
written for CP/M.  It is written for SMALL-VM (something like that)
which is a package that runs on top of the Northstar O.S., which
seems to be even more primitive than CP/M.  A stdio package that
worked for an earlier small C will probably work with V2.0, but
one should notice that the code is not produced for any usual
assembler.  In particular, the assembler requires labels to end
with colon and does not require blanks or tabs before op codes.
The compiler has a lot of #ifdef's in it, so by changing a few
characters at the beginning of the program one can add tabs before
op codes.

It does not seem to be hard to change the compiler to CP/M, but
it will take a little work.  Would whoever does it first post
the results so we lazy people can enjoy the benefits of your work?

Also, for any ARPAnet people who do not get net.sources and wonder
what the fuss is all about, I can send you the same stuff that we
got.  It will probably eventually be put in the CP/M archives at 
MIT-MC.

Ralph Johnson (cornell!rej  or rej@cornell)

schrein (01/24/83)

#R:cornell:-393400:uiucdcs:10400032:000:768
uiucdcs!schrein    Jan 24 14:36:00 1983

I downloaded the source to an Osborne, and used Software Toolwork's C/80
Version 2 and their assembler on it. Juggling disks many times, I did manage
to compile and (absolute!) assemble smallC and run it on top of C/80's
runtime support. I am now looking at the 'missing file' problem -- if I
make it, I'll post it here.

I noticed a few problems:

'lout()' is once called with only one parameter. The second one should
	be stderr.

'upper()' should not be excluded by #undef UPPER -- it is needed in 'ask()'.

#define HASH will eliminate 'nextsym()' -- but #define STGOTO needs it. Hmm??

A few more cosmetic problems (like smallC's include syntax) are easy to change.
The output of smallC can easily be made to look acceptable to regular
assemblers.

Axel Schreiner

schrein (01/24/83)

#R:genradbo:-101300:uiucdcs:10400033:000:13
uiucdcs!schrein    Jan 24 14:37:00 1983

see note 61.