Laptop Based on 6502 CPU

(maddox.pro)

145 points | by nanochess 3 days ago

19 comments

  • bugake 2 hours ago
    The 6502 is so primitive that it runs on an Atari equipped with 128 bytes of RAM.

    Yes, 128 bytes. Used for code, data, video, and everything else.

    (But it can address 64 KB)

    It is so primitive that it is unable to multiply integers. If you want to multiply, you have to write your own algorithm.

    • t0mek 1 hour ago
      I assume you're talking about the Atari 2600 console (VCS), which uses a limited version of that CPU, called 6507. It has the addressing space reduced to 16 KB.

      This machine indeed has 128 bytes of RAM, but the code and data live on the cartridges, which can include up to 64 KB of ROM (exposing 4 KB at a time, with bank switching). Also, graphics is created on the fly ("racing the beam") at TV display, so there's no need to spend precious RAM on the framebuffer.

      In comparison to the later constructions based on the 6502, like NES or C64, it was certainly not an easy platform to develop games, but not as hard as your comment is suggesting.

      • bugake 54 minutes ago
        The very idea of "racing the beam" is madness distilled. How do you draw without a framebuffer and keep track of everything's position using just 128 bytes of RAM? This comment alone uses more RAM than that.
        • creshal 27 minutes ago
          All the code is kept in the rom, as are all the assets. So you only need to track sprites that move unpredictably, and the average 2600 game had very few of those - pacman, space invaders, etc have very few actice objects, and most of them are strictly constrained in how they can move.
          • ButlerianJihad 14 minutes ago
            I don't know about Space Invaders, but Pac-Man on the 2600 used incredible hacks that were widely criticized, but essential to cramming the spirit of the game into that tiny cartridge and puny machine.

            Essentially, the 2600 gives the programmer 2 sprites only. One sprite is dedicated to drawing the Pac-Man main character, while the other takes the role of all four ghosts. That's right, simultaneously 1 sprite for 4 distinct ghosts, wherever they are on the screen.

            This singular sprite and the practice of "racing the beam" leads to a lot of flickering. I believe that the flickering is so severe that it impacts the collision detection, so that Pac-Man can slide right through a ghost in the right place and time.

            I owned a copy, of course, and it was just so sad to compare it with its daddy in the arcade cabinet. However, once Ms. Pac-Man rolled around, they had learned a lot of lessons, and made that one a rousing technical success.

    • eru 55 minutes ago
      > It is so primitive that it is unable to multiply integers. If you want to multiply, you have to write your own algorithm.

      That's a weird thing to say. There are a lot of otherwise quite sophisticated chips that don't do multiplication. Multiplication is a pretty high bar, so the 6502 coming in below isn't much of a surprise.

      • bugake 48 minutes ago
        I always thought multiplication was one of the most basic things a CPU should handle. Weren't computers invented to perform calculations? Even a pocket calculator could multiply. I assumed CPUs handled arithmetic and not much else. I didn't even learn about bit shifts until much later, and none of the programming languages I was taught ever introduced them.
        • eru 9 minutes ago
          You can ask your favourite LLM agent to give you an overview over earlier CPUs, including pocket calculators, with regards to multiplication. The x86 family of CPUs actually trace its lineage back to a desk calculator.

          For something more modern, have a look at how the basic variants of Risc-V don't include multiplication.

          A very basic pocket calculator might not have multiplication as an instruction, but multiply by running a simple multi-instruction program. That's how people multiplied on a 6502, too. (Similar also for calculation cosine or square-roots or logarithms: you run a little program.)

    • PostOnce 53 minutes ago
      And yet a million programs were written and sold for it, and it became legendary, and begat a computer revolution.

      It's so primitive that it can be understood.

      Relevant fun:

      https://monster6502.com/

      https://skilldrick.github.io/easy6502/

  • flopsamjetsam 10 hours ago
    https://codeberg.org/TechPaula/LT6502b

    Specs:

    * 65C02 running at 10MHz

    * 46KByte of user RAM

    * EhBASIC 22p2 with custom extensions

    * eWOZMON

    * Compact Flash for storage

    * Built in battery (7400mAh currently)

    * USB-PD Rechargable

    * 10.1" Screen with 1024x600 and 256 colours

    * WiFi Modem (based on this - https://github.com/dhansel/WifiModem)

    * nanoSwinSID for sound (as well as beeps)

    • mk_stjames 4 hours ago
      I'm trying to figure out the video part, there is a demo screen that is showing pretty high res in color, and this says 1024x600 and 256 colours- that is mighty impressive for a 6502, that is driving way more pixels that I ever saw in that era, so I was expecting there was some other chip being used as a screen buffer and graphics chip...

      but it looks like the LCD has to be bit banged by the CPU data bus directly? I see the 8 bit data bus is going straight to the LCD thru a buffer IC.

      I don't see where in the memory map there would even be enough space for a screen buffer that large to be located, so I take it you have to write you own graphics handling yourself and pick a spot in memory for it all?

      • forinti 16 minutes ago
        I'm guessing that that is just the spec for the hardware, not what the machine can actually use.
      • dannyobrien 3 hours ago
        I wondered the same thing, and it looks like it uses this CMOS-compatible high level TFT driver: https://www.raio.com.tw/en/RA8889.html with a character generator, geometry primitives, etc.
    • andai 5 hours ago
      "Let's see if it looks cool. It's very important that it looks cool!"

      Turns out it looks awesome. I wasn't expecting such a striking design.

    • Lio 2 hours ago
      Interesting spec. Why go for 48K of RAM and not at least 64K (the full address space without paging)?

      Back in the day 48K got used as a way of binning in the ZX Spectrum (Z80 based) to make use of cheap "bad" memory. Surely RAM prices aren't that crazy now? :P

      • xioxox 2 hours ago
        Wouldn't this be because the ROM is taking up address space and they don't have bank switching? One of the future goals is to copy the ROM and RAM and switch it out of the address space.
        • Lio 43 minutes ago
          My understanding was that Sinclare got to 48K using 8× 4116 + 8× 4532 chips where the 4532 was basically a 64K-bit 4164 where only half the chip worked.

          > One of the future goals is to copy the ROM and RAM and switch it out of the address space.

          Like the BBC Micro Sideways RAM system? Nice.

          https://en.wikipedia.org/wiki/Sideways_address_space

        • zimpenfish 1 hour ago
          That's how it was on the Spectrum, at least - it had 64k of RAM but the bottom 16K was permanently mapped to the ROM[0].

          Might have been interesting if they'd allowed you to page out the ROM to access the extra 16K - load a small routine from tape that contains your own tape loading routine, swap out the ROM, load the rest of your app, bob's your uncle. Would have needed some shenanigans to swap in the ROM on reset, obvs.

          [0] http://www.breakintoprogram.co.uk/hardware/computers/zx-spec...

  • donpdonp 9 hours ago
    Very interesting project. It'd be nice to see video of it in action and what use cases the author had in mind. A pic in a different post shows the 48k ram chip, and not far away is an SD card of 1 gigabyte - that's a dramatic contrast. The storage can hold the contents of ram 21,845 times over. If an 8GB laptop today had the equivalent storage, it would be a disk of 174TB.

    Browsing by tag 'lt6502b' gives other posts that have pictures of the motherboard. https://www.maddox.pro/?cat=65 (update: the codeberg link has all the relevant pics)

    • MomsAVoxell 5 hours ago
      In the retro world we’ve already had the incongruent “64k RAM vs 8GB Storage” conundrum to deal with for decades.

      My Oric Atmos with LOCI rig has every bit of software every developed for the Oric, ever, stored on its 8GB USB stick and literally has ~8GB left in storage. It used space is more like a rounding error at this point.

      I hope that changes, though! ;)

      Old computers never die - their users do!

      Paula’s intention, I believe, is to make computing approachable again - her many, many synthesizer designs encode a form of nostalgic whimsy for older technology, and she produced a full-scale CPU project using only logic chips for the purposes of education - and as I know she is a huge UFO (TV Series) fan, she’s got a fair bit of creative potential being applied to the alt-computing track of things.

      As a retro- nerd myself, I hope to see her laptop in action in real life some day. Would be awesome to see an Oric-1/Atmos ROM for it ..

    • userbinator 5 hours ago
      A pic in a different post shows the 48k ram chip, and not far away is an SD card of 1 gigabyte - that's a dramatic contrast

      Incidentally, cheap MP3/MP4 players in the last decade had a few hundred KB of RAM, an 8-bit CPU at a few dozen MHz, and a few GB of NAND flash: https://en.wikipedia.org/wiki/S1_MP3_player

      • ErroneousBosh 4 hours ago
        > an 8-bit CPU at a few dozen MHz

        The 80C51 is just never going away is it? I mean there's no reason for it to.

    • Rohansi 9 hours ago
      The 6502 can't actually address more than that. The flash controller built into modern SD cards are also going to be significantly more powerful than the 6502. And I'm surprised you can even buy SD cards that small still!
      • skissane 9 hours ago
        > The 6502 can't actually address more than that.

        Unless you use bank switching, which historically a lot of 6502 machines did use (e.g. Apple III/IIe/IIc, BBC Master 128, Commodore 128, Commodore CBM-II, etc)

      • MiroslavPokorny 4 hours ago
        Bank switching is how nearly all the major computers and consoles managed to address larger than 64k carts and memory.

        The C64 actually had 64K of ram, 4k of devices (graphics, sound etc) and 16K of ROM.

    • doubled112 9 hours ago
      That's a CompactFlash card. You often see them used in places where an IDE drive would have been.
  • Smith-7831 1 hour ago
    how much of the design is about making it usable today versus just seeing how far you can push the 6502. Either way, it's a fun project.
  • notorandit 4 hours ago
    While not "portable" in the common modern sense, we also had:

    Apple IIc (https://en.wikipedia.org/wiki/Apple_IIc)

    and it's younger and final brother Apple IIc Plus (https://en.wikipedia.org/wiki/Apple_IIc_Plus)

    • slfnflctd 5 minutes ago
      A neighbor of mine had an Apple IIc when I was a kid and I thought it was the coolest, most futuristic computer I'd ever seen. I was very envious. So many colors.

      Edit: Okay, I was actually thinking of the Apple IIgs, which came out 2 years later. Both a similar design, though, and much nicer looking than the older Apples.

  • weinzierl 10 hours ago
    Well, there was the Commodore SX 64. Not exactly lap sized but portable for sure.

    https://de.wikipedia.org/wiki/Commodore_SX-64

    • Cockbrand 5 hours ago
      Of course, is's great for executive poolside work, see also https://sm.pcmag.com/t/pcmag_uk/photo/c/commodore-/commodore...
      • codeulike 35 minutes ago
        While he's leaning forward peering at the tiny screen he's ideally placed to take a sip of that drink through the straw
      • bartvk 5 hours ago
        Great find, it looks kinda silly now. But back then, they must've sold more than one.
    • WillAdams 8 hours ago
      Not much later there was the Radio Shack Model 100, and a bit after that the Gateway portables, and of course, eventually the NEC Ultralite and eventually the Sharp PC-6220 (which was available under two other brands as well).

      Also, for those with deep pockets there were the GRiD laptops....

      • classichasclass 7 hours ago
        None of those are 6502-based, though. I think that's why OP referenced the SX-64.
    • kstrauser 10 hours ago
      It weighed 23 pounds. It was approximately as portable as a tower PC. You could schlep one around, but it'd get heavy after a while.
      • classichasclass 8 hours ago
        Beat the heck out of dragging a 1702, a 1541 and a C64 around, though. I have three and they made regular trips to vintage fests because they were easy to set up. They can easily be connected to more drives or a bigger screen. Their only major drawback, and this is a big one, is that you can fry the SID if you plug in the external monitor with the power on. I did that once to my horror, and so have others.
        • vidarh 2 hours ago
          I've only seen one in person and it was at one of the first The Gathering demo parties back in the 90's...
  • Neywiny 10 hours ago
    What an interesting layout for a mobile site. It had the archive and a bunch of other stuff before the post. I thought OP linked something wrong.
  • irdc 2 hours ago
    There's gotta be some reason she's not using a 65c816 but I can't think of one
    • ura_yukimitsu 2 hours ago
      The goal of that machine is clearly not performance, she's probably just using a chip she's fond of
  • discardable_dan 9 hours ago
    This is a cool project. The AI banner looks awful.
  • userbinator 5 hours ago
    Many of the cheap "educational toy laptops" which were somewhat common before "real" ones took over, also used a 6502-based SoC: https://github.com/davidgiven/vtech6502

    The Z80 has likewise experienced the same use: https://hackaday.io/project/166921-v-tech-genius-leader-prec...

  • burner420042 9 hours ago
    "Getting it to at least run BASIC" is a common theme with DIY enthusiasts. Why is that?
    • yjftsjthsd-h 8 hours ago
      It's traditional:) The original machines with simpler hardware largely converged to BASIC, so it's a nice benchmark for "is this a Real Computer™"
      • reaperducer 7 hours ago
        Hardware didn't really play a factor.

        Every machine ran BASIC. If your machine didn't, it was weird. For a while it seemed like BASIC was going to become the universal computer language.

        IBM even produced a computer that had both AP/L and BASIC built-in.

        • ErroneousBosh 4 hours ago
          > If your machine didn't, it was weird.

          Aha, step forward the Jupiter Ace...

    • pigeons 8 hours ago
      A lot of machines based on this CPU booted a ROM that ran a BASIC. It seems more of a challenge than running a Forth.
  • user3939382 10 hours ago
    A 6502 is capable of most actual workloads people have, whose profiles actually haven’t changed much. Almost all of our compute goes to GUI and rendering stacks that decorate our actual work.
    • tonyedgecombe 3 hours ago
      My first job was writing barcode printing software for the Apple II. One of my last jobs 42 years later was also related to printing barcodes.

      It sometimes seems that all we have done over that period is add layers and layers of complexity.

    • whartung 6 hours ago
      The superpower of the PC over the previous generation was an order of magnitude more memory.

      The machine itself was not necessarily faster, but the extra memory was a real game changer.

      Even segmented like on the 8086 was a better solution than the banking options on 8 bit hardware. The ‘86 segment registers were much more flexible.

      Long term, 640k may not have been enough, but in a text based environment, 640k is just so much more from both a data and code aspect to be really empowering.

      256k and Lotus 1-2-3 was much more capable than anything an Apple could do. Having much more room for more capable code aspect as well as richer and more data.

      You could do gymnastics with code overlays and data paging, but that was hard software to write and just painfully slow.

      Extra memory just made things that much better.

      • gsliepen 3 hours ago
        Are segments really more flexible? I wrote some 8086 assembly back in the day, and they are a pain in the ass to work with. Code that spans segments has exactly the same problems bank switched systems have. I think the main benefit of segments is that only the CPU needs to worry about the segments, whereas with (most if not all?) bank switched systems, the whole computer sees banks being switched, which is a problem for DMA.
    • yjftsjthsd-h 8 hours ago
      I favor simpler machines, but that seems a bit of a stretch. Most people would like to communicate over the internet without every intermediate hop seeing their traffic (so, their emails, their chats, their credit card number, ...), therefore they want TLS which I don't think is practical on a 6502? To say nothing of watching videos and listening to music.
      • stevekemp 8 hours ago
        I'd compare to a z80 with 64k of memory, which would be enough to run CP/M. That wouldn't allow TLS, or music playback, but it would allow wordperfect, turbo pascal, a bunch of old C-compilers, and a spreadsheet or two.

        I don't think anybody would use such a machine full-time, but with a radio and a cabin it would suffice for offline work.

        Of course there's no native CP/M for the 6502, but remakes have been made..

        • ochrist 4 hours ago
          That's not entirely true. A quick search turned up a few projects, e.g. this one: https://github.com/davidgiven/cpm65 (it's a port, so I would consider that to be 'native' rather than a 'remake')
        • tonyedgecombe 3 hours ago
          >or music playback

          We had record players for that, and Walkmans for when we were out and about.

        • ErroneousBosh 3 hours ago
          > I don't think anybody would use such a machine full-time, but with a radio and a cabin it would suffice for offline work.

          As late as 1997 I was repairing Amstrad PCWs that were still in Real Live Active Service on oil platforms.

          And then after that, I was reading those funny 3" disks in and converting them to WordPerfect.

          And then from WordPerfect to Word, a little later.

          Be the guy selling shovels I guess.

    • lukan 9 hours ago
      Those people you speak of, how big are their numbers all in all you think? And is that a subgroup of a subgroup?

      Because most people I know certainly have different workloads and need their rendering as part of the work, not to decorate it nicely.

      But for keeping a distraction free digital diary, it might be a nice device.

    • Grombobulous 8 hours ago
      Zoom calls?

      Maybe Bullshit Jobs was onto something, it seems that my entire work day consists of work decoration.

  • system7rocks 9 hours ago
    Here is what I get confused about...

    Surely a laptop prototype based on such a tested and well-worn CPU with 48K of RAM would be cool, but shouldn't it sip power? Like shouldn't it last for like months on a charge? Or am I revealing my very meager and outdated understanding of engineering with only a bachelor in computer science from like 2004?

    • Dwedit 8 hours ago
      It's gotta be integrated together (and possibly be at a smaller process size) before you get all the power savings. If you have a real 6502, it has no internal RAM or cache, and you need to send power back and forth to the RAM chips. (I presume it's SRAM, but it could also be PSRAM)

      If you ran a 6502 emulator on a cheap ARM SOC, it would be much lower power.

      • tonyedgecombe 3 hours ago
        There was no sleep mode on the 6502 so even an emulator would need to be running continuously.
    • generuso 6 hours ago
      There used to be small IBM PC compatible "palmtop" computers capable of running for many days on a pair of AA batteries. HP 200LX was pretty cool. I think it had 80C186 running at 10 MHz or thereabouts, with 1MB of RAM, monochrome graphic LCD and PCMCIA cards for storage. Norton Commander and Turbo C run on it without any problems.
    • oofbaroomf 9 hours ago
      The display also takes power, quite a lot actually - 2-5W
  • debo_ 10 hours ago
    When I saw the domain name, I thought this might be:

    https://basharchive.org/#s/Maddox

    • MomsAVoxell 5 hours ago
      It’s Paula Maddox, who has for decades now done all kinds of wild and wonderful projects - she is a synthesizer designer, her works resulted in the Modal Electronics company and its line of synths, prior to that she had her own cottage synth product line. She also designed a full-scale working CPU out of chips, an excellent education project.

      (Disclaimer: I’m a huge fan of her work, still get one of the original Monowave prototypes in my rack, I delight in seeing her projects come to fruition)

  • bozdemir 3 hours ago
    [flagged]
  • utopcell 8 hours ago
    [dead]
  • levicanskij 3 hours ago
    [flagged]
  • fatbitch 6 hours ago
    It’s not a laptop! It’s just a desktop in a ugly fat laptop-ishy case.