A very simple SoC with what appears to be a 6502 clone suspiciously missing anything to do with the Y register. Stack is also in a non standard place (the top half of the zero page), probably due to only having those 128 bytes of RAM total and not wanting to give up zero page access.
"The SPC81A 8-bit microprocessor is a high performance processor equipped with Accumulator, Program Counter, X Register, Stack pointer and Processor Status Register (this is the same as the 6502 instruction structure)." Well not exactly haha. Yeah, if you look at the source code. No Y register related instructions!
I thought about it and you could get used to writing code without the Y register pretty quickly...
The actual instruction set manual for SunPlus 6502 CPUs (covers several but you can see the low end doesn't have Y instructions)
I read your comment out of context (actually in the context of programming an NES) and tried to figure out how the heck you’d live without a Y register. I’m not saying it’s not possible, but if I were writing a game It’d be a pain. Obviously it doesn’t Apply here.
Did anyone ever pay more than store prices for a Furby? My mom only bought us expensive toys if they would last and she deemed the Furby to be too much of a gimmick. I've never heard of people not being able to buy a Furby.
A Furby without fur even looks like a Terminator. Sort of. Similar vibe at least. There is definitely a non-zero chance that circuitbent Furbies will enslave humanity and bring about its end.
Sure. Makes me wonder how easy this code could be ported to run on the Commodore 64 though. You'd need a cartridge with the TI voice synthesis chip used in the furby of course, but it'd be doable I think. It's interesting code to read through.
> I'm not going to lie I spent a lot of money on furbies.
Oh my...
If anyone else isn't clear on what circuit bending is.
From Wikipedia:
> Circuit bending is the creative, chance-based customization of the circuits within electronic devices such as low-voltage, battery-powered guitar effects, children's toys and digital synthesizers to create new musical or visual instruments and sound generators.
Mod list #5: "When hungry is low enough to trigger sick counter, each sensor deducts two instead of one for each hit." He made it get sicker quicker when it was on its death bed??
It is broken into a few different files by function, but this should get you there. Note that it appears that the original document omitted a few things.
I don't know why, but stuff like this (e.g. the Apollo moon lander assembly code) is really interesting to me. I think it's because I wish I had this kind of knowledge and skill. It seems daunting to wrap my head around it and become proficient.
It really isn't that hard once you have to do it, as long as you have the time to get a test / feedback loop with the client going. They probably had a dozen test versions of the Furbies for whoever was doing QA to play around with.
With the moon lander code, they surely had a very good specification of what it was supposed to do.
I worked with the second case once, some IoT-ish sensors that would be buried in the ground in greenhouses, to monitor soil data. The business logic was 90% specified, and of course, the remaining 10% took 50% of the time. Before you ask why we didn't do it in C at the very least, we had a very solid codebase from the previous products. Sure, we had to port things from a Toshiba microcontroller to an STM8, different architectures, but since we were working with 8 or 16 bits inputs it was kinda trivial to test every single possible input to make sure things matched.
My only previous experience with assembly at a Computer History college course where we coded for the PDP-11, the 6502 and a stack machine. So yeah, not a lot. Winging it while admitting you don't know what you're doing can get you decently far in some circumstances.
Don't overrate the skill of writing assembly, sure. But don't underestimate the software craftsmanship. Looking at the code, it's obviously expertly written. I'm not sure if I've ever had the pleasure of working with such a well thought out and documented code base.
And don't underestimate the skill of putting together the entire product: being able to create behavior that is relatably live-like for millions of people on such a limited Plattform may not be Apollo-Level genius but is exceptional nontheless.
You can watch a Computer History Museum interview with him here. [2]
[1] http://www.atariprotos.com/2600/software/qbert/qbert.htm
[2] https://www.youtube.com/watch?v=7U9eqBzmvZw
https://archive.org/details/SPC81A/mode/1up
A very simple SoC with what appears to be a 6502 clone suspiciously missing anything to do with the Y register. Stack is also in a non standard place (the top half of the zero page), probably due to only having those 128 bytes of RAM total and not wanting to give up zero page access.
I thought about it and you could get used to writing code without the Y register pretty quickly...
The actual instruction set manual for SunPlus 6502 CPUs (covers several but you can see the low end doesn't have Y instructions)
https://www.manualslib.com/products/Sunplus-Cpu6502-8692958....
Why don't people relate bitcoin to Furbies? It's always tulips or Beanie Babies. Crypto is much more like furbies.
Few people are willing to rehash old discussions - so few people want to discuss why Bitcoin is/isn’t like tulips.
I remember these little critters and I feel much warmer towards them after seeing the human notes of the code author(s).
Unexpectedly interesting.
https://www.reddit.com/r/TIHI/comments/gid2pj/thanks_i_hate_...
https://www.tiktok.com/t/ZTRg21Mh4/
It's actually a SPC81A [1], which supports about only half of the 6502 opcodes. It is also used in some HP calculators.
[1] https://datasheet.datasheetarchive.com/originals/library/Dat...
Oh my...
If anyone else isn't clear on what circuit bending is.
From Wikipedia:
> Circuit bending is the creative, chance-based customization of the circuits within electronic devices such as low-voltage, battery-powered guitar effects, children's toys and digital synthesizers to create new musical or visual instruments and sound generators.
Also seems straight out of Disco Elysium.
Mod list #5: "When hungry is low enough to trigger sick counter, each sensor deducts two instead of one for each hit." He made it get sicker quicker when it was on its death bed??
And everything on the mod list is hilarious.
https://github.com/charlesUnixPro/furby
With the moon lander code, they surely had a very good specification of what it was supposed to do.
I worked with the second case once, some IoT-ish sensors that would be buried in the ground in greenhouses, to monitor soil data. The business logic was 90% specified, and of course, the remaining 10% took 50% of the time. Before you ask why we didn't do it in C at the very least, we had a very solid codebase from the previous products. Sure, we had to port things from a Toshiba microcontroller to an STM8, different architectures, but since we were working with 8 or 16 bits inputs it was kinda trivial to test every single possible input to make sure things matched.
My only previous experience with assembly at a Computer History college course where we coded for the PDP-11, the 6502 and a stack machine. So yeah, not a lot. Winging it while admitting you don't know what you're doing can get you decently far in some circumstances.
And don't underestimate the skill of putting together the entire product: being able to create behavior that is relatably live-like for millions of people on such a limited Plattform may not be Apollo-Level genius but is exceptional nontheless.