Hacker News new | past | comments | ask | show | jobs | submit login
Amiga Java (mikekohn.net)
159 points by aninteger on Jan 10, 2020 | hide | past | favorite | 67 comments



Seeing "Amiga" and "Java" together reminds me of Amiga Anywhere, a brilliant and completely misunderstood gaming/entertainment VM project twenty years ago:

https://arstechnica.com/gadgets/2018/03/a-history-of-the-ami...

It didn't really have anything to do with the original Amiga. It was a rebranding of a strange high-performance VM designed by some very clever people in UK:

"Tao had created a product that was so innovative that few people understood what it actually was. Taos was an operating system that was coded in VP1, an advanced assembly language that used instructions for an imaginary, idealized RISC CPU. When Taos programs were loaded into memory, the system translated the VP1 opcodes into the equivalent ones for whatever CPU it happened to be running on. Taos could run on an x86, a MIPS, a PowerPC, or a transputer, and many more—or even different combinations running at the same time. Because VP1 instructions were more compact than most CPU’s native opcodes, Taos programs would often load and run faster than native ones, even when you included the time it took to do the translation. Taos was a little bit like magic."

Of course HN past has the details on this interesting bit of alternative software history:

https://news.ycombinator.com/item?id=9808159


You might be interested in https://github.com/vygr/ChrysaLisp by one of the inventors of Taos. It's brilliant.


Whoa.


Indeed woha


Isn't it the case that the approach of using a VM to do games goes way back .. in the early 80's it was a common mechanism in games dev, and the tradition has endured such that VM's are often pushed hard, technology-horizon wise, by the game devs.

One of the reasons Lua is all over the place, is its VM code is very well written and easy to integrate in a code-base.

There is still room for VM's to solve a lot of the current platform-war problems.


”the approach of using a VM to do games goes way back .. in the early 80's it was a common mechanism in games dev”

One reason that was done is that it made porting games between CPU architectures (OSes weren’t that much of an issue, as games ran on bare metal) easier.

