Hacker News new | ask | show | jobs
by somat 6 days ago
I was trying to figure out it's contemporaries, the i386 was still a few months away, you could get a sun-2, which had a sweet 4 MB of ram, but wikipedia sez that would cost you a eye watering 29 thousand dollars, in 1985, for the low end monochrome graphics version, oh, you want color that is "just" a cool 50k. Yeah Sun is not really playing the same game.

The mac was probably the closest equivalent, it came out the year prior had more memory and a built in screen but cost more than twice as much.

The real shocker is how little memory these systems had, amiga1000 only 256K, I distinctly remember buying my first memory module 128Mb for ~ $100 and thinking if I had bought this 10 years earlier, well you could not get 128 Mb ten years earlier, but if you could, it would have cost 200 thousand dollars.

6 comments

In the UK, its main contemporary in the non-PC realm was the Atari ST, which was cheaper, arrived on the market sooner, and took the “professional” market because of its excellent mono monitor (“small, but perfectly formed”).

The ST didn’t multitask, but Amiga multitasking wasn’t memory-protected, so crashing something meant you could (would) lose everything running. It also couldn’t do the graphical tricks the Amiga could do, ceding the VFX market to the Amiga with its genlock. The Amiga’s graphics and sound were both better than the ST, but games were comparable on both, and did I mention the ST was cheaper ?

What the ST could do (and well) were things like DTP (Calamus, Calligrapher,…) and MIDI (there are still rare sightings of ST’s in audio studios, 20 years ago they were ubiquitous). Those two gave it legs to run for far longer than you might expect, because Macs were outrageously expensive at the time.

> but Amiga multitasking wasn’t memory-protected

This was not the case for Windows 95/98 and ME, either BTW IIRC. Only with Windows XP Microsoft introduced memory protection for the mass market.

No, Windows 95 had memory protection for 32-bit apps. Usually when a 32-bit app crashed, the rest of the OS worked fine.
In theory it had memory protection. Processes were reasonably protected from accidentally stepping on each other's tires, but the OS was not. Any app that tried to be clever (which there were plenty of understandable reasons for) or was actively malicious could mess with absolutely everything.
There's definitely a difference in magnitude in how likely crap software is to set the world on fire and ruin your day between Win95 and Amiga.

One big problem is that Amiga "multi-tasking" while not co-operative like Mac or Win 3.x, can be switched off as a convenience for programmers. So all that needs to go wrong is a program switches off multi-tasking to do something and then gets stuck before restoring it. The program which crashed is dead but you can't fix that because it turn off multi-tasking.

In all the years I used an Amiga, I don't think I ever had the machine crash because they used Forbid(). I'm not saying it never happened to people - I'm sure there were badly misbehaving programs in use -, but using Forbid()/Permit() outside of very tight sections was very firmly frowned on, and Forbid was overall relatively uncommon apart from games which took over the system on purpose.
Probably Windows NT rather, which turned into Windows 2000 (and then XP)
Windows 3.11 was pretty unstable, because it wasn't using protected mode. I remember how unstable the Macs were back then too before the introduction of OSX.

Applications also had to voluntarily give up control of the CPU, cooperative multitasking. That's bad when an application crashes and takes down everything with it.

Windows 3.x could (and defaulted to where possible) to running in "386 enhanced" mode which actually used protected mode, IIRC.

The problem was that the Win16 part ran all in one address space, and the separation support was mainly used to handle DOS windows.

To support protected memory, you need an MMU, and the base 68000 did not ship with an MMU, however the 68020 and later did. The Amiga 3000 onwards should have defaulted to MMU and had a flicker fixer and chunky graphics and 16 bit sound to really succeed. Another multiverse timeline, perhaps.
The A3000 had a ficker fixer. If you meant that the other later models should have also included it, I agree.

Regarding the MMU, the problem was/is the OS. AmigaOS uses message passing between processes extensively, and those messages often involved passing pointers to structures that the receiver expected to be able to dereference and even writ to in some cases.

I'm on record repeatedly arguing over the years that it would be possible to retrofit at least limited memory protection onto AmigaOS, but it's decidedly not something that'd be simple to do, and most likely you'd need to basically sandbox old apps and create new API's for new apps to do it properly.

It would be simple, but somewhat incomplete. It would not look like a virtual memory subsystem where merely accessing an address can allocate physical RAM to it.

The API is already there! AllocMem(, MEMF_PUBLIC) allocates shared memory, otherwise you get private memory.

