mirror of
https://github.com/JanNeuendorf/SVC16.git
synced 2025-06-06 03:25:28 +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
|
# 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.
|
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
|
||||||
#.idea/
|
#.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