Zork had one in 1979 (https://en.wikipedia.org/wiki/Z-machine). I think that ended when games became truly interactive, as opposed to command-based, because, when that happened, performance became a bottleneck.

Another reason could have been is that it made programming easier, as 8-bit CPUs are so weak that running a virtual machine for the convenience of having such luxuries as 16-bit arithmetic sometimes made sense even then (e.g. https://en.wikipedia.org/wiki/SWEET16)

And of course, there is Forth, the ultimate “give me a VM that is tailored to this specific program” language (every word you define can be seen as a new instruction for your virtual machine)


> I think that ended when games became truly interactive, as opposed to command-based, because, when that happened, performance became a bottleneck.

Counterexample: the recently posted article series about Another World - a VM-based game released in 1991 that was very interactive and graphics-heavy.

https://news.ycombinator.com/item?id=21937607


Zork and the Z-Machine[1] is a great early example of use of a VM in a game.

[1] https://en.wikipedia.org/wiki/Z-machine


This also reminds me of Inferno, which was marketed as an OS for next-gen game consoles and set-top boxes by Lucent back in the 90s. Unfortunately it didn't get very far.


It got far enough to be the operating system for the Lucent 'Brick' line of firewall/VPN appliances. Those were modestly successful in the market. But, yeah, Lucent had big plans for Inferno that never really panned out.


Never used it, but my recollection was the most radical thing about Inferno was it was based on a high level, JIT, GC'd language runtime.

I don't think Inferno people themselves said this, but I remember one of the things that people said in favor of memory safe JIT language operating systems was that the JIT would be able to optimize across multiple programs, or between kernel and user mode, since it didn't need to care about MMU based protections like a language with arbitrary pointers. And indeed you wouldn't need the high cost of the context switch.

In light of Spectre and meltdown that now sounds like a bad idea to me.


Who cares about Spectre and Meltdown in a game console or set top box? These are information disclosure vulnerabilities. What info are you going to "disclose" about the game I'm playing on a console? Especially if the game console is airgapped because I'm playing a single-player game from a cartridge or optical disk.


Do you think that they wrote the thing expressly for game console applications or perhaps they had a research idea and later found an application? Are we not talking about the same Inferno from Bell Labs?

Anyway I think I was describing a broader topic than Inferno. Eg. There was the singularity project at Microsoft that people spoke similarly about. Maybe Midori too? The latter may have moved away from the jit idea, there is some writing online about it that I have not read.


>Who cares about Spectre and Meltdown in a game console or set top box?

The business model of consoles is subsidized hardware, with the bulk of revenue coming from game licensing fees (per copy). These vulnerabilities would reduce the security of the consoles which would directly put that business model at risk (unlicensed games + piracy).

>Especially if the game console is airgapped because I'm playing a single-player game from a cartridge or optical disk.

Between 10% and 30% (depending on who you ask) exclusively play only online games. The number of mixed is harder to discern but significant. About 50 million people use xbox live, microsoft's paid online gaming service. Last year, over 80% of game sales were digital. The business and consumer landscape simply would not accept airgapping.

These consoles are often used for other entertainment and health applications. Many of them have cameras attached to them (I know, I know). They are tied into peoples' cloud accounts. They are used for web browsing. They are used to watch porn. People deserve privacy, I think we can all agree.

You, personally, may not be affected, but these are concerns that cannot be ignored, both by users and business.


"Security" in the context of a game console manufacturer means its users are unable to execute unlicensed code on it. So if Spectre or Meltdown are a concern, the system has already been compromised. It's not another layer on the onion, the onion is already gone. Security on a console is like a safe that contains the key to your Bitcoin wallet and the combination to the safe.

Usually there's SOC that manages IO, and the ROM contains a key/publisher cert. To run code on the main CPU, the SOC has to bless it. No code other than what's on the SOC's EEPROM can run on the EEPROM. And flashing the EEPROM requires the manufacturer's key; you load a potential image into the SOC's RAM, it verifies the image, it flashes the image.

Getting unlicensed code to run on modern consoles is generally more difficult than jailbreaking an iPhone. And even if you get your code to run by tapping the bus or whatever, there's no data in main memory that's worth stealing, nothing that could help you get a persistent break or anything. The valuable data lives in the SOC.

Preventing Spectre/Meltdown is less important than the extra 2-4% performance.


Today's consoles have web browsers. So if it runs javascript, spectre and meltdown are a concern.


> Getting unlicensed code to run on modern consoles is generally more difficult than jailbreaking an iPhone.

I think they're of similar difficulty.


Security exploits on game consoles are also a means to win money on MMO with virtual currency, so game companies nowadays do care about Spectre, Meltdown and friends.


Taos was a brief source of excitement on the Acorn platform, there was talk of using it for the never-finished Risc PC 2, although whether that was just marketing talk I'm unsure. I think there was a demo on the front of a magazine?


There's an ISO for a Windows (95?) based SDK floating about. It possibly is the very same CD that you mention.


Anyone know how to track down a capture of that ISO?


Last time I put a link on here I was downvoted. So Im not doing that again.

I do have contact details in my bio.


Like Android.


Or Transmeta. Or even WebAssembly. It's an interesting trick but only useful if you demand a very high level of binary portability.


Or Burroughs, Xerox PARC mainframes, IBM mainframes language environments, UCSD Pascal, Lilith, Ceres, Inferno, Windows Phone 7, Windows Store, MicroEJ, watchOS bitcode,....

I think that the use of such systems has only increased, thanks to mainstream adoption of IoT devices and cloud environments.

OEMs can change their hardware at will while supporting existing applications, and cloud environments can be heterogeneous, without much issues moving applications around.


> IBM mainframes language environments

Not just mainframes either, AS/400 (for minicomputer-class machines, as opposed to mainframes) is the same way. A binary, hardware-independent VM is the officially-supported programming environment.


Thanks for the correction. On my mind AS/400 keeps being a mainframe, I keep forgetting it had another hardware class.


It is so weird to see the cool computers of my teens put on a blanketed table. Makes them look like amcient artifacts, to be approached by wizards only. Kind of like how I felt seeing rackfuls of mainfrane hardware, back then. :)


Kinda like how I felt when the docent at the Computer History Museum in Mountain View passed around an ancient artifact from a bygone civilization for the guests to marvel at: a 5 1/4" floppy disk.

Recently I saw a talk from a twenty-something programmer who as a child didn't believe "real" computers (desktop PCs) could be programmed at all, that was something you could do only with "old" computers like the Apple II. He hacks lisp now for some networking company, so maybe the kids will be all right. :)


Or the 8" floppy disk which I saw when I was a middle school kid learning my first programming on a paper teletype!


I have an 8" floppy disk framed on the wall of my office.

When I retire and I have more time, I'm going to fill my house with Cromemco-era gear and do all the things I always wanted to do back then.

But first, I have to convince my wife that S-100 bus machines are mid-century modern, so she'll allow them in the door.


If you wait until you retire (unless retiring happens in 5-10 years maybe), you might not be able to afford the gear.

Stuff is pretty expensive even now, depending on what you want, what you can get, and such. Or, maybe you'll get lucky - several years ago I scored an Altair for $200 from a local electronics junkyard; later I went back and scoured it for a bunch of S-100 cards (as is, it came with a full complement).

Later I got some things off ebay, and even some free items from some other collectors - all I had to pay for was shipping. One strange beast was a 6502 cpu PCB (unpopulated) - I am not sure if it is compatible with the Altair's S-100 bus layout, or if it is meant for some other machine (the bus wasn't as standard as one would like, unfortunately).

