Re: Small C ver 1.00 source?
> 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?
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?
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?
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?
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?
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?
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?
> 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?
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?
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?
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?
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?
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?
> 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?
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?
> 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?
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?
> 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?
> 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?
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?
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?
> 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?
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?
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
Small C ver 1.00 source?
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