
archival of S2 

There are many S2 variants.  The original one uses flags.  The 'standard' one is more modern and uses registers to store the result of logic instructions.  The 'teaching' one simplified instruction encoding (down to only one format).  There are several instruction extension as well. They are mostly for 'interrupt' and support for operating system. 

The latest is s23 which has one instruction format.  The most recent is S21i with interrupt and S30 a multicore version.  Another multicore is S2 in AES-project.  I should start to archive them and plan the future development.

Plan

I want to have a version that is complete. The version that has all necessary instructions in actual encoding (and not in 'trap').  This is single core version with interrupt and instructions necessary to implement operating system.  It will be use to teach courses that required assembly language.    

I should work with S2.1 (s21i) with update 'trap' to have one argument (as in s23), include ei, di.  Perhaps change the instruction name, 'savr/resr' are really push/pop multiple so they should be 'pushm/popm'. 
 
The newest version is the multicore. I need to make update by implementing semaphore in assembly language.  The name 'cpuid' may be change to 'cid' (core id).  

As an exercise in programming, I should rewrite assembler/simulator in Python. However, to make this tool useful, it should be use via a mobile browser (with iPad in mind), so perhaps it is more appropriate to do it in Javascript.

Prabhas
23 Apr 2016


