Very interesting, indeed ! I'm always impressed by the degree of optimization which was the standard 40 years ago, driven by hardware limitations (almost totally forgotten in nowadays' products). The additional optimization by Claus Buchholz shows that it's a never-ending game.
It's also very clear that your work, HrastProgrammer, greatly illustrates what can be done with efficiency in mind -and much much talent !
BTW : I spent the last 2 years playing the optimization game on a hobby project, a programmable calculator which I built and programmed "the old way" around a 65C02 CPU. Its execution speed now averages 2500 steps/second. If interested, you can have a look at it here (was less optimized when I posted -as "Calculi") :
http://forum.6502.org/viewtopic.php?f=2&t=3639#p43922 I had much fun getting the most I could from 80's hardware...
Thank you for the kind words, Mark, much appreciated
Your 65C02 calculator project looks very impressive and I really enjoyed reading about it!
Yes, optimization is a lost art nowadays, in fact - it has been lost art for quite some time. But this doesn't bother me at all. I always try to squeeze CPU cycles and bytes as much as possible, no matter what I do and no matter if it is in <4MHz area like development for HP calculators, or in >4GHz area like the development of my own Tranzistow synthesizer, digital signal processing and similar things.
It is always a matter of choice between power/complexity, speed and memory consumption because those don't go very well together in many cases.
And I am still enjoying programming in pure assembler which is a lost art on its own, as well. That "ass embler", what is this?!? That's the question many today's programmer will ask
I, too, would like to warmly thank you for your words
I totally agree with the terms "lost art" : at my work, for many years IT trainees haven't been aware of assembly programming -but I never heard of "ass embler" o_O
I remember having done some calculations in assembly on a Pentium 100, and being absolutely amazed by its throughput : "I've got a Cray on my desk !". And today's processors are so powerful that I can't help cursing Windows (when I cannot use other OSes) for wasting so much resources -but that's another story...
Keep up the good work !
Quite off-topic, but since assembler was mentioned: If you want to trick someone into learning assembler, get them the game "Human Resource Machine". I have it on iOS, but I think it's also available on Steam.
It looks like a brain teaser game, but essentially one programs a little guy to run around and do things. The guy is the "Accumulator", there is "add", "inc", "jmp", "jz", "jns", some registers, and that's it at the moment. As the levels progress, more instructions are added. The programming is done graphically, so no one is put off by reading assembly instructions. My son loves this game, for example
(06-05-2016 03:22 PM)Mark Wrote: [ -> ]I remember having done some calculations in assembly on a Pentium 100, and being absolutely amazed by its throughput : "I've got a Cray on my desk !". And today's processors are so powerful that I can't help cursing Windows (when I cannot use other OSes) for wasting so much resources -but that's another story...
Windows are no better or worse than other OS-es out there - they all need tons of memory and CPU, and they all need too much time to boot. Embedded systems tend to be crap nowadays as well - my dumb TV needs 15 seconds to boot, like in the good old age of vacuum tubes and even then they didn't need 15 seconds. When I turn on a crappy dumbhone it needs one minute to boot! One minute! Total piece of crap ...
But, crappy applications are perhaps a much bigger problem than OS itself. The Firefox I am using at this very moment eats 300 MB! 300 MB for what?!? For one simple Web page?!? Not to speak about various crappy drivers (mostly for the new hardware) etc.
If you remove all unnecessary applications, drivers, services and similar crap, Windows (at least Windows XP and Windows 7) can be make very responsive and almost real-time. I have two fully optimized 4.4GHz quad-core systems which I use for making music and all DSP endeavours (one Windows 32-bit and one Windows 7 64-bit) and I can use almost 100% of each core at lowest possible latency without glitches. But one must know what he is doing when making such optimizations.
Just an addition to my previous posts: I am very often using "assembler" instead of "machine language" which is incorrect because assembler is not really a language but a tool to translate source code into machine language. I just used to say "assembler" when I mean "machine language" ...
Quote:...my dumb TV needs 15 seconds to boot...
I could not agree more, mine needs even more time to boot, and almost one more minute before responding to the remote controller ! True, vacuum tube warm-up was faster.
All these annoying facts are actual regressions to me, and it's been a long time since I stopped enumerating them to my colleagues... at best, they say I'm wrong -so let it be.
I plead guilty for having spent too much time, 20 years ago, debugging and tuning industrial real-time systems and their user interfaces
Given the stunning raw CPU power of modern hardware, Microsoft Windows should boot in one second. Instead you become convinced that there is a trained gerbil running around inside the PC box, setting switches and pulling levers, and the poor little guy has to stop to catch his breath every few seconds.
Even with a zippy four gerbil processor (Intel Core i7), everything takes longer than you want it to, especially on an old OS install.
Moore's law needs to be amended: CPU power will double every year, but software bloat will triple over the same period.
I did a side by side speed test some years ago: a Mac+ booting from floppy and a modern PC booting Linux. The Mac+ was up and usable in a couple of seconds, many times faster than the PC.
I know that Linux can be made to boot to a usable command prompt in a second or so -- I used to write firmware for devices that did exactly this fifteen years ago. It was faster and easier to power cycle than to do anything else!
Pauli