Re: Small C ver 1.00 source?

2020-07-16 Thread Will Cooke via cctalk
> On July 16, 2020 at 1:57 AM Tomasz Rola  wrote:
> 
> On Mon, Jul 13, 2020 at 02:30:37PM -0400, Phil Budne via cctalk wrote:> I 
> can't make ANY assertions about version or pedigree of the files(which came 
> to me in 1981 when I was using a PDP-10), but they APPEARto be from Ron Cain 
> himself, from SRI-KL (TOPS-20):
> > ftp://ftp.ultimate.com/pdp10/c80.tar.gz
> > Which contains runtime files from November 1979, and compiler filesdated 
> > June 1981.By pure coincidence I have found the page with many versions of 
> > SmallC. Just in case someone needs them:
> http://www.cpm.z80.de/small_c.html
> And this one is claimed to be "SMALL C converted to the 8088 by Bytemagazine":
> http://www.cpm.z80.de/small_c/smc88dos.zip
> --Regards,Tomasz Rola
> --** A C programmer asked whether computer had Buddha's nature.  As the 
> answer, master did "rm -rif" on the programmer's home  directory. And 
> then the C programmer became enlightened...   Tomasz Rola 
> mailto:tomasz_r...@bigfoot.com **


Hi Tomasz,
Thanks for the link.  I had seen that page but as Jim Stephens mentioned in his 
reply I was looking for the original 8080 version.  Thanks to him and Phil 
Budne I now have it.  They separately provided identical copies that had 
apparently come directly from Ron Cain.  There is also a copy on github that 
was apparently OCRed and corrected.  I am comparing it now to the others.

I intend to create a page on my website dedicated to Small C.  I will include 
the original source and probably a few other interesting ports if anyone is 
interested.  I do think this is an important piece of historical software that 
should be preserved.

Thanks for finding that!
Will


Re: Small C ver 1.00 source?

2020-07-16 Thread jim stephens via cctalk




On 7/15/2020 11:57 PM, Tomasz Rola via cctalk wrote:

On Mon, Jul 13, 2020 at 02:30:37PM -0400, Phil Budne via cctalk wrote:

I can't make ANY assertions about version or pedigree of the files
(which came to me in 1981 when I was using a PDP-10), but they APPEAR
to be from Ron Cain himself, from SRI-KL (TOPS-20):

ftp://ftp.ultimate.com/pdp10/c80.tar.gz

Which contains runtime files from November 1979, and compiler files
dated June 1981.

By pure coincidence I have found the page with many versions of Small
C. Just in case someone needs them:

http://www.cpm.z80.de/small_c.html
This pages V1.0 "Plus" is the first version, but converted to z80. The 
OP was hunting for the 8080 original.


I think this was posted earlier, but thanks for finding.


And this one is claimed to be "SMALL C converted to the 8088 by Byte
magazine":

http://www.cpm.z80.de/small_c/smc88dos.zip


I don't know where I got that one, but looks like I grabbed it in 2009.

Thanks to all who responded.  I did a cross port of this compiler to a 
system I had in about 79 or so, when it first came out, and I'm 
interested in it  since it's the first compiler I ever messed with porting.


I sent Will Cook my copies of the 8080, and will let him follow up on 
it.  I've got both the 8080 original source and a version that will run 
on a CPM system or emulator.  I may have to redo my exercise now that 
I've got an emulation of the original system, as well as a CPM system 
emulation.


Thanks
Jim


Re: Small C ver 1.00 source?

2020-07-16 Thread Tomasz Rola via cctalk
On Mon, Jul 13, 2020 at 02:30:37PM -0400, Phil Budne via cctalk wrote:
> I can't make ANY assertions about version or pedigree of the files
> (which came to me in 1981 when I was using a PDP-10), but they APPEAR
> to be from Ron Cain himself, from SRI-KL (TOPS-20):
> 
> ftp://ftp.ultimate.com/pdp10/c80.tar.gz
> 
> Which contains runtime files from November 1979, and compiler files
> dated June 1981.

