package js.tinyvm.io; import java.io.IOException; import java.io.OutputStream; /** * Writes lo-byte first, hi-byte last. In longs, hi-word goes first, but each * word is written as though with writeU4. */ public class LEByteWriter extends ByteWriter { public LEByteWriter (OutputStream stream) { super(stream); } // // specific write order // public void writeU1 (int aByte) throws IOException { // debug(1, aByte); write(aByte); } public void writeU2 (int aShort) throws IOException { // debug(2, aShort); write((aShort >>> 0) & 0xFF); write((aShort >>> 8) & 0xFF); } public void writeU4 (int aInt) throws IOException { // debug(4, aInt); write((aInt >>> 0) & 0xFF); write((aInt >>> 8) & 0xFF); write((aInt >>> 16) & 0xFF); write((aInt >>> 24) & 0xFF); } public void writeU8 (long aLong) throws IOException { // debug(8, aLong); write((int) ((aLong >>> 32) & 0xFF)); write((int) ((aLong >>> 40) & 0xFF)); write((int) ((aLong >>> 48) & 0xFF)); write((int) ((aLong >>> 56) & 0xFF)); write((int) ((aLong >>> 0) & 0xFF)); write((int) ((aLong >>> 8) & 0xFF)); write((int) ((aLong >>> 16) & 0xFF)); write((int) ((aLong >>> 24) & 0xFF)); } }