The Sedici Toolkit

Copyright 2009, Mark S. Burrell

What Is The Sedici Toolkit?

Downloading The Sedici Toolkit

What Is The Sedici toolkit?

It's now over six years since the last version of JASPer was produced.  JASPer has been a marvelously useful tool for teaching computer architecture and organisation and it is the main star of 'Fundamentals of Computer Architecture', but certain aspects of its design always niggled me.

Most of all I disliked the fact that some instructions worked on 8-bit data while others worked on 16-bit data.  This was all down to JASPer's roots in previous educational (and real) processors, and it drove me (and many number of students) batty. I also disliked the fact that the default installed memory size was only 0x1000 words and that I had (at the last minute, so to speak) compromised the simplicity of the ALU by adding in MUL, DIV and MOD operands (a cheat that enabled me to write useful programs for the compiler that would run relatively quickly). Lots of other things were on the 'would like to change' list too, like adding more scratch registers to begin to make the processor almost useful while retaining its simple educational functionality.

Over the years a successor to JASPer has formed in my brain.  It is called Sedici ('sixteen' in Italian), as it is a simple 16-bit processor.

Improvements in the Sedici processor
  • 8 scratch registers, D0 to D7, replacing A and B scratch registers
  • A longer IR (32-bits) - stores the opcode, register references for instructions (more later) and a 16-bit operand
  • An instruction set with 32-bit instructions (i.e. two memory reads to fetch a complete instruction - a bit more complex but way easier to understand)

Other things in the works or ready for testing
  • One single I/O library for assembly programming (still in need of subroutines to perform MUL, DIV and MOD now that the ALU can't do that)
  • A working assembler for Sedici
  • A proof of concept prototype (and unfinished) compiler based on an EBNF description of the language
  • A firmware program to help you write firmware

Longer term plans
  • Also intend to update the interrupt mechanism to have layered interrupts.

The package is available for download from :

Downloading The Sedici Toolkit

Files For Download
Installing The Sedici Toolkit

Files For Download

File Version Description 0.1

The Sedici Toolkit - This zip file contains all of the files listed in the readme.txt.

sedici-src.zip0.1C# Source code for the Sedici toolkit - available under the BSD licence.


Installing The Sedici Toolkit

The Sedici toolkit is distributed as a zipped archive, and you need to unzip this archive into a directory on your computer. None of the Sedici tools make use of the Windows registry, and so no further installation is necessary, apart from you may set up any desktop icons or menu options as you prefer. You can additionally set up an environment variable called SEDICI, and update your path as listed below - but this is only really required if you intend to make use of the Sedici assembler or Console. If you do wish to update your path and use the SEDICI environment variable then place the following lines in your autoexec.bat file (this assumes you have installed the SEDICI toolkit at the location c:\sedici\ :

set path=%path%;c:\sedici\
set SEDICI=c:\sedici\


If you have a problem, or want further information, simply email