Welcome to the bleeding edge of processor design
(or "Let's get gory with JavaScript")
YASEP means "Yet Another Small Embedded Processor".
It is a 32-bit embedded controller (or big microcontroller) that I have imagined,
in parallel (and sometimes in contradiction) with the F-CPU project.
My first goal is to design something so simple that I can
develop it alone, with very little means and efforts.
My other goal is to enable anybody, not just VHDL and CPU architecture gurus,
but also computer hobbyists or even students,
to understand, use and even participate in this project.
The YASEP's philosophy is to make everything so dumb simple
(often by choosing unusual methods) that we can concentrate on the real
issues of CPU development.
So YASEP exists in the form of a package
that is not just a simulator, an assembler, a disassembler,
a manual, a development tool, it is all that and it will be much more !
Every part is integrated in the others (and vice versa),
so the whole is (will be) coherent, easy to use and quick to develop.
The only requirement is to use Firefox
(or any other Gecko-based browser) :
this all-in-one project heavily relies on Mozilla's JavaScript engine.
Supporting IE or others would be counter-productive.
Happy clicking !
yg
YASEP websites :
-
The YASEP has its own website : yasep.org. You are probably reading this there,
but some mirrors exist (like at seul.org) or might appear.
-
A blog now exists to provide less-technical informations and feedback.
The resources of this site/package :
Download
-
The whole directory tree (about 174KB) is available for your
download/local/offline pleasure. You can test the YASEP at home, and play
with the source code at will.
Description, documentation and references (/docs directory)
-
The general introduction to the YASEP must be read.
It contains most rationales for the design, and a description of the core's architecture. (ok)
-
If you want to develop sofware with YASEP, you'll want to read the
instruction set overview too. (ok)
-
The assembly langage manual explains how to write YASEP instructions
for the JavaScript assembler. (ok, some flags are missing though)
-
The interactive opcode map of the YASEP. (ok)
You can reach a specific opcode from another page, for example :
SHH.
Some handy statistics are also generated on the fly
(aliases,
form usage and
flag usage)
-
The Interactive Assembler is a simple form
that lets you assemble single instructions. It's very handy for testing.
It is now exported to other windows, like this :
add d0 d1
and it also provides disassembly of single opcodes :
A8E2F5EBh (ok)
-
The original text-only draft of the (old) VSP.
Most details are outdated so please refer to the above first links in priority.
The pages of the Instruction Set Manual of the YASEP (/ISM directory)
The description of an individual opcode (like "ADD")
can be accessed from many documents, for example by clicking on the corresponding
name in the interactive opcode map
or in the floating assembler window. (ok but more examples would be great)
-
The Opcode autotest is now available.
This page exercises the disassembler with the assembler's output, seeking inconsistencies.
(ok)
-
The Execution Units can be explored manually. (ok)
Various early clickodromes, prototypes and sandboxes (/test directory)
Others
-
The /JScore directory contains JavaScript files for the YASEP core, like all the assembly,
definitions and small utilities to make the simulator tick, without communication with any user interface.
Some parts will be exported/recoded to C for a future fast simulator (able to boot an early OS for example).
-
The /JSgui directory contains JavaScript files for the Graphical User Interface
in order to keep it separated from the real core files. This is were you'll find language and platform-dependent code.
-
The changes.txt keeps the track of the major changes applied to the files.
Notes :
- Please keep in mind that this work is constantly in progress, the files change often and bugs appear and disappear without prior notice.
- Check the changes.txt file for the latest changes, ongoing ideas, known bugs and missing features.
- All these files are (C) Yann Guidon 2002-2008 and are only provided for the visitor's fun.
- These pages are barely W3C-compliant, I just want them to work under Firefox. I'm an electronician, not a web designer !
- Thanks to all people who have helped (directly or indirectly) with code, comments and insight