Hacker News new | ask | show | jobs
by bombcar 313 days ago
People laugh about that, but when you look at when the whole thing was designed and came out, and how much it would have cost to have a "pimped out" system that pushed the limits (if even possible!) it becomes much more reasonable.

Nobody expected this silly machine to be relevant and affecting computing 44 years later!

It came with 16KB of RAM! 640KB would have been 40 times as much - that's the equivalent of a modern laptop (which comes with checks Apple 16GB of RAM) going up to 640GB of RAM.

The original machine had support for two floppies and a tape drive - the first hard drives were in the 5MB for $2000 in 1982 range. That's about $6,700 today.

Even the writings of the day assumed that the IBM PC would last "for a time" like all previous machines had, newer ones would come out on new chips that were completely different. Nobody really expected backwards compatibility and Windows to eat the world.

3 comments

What you say is true, but I'd also like to ask (people in general) if you have to design a memory map for MS-DOS that doesn't have the 640K limit, what would you do? Your constraints are:

- The total address space is 1MB, and that's a CPU architectural limit (which is only "broken" many years later, and in a rather unsatisfying way).

- You need somewhere to map the RAM, and because of CP/M quasi-compatibility, that needs to start at address 0.

- The CPU starts executing code at 1MB minus a few bytes, so your system ROM must go right at the top of address space.

- You need memory windows for the system ROM, options ROMs and 2x framebuffers.

- Bank switching adds extra complexity and 74xx logic chips on a motherboard which is already very busy.

Given these constraints, the 640K limit for RAM, with framebuffers and ROMs mapped at 0xA0000, is the only thing that makes sense.

For those too young to remember that "unsatisfying way" of breaking the 1MB limit:

https://en.wikipedia.org/wiki/Expanded_memory#Expanded_Memor...

(And IIR, Bill Gates had plenty of company in denouncing EMS while announcing official support for it.)

I was actually thinking of the A20 line, but LIM EMS was another unsatisfying way! https://en.wikipedia.org/wiki/A20_line
The 640 limit complaints aren't really about DOS; they're about Intel's segmented memory architecture (again, which had its reasons and greatly increased the ability of the chip at the price-point).

Most people first experienced it long after it was seen as a crippled chip, which is not what it originally was.

The address space didn't have to start at 0. In fact, address 0 contains interrupt vectors. I suspect most of the CP/M compatibility was about starting at specific addresses within a given segment (isn't that why .COM executables are placed at 0x100?)

I blame Intel by having the boot address at FFFF0. That guarantees you need ROM at the top of memory rather than loading boot code and sticking frame buffers in low memory, and starting user RAM at like 0x20000.

For the applications that were really important then (spreadsheets and word processing) even 64KB would be reasonable for most people. With 640KB you could run a medium-sized business.
I loved the HP200LX just for that reason - it was a hand-held 90s palmtop that was a full-fledged 186, with DOS 5.0 and "multitasking" and about a meg of RAM - and it could run ANY of those 80s programs, including a full Lotus 1-2-3 spreadsheet.

That power - phenomenal, especially in the early Internet age.

Wasn't power management an issue with early portable computers? I feel like it wasn't until Windows 95 and beyond that machines were properly sleeping in between tasks— before then you were likely to end up just spinning the processor in an idle task.

This kind of thing can even be a problem trying to virtualize DOS stuff: https://www.os2museum.com/wp/idle-dr-dos/

That was the other thing - it would run for ages on 2 AA batteries.

https://en.wikipedia.org/wiki/HP_200LX

30-40 hours but it worked out to basically "it was always good to go".

> that's the equivalent of a modern laptop (which comes with checks Apple 16GB of RAM) going up to 640GB of RAM

640GB of RAM doesn't sound unreasonable to me.

Found the Chrome user.
Nope, no installs of Chrome here.

I use a lot of virtual machines and games though.