By pure coincidence I have found the page with many versions of Small
C. Just in case someone needs them:

http://www.cpm.z80.de/small_c.html

And this one is claimed to be "SMALL C converted to the 8088 by Byte
magazine":

http://www.cpm.z80.de/small_c/smc88dos.zip

-- 
Regards,
Tomasz Rola

--
** A C programmer asked whether computer had Buddha's nature.  **
** As the answer, master did "rm -rif" on the programmer's home**
** directory. And then the C programmer became enlightened...  **
** **
** Tomasz Rola  mailto:tomasz_r...@bigfoot.com **


Re: Small C ver 1.00 source?

2020-07-14 Thread Guy Sotomayor via cctalk
Yes, I spent a good amount of my time at CMU in the late 70's re-
writing the TOPS-10 version of that compiler with a new P-Code
definition so that the target code could be run efficiently on small
machines.  I did the original work to target the PDP-11s on C.MMP.

I still have the compiler source, documentation I wrote and all of the
test cases.  Unfortunately I no longer have the PDP11 P-Code
interpreter that I wrote (all in PDP-11 assembler and BLISS-11).  :-( 
However, I *think* I still have the interpreter I wrote in Pascal that
I used for testing the compiler changes and code generation.

TTFN - Guy

On Tue, 2020-07-14 at 12:19 -0600, Eric Smith via cctalk wrote:
> On Tue, Jul 14, 2020 at 10:42 AM Chuck Guzis via cctalk <
> cctalk@classiccmp.org> wrote:
> 
> > The term "p-code" comes from the 1973 Pascal-P version of UCSD
> > Pascal.
> > 
> 
> "p-code" does come from Pascal-P, but Pascal-P wasn't a version of
> UCSD
> Pascal. Pascal-P was developed on the CDC 6600 in 1972.
> 
> UCSD Pascal didn't come about until 1977, so the term p-code predates
> UCSD
> Pascal by five years.



Re: Small C ver 1.00 source?

2020-07-14 Thread Eric Smith via cctalk
On Tue, Jul 14, 2020 at 10:42 AM Chuck Guzis via cctalk <
cctalk@classiccmp.org> wrote:

> The term "p-code" comes from the 1973 Pascal-P version of UCSD Pascal.
>

"p-code" does come from Pascal-P, but Pascal-P wasn't a version of UCSD
Pascal. Pascal-P was developed on the CDC 6600 in 1972.

UCSD Pascal didn't come about until 1977, so the term p-code predates UCSD
Pascal by five years.


Re: Small C ver 1.00 source?

2020-07-14 Thread Eric Smith via cctalk
On Tue, Jul 14, 2020 at 9:37 AM dwight via cctalk 
wrote:

> I'm curious as to where the term P-code came from and what defined it.
>

There's no formal definition of "p-code". Although other similar
"bytecodes" existed before, the term "p-code" or "pcode" came from the
earliest implementations of Pascal, ncluding Pascal/S (subset) and
Pascal-P, starting around 1972. Those originally ran on the CDC 6600,
though the Pascal-P series of compilers were ported to many other machines,
and served as the inspiration for UCSD Pascal.


Re: Small C ver 1.00 source?

2020-07-14 Thread Chuck Guzis via cctalk
On 7/14/20 8:37 AM, dwight via cctalk wrote:
> I'm curious as to where the term P-code came from and what defined it.
> Dwight

The term "p-code" comes from the 1973 Pascal-P version of UCSD Pascal.
There is disagreement as to what the "p" stands for--"portable" or "pseudo".

In any case, the technique didn't originate with Pascal.  BCPL had an
"o-code" which was an intermediate instruction set between the compiler
frontend and the target-machine code generator backend.  That dates from
the 1960s.

I worked with a fellow who implemented a COBOL compiler in a CDC
6000-series PPU on a bet with Bill Norris back in the 1960s.  I
personally worked on a COBOL dialect translator whose implementation
language was a p-code that dealt with abstract datatypes, such as
tokens, operators, etc.

The genius is that you can design a p-code to fit your needs, write to
it and then either interpretively execute it or compile it to native
machine code.  The front end details never change; only the relatively
simple back end--and optimization (e.g. loop unrolling, invariant
variable elimination, etc.) is much easier with p-code as the object.

Said COBOL translator was initially implemented to interpret the p-code,
then was later implemented as assembly-language macros to generate
native code.   The first version was used to debug and test operation,
the second (which sped up by 10x) for production use.

Later, my team implemented a BASIC compiler which not only generated a
p-code, but the compiler itself was implemented in its own p-code.

I'd like to know of the first instance of a machine-independent
intermediate code use.  I suspect that it goes back to the 1950s.

--Chuck




Re: Small C ver 1.00 source?

2020-07-14 Thread Paul Koning via cctalk



> On Jul 14, 2020, at 11:49 AM, Toby Thain via cctalk  
> wrote:
> 
> On 2020-07-14 11:37 a.m., dwight via cctalk wrote:
>> I'm curious as to where the term P-code came from and what defined it.
>> Dwight
>> 
> 
> The first thing that comes to mind is UCSD P-system, but some people
> probably mean it to use "any interpreted bytecode".
> 
> --Toby

I wonder if it came from RSTS-11 BASIC-PLUS (1970).  It used what amounts to 
P-code, which it called "push-pop code".  Probably because it was pretty much 
machine code for a simulated stack machine.

That approach is at least a decade older, in fact.  The world's first ALGOL 
compiler (Dijkstra and Zonneveld, 1961) also used this "machine code for an 
imaginary machine" technique.  Or more precisely, a hybrid of P-codes and real 
machine instructions.  This allows your compiler output to use primitives 
better suited to the language, like "enter ALGOL block" on a machine without a 
hardware stack.

paul



Re: Small C ver 1.00 source?

2020-07-14 Thread Toby Thain via cctalk
On 2020-07-14 11:37 a.m., dwight via cctalk wrote:
> I'm curious as to where the term P-code came from and what defined it.
> Dwight
> 

The first thing that comes to mind is UCSD P-system, but some people
probably mean it to use "any interpreted bytecode".

--Toby


> 
> From: cctalk  on behalf of Antonio Carlini via 
> cctalk 
> Sent: Tuesday, July 14, 2020 2:42 AM
> To: cct...@classiccmp.org 
> Subject: Re: Small C ver 1.00 source?
> 
> On 14/07/2020 01:14, Grant Taylor via cctech wrote:
>> On 7/13/20 1:06 PM, Will Cooke via cctech wrote:
>>> Does anyone have any suggestions as to where it should go for
>>> safekeeping?
>>
>> Some combination of Internet Archive, BitKeepers, and TUHS would be my
>> minimum recommendation.
>>
>> As you say, it's small.  It wouldn't be hard to hold on to.
>>
>>
>>
> As it's now known to be on github, then I'd suggest simply cloning the
> existing repo. If the original ever goes away, then you can set up your
> own repo (for free).
> 
> 
> 
> Antonio
> 
> 
> --
> Antonio Carlini
> anto...@acarlini.com
> 



Re: Small C ver 1.00 source?

2020-07-14 Thread dwight via cctalk
I'm curious as to where the term P-code came from and what defined it.
Dwight


From: cctalk  on behalf of Antonio Carlini via 
cctalk 
Sent: Tuesday, July 14, 2020 2:42 AM
To: cct...@classiccmp.org 
Subject: Re: Small C ver 1.00 source?

On 14/07/2020 01:14, Grant Taylor via cctech wrote:
> On 7/13/20 1:06 PM, Will Cooke via cctech wrote:
>> Does anyone have any suggestions as to where it should go for
>> safekeeping?
>
> Some combination of Internet Archive, BitKeepers, and TUHS would be my
> minimum recommendation.
>
> As you say, it's small.  It wouldn't be hard to hold on to.
>
>
>
As it's now known to be on github, then I'd suggest simply cloning the
existing repo. If the original ever goes away, then you can set up your
own repo (for free).



Antonio


--
Antonio Carlini
anto...@acarlini.com



Re: Small C ver 1.00 source?

2020-07-14 Thread Antonio Carlini via cctalk

On 14/07/2020 01:14, Grant Taylor via cctech wrote:

On 7/13/20 1:06 PM, Will Cooke via cctech wrote:
Does anyone have any suggestions as to where it should go for 
safekeeping?


Some combination of Internet Archive, BitKeepers, and TUHS would be my 
minimum recommendation.


As you say, it's small.  It wouldn't be hard to hold on to.



As it's now known to be on github, then I'd suggest simply cloning the 
existing repo. If the original ever goes away, then you can set up your 
own repo (for free).




Antonio


--
Antonio Carlini
anto...@acarlini.com



Re: Small C ver 1.00 source?

2020-07-14 Thread ben via cctalk

On 7/13/2020 6:14 PM, Grant Taylor via cctalk wrote:

On 7/13/20 1:06 PM, Will Cooke via cctech wrote:
Does anyone have any suggestions as to where it should go for 
safekeeping?


Some combination of Internet Archive, BitKeepers, and TUHS would be my 
minimum recommendation.


As you say, it's small.  It wouldn't be hard to hold on to.



Well you need to add a (compiler) executable file, and a linker and a 
assembler. Source code is still easy to find, but system

software is a pain to find. You can't call Microsoft up and ask
for 8 or 16 bit software any more. 90% of the  DOS archives are gone. dd 
is also a handy thing to have on a PC.


Under DOS BOX I use small C 2.2 to compile small C 1.1.
The assembler and linker I use, just have ample memory for the
symbol tables so you can't make big changes.
Ben.




Re: Small C ver 1.00 source?

2020-07-14 Thread Grant Taylor via cctalk

On 7/13/20 1:06 PM, Will Cooke via cctech wrote:
Does anyone have any suggestions as to where it should go for 
safekeeping?


Some combination of Internet Archive, BitKeepers, and TUHS would be my 
minimum recommendation.


As you say, it's small.  It wouldn't be hard to hold on to.



--
Grant. . . .
unix || die


Re: Small C ver 1.00 source?

2020-07-13 Thread Will Cooke via cctalk
> On July 13, 2020 at 3:38 PM ben via cctalk  wrote:
> 
> On 7/13/2020 1:20 PM, Will Cooke via cctalk wrote:> It's interesting I didn't 
> find that one. There are various others on Github but I didn't > see that 
> one. I will do a file comparison between that one and the one Phil provided.
> > Thanks,WillI have modified copy for the IBM PC, by CAPROCK SYSTEMS,but ALAS 
> > can't find the orginal source.Anything after 1.1 8080 has the switch 
> > statement and the weird P-code?Ben.

Hi Ben,
I'm pretty sure I have the source now for the one published in DDJ.  I've got 
two sources to compare.  (Someone sent me the CAPROCK SYSTEMS one off list)

It appears that there is no coordination of version numbers after 1.0 up to 
2.1.  It seems there are completely different versions/modifications with the 
same version number (e.g. 1.1).  Various versions in the 1.x line have all 
sorts of mods.  Many of them are native code, but may be for 8080, 8086, Z80, 
6502, or various others.  Not sure when or where the p-code came in.  2.1 was 
the updated "official" version published by James Hendrix in "The Small C 
Handbook" as well as in DDJ, I believe.  After 2.1 it diverges again, I think.  
Ver 2.1 has the for, switch, etc stuff added and appears to be the most common. 
 All this is from my digging and I'm certainly not an expert.

Thanks for helping,
Will


Re: Small C ver 1.00 source?

2020-07-13 Thread ben via cctalk

On 7/13/2020 1:20 PM, Will Cooke via cctalk wrote:

It's interesting I didn't find that one.  There are various others on Github but I 
didn't > see that one.  I will do a file comparison between that one and the 
one Phil provided.

Thanks,
Will



I have modified copy for the IBM PC, by CAPROCK SYSTEMS,
but ALAS can't find the orginal source.
Anything after 1.1 8080 has the switch statement and the weird P-code?
Ben.



Re: Small C ver 1.00 source?

2020-07-13 Thread Will Cooke via cctalk
> On July 13, 2020 at 2:13 PM Chuck Guzis via cctech  
> wrote:
> 
> On 7/13/20 11:59 AM, Will Cooke via cctech wrote:
> > Thanks. I found the one(s) on Simtel and they weren't the right ones. I 
> > "think" the 1.1 that is on there is for the IBM PC (8088) or maybe the 
> > Z-80. In any case, I think it's been found.The github one:
> https://github.com/trcwm/smallc_v1
> is the 8080 version, 1.1 and claims to be a transcription from theoriginal 
> DDJ article.
> --Chuck


Thanks, Chuck,
It's interesting I didn't find that one.  There are various others on Github 
but I didn't see that one.  I will do a file comparison between that one and 
the one Phil provided.

Thanks,
Will


Re: Small C ver 1.00 source?

2020-07-13 Thread Chuck Guzis via cctalk
On 7/13/20 11:59 AM, Will Cooke via cctech wrote:

> Thanks.  I found the one(s) on Simtel and they weren't the right ones.  I 
> "think" the 1.1 that is on there is for the IBM PC  (8088) or maybe the Z-80. 
>   In any case, I think it's been found.
> 

The github one:

https://github.com/trcwm/smallc_v1

is the 8080 version, 1.1 and claims to be a transcription from the
original DDJ article.

--Chuck




Re: Small C ver 1.00 source?

2020-07-13 Thread Will Cooke via cctalk
> On July 13, 2020 at 1:30 PM Phil Budne  wrote:
> 
> I can't make ANY assertions about version or pedigree of the files(which came 
> to me in 1981 when I was using a PDP-10), but they APPEARto be from Ron Cain 
> himself, from SRI-KL (TOPS-20):
> ftp://ftp.ultimate.com/pdp10/c80.tar.gz
> Which contains runtime files from November 1979, and compiler filesdated June 
> 1981.


