Slashdot Mirror


MenuetOS, an Operating System Written Entirely In Assembly, Hits 1.0

angry tapir writes: MenuetOS, a GUI-toting, x86-based operating system written entirely in assembly language that's super-fast and can fit on a floppy disk, has hit version 1.0 — after almost a decade and a half of development. (And yes, it can run Doom). The developers say it's stable on all hardware with which they've tested it. In this article, they talk about what MenuetOS can do, and what they plan for the future. "For version 2.0 we'll mostly keep improving different application classes, which are already present in 1.00. For example, more options for configuring the GUI and improving the HTTP client. The kernel is already working well, so now we have more time to focus on driver and application side."

71 of 368 comments (clear)

  1. Wow. Still? by halivar · · Score: 5, Insightful

    I remember futzing around with this little project 15 years ago. I am pleased to see that, not only is it still going strong, it's pretty remarkably modern.

  2. Really? by ArcadeMan · · Score: 5, Funny

    Question: MenuetOS is entirely written in assembly? There's no traces of other languages, such as C?
    Reply: nop

    1. Re:Really? by Anonymous Coward · · Score: 2, Informative

      Question: MenuetOS is entirely written in assembly?

      Yes, that's the whole point of the OS.

    2. Re: Really? by Anonymous Coward · · Score: 3, Funny

      Yes. Phenomenal speed and minimal resource requirements, both of which translate into an ability to run on smaller, cheaper, and less power hungry hardware. I can tell you weren't alive during the Reagan administration.

    3. Re: Really? by OzPeter · · Score: 4, Funny

      I can tell you weren't alive during the Reagan administration.

      Was anyone?

      --
      I am Slashdot. Are you Slashdot as well?
    4. Re: Really? by Grishnakh · · Score: 2

      The problem with this is that smaller, cheaper, and less power-hungry hardware these days has an entirely different architecture, called "ARM". (I think MIPS is also alive and kicking, being used in many embedded applications as well as ARM.) This shows why writing stuff in assembly is generally a bad idea: you can't port it to another architecture.

    5. Re:Really? by Anonymous Coward · · Score: 3, Informative

      QNX fit a realtime OS with GUI, file browser, web browser, notepad and demos on a 1.44MB diskette.

      http://toastytech.com/guis/qnxdemo.html

    6. Re:Really? by narcc · · Score: 4, Insightful

      Seriously? There's absolutely nothing suspicious about the AC's claim. Countless hobbyists have done the same thing.

      I know the younger crowd seems to think assembly seems a bit like incomprehensible magic, but it's really not.

    7. Re: Really? by mjm1231 · · Score: 2

      From what I remember, Ronald Reagan wasn't.

      --
      Ideology: A tool used primarily to avoid the bother of thinking.
    8. Re: Really? by __aaclcg7560 · · Score: 2

      Besides Max Headroom, no.

    9. Re:Really? by ajedgar · · Score: 2

      That is true. Microkernel, POSIX Filesystem, TCP/IP stack, GUI, auto hardware detection, web browser and web server, terminal, command line tools, demo apps including 3D vector graphics. And it was all written in C/C++ except for about 200 lines in the kernel where Dan Dodge (co-founder and CTO) found he could do task switching faster with hand coded assembly instead of using TSS. We studied the output of the Watcom C/C++ compiler with full optimization enabled and register passing, there's no way a human could make tighter code, and that was 25 years ago.

      As others have questioned I can't think of any other reason why you would want to right an entire OS in assembly language except as an academic exercise. QNX is tiny and portable, it currently runs on x86, ARM, PPC, and MIPS.

  3. So give it another 15 years... by 93+Escort+Wagon · · Score: 4, Funny

    And they'll have something that'd be marginally useable today.

    --
    #DeleteChrome
    1. Re:So give it another 15 years... by Daniel+Hoffmann · · Score: 4, Funny

      Well if it ran Emacs it would be able to do anything anyone could possibly want.

    2. Re:So give it another 15 years... by zieroh · · Score: 5, Funny

      Except edit text.

      --
      People who say "sheeple" have about as much sophistication as an AOL user, and in fact are probably actually AOL users.
    3. Re:So give it another 15 years... by belthize · · Score: 3, Funny

      If you use a small enough font it will.

  4. It can run Doom by Spy+Handler · · Score: 2

    and their website looks like it's from 1995 as well!

    1. Re:It can run Doom by perpenso · · Score: 5, Funny

      and their website looks like it's from 1995 as well!

      So its not bloated and it is fast too? Seems appropriate. :-)

    2. Re:It can run Doom by smooth+wombat · · Score: 5, Insightful

      Finally, a web site which doesn't try to overrun your browser with unnecessary rotating images and the latest and greatest shiny because some web designer said, "Why not?"

      In other words, a web site which is useful.

      --
      We will bankrupt ourselves in the vain search for absolute security. -- Dwight D. Eisenhower
    3. Re:It can run Doom by zieroh · · Score: 3, Insightful

      and their website looks like it's from 1995 as well!

      So its not bloated and it is fast too? Seems appropriate. :-)

      I can state with authority that in 1995, there were exactly zero fast websites. Of this I am 100% certain.

      --
      People who say "sheeple" have about as much sophistication as an AOL user, and in fact are probably actually AOL users.
  5. Looks great for industrial by spiritplumber · · Score: 2

    if the timing is that tight, it would allow using secondhand PCs instead of ladder logic controllers.

    --
    Liberty - Security - Laziness - Pick any two.
    1. Re:Looks great for industrial by itzly · · Score: 5, Insightful

      Or a $10 ARM chip, programmed in C.

  6. Not Open by Zontar+The+Mindless · · Score: 3, Insightful

    http://www.menuetos.net/m64l.t...

    I might play with it, but if I can't use it for work, play is all it'll be.

    --
    Il n'y a pas de Planet B.
    1. Re:Not Open by quantaman · · Score: 2

      http://www.menuetos.net/m64l.t...

      I might play with it, but if I can't use it for work, play is all it'll be.

      I wonder what commercial uses they're thinking of.

      Presumably they're thinking of some super-low footprint embedded devices, but still this seems like a lot more of a fun project than a viable product.

      --
      I stole this Sig
    2. Re:Not Open by jones_supa · · Score: 4, Informative

      Not Open

      Yeah, KolibriOS is an open fork of MenuetOS. It was forked when Menuet was still open source. Although Kolibri hasn't been updated for almost a year.

      Not sure why they want to keep the genie in the bottle. Open source would be perfect for this kind of hobby project.

    3. Re:Not Open by sexconker · · Score: 2

      But corporations are people, so...

    4. Re:Not Open by bluefoxlucid · · Score: 4, Insightful

      The problem with this thinking is memory is not cheap. Memory has grown, and program memory usage has grown linearly with memory, or greater. The problem is when you run two programs at once: the combined working set is bigger than RAM, and has grown linearly as well. Where you may have had 32MB of RAM and 48MB swapping on and off disk, now you have 16GB of RAM and you're swapping around 10GB of data; but swapping is not now 500 times faster, and so the bloat has slowed the machine.

      The growth of the working set means the growth of memory controller latency, the need for RAS and CAS selects on different rows requiring precharges taking up 200 FSB cycles on CPUs which now have multipliers of 10 or 15 instead of 1.5 or 2. Random memory access may now have delays of 3000 cycles, causing an instruction requiring 4 cycles to execute to now take 750 times as long; your typical CAS selection may in fact require 7, 10, even 21 cycles now, multiplied by 10 or 15, so as to take 300 cycles of stall. Modern CPUs are made and broken by their CPU cache efficiency and their predictive execution, and multi-tasking flushes those caches and destroys performance.

      Computers have grown to manage immense spans of cheap resources, yet they have not increased their capability to manage resources nearly as fast as they have increased those resources.

    5. Re:Not Open by bluefoxlucid · · Score: 5, Interesting

      I wonder what use they're thinking at all. Minix 3 is a step forward: were we to port Linux interfaces for udev, kevents, and such onto Minix, we could drop a Linux userland onto it wholesale, with systemd and all, and benefit from a core operating system which lends itself to drastic rearchitecting.

      Consider that running Minix as an OS-level virtualizer--OpenVZ, LXC--is a trivial task, one which requires only providing a different network server and different security features (e.g. users and groups, and their flow through the file system driver and such), largely doable on the existing code base. You could even run Xen on top of Minix with a minor tweak.

      Consider that Minix is a collection of services which may be extended by adding other services. It is interfaces and features, not tightly-bonded kernel code. The shape and form of the OS can be changed without commitment: to add services to handle Linux services is not to change Minix, for you may simply not use those services; you could instead add services to make Minix pretend to be OpenBSD. You could replace its threading model or scheduler by swapping out a service, providing a system that uses the advanced features of DragonflyBSD.

      There, again, we see a step forward: DragonflyBSD, with its non-locking semaphores, its highly-efficient threading model, its ability to freeze an application and thaw it after a reboot, to checkpoint running applications--a feature Minix does not possess, but could simply by adding a new kernel service--and even to move applications between machines. Extending some of these things would be to bring the features of OpenMOSIX: check pointing and running an application on a different boot cycle or different machine brings the magic of scheduling applications across a cluster of machines acting as one.

      Why, then, do we persist in creating these tinker toys, instead of extending, cannibalizing, or imitating those things which show real progress? Why has Minix not embraced the great strides forward made by Linux and integrated its interfaces so as to integrate its user space in distribution? Why has Linux not subsumed the threading model of Dragonfly BSD? Why has someone chosen to create an OS to no purpose, rather than to create a unified system carrying and integrating the lessons from all prior systems?

    6. Re:Not Open by bluefoxlucid · · Score: 4, Interesting

      Check out the memory footprint of Linux sometime.

      Two megabytes. Four, really, when using a single 4MB huge page to allocate the entire kernel in one go. A few bytes to maintain each task's information, each cached disk page, each handle held by an application.

      Linux uses so little memory you can run it on a microcontroller with a megabyte of RAM. When you build up all the services needed to supply network management, graphical systems, user log-on, audio mixing, and so forth, you get maybe 100MB. When you then run a Web browser and go to a few open tabs, you need a gigabyte or three.

    7. Re:Not Open by tibit · · Score: 4, Informative

      That's the whole point. It's not open source. The 32 bit kernel is old and not developed anymore.

      --
      A successful API design takes a mixture of software design and pedagogy.
  7. 30 seconds of music from iTunes. by perpenso · · Score: 5, Funny

    It fits on a floppy disk? We are in 2015, right? What is a 'floppy disk'?

    Its a unit of storage space measurement equivalent to about 30 seconds of music from iTunes.

    1. Re:30 seconds of music from iTunes. by future+assassin · · Score: 3, Funny

      Its a disk invented by AOL and promoted by them with free internet offer on the disk.

      --
      by TheSpoom (715771) Uncaring Linux user here. I have nothing to add to this but please continue. *munches popcorn*
    2. Re:30 seconds of music from iTunes. by Anonymous Coward · · Score: 3, Funny

      Definition of a "good" hacker; One who knows how to convert Jimi Hendrix to MIDI format, but doesn't.

  8. Re:Floppy disk? by camperdave · · Score: 5, Funny

    It fits on a floppy disk? We are in 2015, right? What is a 'floppy disk'?

    It's an object lesson in using pure assembly. By the time you get anything useful done, technology has moved on.

    --
    When our name is on the back of your car, we're behind you all the way!
  9. What next? by Anonymous Coward · · Score: 5, Funny

    Now that they've got this thing working, what would be really cool is if they could come up with a way of getting it to run on different processor architectures, in case x86 loses out to ARM in the long run.

    I'm thinking maybe they could write some sort of abstraction layer whereby the instructions are originally written in some sort of higher level format, which could then be automatically turned into machine code for different hardware using a special program. You could do all sorts of things with that kind of system. I'm surprised nobody's thought of it before, actually.

    1. Re:What next? by grimmjeeper · · Score: 4, Funny

      Now that they've got this thing working, what would be really cool is if they could come up with a way of getting it to run on different processor architectures, in case x86 loses out to ARM in the long run.

      All they have to do is translate the part of the OS written in x86 assembler...

    2. Re:What next? by suutar · · Score: 2

      I'm not sure he's the one who got whooshed :)

  10. Disappointing by bugs2squash · · Score: 2

    Assuming it is much faster than an equivalent system written in, say , C. I find it disappointing that hand crafted assembler should be so much faster than what compiler optimizations can achieve.

    --
    Nullius in verba
    1. Re:Disappointing by Anonymous Coward · · Score: 2, Insightful

      Never wrote any DSP code have you? It's trivially easy to beat compiler optimizations even with naive SIMD assembly.

    2. Re:Disappointing by tibit · · Score: 2

      It's not, and it doesn't run on tiny systems either. It requires ~300MB of RAM just to boot up. It's basically a hack done to stroke someone's fancy. It's not practical in any sense of the word. You could rewrite it in C and it would run just as fast. Its speed is mostly related to the architectural choices, and many of them are just plain wrong. Way too much of the API is blocking - that means that the internal architecture is broken, pretty much, and won't scale, and wastes power. It's basically a demonstration of a cargo cult approach to design: someone thinks that if only they do a ritual (assembly), it'll be fast.

      --
      A successful API design takes a mixture of software design and pedagogy.
  11. Entire OS in about 1/3 of i7 Cache by perpenso · · Score: 5, Insightful

    I'm not reallyd sure that I understand that point. To me, thst would sound reasonable for educstionsl Ãr entertainment purposes, but are there any other meaningful reasons for writing an entire OS in assembler?

    The entire OS would occupy about 1/3 of an Intel i7's cache. For ultra-high performance apps that might actually be useful.

    Of course that includes user land apps and such so the footprint of the OS itself would probably be far smaller.

    1. Re: Entire OS in about 1/3 of i7 Cache by bill_mcgonigle · · Score: 2

      yeah, and think of the lower-powered chips. If I can get an HTTPS server into cache at 10W TDP, a whole new class of apps becomes possible. How small can a Go runtime be?

      --
      My God, it's Full of Source!
      OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
    2. Re:Entire OS in about 1/3 of i7 Cache by lgw · · Score: 5, Informative

      None of that follows from it being written in assembly.

      My first 5 years as a dev were spent working on a team that maintained an all-assembly OS, database, print server, and so on. Very fast, very small. But you can get all that in C, and a modern C compiler on full optimization produces object much faster than any sane, maintainable assembly source.

      It's a mindset issue, not a toolset issue. Actually using assembly is a great way to keep the right mindset throughout. Plus, learning to read assembly fluently, find bugs by glancing at core dumps, fix bugs with a sector editor to save an assembler pass when you're in a hurry, bugfix a running program in memory - all of that builds your coding muscles, even if it all a bit silly for a modern prod environment.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    3. Re: Entire OS in about 1/3 of i7 Cache by chuckugly · · Score: 3, Funny

      Yeah, imagine what you could do with the ARM port .... oh, wait a tick .....

    4. Re: Entire OS in about 1/3 of i7 Cache by madbrain · · Score: 3, Informative

      Someone would have to be crazy enough to try to write an SSL & PKIX library fully in assembly to get that HTTPS server working.

      --
      -- Julien Pierre http://www.madbrain.com/blog
    5. Re:Entire OS in about 1/3 of i7 Cache by lgw · · Score: 5, Informative

      From experience I know that a well-trained, well-weathered assembly hacker can generate code faster than the compiler.

      This hasn't been true since instruction pipelining. And it hasn't been true for maintainable assembly source for abut 20 years.

      Quick, what's the fastest way to multiply an integer by 8? Did you answer "depends on the previous 20 instructions, but probably 3 adds separated by 3-4 instructions each"? There's just too much state to keep track of with which silicon is doing what for how long following each instruction.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    6. Re:Entire OS in about 1/3 of i7 Cache by NormalVisual · · Score: 2

      I read somewhere (Can't remember where :/) that the fastest assembly code produced to date was written by a human, not a computer; again, google returns nothing.

      Michael Abrash's ancient-but-awesome book, "The Zen of Graphics Programming", contains a chapter called "Heinlein's Crystal Ball, Spock's Brain, and the 9 Cycle Dare" that 's about Abrash's adventures in coming up with the fastest CPU-driven texture mapper he could write in hand-written assembly for his X-Sharp graphics library (he eventually ended up with 16 million texture-mapped pixels per second on a 90 MHz Pentium). Might that be what you're thinking of?

      --
      Please stand clear of the doors, por favor mantenganse alejado de las puertas
    7. Re: Entire OS in about 1/3 of i7 Cache by lgw · · Score: 5, Informative

      Not a left shift?

      Depends - did you do a shift or multiply in the previous several instructions? When do you need the result? Do you need to add anything else soon, or is the adding silicon idle? Modern compilers actually keep track of all that. For sure, if you need to shift two values, doing each a different way is faster.

      The important stuff the coder can provide to help with optimization comes down to: avoid conditional branches, and emphasize locality of reference (I miss the days when a 256-byte lookup table was the fast answer to most bitwise questions).

      --
      Socialism: a lie told by totalitarians and believed by fools.
  12. Come a long way by Anonymous Coward · · Score: 5, Insightful

    Wow, slashdot has come a long way from when I first started reading "chips & dips" in 1997. Even just 10 years ago, a story like this would have been met with enthusiasm and honest support, with a virtual pat on the back to the developers.

    Today, a story like this is reduced to a mere platform for chest-beating (see the parent above). As in, "nevermind the lame story, look at me instead". Why in the world are you people even here?

    1. Re: Come a long way by Anonymous Coward · · Score: 3, Insightful

      After the Beta fiasco and the Systemd wars combined with the 7month long--every day--posts of "all STEM/geek males are severely sexist," all the quality slashdotters left.

      Right now we are basically in a post-apocolyptic state here.

    2. Re:Come a long way by zieroh · · Score: 3, Insightful

      Wow, slashdot has come a long way from when I first started reading "chips & dips" in 1997. Even just 10 years ago, a story like this would have been met with enthusiasm and honest support, with a virtual pat on the back to the developers.

      Today, a story like this is reduced to a mere platform for chest-beating

      To be fair, the vast world of computers and software has come a long way since 1997. What might have been an interesting accomplishment in 1997 is now basically an exercise in pointlessness. Sure, it can be done. Sure, it's small and fast. But so what? What was actually accomplished that's worth anything? Processor power and memory advances since 1997 have obviated any reasonable need for an operating system such as the one described here, and the demands made on modern operating systems pretty much dictate that they be a whole lot more maintainable than any assembly code will ever be.

      --
      People who say "sheeple" have about as much sophistication as an AOL user, and in fact are probably actually AOL users.
    3. Re:Come a long way by Khyber · · Score: 4, Insightful

      "What was actually accomplished that's worth anything?"

      I can turn my computer on and pretty much INSTANTLY use it after POST.

      The only other OSes to do that have been purely command-line.

      The entire OS can fit within the L3 or L2 cache of modern processors, leaving the RAM entirely free for applications. Got a linux distro that will do that?

      It also demonstrates the absolute shit bloat code inefficiencies of today.

      MenuetOS is the demoscene of operating systems. It does what any operating system can do, faster, with fewer resources, in much smaller, tighter, SUPERIOR code.

      Also, because of the code being pure ASM, most nimrod 'hackers' won't even be able to touch it, as they know jack shit about bare-metal programming. It's more secure by its nature, not by obscurity.

      --
      Still waiting on Serviscope_minor to wake up to fucking reality and realize that Jessica Price isn't going to fuck him.
  13. Worse, no Unix or POSIX either by mi · · Score: 4, Informative

    From their own site:

    Menuet isn't based on other operating system nor has it roots within UNIX or the POSIX standards. The design goal, since the first release in year 2000, has been to remove the extra layers between different parts of an OS, which normally complicate programming and create bugs.

    So, if you want to port your own application to it, you'll need to rewrite it too. And you may need to do it in assembly — although there is, apparently, a C-compiler for MenuetOS it is billed as "low-level", which, I gather, means no (or limited) libc, and other exciting and challenging limitations.

    --
    In Soviet Washington the swamp drains you.
    1. Re:Worse, no Unix or POSIX either by LordLimecat · · Score: 2

      That sounds like theyve been actively un-learning all of the lessons the computer science field has spent decades learning.

      Here everyone else has been learning how abstraction can promote collaboration and keep bugs simple, and theyve found a way to justify removing abstraction as a way to reduce complexity (lol?).

    2. Re: Worse, no Unix or POSIX either by guruevi · · Score: 2

      There is a problem these days with over generalizations and abstraction to the point where things become unmaintainable and can't be troubleshooted. Eg. JavaScript.

      --
      Custom electronics and digital signage for your business: www.evcircuits.com
  14. Re:Floppy disk? by perpenso · · Score: 4, Interesting

    It's an object lesson in using pure assembly. By the time you get anything useful done, technology has moved on.

    Not really. I have some computational code that I wrote in assembly 4 Pentium architectures ago. Every new architecture I run it against the C implementation, freshly recompiled with a current compiler. The assembly is still faster given all the hardware and compiler improvements. Now the performance improvement is getting much smaller but it is still a win.

  15. Re:Floppy disk? by Lunix+Nutcase · · Score: 3, Insightful

    And you're assembly is probably easy to beat with even pretty crappy SSE2 code.

  16. 32-bit is open (GPL) by perpenso · · Score: 2

    The 32-bit version is open (GPL), the 64-bit is currently not.

  17. Do they still teach assembly language? by __aaclcg7560 · · Score: 2

    When I went back to community college to learn programming after the Dot Com bust, I was frustrated that all the courses was in every flavor of Java. (The school couldn't afford to renew the Microsoft site license for a few years.) When the assembly language class appeared on the schedule, I later discovered that I was only the student signed up for the course. Class cancelled. Since this class wasn't required for graduation, the dean couldn't grant my request to learn assembly language as an independent study class.

  18. Plenty of OSes written in assembly by cfalcon · · Score: 4, Insightful

    Plenty of OSes have, over the course of history, been written in assembly.

    And all of them proprietary, just like this one.

    Menuet is cool, but I don't see a compelling reason to use closed source assembly unless it demonstrates some really crazy superpowers. It's also an odd case of a GPL codebase switching to a closed source license a couple years before it becomes useful.

    Kolibri forked from the GPLed 32 bit branch, but I don't think it's pure ASM at all.

  19. Think of the legacy hardware ... by perpenso · · Score: 3, Interesting

    And you're assembly is probably easy to beat with even pretty crappy SSE2 code.

    Apparently not by compilers.

    You don't seem to understand the purpose of writing in assembly language. Its not to optimize for the current state of the art box. It is to get acceptable performance from old legacy boxes. Some assembly in the right spot(s) can make the difference between an old architecture making the cutoff in terms of acceptable performance, of being able to include that segment of the market in your minimum system requirements.

    My point is that such optimizations for the sake of the old boxes doesn't necessarily do any harm to the new boxes. That worrying about future architectures is a red herring of sorts.

    1. Re:Think of the legacy hardware ... by Lunix+Nutcase · · Score: 2

      Apparently not by compilers.

      Duh. Compilers are shit at things like vectorization. They can fail at generating decent code even with intrinsics.

  20. Re: floppy disk... by rubycodez · · Score: 5, Funny

    it grows to 2.5"?

  21. Re:Floppy disk? by rubycodez · · Score: 2

    No NT is not VMS, but common architect and core developers make for many shared concepts: http://windowsitpro.com/window...

  22. is this year by goombah99 · · Score: 5, Funny

    of assembly language on the desktop? will it run linux?

    --
    Some drink at the fountain of knowledge. Others just gargle.
  23. Re:Hobbiest are amazing by ledow · · Score: 2

    Assembly is not difficult.

    And nobody creates chips from scratch any more, but the underlying electronics is still worth learning. If you disagree, go look at the THOUSANDS of Arduino etc. projects. Arduino is a microcontroller, not a processor. It has a pittance of RAM, a pittance of speed (16Mhz?) can't access external memory directly, etc. But the principles behind using it reveal a lot about how the electronics work and the problems associated with them.

    Just a digital circuit? Far from it when you have power-issues, trace-length issues, hidden impedances in the circuit, etc.

    Assembler is also how you begin to understand what a chip DOES. Sure, we all "know". Sure we do. So how do you do bitwise-add-plus-carry? What CPU flags might be triggered and when? What about the circuit timing? Rising-edge, falling-edge, high, low? What about memory refresh, clock-cycles etc.?

    Sure, this stuff is not necessary to OPERATE a computer. Nor to PROGRAM a computer in most languages. But then it does begin to come into how to ENGINEER a computer. There are Arduino projects that push a string of bytes down to a Z80 chip with no onboard RAM (literally, the Arduino acts as a memory emulator). They've been enormously helpful in understanding how integrated circuits work - you can literally manually clock one cycle at a time and interrogate the bus timing, memory access, etc. of the attached Z80 as you go. Hell, it's even generating information useful for anyone making a Z80 emulator, etc. What timing does that undocumented instruction have?

    There are levels required for certain things, and there's also what happens in science - understanding of OTHER seemingly-unrelated, or obsolete, or total disparate sciences affects your understanding of everything else you touch.

    Understanding assembler doesn't make you a better programmer automatically, but it completes the circle - you know what's happening and so can understand why it happens when your engineers come back and tell you the bus timings aren't as they are on the spec sheet, and you can compensate. It's like being a car mechanic who's never seen a Wankel engine. Sure, maybe you never will. Maybe you'll only ever seen them when tinkering with one you bought on eBay. But the different ideas give you different concepts that you can join together because they are based on two solutions to the same problems.

    Nobody sits and does arithmetic any more. And you don't need to be able to do mental arithmetic to be a great mathematician. But the knowledge of such things CAN greatly enhance your understanding - and the speed at which you understand new things. Fermat's Last Theorem was solved because someone linked it to elliptic curves. I bet there were mathematicians the world over who were told to stop wasting their time on a 400-year-old problem because it would never be relevant. Now we've JOINED two areas of mathematics, we understand both more. And the guy who had both mathematics in his head simultaneously understands them better than anyone else.

    Assembler is not something you'd branch out the next version of Windows into. Of course not. But if you don't tinker with it, understand it, play with other circuits, write your own bootloader, even, then - sorry - you're not a geek with the interest that I would get on with and who I find best at doing geek jobs.

    At the end of the day, some bastard had to write the Windows bootloader in assembler. Then, only a few years ago, someone had to rewrite all their bootloaders to take account of UEFI. And every new architecture needs someone to write a bootstrap in assembler even if it's only ever used to get the compiler up and running.

    Saying it's a waste is to completely miss the point of life. To pursue interests to satisfy man's innate curiosity.

    Your instructor was as blinkered as you.

    And, fuck, if you can't get the hang of assembler, when one instruction rarely does anything more than a single piece of binary arithmetic, and each official

  24. Re:Hobbiest are amazing by itzly · · Score: 2

    Arduino is a microcontroller, not a processor.

    Actually, it isn't. The microcontroller is an Atmel AVR. The Arduino project is the processor, plus some standard hardware boards, plus a C++ programming environment that actually shields you from the bare metal.

  25. Comment removed by account_deleted · · Score: 2

    Comment removed based on user account deletion

  26. Re:floppy disk... by epyT-R · · Score: 3, Informative

    Hey buddy, ever wait around near the nurses station at a hospital? Women can and do tell dirty jokes all the time.

  27. Re:Turn in your geek card. by skelly33 · · Score: 3, Informative

    Doom is shown as an icon on the desktop in the various screenshots found on the project site, but indeed, Quake is the game running in a window.

  28. Re:floppy disk... by rot26 · · Score: 2

    How big is that in terms that we can all relate to, say, football fields?

    --



    To ensure perfect aim, shoot first and call whatever you hit the target
  29. Re:Turn in your geek card. by garyisabusyguy · · Score: 2

    Doom can run on a Super Nintendo, while Quake requires more system performance.
    Doom is a fan favorite, but Quake is a more relevant demo

    --
    Wherever You Go, There You Are