This is a Java based compiler used to compile files for the JohnnySimulator by Peter Dauscher which aims to simulate a simplified von Neumann computer but lacks a real assembly language.
Simply download the JohnnyScript.java file from the src folder and compile it as you would with any other java program.
javac JohnnyScript.java
Just call the compiled program with the path to the source file as an argument
java JohnnyScript sourcefile.jns
How to use instructions:
instruction value
Default JohnnySimulator macro instructions are supported:
- TAKE
- ADD
- SUB
- SAVE
- JMP
- TST
- INC
- DEC
- NULL
- HLT
Please refer to the JohnnySimulator documentation to find out what the purpose of those instructions is.
Valid values are addresses, variables and for the JMP instruction jump points (see below).
Instructions are not case-sensitive
JohnnyScript can be commented with two leading slashes "//" like so:
// This is a comment
How to define a variable:
#name integer
How to reference a variable:
instruction #name
The variable can be named any way you like but use of special characters is discouraged.
Variable names have to be unique
Variables can contain an integer ranging from 0 to 999 (JohnnySimulator limitation).
Variable names are case-sensitive
How to define a jump point:
:name
How to jump to this point:
JMP name
Similar to variables, the jump points can also be named in any way and have to be unique. The name is also case-sensitive
The compiled ram code is split into variables and instructions with all variables at the beginning of the code. The compiler automatically generates a line zero which is used to jump over all variables to the first instruction.