binutils-gdb/sim/example-synacor
Mike Frysinger 52d37d2c91 sim: drop arch-specific config.h
All of the settings in here are handled by the common top-level
config.h, so drop the individual arch-config.h files entirely.

This will also help guarantee that we don't add any new arch
specific defines that would affect common code which will help
with the effort of unifying them.
2021-06-16 00:22:53 -04:00
..
aclocal.m4 sim: overhaul alignment settings management 2021-06-12 21:14:50 -04:00
ChangeLog sim: drop arch-specific config.h 2021-06-16 00:22:53 -04:00
configure sim: drop arch-specific config.h 2021-06-16 00:22:53 -04:00
configure.ac sim: overhaul alignment settings management 2021-06-12 21:14:50 -04:00
interp.c sim: overhaul alignment settings management 2021-06-12 21:14:50 -04:00
Makefile.in
README
README.arch-spec
sim-main.c
sim-main.h sim: fully merge sim_state_base into sim_state 2021-05-17 01:05:08 -04:00

= OVERVIEW =

The Synacor Challenge is a fun programming exercise with a number of puzzles
built into it.  You can find more details about it here:
https://challenge.synacor.com/

The first puzzle is writing an interpreter for their custom ISA.  This is a
simulator for that custom CPU.  The CPU is quite basic: it's 16-bit with only
8 registers and a limited set of instructions.  This means the port will never
grow new features.  See README.arch-spec for more details.

Implementing it here ends up being quite useful: it acts as a simple constrained
"real world" example for people who want to implement a new simulator for their
own architecture.  We demonstrate all the basic fundamentals (registers, memory,
branches, and tracing) that all ports should have.