Hi Phil,
Thanks!  That sure looks like the right one.  It is 8080 code, the comments and 
docs mostly match what is published from a quick look.  I will look into it 
more when I am home and have some time.  But I do believe that is the 
"original" as published in DDJ.

Notes and justification
I started looking for this mainly because I wanted to play with it.  I want to 
actually use it to write some code and see how hard it is to write usable code 
with the limited subset of the earliest released version.  But when I started 
looking I was shocked that I couldn't find the original.  There are dozens, at 
least, of derivatives in various versions.  Z80, 8088, 6502!, TI 9900 I think 
and more.  Floating point, structs, optimizers, etc.  I personally think this 
was a VERY important piece of software.  I think the number of derivatives 
speaks volumes of how important it was.  But I couldn't find the original.  I 
feel it should be preserved.  Even the DDJ Small C CD ROM didn't have it!  
(They only used 34Megs of the Disk so they had plenty of room.)  
Anyway, it looks like Phil found it.  I appreciate all the efforts getting it.
Does anyone have any suggestions as to where it should go for safekeeping?  I 
plan on putting it on my web site, but that is far from an archival solution.

Thanks,
Will


Re: Small C ver 1.00 source?

2020-07-13 Thread Will Cooke via cctalk
> On July 13, 2020 at 1:17 PM Chuck Guzis via cctech  
> wrote:
> 
> On 7/13/20 10:07 AM, Will Cooke via cctech wrote:
> > Unfortunately, no. That was one of the first places I looked. They have the 
> > 2.1 version from the Small C handbook (James Hendrix) and some other 
> > derivatives, but not the original 8080 version 1.0.
> > Thanks,WillSIMTEL20 claims to have 1.1, but I don't know how it differs.
> --Chuck