You can then enforce memory protection around that, but obviously the entire OS is still built on message-passing between tasks where the message itself remains at exactly the same (public) address and isn't copied between private memory spaces, and there's a gentlemens' agreement as to who currently owns it (PutMsg/ReplyMsg)

Software like Enforcer and MuGuardianAngel already checked this, and dinged your program for accessing non-allocated memory.

Software that tried to implement memory protection or virtual memory on the Amiga had to have a huge long hit-list of software that set the AllocMem flags incorrectly and had to be treated differently. That's because the MEMF_PUBLIC flag didn't really do anything on the base OS, so programmers didn't bother using it correctly.
I think "somewhat incomplete" is underplaying it as such a large proportion of message exchange tends to include pointers to shared structures. That the message handling uses intrusive lists doesn't help. So "simple" really depends on where you set the bar for what you consider useful levels of memory protection.

I still think it's possible but doing it to a meaningful extent would be a long tedious effort, at least for my definition of meaningful.

You have Janus-UAE which sandboxes/emulates M68k apps for AROS "rootlessly" in that it bridges a number of structures etc. That mostly solves the problem on modern hardware for legacy apps, though it's a painful solution.

Then you could aggressively upgrade message formats for "native" apps to replace pointers with opaque handles.

If done at the time you could of course had relied on more of the developers of various apps still being active and willing to update their code and might have been able to avoid the Janus-UAE approach, but there was never a point at that time where anywhere close to a majority of users had MMU's,

With mmu, every app has its own 32bit address space, and the mmu “maps” the app space to physical space. Legacy apps get shared address space, while newer apps get isolated space. To port apps, its only the messaging system that needs rework, and if the system does its magic with same API, transition is invisible. At the end of the day, only the message address space needs to be shared. Sendmessage() behind the scenes remaps mmu addresses. Not impossible, just requires the will to do it.
The problem with that is that the messaging system permeates everything on the Amiga, so you'd lose basically every app without rework. That might have worked if the Amiga had a growing market share, but at the time this became an option, the Amiga market was already dying and most users still only had 68000 based machines without MMU until long after Commodore died.

It's not "only" the message address space, as e.g. messages included pointers to a lot of other data structures that'd now either need to be copied or mapped into the receiving process, or the message formats reworked.

> The A3000 had a ficker fixer.

That's demonstratably false. But the A3000 was a ficker fixer.

The 020 didn't ship with an MMU, but it did support an external one (the MC68851) natively via the coprocessor interface. The 030 was the first relevant CPU to ship with an internal MMU (and the EC030 used in the A4000 did not include the MMU).
The UK also had the Sinclair QL (68008-based) in 1984 for £399, famously owned by Linus Torvalds:

https://en.wikipedia.org/wiki/Sinclair_QL#Linux

I think the Acorn Archimedes (1987) might be the closest UK vision to the Amiga. Of course it was 2 years later. But, mouse-oriented interface, graphics central, kind of 32 bit CPU with limitations (similar to the 68k which is 16 bit aspiring to be 32 bit), thoroughly weird desktop environment.
In the case of Acorn they had hardware memory protection[1] and their own CPU designs[2].

In place of Irving Gould Acorn ended up with some clown called Stan Boland who decided it was better to change the name, stop making workstations and refocus on TV set top boxes. The company was dead six months later.

1. https://www.computinghistory.org.uk/det/29468/Acorn-MEMC-Dat...

2. Not sure whatever happened to the Acorn Risc Machine but I'm sure it'll turn up again. :P

nitpick: ARM1/2 were 26-bit. The PC register used the bottom 26 bits for the address of the next instruction, and the upper 6 bits for status flags. Lots of code involves getting or twiddling those flags by amending the PC register directly. There is nowhere in the architecture you could put the missing 6 bits.

This was unlike the "24-bit" 68000 where the hardware package actually only had 24 address lines, but its address registers and PC were 32-bit.

https://en.wikipedia.org/wiki/26-bit_computing#Early_ARM_pro...

The ARM3 resolved the situation by adding a separate 32-bit clean PC register and a separate status register, instead of the combined monstrosity. All software had to be rewritten to use the new registers if it wanted to be "32-bit clean", unlike 68000 software which either just worked fine, or revealed the programmer was an imbecile who thought they could get away with storing random data in the top 8 bits of addresses.

Bonus: the Archimedes memory map (00000000-03FFFFFF, i.e. 26 bits) https://www.chiark.greenend.org.uk/~theom/riscos/docs/ArcMem...

> or revealed the programmer was an imbecile who thought they could get away with storing random data in the top 8 bits of addresses.

