| Clazz.declarePackage ("JU"); | |
| c$ = Clazz.decorateAsClass (function () { | |
| this.cd = null; | |
| this.magicNumbers = null; | |
| this.uniqueID16 = null; | |
| this.revNumber = 0; | |
| this.verNumber = 0; | |
| this.sectorPower = 0; | |
| this.shortSectorPower = 0; | |
| this.unused = null; | |
| this.nSATsectors = 0; | |
| this.SID_DIR_start = 0; | |
| this.minBytesStandardStream = 0; | |
| this.SID_SSAT_start = 0; | |
| this.nSSATsectors = 0; | |
| this.SID_MSAT_next = 0; | |
| this.nAdditionalMATsectors = 0; | |
| this.MSAT0 = null; | |
| Clazz.instantialize (this, arguments); | |
| }, JU, "CompoundDocHeader"); | |
| Clazz.prepareFields (c$, function () { | |
| this.magicNumbers = Clazz.newByteArray (8, 0); | |
| this.uniqueID16 = Clazz.newByteArray (16, 0); | |
| this.unused = Clazz.newByteArray (10, 0); | |
| this.MSAT0 = Clazz.newIntArray (109, 0); | |
| }); | |
| Clazz.makeConstructor (c$, | |
| function (compoundDocument) { | |
| this.cd = compoundDocument; | |
| }, "JU.CompoundDocument"); | |
| Clazz.defineMethod (c$, "readData", | |
| function () { | |
| try { | |
| this.cd.readByteArray (this.magicNumbers, 0, 8); | |
| if ((this.magicNumbers[0] & 0xFF) != 0xD0 || (this.magicNumbers[1] & 0xFF) != 0xCF || (this.magicNumbers[2] & 0xFF) != 0x11 || (this.magicNumbers[3] & 0xFF) != 0xE0 || (this.magicNumbers[4] & 0xFF) != 0xA1 || (this.magicNumbers[5] & 0xFF) != 0xB1 || (this.magicNumbers[6] & 0xFF) != 0x1A || (this.magicNumbers[7] & 0xFF) != 0xE1) return false; | |
| this.cd.readByteArray (this.uniqueID16, 0, 16); | |
| this.revNumber = this.cd.readByte (); | |
| this.cd.readByte (); | |
| this.verNumber = this.cd.readByte (); | |
| this.cd.readByte (); | |
| var b1 = this.cd.readByte (); | |
| var b2 = this.cd.readByte (); | |
| this.cd.isBigEndian = (b1 == -1 && b2 == -2); | |
| this.sectorPower = this.cd.readShort (); | |
| this.shortSectorPower = this.cd.readShort (); | |
| this.cd.readByteArray (this.unused, 0, 10); | |
| this.nSATsectors = this.cd.readInt (); | |
| this.SID_DIR_start = this.cd.readInt (); | |
| this.cd.readByteArray (this.unused, 0, 4); | |
| this.minBytesStandardStream = this.cd.readInt (); | |
| this.SID_SSAT_start = this.cd.readInt (); | |
| this.nSSATsectors = this.cd.readInt (); | |
| this.SID_MSAT_next = this.cd.readInt (); | |
| this.nAdditionalMATsectors = this.cd.readInt (); | |
| for (var i = 0; i < 109; i++) this.MSAT0[i] = this.cd.readInt (); | |
| } catch (e) { | |
| if (Clazz.exceptionOf (e, Exception)) { | |
| System.out.println (e.toString ()); | |
| return false; | |
| } else { | |
| throw e; | |
| } | |
| } | |
| return true; | |
| }); | |