Anyhow, good luck with your dream - just collecting the stuff can be fun enough!


I still have a few 8" floppy disks and you can more understand why they were called floppy disks when you hold one of those vs the 5 1/4" disks.


I've got one from an old S-100 system.


I have an Altair - when I bought it, it came with a controller card for an 8-inch floppy system...with one slight difference:

It was for so-called "hard sectored" drives.

If you know about floppies, you know they have a timing hole near the hub ring; as this flies past a sensor, the controller can use it to keep the speed of the motor constant, as well as determine what sector on a track is currently under the head of the drive. Depending on timing and other factors, it can allow for varying size sectors - this is known as "soft sectors".

Hard sector drives had a similar sensor, but the floppies had - instead of a single hole - multiple holes spaced around the hub - one hole for each sector, hence "hard sectored"...

It was mainly a difference with the media and controller, not so much the drive itself, IIRC.

The problem is that, if I ever could even find an actual drive for the system, I'd probably never find any media; as it is, it's getting more difficult to find 5.25" media in the old 8-bit era "low-density" format - at least, anything new (similarly, low-density 3.5" floppies are difficult to find - which stinks for Amiga owners).

High density floppies in both 5.25" and 3.5" sizes are much easier to find - though the 5.25" drives can be an issue (not that they are hard to find, but sometimes the prices are thru the roof - mainly because of demand from industrial controllers that used PCs for CNC control needing replacements).


I still own a 8" floppy drive, it isn't connected up to anything though.


Most standard PC floppy controllers, the kind on the motherboard of a typical x86 machine made right into the early 21st century, can drive a standard Shugart-style 8" disk drive. Though some controllers don't handle single-density disks.


There's something to be said for computers that came with BASIC built in. But you know, if you have Windows and Office, you still have BASIC built in...


...for those who don't know anything about the Amiga, AmigaBASIC that came with early systems was a Microsoft implementation and some people's first exposure to programming.


I guess you were downvoted because you don't need Office?? Windows itself comes with an interpreter (VBScript) and a compiler (vbc.exe).


VBScript is kind of dead I thought? I mean, I thought that was distinct from VBA and related to IE and going away if it hasn't quite yet.


FWIW, you can even run the latest OpenJDK on m68k.

