mirror of
https://github.com/JanNeuendorf/SVC16.git
synced 2025-06-03 01:50:18 +00:00
Added a .typst document for the specification
This commit is contained in:
parent
07106fb832
commit
4e5159ebfa
3
.gitignore
vendored
3
.gitignore
vendored
@ -19,3 +19,6 @@ target/
|
||||
# and can be added to the global gitignore or merged into this file. For a more nuclear
|
||||
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
|
||||
#.idea/
|
||||
|
||||
# So we do not commit the compiled specifications for every small change
|
||||
*.pdf
|
||||
|
41
specification/specification.typst
Normal file
41
specification/specification.typst
Normal file
@ -0,0 +1,41 @@
|
||||
#set page(
|
||||
paper:"a4",
|
||||
background: rotate(24deg,
|
||||
text(48pt, fill: rgb("FFCBC4"))[
|
||||
*WORK IN PROGRESS*
|
||||
]
|
||||
))
|
||||
|
||||
= SVC16: A Simple Virtual Computer
|
||||
|
||||
== Motivation and Goals
|
||||
|
||||
We want to fully specify a very simple virtual computer that can be emulated.
|
||||
The goal is to recreate the feeling of writing games for a system with very tight hardware constraints without having to deal with the complicated reality of real retro systems.
|
||||
It should be simple to understand every instruction, to write machine code that runs on it, and to write a compiler for it.
|
||||
The instruction set and the design in general are in no way meant to resemble something that would make sense in real hardware.
|
||||
It is also not intended to be as simple and elegant as it could possibly be. This might make it easier to explain but harder to develop for.
|
||||
Since learning about assemblers and compilers is the point, we provide no guidelines on how to build the programs.
|
||||
|
||||
=== Reproducibility
|
||||
|
||||
The biggest secondary goal is to design a system that behaves the same everywhere.
|
||||
The question of how the emulation is run should never matter for the person writing the program or game.
|
||||
This means there can be no features that might only available in one implementation.
|
||||
It also means, that the performance characteristics must be the same.
|
||||
An emulator can either run the system at the intended speed, or it can not.
|
||||
|
||||
|
||||
|
||||
== General Principles
|
||||
|
||||
== The Simulated System
|
||||
=== Screen and Colors
|
||||
=== Input
|
||||
=== Synchronization
|
||||
|
||||
|
||||
== Instruction Set
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user