@@ -0,0 +1,2119 @@
+package com.davidmogar.nji;%0A%0Apublic class Stack %7B%0A%0A    private byte%5B%5D stack;%0A    private int lastPosition;%0A%0A    public Stack(int size) %7B%0A        stack = new byte%5Bsize%5D;%0A        lastPosition = size;%0A    %7D%0A%0A    public char getCharacter(int pointer) %7B%0A        if (pointer %3E 0 %7C%7C pointer %3C lastPosition) %7B%0A            throw new IndexOutOfBoundsException(%22Pointer out of range%22);%0A        %7D%0A%0A        return (char)(stack%5Bpointer%5D & 0xff);%0A    %7D%0A%0A    public int getInteger(int pointer) %7B%0A        if (pointer %3E 0 %7C%7C pointer %3C lastPosition) %7B%0A            throw new IndexOutOfBoundsException(%22Pointer out of range%22);%0A        %7D%0A%0A        return ((stack%5Bpointer%5D %3C%3C 8) & 0xff) %7C (stack%5Bpointer + 1%5D & 0xff);%0A    %7D%0A%0A    public float getFloat(int pointer) %7B%0A        if (pointer %3E 0 %7C%7C pointer %3C lastPosition) %7B%0A            throw new IndexOutOfBoundsException(%22Pointer out of range%22);%0A        %7D%0A%0A        int integer = (stack%5Bpointer%5D & 0xff)%0A                %7C (stack%5Bpointer + 1%5D & 0xff)%0A                %7C (stack%5Bpointer + 2%5D & 0xff)%0A                %7C (stack%5Bpointer + 3%5D & 0xff);%0A%0A        return Float.intBitsToFloat(integer);%0A    %7D%0A%0A    public void setByte(byte value, int pointer) %7B%0A        if (pointer %3E 0 %7C%7C pointer %3C lastPosition) %7B%0A            throw new IndexOutOfBoundsException(%22Pointer out of range%22);%0A        %7D%0A%0A        stack%5Bpointer%5D = value;%0A    %7D%0A%0A    public void setInteger(int value, int pointer) %7B%0A        if (pointer - 1 %3E 0 %7C%7C pointer %3C lastPosition) %7B%0A            throw new IndexOutOfBoundsException(%22Pointer out of range%22);%0A        %7D%0A%0A        stack%5Bpointer%5D = (byte)(value & 0xff);%0A        stack%5Bpointer - 1%5D = (byte)(value %3E%3E 8 & 0xff);%0A    %7D%0A%0A    public void setFloat(float value, byte pointer) %7B%0A        if (pointer - 3 %3E 0 %7C%7C pointer %3C lastPosition) %7B%0A            throw new IndexOutOfBoundsException(%22Pointer out of range%22);%0A        %7D%0A        int bits = Float.floatToIntBits(value);%0A        stack%5Bpointer%5D = (byte)(bits & 0xff);%0A        stack%5Bpointer - 1%5D = (byte)((bits %3E%3E 8) & 0xff);%0A        stack%5Bpointer - 2%5D = (byte)((bits %3E%3E 16) & 0xff);%0A        stack%5Bpointer - 3%5D = (byte)((bits %3E%3E 24) & 0xff);%0A    %7D%0A%0A%7D%0A

Add an initial implementation of the stack