In fact, here's is my Amiga 4000 running it on Debian unstable:

  root@elgar:~> dmesg |head
  [    0.000000] Linux version 5.4.0-2-m68k (debian-kernel@lists.debian.org) (gcc version 9.2.1 20191130 (Debian 9.2.1-21)) #1 Debian 5.4.8-1 (2020-01-05)
  [    0.000000] Enabling workaround for errata I14
  [    0.000000] Amiga hardware found: [A4000] VIDEO BLITTER AUDIO FLOPPY A4000_IDE KEYBOARD MOUSE SERIAL PARALLEL A3000_CLK CHIP_RAM PAULA LISA ALICE_PAL ZORRO3
  [    0.000000] On node 0 totalpages: 30720
  [    0.000000]   DMA zone: 300 pages used for memmap
  [    0.000000]   DMA zone: 0 pages reserved
  [    0.000000]   DMA zone: 30720 pages, LIFO batch:7
  [    0.000000] initrd: 06c412a3 - 07800000
  [    0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
  [    0.000000] pcpu-alloc: [0] 0
  root@elgar:~> cat /proc/cpuinfo
  CPU:            68060
  MMU:            68060
  FPU:            68060
  Clocking:       49.1MHz
  BogoMips:       98.20
  Calibration:    491008 loops
  root@elgar:~> uname -a
  Linux elgar 5.4.0-2-m68k #1 Debian 5.4.8-1 (2020-01-05) m68k GNU/Linux
  root@elgar:~> java --version
  openjdk 11.0.6-ea 2020-01-14
  OpenJDK Runtime Environment (build 11.0.6-ea+7-post-Debian-1)
  OpenJDK Zero VM (build 11.0.6-ea+7-post-Debian-1, interpreted mode)
  root@elgar:~>
OpenJDK is built as part of Debian unstable:

> https://buildd.debian.org/status/logs.php?pkg=openjdk-11&arc...

> https://buildd.debian.org/status/logs.php?pkg=openjdk-12&arc...

> https://buildd.debian.org/status/logs.php?pkg=openjdk-13&arc...

> https://buildd.debian.org/status/logs.php?pkg=openjdk-14&arc...


What is it with Amiga that people keep tinkering with it and HN is full of Amiga articles? I once had an Amiga 1000 but for me that's just a sweet memory. Why is it different for other people, and why Amiga and not Spectrums or the like?


I think Amiga find themselves at the perfect border of extendable and retro. Mine has 1024x768 (over hdmi/dvi), 128MB of ram, a cpu almost 5x faster than it shipped with (66MHz vs 14MHz), and an ethernet (pcmcia) card. I don't have usb yet, but it's possible. I also have unreasonable amounts of storage (compared to the design) via an sdcard.

Much older and you lose all of this. Much newer, and you just end up replacing a PC with a crap PC.


But what do you do with it? Is it just nostalgia or the challenge to make it do something it couldn't do 20 years ago?


Retro computing is a hobby. People generally like their hobbies. Like, why do people like old cars? There are better cars out there but some people are attracted to them.

Amiga was a computer that was way ahead of its time with its hardware AND software and provided so much fun until it was deemed obsolete - and it was a long time. Nothing like that existed for a long long time. But all of it doesn't matter - it is like the classic car analogy, it is just a hobby of some people, to reminisce on their childhood etc.

>challenge to make it do something it couldn't do

This is another hobby altogether. You can do it with retro computers, or with modern computers and artificial limitations (think of the demoscene and their 4k or 64k competitions) and actually this mindset does not even require a computer. Making things do things they are not supposed to do is just a fun time for some people, a creative outlet.


> Retro computing is a hobby.

But of course, my bad. To be honest it never occurred to me that it could be. But the comparison with classic cars makes perfect sense.


The thing I find interesting about retro computing is how far one can take the platform in terms of productivity. In other words, how far can the platform be taken if one ignores content consumption.

There's also a minimalists/efficiency mindset at play. If I confine youtube to the living room, can I satisfy my daily desktop needs with an older system? Is that older system actually faster (because of less software bloat) even though it's running on much more constrained hardware? Do I actually need an operating system that supports multiple logged in users for my desktop use cases? Are modern UIs more distracting and actually an impediment on productivity?

I can't speak for others but these questions are interesting to me.


I have an DEC VT320 terminal hooked to one of my Linux machines, and when I need to heads down, no distractions, pound out text, I pull it into a room without a computer (or TV) and close the door. It's a great way to block out distractions. George RR Martin famously writes his books in Wordstar on a DOS PC not connected to the Internet for similar reasons.

The big limiting factor with using a vintage computer for a daily driver is that very few of them have a browser that supports modern web standards, have relatively low resolution screens and are painfully slow doing modern crypto (TLS & SSH), so much of the modern internet is inaccessible or unusable.


For me, almost purely nostalgia. As silly as it sounds, meeting goals I set for myself when I was 12. (Plus a sprinkling of convenience; the scan-doubler lets me use a leftover flatscreen instead of a hulking CRT, ethernet saves me a lot of heartache transferring files from my desktop, etc).

But mostly just games. I didn't really play games from roughly 1995-2010 for various reasons, so Amiga (and megadrive) are still where a lot of my old favourites are. Thanks to Catalina, my desktop can't play civ5 anymore. But my Amiga can still play civ1!


I have a Vampire 2 Card for My A600. I can do quite a lot of more modern tasks on the machine and connect it to a modern monitor. In my A1200 I have 16GB of storage on a CF card, VGA / DVI and a Music card (I can play back MP3s etc. So it like using a Pentium Era computer.

The OS is pretty decent considering its age and there are plenty of decent applications to use.

I don't find 8bit computers particularly interesting. I had a BBC Micro and a Tantung Einstein (hand me downs) and they are extremely primitive compared to the Amiga. The Amiga is very much like a modern computer.

I really wish there was Amiga OS for a PC computer (I believe MorphOS is being ported) as even the aging OS 3.1 with some extensions is in some ways better than Desktop Linux. But that is highly subjective.


> I really wish there was Amiga OS for a PC computer

AROS runs both hosted on top of Linux, and natively, on PCs.

Some people also run UAE and run real AmigaOS...


I use Amiga OS on WinUAE to install it on real hardware.

AROS on top of Linux for me is missing the point as a OS enthusiast. AROS is okay, but MorphOS (which I run on a G4 cube) is much better IMO.


You don't need to run AROS on Linux. It's one option among many, including running bare metal on a number of hardware platforms, including on real Amiga hardware.

But for someone who wants to just run an AmigaOS-like OS, it's a convenient option as it makes it irrelevant whether AROS supports your underlying hardware as long as Linux does, and so makes it easy to install; it also makes it easy to run it alongside a regular Linux desktop for someone who doesn't want to just run an AmigaOS-like OS, which frankly still has lots of limitations.

MorphOS to me is to divorced from AmigaOS to be particularly interesting, and the fact it isn't open source is another dealbreaker.


> You don't need to run AROS on Linux. It's one option among many, including running bare metal on a number of hardware platforms, including on real Amiga hardware.

Yep. I did have AROS running on a real machine (which has died). I have a real Amiga though so I rather use Amiga OS.

> But for someone who wants to just run an AmigaOS-like OS, it's a convenient option as it makes it irrelevant whether AROS supports your underlying hardware as long as Linux does, and so makes it easy to install;

Yes I am aware. I don't like Linux.

> it also makes it easy to run it alongside a regular Linux desktop for someone who doesn't want to just run an AmigaOS-like OS, which frankly still has lots of limitations.

I just don't see the point of running Linux with a Amiga like DE (which is really what you are doing). I am sure it suits many people's needs. It just not something I am interested in.

> MorphOS to me is to divorced from AmigaOS to be particularly interesting, and the fact it isn't open source is another dealbreaker.

Not everything has to be open source.


> I really wish there was Amiga OS for a PC computer

Never used it (neither did I use MorphOS) but doesn't AROS fit the bill?


> even the aging OS 3.1 with some extensions is in some ways better than Desktop Linux.

What do you find better? I'm curious


I haven't used it myself, but I've read that many Amiga third-party desktop software exposed an API to be programmed via a scripting language (called ARexx). You could easily automate tasks that cross application boundaries this way.


For example:

https://wiki.amigaos.net/wiki/Intuition_Screens

Also it is just a decent desktop OS. One of the problems with Linux (and OpenBSD / FreeBSD etc) is that the OS really isn't a desktop Operating System. It is a Unix operating system with a desktop.


There is a big community of people supporting the 8-bit home computers too. I'm subscribed to r/c64 on Reddit for example, and people recently posted a "top 10 C64 games released in 2019" video, for example.

What makes the Amiga interesting, though, is that it represented a transition from the 8-bit environment to modern machines that is modern enough to resemble modern systems (GUI, multitasking, reasonable graphics, lots of people had harddrives etc.) and that was revolutionary at the time.

At the same time around 5 million Amigas were sold, making it one of the most successful lines of home computers ever; not that many of the alternatives have as large a pool of potential supporters, and many of the rest are "too old" in that their users had one of the earlier ones and moved on to one (or more) of the later ones, and their nostalgia may have another focus.

E.g. we first had a VIC-20 briefly, but I really started with a C64, and while I love the C64 too, you can't imagine the C64 as a replacement for a PC. But my Amiga stood up very favourably to PCs for years, even after Windows gained traction. It was faster for a while. It had better graphics. It had proper pre-emptive multitasking. It had better sound. More of my nostalgia is focused on the Amiga.

Part of it is probably also down to what and how you used them. For the first years we had a C64 I mostly used it for games. I spent more time on my Amiga on creative endeavours, from writing code to drawing in Deluxe Paint, and writing.

And in retrospect there are still aspects of the OS that feels ahead of today. E.g. one of my favourites includes pervasive scripting. OS X comes closest to that with AppleScript, but on the Amiga AREXX become so integral that some applications have their central event bus built around AREXX to they point where every keypress and every menu action gets passed through the same mechanism as the AREXX commands. Another is datatypes: You'll find Amiga applications published in the 90's that happily supports WebP images for example, because someone wrote a datatype library for it, and so every application that supports datatypes can load WebP without modification or recompilation or anything.

But of course there is an element of rose tinted glasses and all that, which I think largely comes down to how big a part of your life it was, and to what extent it was part of your formative years. For me, my computing interest dominated my life (and still does), and so the Amiga dominated my life from I was 13 until I was around 20, and it was practicality more than anything that made me switch (to Linux): I moved to a smaller flat, and I could only fit one machine and needed a Linux machine due to work, and it had to take preference.


> that was revolutionary at the time. Amen to that. An Acorn Electron was what got me hooked on computers and programming. The Amiga was a giant leap forward and dominated my life as well, during the same period of my life. I guess I'm just not a nostalgic type of person, so I never bothered to make it run again. One of these days I'll have to go up to the attic of my mother's house to see if it is still collecting dust.


It was popular in Europe when people had mostly lost interest in the US. I remember when the magazines I read were withering away, but there were these imported ones from I think the UK that were huge, with ultra-glossy paper and full color.


Commodore always sold far better in Europe than in the US, even for most of the 8-bit days, and they managed to totally burn their dealer network in the US in the early 80's and never recovered (the final straw was when Tramiel lowered the price of the C64 drastically overnight without warning dealers or offering refunds, leaving dealers with large stocks of C64's bought at the old wholesale price that they'd be unable to sell with much if any margin).

As a result Amiga sales in the US were small and driven by things like the Video Toaster on the high end where people for some time bought Amigas for the Video Toaster rather than the other way around, while sales in Europe were far higher volume and more focused on the low end models that there just wasn't a decent dealer network to handle in the US.


For every classic computer there is someone who fetishizes it (even Spectrums) and a community they can belong to and talk about it (looks at the VAX-11/730 in the corner). I think Amiga's are that mix of cool, still usable (for some values of usable) and nostalgic for those of HNs average age, so you hear a lot about them here.


Dug into Java grinder a bit, pretty crazy to see Java code pushing pixels at a decent (20 fps?) framerate on C64 and earlier hardware.


It's funny that someone else on HN just managed to run a C# program on Windows 3.11. https://news.ycombinator.com/item?id=22010159


Three Billion and One devices run Java.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: