I was working on an 8-bit system back in this same time period. We couldn't afford flash devices and the kit required to reprogram them. But we did a similar trick with an extra write pin located near the ROM socket, then used a special daughterboard filled with SRAM that replaced the ROM and also touched the write line. Now we could just use our cheap debugger and blow an image into the address space the ROM used.
Only downside was that you lost the image on power down, so I can see why EEPROM was more important to Apple in developing their systems.
> I would love to see an example of what these PDS cards looked like, if anyone out there has some inside knowledge they would be willing to share!
The only thing that came to mind were these Newton development boards from about that era. I believe they were more or less Newtons shoved into one of the slots of a Quadra-like machine (perhaps the PDS slot?).
What blows my mind is how active the collector community is about these machines. These machines are over 30 years old—they’re so old they’re not even regularly on eBay anymore.
I still have and cherish my 8600, the very first Bad Motherfucker computer I ever managed to obtain. :)
Adjacent: does anyone have a good article describing how Macs used to boot from ROM? Not just some sort of BIOS but the full MacOS System. It seemed like a really neat feature, but IIRC quickly became useless because there was no way to update the ROM so you'd end up loading the OS from disk to get the latest version.
> Not just some sort of BIOS but the full MacOS System.
It's not quite the full system. It may be best to think of the original Mac OS as a software library. The application is in primary control, and uses the OS as a library directly - jumping right into the OS code sometimes. Modern ideas about layers of separation and protection did not yet exist.
A significant portion of the ROM is QuickDraw, routines for doing bitmap graphics and text very quickly. There are some other rather generic routines, like string handling, a sort of a standard library. There are also drivers, interrupt and timer handling, etc. The Chicago system font is in ROM too.
Since it was all designed together, it was not too hard to just make it modular, and have some of the modules in the ROM, and the rest loaded from disk. There is a central dispatch table kept in RAM. When a program makes a Mac OS call, the dispatcher looks up the current vector from the table. When the OS loads, any patches to ROM are handled by redirecting the dispatch to the new routines or patches. It's important to remember classic Mac OS had resources (labelled sections). Large blocks of code are referred to with handles, not pointers. The resource manager can transparently load/unload them behind the scenes as needed.
The Mac has gone through a fair bit of setup before it starts reading the disk. The OS memory manager is running, and the device manager is configured, the disk driver service is set up as well. The boot splash (grey background and the happy Mac icon) is drawn using standard graphics API calls. The calls would do the same thing if used in a normal Mac OS app. The boot sector on disk is loaded using the same calls as in a Mac OS app if you wanted to do low-level disk access.
The resource manager is then told about all the resources in the system file, and any patched resources are patched, etc. And then the finder application is loaded and started. When it goes to look for resources, it'll find them mapped to ROM or the system file through the in-RAM resource map. And when it goes to make a system call, it'll find them mapped to ROM, or the routines loaded in RAM from the System file, through the trap table.
> became useless because there was no way to update the ROM
The original Mac 128 and 512 were limited, because their ROMs were the original code, and also 64 KB in size. The later Mac software needed at least 128 KB of ROM (new file system, etc.) and so could never run on those machines. But later system software was never going to run on those machines, anyway.
RAM was extremely expensive in the mid-80s. That is really the only reason for this. The original Mac would have needed an extra 64 or 128 KB of RAM otherwise. That would have bumped the price up several hundred dollars. RAM prices imploded shortly after the Mac's release, of course. System 7 loads around 100 KB of patches to the ROM on a Mac Plus. By 1990 it would clearly have been better to just have it all in RAM. But the architecture was already fixed. (Later Macs would just load a complete ROM image off disk.)
There is one more minor factor: the original Mac can execute code from ROM at full speed. The RAM is contended with the video hardware and has slightly slower throughput. So there is a slight plus to having QD in ROM!
This is actually older than Squeak by a couple of years at least.
The reason why so many early 1990s UIs have this kind of color scheme is part fashion and part technological opportunity.
Rainbow pastel colors were really popular around 1986 - 1993. It was a reaction to the muted browns and oranges that characterized '70s and early '80s design, and also a reflection of the economic optimism of the era.
At the same time, computer displays evolved beyond monochrome (original Mac) or garish 16-color palettes (PC EGA). With 256 colors out of a palette of millions, it became possible to display those fashionable pastels on a computer too. So why hold back?
(Personally I'm still stuck in this era. Light background is a must. I never use dark mode on anything. I genuinely don't understand the kids who want their IDEs in black like some depressing 1982 textmode VAX. For me it's warm pale yellow and baby blue terminals all the way; extra bonus for dark purple text highlights and a mint green piqué shirt.)
The Performa 630CD was my first Mac and it warmed my heart to see its picture. That feeling went away quickly as I saw it being used as guinea pig for ROM shenanigans. Save that Performa!
well, normally I'd agree, but it doesn't look like there are any irreversible/destructive changes being made? plus this seems like a pretty valuable experiment/project for the retro Mac community.
> By the way, I actually succeeded today at hacking the code of Flasher to erase and program modern flash chips. It required a lot of 68k assembly work, but luckily I had a good reference to start from in my USB SIMM programmer.
And then, jealousy intensified, I close the tab and go back to debugging my MVC webapp.
The grass is always greener. Working on low level things has lots of drawbacks and it's not uncommon to wish for better tools, documentation, libraries, etc like you get in higher level programming. It takes a lot of work to accomplish what externally seems like trivial results.
Why be jealous and only feel bad about it? Let the envy motivate you to create great things! There are a million tiny hobby project ideas out there that you have the power in your hands to actualise.
I know there's a rule against posting titles like "How To Do X" in https://news.ycombinator.com/newsguidelines.html, but in this case the title doesn't make sense without the "how" - of course Apple's developers reflashed Mac ROMs in the 90s, they had to do it as part of their job, the article is about how they did it.
here in California there were zero instances of "flashing a ROM" among ordinary developers -- it was obviously illegal (maybe a reason) but also you just buy a Mac and get the rom image.. Macs were everywhere... fifty percent of the Macs in the world were in this area, by some measures at some time.
This was the nightmare of Apple from the early days and they actively pursued it. Also, intelligent people in the creative professions were inventing things.
You’re misreading the rule. Such titles are allowed.
If the title contains a gratuitous number or number + adjective, we'd appreciate it if you'd crop it. E.g. translate "10 Ways To Do X" to "How To Do X," and "14 Amazing Ys" to "Ys." Exception: when the number is meaningful, e.g. "The 5 Platonic Solids."
> ”See that thing that suspiciously looks like a CD-ROM drive on the left? It’s not. It’s a blank cover … I pressed the button thinking the CD tray would come out. If you push the button hard enough, it gets stuck back in there.”
Pretty weird and un-Apple-like to have a physical eject button at all. The mid-90s were such a weird time to be alive.
It was in the mid-nineties and I had to hand in my weekly lab report. As my printer at home had decided to go on strike once again (as they used to do in the mid-nineties) I decided to print it in the university's library. So I went, still a quarter to the deadline, with my little 3.5 inch floppy disk. All the PCs were taken so I resorted to the only Mac.
I was a little excited, because these jewels were expensive back then, and usually always taken by someone that seemed to have more important design tasks to do than I had. Now I had the opportunity, for once.
I inserted my floppy, opened the document, sent it to the printer. All went fine until I wanted to get back my disk to rush to the lab session. No button to eject, nowhere to be found, so I asked one of my fellows sitting at a PC. He told me to drag the disk into trash bin. Yeah, right, sure I believe that! So I asked another guy, and sure he said I should throw my disk into the bin.
Now, these lab reports were important, because you needed to pass all of them to be allowed to write the test at the end of the semester and there were only two substitute dates. So I had little choice. I dragged the little disk icon over the little bin icon and let go. I already saw all my work on the disk gone but to my great surprise the disk ejected immediately and completely unharmed.
My lab report was handed over in time, it passed. The two substitute dates at the end of the semester never materialized because the prof was sick, as every year before and after - as I lerned. So, good on me to trust my fellow students but g00daxxit terrible UI!
What happens when you push the eject button on the lower right, below the floppy drive? If you say "Ackshually, it's the power button. Macs don't have floppy eject buttons", feel free to go back in time and tell that to the many, many, many users at my college who pushed that button to eject the floppy and instead turned the computer off. This happened so often that we had to tape paper barriers over the buttons.
I really enjoyed the handful of mid-90s Mac models where the power button was just to the bottom right of the 3.5" floppy slot, very near where you'd find the eject button relative to the floppy slot on pretty much every PC of the era.
2012 Macbook Pro had a physical CD eject button (it was top-right of the keyboard). Control was probably routed through the OS, so that may not be what you meant, but it was definitely physical.
Nah, it's fine. Flash is a long-established verb for programming firmware. "Flashing ROM" is apropos for write-once parts, and often used instead of the mouthful "flashing EEPROM". The real oxymoron is "Erasable Programmable Read Only Memory," but that's just evolution showing and it's fine.
They are called ROMs because that is what the computer called them. The computer uses them to load initial startup code and base functions, and the ROM is in the "ROM" address space (as opposed to RAM, I/O, etc.). It does not matter whether it is EPROM or Mask ROM. It's basically the equivalent of BIOS.
Well, I guess you could say that a UV eraser applies a "flash" lasting several minutes. Probably not worth steelmanning the point to that extent, though. :-P
The term we always used at a major PC OEM for the erase/reprogram cycle was "burning."
[+] [-] koz1000|2 years ago|reply
Only downside was that you lost the image on power down, so I can see why EEPROM was more important to Apple in developing their systems.
[+] [-] unknown|2 years ago|reply
[deleted]
[+] [-] JKCalhoun|2 years ago|reply
The only thing that came to mind were these Newton development boards from about that era. I believe they were more or less Newtons shoved into one of the slots of a Quadra-like machine (perhaps the PDS slot?).
My memory of that era is fuzzy though.
[+] [-] sneak|2 years ago|reply
I still have and cherish my 8600, the very first Bad Motherfucker computer I ever managed to obtain. :)
[+] [-] NelsonMinar|2 years ago|reply
[+] [-] vanchor3|2 years ago|reply
[+] [-] retrac|2 years ago|reply
It's not quite the full system. It may be best to think of the original Mac OS as a software library. The application is in primary control, and uses the OS as a library directly - jumping right into the OS code sometimes. Modern ideas about layers of separation and protection did not yet exist.
A significant portion of the ROM is QuickDraw, routines for doing bitmap graphics and text very quickly. There are some other rather generic routines, like string handling, a sort of a standard library. There are also drivers, interrupt and timer handling, etc. The Chicago system font is in ROM too.
Since it was all designed together, it was not too hard to just make it modular, and have some of the modules in the ROM, and the rest loaded from disk. There is a central dispatch table kept in RAM. When a program makes a Mac OS call, the dispatcher looks up the current vector from the table. When the OS loads, any patches to ROM are handled by redirecting the dispatch to the new routines or patches. It's important to remember classic Mac OS had resources (labelled sections). Large blocks of code are referred to with handles, not pointers. The resource manager can transparently load/unload them behind the scenes as needed.
The Mac has gone through a fair bit of setup before it starts reading the disk. The OS memory manager is running, and the device manager is configured, the disk driver service is set up as well. The boot splash (grey background and the happy Mac icon) is drawn using standard graphics API calls. The calls would do the same thing if used in a normal Mac OS app. The boot sector on disk is loaded using the same calls as in a Mac OS app if you wanted to do low-level disk access.
The resource manager is then told about all the resources in the system file, and any patched resources are patched, etc. And then the finder application is loaded and started. When it goes to look for resources, it'll find them mapped to ROM or the system file through the in-RAM resource map. And when it goes to make a system call, it'll find them mapped to ROM, or the routines loaded in RAM from the System file, through the trap table.
Here's a good article (2019) doing a much deeper dive: https://macgui.com/news/article.php?t=496
> became useless because there was no way to update the ROM
The original Mac 128 and 512 were limited, because their ROMs were the original code, and also 64 KB in size. The later Mac software needed at least 128 KB of ROM (new file system, etc.) and so could never run on those machines. But later system software was never going to run on those machines, anyway.
RAM was extremely expensive in the mid-80s. That is really the only reason for this. The original Mac would have needed an extra 64 or 128 KB of RAM otherwise. That would have bumped the price up several hundred dollars. RAM prices imploded shortly after the Mac's release, of course. System 7 loads around 100 KB of patches to the ROM on a Mac Plus. By 1990 it would clearly have been better to just have it all in RAM. But the architecture was already fixed. (Later Macs would just load a complete ROM image off disk.)
There is one more minor factor: the original Mac can execute code from ROM at full speed. The RAM is contended with the video hardware and has slightly slower throughput. So there is a slight plus to having QD in ROM!
[+] [-] Narishma|2 years ago|reply
[+] [-] rbanffy|2 years ago|reply
[+] [-] pavlov|2 years ago|reply
The reason why so many early 1990s UIs have this kind of color scheme is part fashion and part technological opportunity.
Rainbow pastel colors were really popular around 1986 - 1993. It was a reaction to the muted browns and oranges that characterized '70s and early '80s design, and also a reflection of the economic optimism of the era.
At the same time, computer displays evolved beyond monochrome (original Mac) or garish 16-color palettes (PC EGA). With 256 colors out of a palette of millions, it became possible to display those fashionable pastels on a computer too. So why hold back?
(Personally I'm still stuck in this era. Light background is a must. I never use dark mode on anything. I genuinely don't understand the kids who want their IDEs in black like some depressing 1982 textmode VAX. For me it's warm pale yellow and baby blue terminals all the way; extra bonus for dark purple text highlights and a mint green piqué shirt.)
[+] [-] ahoka|2 years ago|reply
[+] [-] tambourine_man|2 years ago|reply
[+] [-] amatecha|2 years ago|reply
[+] [-] HeckFeck|2 years ago|reply
And then, jealousy intensified, I close the tab and go back to debugging my MVC webapp.
[+] [-] surajrmal|2 years ago|reply
[+] [-] Waterluvian|2 years ago|reply
1. There are always people far brighter than the people who wrote most of what we use every day.
2. You are far more capable than you realize.
[+] [-] TazeTSchnitzel|2 years ago|reply
[+] [-] unknown|2 years ago|reply
[deleted]
[+] [-] rob74|2 years ago|reply
[+] [-] airstrike|2 years ago|reply
Also "How X" != "How to X"
[+] [-] unknown|2 years ago|reply
[deleted]
[+] [-] mistrial9|2 years ago|reply
This was the nightmare of Apple from the early days and they actively pursued it. Also, intelligent people in the creative professions were inventing things.
[+] [-] appleskeptic|2 years ago|reply
If the title contains a gratuitous number or number + adjective, we'd appreciate it if you'd crop it. E.g. translate "10 Ways To Do X" to "How To Do X," and "14 Amazing Ys" to "Ys." Exception: when the number is meaningful, e.g. "The 5 Platonic Solids."
Just the relevant bit:
translate "10 Ways To Do X" to "How To Do X"
[+] [-] patriciajohn99|2 years ago|reply
[deleted]
[+] [-] Reason077|2 years ago|reply
Pretty weird and un-Apple-like to have a physical eject button at all. The mid-90s were such a weird time to be alive.
[+] [-] weinzierl|2 years ago|reply
I was a little excited, because these jewels were expensive back then, and usually always taken by someone that seemed to have more important design tasks to do than I had. Now I had the opportunity, for once.
I inserted my floppy, opened the document, sent it to the printer. All went fine until I wanted to get back my disk to rush to the lab session. No button to eject, nowhere to be found, so I asked one of my fellows sitting at a PC. He told me to drag the disk into trash bin. Yeah, right, sure I believe that! So I asked another guy, and sure he said I should throw my disk into the bin.
Now, these lab reports were important, because you needed to pass all of them to be allowed to write the test at the end of the semester and there were only two substitute dates. So I had little choice. I dragged the little disk icon over the little bin icon and let go. I already saw all my work on the disk gone but to my great surprise the disk ejected immediately and completely unharmed.
My lab report was handed over in time, it passed. The two substitute dates at the end of the semester never materialized because the prof was sick, as every year before and after - as I lerned. So, good on me to trust my fellow students but g00daxxit terrible UI!
[+] [-] ylee|2 years ago|reply
What happens when you push the eject button on the lower right, below the floppy drive? If you say "Ackshually, it's the power button. Macs don't have floppy eject buttons", feel free to go back in time and tell that to the many, many, many users at my college who pushed that button to eject the floppy and instead turned the computer off. This happened so often that we had to tape paper barriers over the buttons.
[+] [-] sjsdaiuasgdia|2 years ago|reply
[+] [-] flir|2 years ago|reply
[+] [-] unknown|2 years ago|reply
[deleted]
[+] [-] demondemidi|2 years ago|reply
[deleted]
[+] [-] dogleash|2 years ago|reply
[+] [-] vanchor3|2 years ago|reply
[+] [-] unknown|2 years ago|reply
[deleted]
[+] [-] thfuran|2 years ago|reply
[+] [-] bogantech|2 years ago|reply
In any case you can't burn EPROMS either but that's what it's called
[+] [-] dev_tty01|2 years ago|reply
[+] [-] dormento|2 years ago|reply
[+] [-] CharlesW|2 years ago|reply
[+] [-] CamperBob2|2 years ago|reply
The term we always used at a major PC OEM for the erase/reprogram cycle was "burning."
[+] [-] kragen|2 years ago|reply
[+] [-] CharlesW|2 years ago|reply