Live data from Hacker News

LT6502: A 6502-based homebrew laptop

github.com

201–210 of 226 posts

Re: LT6502: A 6502-based homebrew laptop

#201
post #74
post #49

Earlier quoted context omitted.

Given enough power and space efficiency you would start putting multiple cpus together for specialized tasks. Distributed computing could have looked differently

This is more or less what we have now. Even a very pedestrian laptop has 8 cores. If 10 years ago you wanted to develop software for today’s laptop, you’d get a 32-gigabyte 8-core machine with a high-end GPU. And a very fast RAID system to get close to an NVMe drive. Computers have been “fast enough” for a very long time now. I recently retired a Mac not because it was too slow but because the OS is no longer getting…

Half my Linux machines are Macs “retired” for exactly this reason.

Re: LT6502: A 6502-based homebrew laptop

#202

3D printer beds have been getting bigger, but slicers don’t seem to account for curling as large prints cool. The problem is long linear runs on bottom infill and perimeters shrinking. I’ve been cutting my large parts into puzzle like shapes, but printing them fully assembled. This adds curved perimeters throughout the bottom layer, reducing the distance stress can travel before finding a seam to deform. That said, a…

I stop seeing those issues after starting using Bambulab X1 3d printer, it just works 99 percent of the time. My old ender 3 v2 had those issues due to bed changing its shape during printing(thin metal changing shape in micro level due to temp and mechanical stress with 4 knobs pulling down), not sticking well, not enough fast cooling or cooling effects bed temp profile, way off even with auto level probes. Also open 3d printer with bunch of air flow is a killer for those prints. OP should try Bambulab like enclosed more accurate 3d printer from a local 3d print shop or a hackerspace after locking the design and enclosure iterations.

Re: LT6502: A 6502-based homebrew laptop

#203

Earlier quoted context omitted.

For me the interesting alternate reality is where CPUs got stuck in the 200-400mhz range for speed, but somehow continued to become more efficient. It’s kind of the ideal combination in some ways. It’s fast enough to competently run a nice desktop GUI, but not so fast that you can get overly fancy with it. Eventually you’d end up OSes that look like highly refined versions of System 7.6/Mac OS 8 or Windows 2000, whic…

Or if 640k was not only all you'd ever need, it was all we'd ever get.

Ya, but that means no high-res GUI. And pretty annoying limits on data set size.

Re: LT6502: A 6502-based homebrew laptop

#204
post #2

I sometimes wonder what the alternate reality where semiconductor advances ended in the eighties would look like. We might have had to manage with just a few MB of RAM and efficient ARM cores running at maybe 30 MHz or so. Would we still get web browsers? How about the rest of the digital transformation? One thing I do know for sure. LLMs would have been impossible.

I like the 32 bit era because it's the only time we had symmetrical data and address buses. 32 bit data bus on chip. 32 bit addressable RAM, 4 GB. Used to be 8/16 and now it's 64/whatever. Understandable decisions given needs/constraints but sort of messy.

Re: LT6502: A 6502-based homebrew laptop

#205

Earlier quoted context omitted.

There's something to this. The 200-400MHz era was roughly where hardware capability and software ambition were in balance — the OS did what you asked, no more. What killed that balance wasn't raw speed, it was cheap RAM. Once you could throw gigabytes at a problem, the incentive to write tight code disappeared. Electron exists because memory is effectively free. An alternate timeline where CPUs got efficient but RAM…

> What killed that balance wasn't raw speed, it was cheap RAM. Once you could throw gigabytes at a problem, the incentive to write tight code disappeared. Electron exists because memory is effectively free. I dunno if it was cheap RAM or just developer convenience. In one of my recent comments on HN ( https://news.ycombinator.com/item?id=46986999 ) I pointed out the performance difference in my 2001 desktop between a…

As you say, the trade-off is developer productivity vs resources.

If resources are limited, that changes the calculus. But it can still make sense to spend a lot on hardware instead of development.

Re: LT6502: A 6502-based homebrew laptop

#206
post #2

I sometimes wonder what the alternate reality where semiconductor advances ended in the eighties would look like. We might have had to manage with just a few MB of RAM and efficient ARM cores running at maybe 30 MHz or so. Would we still get web browsers? How about the rest of the digital transformation? One thing I do know for sure. LLMs would have been impossible.

I think the boring answer is that we waste computing resources simply because if memory and CPU cycles are abundant and cheap, developers don't find it worth their time to optimize nearly as much as they needed to optimize in the 1980s or 1990s. Had we stopped with 1990s tech, I don't think that things would have been fundamentally different. 1980s would have been more painful, mostly because limited memory just did…

I don't actually blame dev laziness for the lack of optimization.

There is certainly a level of "good enough" that's come in, but a lot of that comes not from devs but from management.

But I'll say that part of what has changed how devs program is what's fast and slow has changed from the 90s to today.

In the early 90s, you could basically load or store something into memory in 1 or 2 CPU cycles. That meant that datastructures like a linked list were a more ideal than datastructures like an array backed list. There was no locality impact and adding/removing items was faster.

The difference in hard drive performance was also notable. One wasteful optimization that started in the late 90s was duplicating assets to make sure they were physically colocated with other data loading. That's because the slowest memory to load in old systems came from the hard drive.