Hi Chuck,
Thanks.  I found the one(s) on Simtel and they weren't the right ones.  I 
"think" the 1.1 that is on there is for the IBM PC  (8088) or maybe the Z-80.   
In any case, I think it's been found.

Thanks for helping.
Will


Re: Small C ver 1.00 source?

2020-07-13 Thread Chuck Guzis via cctalk
All I've been able to find is the source for 1.1 on github, which was
laboriously reconstructed from an OCR of the original article.

--Chuck


Re: Small C ver 1.00 source?

2020-07-13 Thread Phil Budne via cctalk
I can't make ANY assertions about version or pedigree of the files
(which came to me in 1981 when I was using a PDP-10), but they APPEAR
to be from Ron Cain himself, from SRI-KL (TOPS-20):

ftp://ftp.ultimate.com/pdp10/c80.tar.gz

Which contains runtime files from November 1979, and compiler files
dated June 1981.



Re: Small C ver 1.00 source?

2020-07-13 Thread Will Cooke via cctalk
> On July 13, 2020 at 10:57 AM Chuck Guzis via cctech  
> wrote:
> 
> On 7/13/20 5:22 AM, Will Cooke via cctech wrote:> I'm trying to find source 
> files for the very first, original, ver 1.00(?) small C compiler. I have the 
> DDJ issue with the printed source (minus the assembly language runtime libs.) 
> I have found all sorts of derivative works, but I haven't found files of the 
> original version. My old eyes aren't up to typing in 13 pages of scanned copy 
> of printed dot matrix listings.
> > Does anyone know where a downloadable copy of these files can be found? Or 
> > have a copy they could send?
> > Thanks,Will
> > "A designer knows he has achieved perfection not when there is nothing left 
> > to add, but when there is nothing left to take away." -- Antoine de 
> > Saint-Exupery
> > 
> > "The names of global variables should start with // " -- 
> > https://isocpp.orgIsn't it on the DDJ Resource CD?
> http://twimgs.com/ddj/sdmediagroup/images/sdm1123195158574/ddj_devnetwork_small_c.zip
> --Chuck