Case in point: Microsofts Amiga BASIC.

And a great BASIC with inline Assembly.
That was awesome, but to be fair it was a carry-over from BBC BASIC.
To match the Amiga in gaming, only from STE improvements onwards.

At least when the Amiga crashed it got to do some meditation. :)

ST crashes, meanwhile were “da bomb”
The Mac hit a completely different market. Nobody I knew got a Mac until after the iMac. Lots had Amigas.

In the 80's Mac's were expensive machines for professionals, and while the Amiga due to Commodore's persistent sales and marketing failures were also pigeon holed in professional markers in the US, in Europe the Amiga was also the step up from 8-bit home computers, and the Mac didn't compete in that space at all.

That's where the bulk of worldwide Amiga sales were.

In my local computer store, the lone Mac sat unused in a corner while the other machines had kids around constantly.

The 80's Mac were also two other things that made them less desirable for home users: they were seen as very slow (compared to "contemporary" home computers of the time - "instant-on" Apple IIs, Commodore 64s, and DOS machines), and they were monochrome. No colour = terrible for gaming.
Around here it was schools. Every machine in every school in every district was an apple, from the 80s to the late 90s. Many thousands of kids spent more time using those than anything else.

At home, very few had apple machines. We did have programs where we could take a IIgs home over break, and loaner macbooks in later years. But if your family owned a machine it almost certainly wasn’t an apple.

Mine was an IBM house, from the xt, on.

It's fascinating just how balkanised computing was at that point. Growing up in Norway I never saw a non-Mac Apple computer in person. Commodore was dominant, with Atari, Spectrum, Amstrad as runners up. Some schools had the homegrown Tiki (early versions were Z-80, then with an 8088 CPU board), but that was itself a response to a survey finding 75 different models of computers in Norwegian schools as of 1982 leading to a government standard (that was largely outdated before it was published; demanding CP/M compatibility)
In Spain and Portugal the Mac was the printed press and graphic design platform. Everything for people who truly knew what CMYK and "offset printing" meant. Amiga were for TV studios and odd demoscene people and maybe raster artwork. PC's were for "real work" (even under Windows 95 days). Boring offices with Microsoft Office and custom software, which literally had millions of software for it, from custom Borland ones to Visual Basic 5/6. Well, that and DOS compability and DOS and Windows games.

In late 90's Amigas were still used in TV studios but they were replaced by NT or Mac machines. And, well, PowerPC Macs where still the serious platform to run Photoshop and the rest of graphic suites (and DTP's) until everyone switched to Windows 2000 and NT, altough a G4 Mac was unbeatable for audio and video producing (it curb-stomped Pentium 3's like nothing) until Intel released Pentium 4's with SSE2's and 2000 with SP4 or XP with SP2 were good enough with either a Geforce 3 or a Radeon 7500 series and up.

I remember going to a university as a high schooler in the 80's and being amazed to see the GUI of an Apple computer, and the mouse pointer would change to an hour glass while waiting for something, When the hour glass filled, it would rotate and fill again. That animation blew me away, I was still using DOS at home.
Yes, the Mac was hardly anywhere in Europe until after the reverse acquisition from NeXT.

In Portugal there was only an importer in Lisbon for the whole country, at the university campus, only a single lab had a couple of LCs, as did some secretaries on the CS department and that was it.

Mac was the platform for journalists and printed press audio and media producers in Spain. Outside of that niche... good luck.
I remember buying a memory upgrade for my Amiga 500, from 512KB to 1MB - IIRC it cost about $200, and I had to take the subway across town to some dinky little shop whose ad I had found in an Amiga gaming magazine.

Different times...

You also got a battery backed clock with the 512kb memory upgrade :)
> The real shocker is how little memory these systems had, amiga1000 only 256K

Mid 80s my first computer had 16K and that was a lot. Later upgraded to 64K which was mind blowingly huge, couldn't imagine how to use so much RAM!

The first 386 PC didn't arrive until September 1986. It wasn't until like 1991 that sales of 386/486 PCs went above 50%.

Most PCs in the wild were still 8088s or 286es at best.

DOS just couldn't really take advantage of a 386, so for most people, that 386 wasn't exactly useful until windows 3.0 was released in 1990. DOS extenders didn't really become mainstream until about the same time.

> The mac was probably the closest equivalent, it came out the year prior had more memory and a built in screen but cost more than twice as much.

I remember the Mac emulator running Mac software faster than a classic Mac. Too bad the drive was not compatible so you had to convert disks for them to be readable.