On Mon, Feb 3, 2025, 5:37 PM Sean Conner via cctalk <cctalk@classiccmp.org> wrote:
> It was thus said that the Great ben via cctalk once stated: > > On 2025-02-03 3:32 p.m., Sean Conner via cctalk wrote: > > > > > > So it could be that C99 will work for you, it might not. A C89-only > > >compiler will work---it'll still accept K&R style code, and it will be > old > > >enough to avoid the "exploit undefined behavior for better benchmarks" > > >compilers we have today. Or find an old K&R C compiler. They still > exist, > > >but generate very bad code. > > > > > > -spc > > > > So where does on find a older version, on a current Linux build. > > we don't support it!!! We only port the latest intel CPU. > > > > You have 32 bit compilers, or bigger. I might want a 16 bit compiler > > under Linux. > > Do you mean you want a compiler to generate 16-bit code? Or be compiled > as a 16-bit program to run under Linux? If the later, it's not supported, > or at least, not supported by default [1]. > I have Vexix86 emulator that does much the same thing. > I was hoping to use Embeddable Linux Kernel Subset (ELKS) BCC compiler > > and the 6809 code generator, but NO they had to rewrite it just for the > > 386. > > It took me only a few minutes to find it. There's the GIT repository at > > https://github.com/lkundrak/dev86 > > Yes, it requires git to initially download it, but it's available. And it > *still* has 6809 code generation. The code seems to be originally written > for Unix anyway, or at least it appears so from the initial importation > into > git [2]: > Bcc was written by Bruce Evans to have a compiler for 386BSD for the boot loader (among other reasons). It dates back to the late 80s or so. It's one of the reasons we in FreeBSD held onto K&R constructs in certain areas of the tree for so long. Well after gcc / binutils could generate the small bits of 16bit code the loader eventually required.. Warner /* bcc.c - driver for Bruce's C compiler (bcc) and for CvW's C > compiler */ > > /* Copyright (C) 1992 Bruce Evans */ > > #define _POSIX_SOURCE 1 > > #include <sys/types.h> > #include <sys/stat.h> > #include <sys/wait.h> > #include <unistd.h> > #include <signal.h> > #include <stdlib.h> > #include <string.h> > > The latest version was ported to MS-DOS at some point. I was able to > compile the latest version (on a 32-bit Linux system---I no longer have a > MS-DOS C compiler so I couldn't test on that), but the code is C89, so in > theory, you could use any MS-DOS C compiler post 1989 to compile the code > if > you so wish. > > When I did the compile, there compiler did throw up some warning even > though none were specified because the code is that old, but I did get an > executable: > > [spc]matrix:~/repo/dev86/bcc>./bcc > Usage: ./bcc [-ansi] [-options] [-o output] file [files]. > > > Open source is popular because it was free. > > > > No compiler generates bad code,just some hardware was never meant to > > have stack based addressing, like the 6502 or the 8088/8086. > > Look at the mess that small C has for 8088/8086 code gen. > > Self hosting never seems to be important for C compiler on a small > machine. > > The 8086/8088 was never meant to have stack based addressing? Um, the > 8086/8088 has an entire register dedicated to that (BP by the way). The > limitation with BP is that it's bound to the SS segment by default, and in > some memory models that becomes an issue, but to say it doesn't have stack > based addressing? Methinks you are misrembering here. > > And self-hosting a C compiler on a small system isn't easy with 64K of > RAM > total. The PDP-11 had at least 64K code space and 64K data space to work > with. > > -spc > > [1] I have run a 16-bit MS-DOS exectuable under Linux, but it was on a > 32b x86-based Linux system with a custom program I wrote to run > it. > I even had to emulate several MS-DOS system calls to get it to work > (since I needed input from a Unix program to be piped in, I > couldn't > use DOSBox for this). > > [2] Dated July 27, 2002, which is before git existed, but this > repository was converted to git at some point. >