Live data from Hacker News

Damnit I slipped and (mostly) built an Amiga 500

adrianchadd.blogspot.com

11–20 of 30 posts

Re: Damnit I slipped and (mostly) built an Amiga 500

#11
post #4
post #2

This is an excellent way to preserve classic machines. There are lots of projects out there for new PCBs, new accelerators, new replacements for Amiga custom chips and so on, just as there are new updates to AmigaDOS (up to 3.2.1, which was released last year). For example: https://github.com/endofexclusive/deniser https://github.com/LIV2/Bluster https://github.com/jbilander/ReAgnus https://www.tindie.com/products/bo…

> but any programmer of modern systems could learn lots from seeing firsthand how incredibly efficient Amigas are. Agreed. Much of the Amiga's OS was quite elegant in my opinion. Everything was reachable by a linked list. Start with AbsExecBase (0x00000004) and traverse the linked lists from there to find virtually anything/everything. (Intution objects included). If it wasn't for bit planes and lack of memory protec…

> Everything was reachable by a linked list. Start with AbsExecBase (0x00000004) and traverse the linked lists from there to find virtually anything/everything.

It sounds like this very openness is the problem - all of the benefits of AmigaOS involve processes reading one another's memory, and conversely modern OSs have to put so much effort into protecting the user from apps attacking one another.

Re: Damnit I slipped and (mostly) built an Amiga 500

#12
post #8

Earlier quoted context omitted.

>(oh, and if not for C= incredibly horrific management). I believe that to be the real, non-surmountable problem. Newer generations with better hardware and memory protection would have been totally possible. Virtualization could have taken care of backwards compatibility. Some practical modern examples include: - Whdload, which patch and wrap floppy-booted games so that they can run from the harddisk, allowing for r…

memory protection would be hard I think, right? The whole OS was based around message passing by just linking a message to the target process message port pointer. edit: but, as per your other comment, you know that. How do you see protection working in amigaOS? Just share the pages that are needed for messaging and protect everything else?

A flag day would be needed. This means literally breaking the ABIs. New interfaces would take care of setting up shared memory or doing cross-space copying.

There's always ways to deal with old software, such as through virtualization.

Re: Damnit I slipped and (mostly) built an Amiga 500

#13
post #4
post #2

This is an excellent way to preserve classic machines. There are lots of projects out there for new PCBs, new accelerators, new replacements for Amiga custom chips and so on, just as there are new updates to AmigaDOS (up to 3.2.1, which was released last year). For example: https://github.com/endofexclusive/deniser https://github.com/LIV2/Bluster https://github.com/jbilander/ReAgnus https://www.tindie.com/products/bo…

> but any programmer of modern systems could learn lots from seeing firsthand how incredibly efficient Amigas are. Agreed. Much of the Amiga's OS was quite elegant in my opinion. Everything was reachable by a linked list. Start with AbsExecBase (0x00000004) and traverse the linked lists from there to find virtually anything/everything. (Intution objects included). If it wasn't for bit planes and lack of memory protec…

> oh, and if not for C= incredibly horrific management

Thanks to that horrific management, the future of the Amiga was dead the moment it was released. No significant update of the OS for five years (KS1.0 in 1985 to KS2.0 in 1990). No significant update of the hardware for seven years (Amiga 1000 in 1985 to Amiga 4000 in 1992). And that was while the IBM-compatible PCs and Windows were going through those years that established their dominance for the next decades.

Re: Damnit I slipped and (mostly) built an Amiga 500

#15
post #12

Earlier quoted context omitted.

memory protection would be hard I think, right? The whole OS was based around message passing by just linking a message to the target process message port pointer. edit: but, as per your other comment, you know that. How do you see protection working in amigaOS? Just share the pages that are needed for messaging and protect everything else?

A flag day would be needed. This means literally breaking the ABIs. New interfaces would take care of setting up shared memory or doing cross-space copying. There's always ways to deal with old software, such as through virtualization.

that's why the later OS releases after amiga/commodore imploded extended some of the memory APIs to say "This needs to be globally visible". That way you'd allocate message memory in globally accessible memory and the MMU could do "things".

(Not that I'm a fan of that solution, just saying, they had to hack around it.)

https://wiki.amigaos.net/wiki/Exec_Memory_Allocation

(I don't do later amigaos things though :-)

Re: Damnit I slipped and (mostly) built an Amiga 500

#16
post #4
post #2

This is an excellent way to preserve classic machines. There are lots of projects out there for new PCBs, new accelerators, new replacements for Amiga custom chips and so on, just as there are new updates to AmigaDOS (up to 3.2.1, which was released last year). For example: https://github.com/endofexclusive/deniser https://github.com/LIV2/Bluster https://github.com/jbilander/ReAgnus https://www.tindie.com/products/bo…

> but any programmer of modern systems could learn lots from seeing firsthand how incredibly efficient Amigas are. Agreed. Much of the Amiga's OS was quite elegant in my opinion. Everything was reachable by a linked list. Start with AbsExecBase (0x00000004) and traverse the linked lists from there to find virtually anything/everything. (Intution objects included). If it wasn't for bit planes and lack of memory protec…

The Amiga was ultimately tied to its m68k architecture. No matter what Commodore did, it would have become unviable as the m68k died and was no longer developed. There were other very interesting computers back then, including the ARM-based Acorn Archimedes. But they weren't the Amiga; if anything, they didn't have anything like its huge software library.

Re: Damnit I slipped and (mostly) built an Amiga 500

#17
post #7
post #2

This is an excellent way to preserve classic machines. There are lots of projects out there for new PCBs, new accelerators, new replacements for Amiga custom chips and so on, just as there are new updates to AmigaDOS (up to 3.2.1, which was released last year). For example: https://github.com/endofexclusive/deniser https://github.com/LIV2/Bluster https://github.com/jbilander/ReAgnus https://www.tindie.com/products/bo…

>deniser GPLv2, OSH, great. >Bluster CERN OHL 1.2, OSH, great. >ReAgnus CC-By-SA. Not the best license for hardware, but technically OSH. Good. >A500++ I understand directly based on A500+. Might be legally dodgy. But it is good that it exists, for preservation. >TerribleFire Mix of licenses in their projects. Some of them are OSH (great). But some of them are not, due to restrictions on commercial use and/or derivat…

yup, the community is really coming together over this. I'm shocked and happily surprised. :-)

There are gary / buster drop-ins now too. Super Buster has been talked about for Zorro-III, but yeah, the AGA and A3000 glue logic stuff hasn't yet been dropped in.

Re: Damnit I slipped and (mostly) built an Amiga 500

#18
post #6

Love this. Kind of inspired me to take another look at my Atari ST... good times.

... as the OG author of this thread I should say I /did/ drop in a memory upgrade into my Atari 1040STF. :-) I should write a blog post about that too if I haven't already.

Re: Damnit I slipped and (mostly) built an Amiga 500

#20
post #5
post #4

Earlier quoted context omitted.

> but any programmer of modern systems could learn lots from seeing firsthand how incredibly efficient Amigas are. Agreed. Much of the Amiga's OS was quite elegant in my opinion. Everything was reachable by a linked list. Start with AbsExecBase (0x00000004) and traverse the linked lists from there to find virtually anything/everything. (Intution objects included). If it wasn't for bit planes and lack of memory protec…

Obviously, the lack of memory protection was what enabled the global AbsExecBase implementation to begin with. I guess it would be possible to implement as a shared read-only page mapped into each process in a protected environment, but not sure about how the details would look. Of course the highly integrated custom chips were also a great thing to have, and made very low-level programming fantastically easy and pow…

> I guess it would be possible to implement as a shared read-only page mapped into each process in a protected environment

Fun thing, that's exactly how vDSO's work.

Post reply on HN