Unfortunately, no.  That was one of the first places I looked.  They have the 
2.1 version from the Small C handbook (James Hendrix) and some other 
derivatives, but not the original 8080 version 1.0.

Thanks,
Will


Re: Small C ver 1.00 source?

2020-07-13 Thread Chuck Guzis via cctalk
On 7/13/20 10:07 AM, Will Cooke via cctech wrote:

> Unfortunately, no.  That was one of the first places I looked.  They have the 
> 2.1 version from the Small C handbook (James Hendrix) and some other 
> derivatives, but not the original 8080 version 1.0.
> 
> Thanks,
> Will

SIMTEL20 claims to have 1.1, but I don't know how it differs.

--Chuck



Re: Small C ver 1.00 source?

2020-07-13 Thread Chuck Guzis via cctalk
On 7/13/20 5:22 AM, Will Cooke via cctech wrote:
> I'm trying to find source files for the very first, original, ver 1.00(?) 
> small C compiler.  I have the DDJ issue with the printed source (minus the 
> assembly language runtime libs.)  I have found all sorts of derivative works, 
> but I haven't found files of the original version.  My old eyes aren't up to 
> typing in 13 pages of scanned copy of printed dot matrix listings.
> 
> Does anyone know where a downloadable copy of these files can be found?  Or 
> have a copy they could send?
> 
> Thanks,
> Will
> 
> "A designer knows he has achieved perfection not when there is nothing left 
> to add, but when there is nothing left to take away." --  Antoine de 
> Saint-Exupery
> 
> 
> "The names of global variables should start with// "  -- 
> https://isocpp.org
> 
  Isn't it on the DDJ Resource CD?

http://twimgs.com/ddj/sdmediagroup/images/sdm1123195158574/ddj_devnetwork_small_c.zip

--Chuck