On 8/31/2018 1:44 PM, Bart wrote:
> On 31/08/2018 17:49, Rick C. Hodgin wrote:
>
>> Some people would've used it if it existed. There is, in 2018,
>> a rich 4004 enthusiast base, with people writing emulators and
>> compilers to this day. The 4004 was the first modern commercially
>> available microprocessor, so it has that base, but it would also
>> have had a similar base of users had they included it back in
>> the day.
>
> It was a crude microcontroller.
>
> I can't think of any reason why MS would bundle an emulator for that, above
> an emulator for hundreds of other devices, or why they would do any of that
> above an emulator for Win16 or Win64 for which there is a genuine need. (I
> have a dozen apps for Win16 that no longer work.)
The 4004 was quite powerful, and could've been emulated on a
4.77 MHz 8088/8086 CPU probably in real-time. With a small
ISA adapter board for I/O it could've handled any devices
which were run by it from the more modern PC, giving people
a path forward.
The 4004 wasn't too bad either, given the time it came out.
It could do in software what had previously required much
custom hardware. A huge advantage, and many people bought
it.
The 80386 contained built-in support for the original 8086,
sans some of the external I/O ports and gate A20's access
for how memory wrapped around 1 MB.
The 80486 contains backward compatibility for the 80386,
save a few new instructions.
The AMD64 architecture contains backward compatibility for
the 8086 all the way through the most advanced and extended
x86 designs before it.
It's hard to do support like that in hardware, and is much
easier to do it in software (Intel's Itanium originally
had IA-32 support for x86-based CPUs in hardware, then they
later switched to a software emulation layer because it was
faster (given how they did the emulation in hardware)).
Having backward support for things is a good idea. I plan
to incorporate it into everything I ever produce in software
and hardware. When a clean break is needed, it will be a
new product line with a clear departure point, and support
for the old one will be maintained indefinitely.
>> Microsoft (and other companies) did not do that because they did
>> not place value on prior labor efforts written for the 4004.
>> They saw the easier low-hanging fruit of new fields, new targets,
>> to abandon the old and force those who used old hardware and the
>> software that went with it, to upgrade.
>
> What in the name of *** have Microsoft to do with the 4004 anyway?
Microsoft was MS-DOS, Windows, Windows 95, etc. They were
the company that dominated 90% and greater use of all the
modern PCs.
Have you not heard of them?
> Are you confusing Microsoft with Intel by any chance?
Nope. While the base architecture of the 4004 is seen in
the design of the 8086, 80386, 80486, etc., it's not quite
binary compatible, and Intel did not seek to add any binary
support for it in their 8086 design, though they could've
with minimal difficulty.
So, Microsoft, being a software company, could've written
that emulator and provided backward support. It would've
given people a reason to upgrade to an 8086, 80286, or
80386 as the original 8086-based emulator could've worked
just fine in those various machines.
> And if you did mean Microsoft, why aren't you asking the same question of
> Unix, or OSX, or Android? (Or do those OSes already include 4004 emulations?
> That would be a fact I wasn't aware of.)
Microsoft was bigger (money-wise, resource-wise, user-base-
wise, etc).
Android is a total departure from historical devices. It
deserves to be its own new thing. However, there are many
emulators written for Android.
>> CAlive will support the bulk of C out of the box, and will have full
>> C90 and C99 support at some time. No existing source code needs to
>> be altered to use it.
>
> If you are talking about existing, debugged, working C code, then you can
> already utilise that via an existing C compiler, of which there are a few.
> You just arrange for it to produce a binary file that can be linked into your
> program.
With CAlive you compile the old, and make a transition to
the new. You also gain some features in CAlive because I
process data as data, and not as the limitations of the
type they're stored in. That's a paradigm shift for a low-
level language.
> (And often, it will already be in that form; you just need the new language
> to deal with or translate the interfaces to that code.)
Yeah. Everyone can keep on using whatever compilers they
have always used for their C (and some C++) code. But if
they want to use the new features of CAlive, they'll be
pleased to know they don't have to change much of anything
to make the migration, and then they gain the new features.
> If, on the other hand, you are talking about creating new programs, surely
> you want those programs to use the more up-to-date language with its new,
> safer, more convenient features?
How safe something is depends on the developer as much as
the features of the language.
> Again, what you are saying doesn't stack up.
You're just not looking at it correctly, Bart. You're also
not asking me questions waiting for my answers before you
conclude negative things about me or my ideas. You're going
on assumption, then concluding assumed negative things about
me and my ideas.
If you are interested in the truth, you should wait for the
discovery phase to yield information, so you can come to an
informed conclusion.
--
Rick C. Hodgin