Now with SSDs, disk loading can literally be nearly as fast as interactions with GPU memory. Slower than main memory, but not by much. And because SSDs don't suffer as much from random access, it means how you structure data on disk can be wildly different. For example, for spinning disks a b-tree structure is ideal because it reduces the amount of random accesses across the disk. However, for an SSD, a hash datastructure is generally better.

But also, the increase of memory has made tradeoffs a lot more worth it. At one point, the best thing you could do is sort your memory in some way (perhaps a tree structure) so that searching for items is faster. That is in-fact built into C++'s `map`. But now, a hash map will eat a bit more memory, but the O(1) lookup is much more ideal in general for storing lookups.

Even when we talk about the way memory allocation works, we see that different tradeoffs have been made than would be without a lot of extra memory.

State of the art allocators use multiple arenas and memory allocators to allow for multithreaded applications to allocate as fast as possible. That does mean you end up with wasted memory, but you can allocate much faster than you could in days of old. Without that extra memory headroom, you end up with slower allocation algorithms because wasting any space would be devastating. Burning the extra CPU cycles to find a location for allocation ends up being the right trade off.

Re: LT6502: A 6502-based homebrew laptop

#207
post #67

Earlier quoted context omitted.

> I remember using the web on 25mhz computers. It ran about as fast as it does today with a couple ghz. I know it’s a meme on HN to complain that modern websites are slow, but this is a perfect example of how completely distorted views of the past can get. No, browsing the web in the early 90s was slooow . Even simple web pages took a long time to load. As you said, internet connections were very slow too. I remember…

Browsing the web was slow, because the network was slow. It wasn't really because the desktop computers were slow. I remember our company having just a 64 kbit/s connection to the 'net, even as late as in 1997.. well, that was pretty good compared to the place where I was contracted to at the time, in Italy.. they had 19.2 kbit/s. Really big sites could have something much better, and browsing the internet at their s…

Ya, what is crazy is that we were “serving” web pages over those kinds of lines.

Re: LT6502: A 6502-based homebrew laptop

#208

Earlier quoted context omitted.

For me the interesting alternate reality is where CPUs got stuck in the 200-400mhz range for speed, but somehow continued to become more efficient. It’s kind of the ideal combination in some ways. It’s fast enough to competently run a nice desktop GUI, but not so fast that you can get overly fancy with it. Eventually you’d end up OSes that look like highly refined versions of System 7.6/Mac OS 8 or Windows 2000, whic…

My alternate reality "one of these days" projects is to have a RISC-V RV32E core on a small FPGA (or even emulated by a different SOC) that sits on a 40- or 64-pin DIP carrier board, ready to be plugged into a breadboard. You could create a Ben Eater-style small computer around this, with RAM, a UART, maybe something like the VERA board from the Commander X16... It would probably need a decent memory controller, sinc…

Have you thought about building a RISC-V “fantasy computer” core for the MiSTer FPGA platform? https://github.com/MiSTer-devel/Wiki_MiSTer/wiki

From a software-complexity standpoint, something like 64 MiB of RAM possibly even 32 MiB for a single-tasking system seems sufficient.

Projects such as PC/GEOS show that a full GUI OS written largely in assembly can live comfortably within just a few MiB: https://github.com/bluewaysw/pcgeos

At this point, re-targeting the stack to RISC-V is mostly an engineering effort rather than a research problem - small AI coding assistants could likely handle much of the porting work over a few months.

Re: LT6502: A 6502-based homebrew laptop

#209
post #114

Earlier quoted context omitted.

The 6502 doesn't have separate io addresses so you need to fit all devices in a 64k space, not just ROM.

Atari 130XE used bank switching to handle more memory along with the IO-reserved memory (i.e. you had an address $D301 where you would change bits for the memory bank, and it would redirect $4000 – $7FFF to another bank in the extended memory)

Yeah the Commodore 64 did something similar. I love that era of hardware.

Re: LT6502: A 6502-based homebrew laptop

#210

Earlier quoted context omitted.

> What killed that balance wasn't raw speed, it was cheap RAM. Once you could throw gigabytes at a problem, the incentive to write tight code disappeared. Electron exists because memory is effectively free. I dunno if it was cheap RAM or just developer convenience. In one of my recent comments on HN ( https://news.ycombinator.com/item?id=46986999 ) I pointed out the performance difference in my 2001 desktop between a…

> Had processor speeds not increased at that time, Java would have been relegated to history, along with a lot of other languages that became mainstream and popular (Ruby, C#, Python)[1]. I'd go look at the start date for all these languages. Except for C#, which was a direct response to the Sun lawsuit, all these languages spawned in the early 90s. Had processor speed and memory advanced slower, I don't think you se…

> I'd go look at the start date for all these languages. Except for C#, which was a direct response to the Sun lawsuit, all these languages spawned in the early 90s.

I don't understand your point here - I did not say those languages came only after 2000, I said they would have been relegated to history if they didn't become usable due to hardware increases.

Remember that Java was not designed as a enterprise/server language. Sun pivoted when it failed at its original task (set top boxes). It was only able to pivot due to hardware performance increases.

Post reply on HN