The FSY8 Fantasy Microcontroller
The FSY8 (pronounced fizzy-8) is a "fantasy microcontroller" inspired by the "fantasy console" movement.
It started as a thought experiment for my thesis work, but sort of took on a life of its own.
... because it's got 8 pins.
Yes -- well, basic specs at least. A formal spec sheet is being drawn up, but here's the basics:
And here's a block diagram:
Yes. The first web prototype now lives in this repository.
npm install
npm run devThen open the local Vite URL shown in the terminal.
For a production build:
npm run buildYou can also lint the app with:
npm run lintThis is a thought experiment first and foremost. It is an exercise in systems theory / platform studies. When I started studying hardware systems platforms, one of the first questions I asked myself was "what is a system platform?" Unexpectedly, the answer came from lexaloffle games -- specifically the PICO-8:
The harsh limitations of PICO-8 are carefully chosen to be fun to work with,
encourage small but expressive designs and hopefully to give PICO-8 cartridges
their own particular look and feel. - PICO-8 Official Website
For me, this sold the concept that a "platform" is simply a collection of restrictions applied to a medium - a collection of system specifications that is agreed upon by creators working within that "platform". Originally these restrictions were determined by hardware constraints -- however, given the plethora of readily available computing resources on modern computing platforms, the standard creator seldom has to work against these constraints. This is my interpretation of the fantasy console genre -- a set of constraints agreed upon by those who work within the platform.
Long story short -- I thought, "hey, that's a great idea! What if the platform was a microcontroller, though?"
... although, I have to acknowledge that ZACHTRONICS (http://www.zachtronics.com/shenzhen-io/) really beat me to the punch on this.
The web app currently ships with an illustrative simulator rather than a formal instruction-set emulator. It models the documented hardware at a high level: ROM, RAM, clocking, I/O pins, and serial activity.
The next natural step is still a proper instruction set and assembly interpreter. The current interface is meant to make that future work easier to see, test, and discuss.
Yes please. Send me a pull request or open an issue! You've probably got better ideas and are smarter than me.