예제 #1
0
            private void _read()
            {
                _headerType = ((ZxSpectrumTap.HeaderTypeEnum)m_io.ReadU1());
                _filename   = KaitaiStream.BytesStripRight(m_io.ReadBytes(10), 32);
                _lenData    = m_io.ReadU2le();
                switch (HeaderType)
                {
                case ZxSpectrumTap.HeaderTypeEnum.Program: {
                    _params = new ProgramParams(m_io, this, m_root);
                    break;
                }

                case ZxSpectrumTap.HeaderTypeEnum.NumArray: {
                    _params = new ArrayParams(m_io, this, m_root);
                    break;
                }

                case ZxSpectrumTap.HeaderTypeEnum.CharArray: {
                    _params = new ArrayParams(m_io, this, m_root);
                    break;
                }

                case ZxSpectrumTap.HeaderTypeEnum.Bytes: {
                    _params = new BytesParams(m_io, this, m_root);
                    break;
                }
                }
                _checksum = m_io.ReadU1();
            }
예제 #2
0
 private void _read()
 {
     _numPatches = m_io.ReadU4le();
     _names      = new List <string>();
     for (var i = 0; i < NumPatches; i++)
     {
         _names.Add(System.Text.Encoding.GetEncoding("ASCII").GetString(KaitaiStream.BytesStripRight(m_io.ReadBytes(8), 0)));
     }
 }
예제 #3
0
 private void _read()
 {
     _ids    = new Identifiers(m_io, this, m_root);
     _iscta  = new CoarseTimestamp(m_io, this, m_root);
     _isctb  = new CoarseTimestamp(m_io, this, m_root);
     _jdatea = m_io.ReadS4be();
     _jdateb = m_io.ReadS4be();
     _istb   = new CoarseTimestamp(m_io, this, m_root);
     _isra   = m_io.ReadS4be();
     _isdec  = m_io.ReadS4be();
     _itchan = m_io.ReadS4be();
     _irmas  = m_io.ReadS4be();
     _revs   = m_io.ReadS4be();
     _iband  = new List <int>((int)(2));
     for (var i = 0; i < 2; i++)
     {
         _iband.Add(m_io.ReadS4be());
     }
     _irwav  = m_io.ReadS4be();
     _irespt = m_io.ReadS4be();
     _irecno = m_io.ReadS4be();
     _itpntr = m_io.ReadS4be();
     _ihist  = System.Text.Encoding.GetEncoding("ascii").GetString(KaitaiStream.BytesStripRight(m_io.ReadBytes(60), 32));
     _mhist  = new List <string>((int)(4));
     for (var i = 0; i < 4; i++)
     {
         _mhist.Add(System.Text.Encoding.GetEncoding("ascii").GetString(m_io.ReadBytes(74)));
     }
     _nruns  = m_io.ReadS4be();
     _siangl = new IllumAngle(m_io, this, m_root);
     _seangl = new IllumAngle(m_io, this, m_root);
     _sphase = m_io.ReadS4be();
     _iwtrns = m_io.ReadS4be();
     _itimch = m_io.ReadS4be();
     _xnrm   = m_io.ReadF4be();
     _scatim = m_io.ReadF4be();
     _timint = m_io.ReadF4be();
     _tempd  = m_io.ReadF4be();
     _data   = new List <float>((int)(256));
     for (var i = 0; i < 256; i++)
     {
         _data.Add(m_io.ReadF4be());
     }
 }
예제 #4
0
 private void _read()
 {
     _timestamp = m_io.ReadU4le();
     _offsetIdx = m_io.ReadU2le();
     _flags     = m_io.ReadU1();
     _name      = System.Text.Encoding.GetEncoding("ASCII").GetString(KaitaiStream.BytesTerminate(KaitaiStream.BytesStripRight(m_io.ReadBytes(25), 0), 0, false));
 }
예제 #5
0
 private void _read()
 {
     _magic       = m_io.EnsureFixedContents(new byte[] { 35, 79, 80, 76, 95, 73, 73, 35 });
     _instruments = new List <InstrumentEntry>((int)(175));
     for (var i = 0; i < 175; i++)
     {
         _instruments.Add(new InstrumentEntry(m_io, this, m_root));
     }
     _instrumentNames = new List <string>((int)(175));
     for (var i = 0; i < 175; i++)
     {
         _instrumentNames.Add(System.Text.Encoding.GetEncoding("ASCII").GetString(KaitaiStream.BytesTerminate(KaitaiStream.BytesStripRight(m_io.ReadBytes(32), 0), 0, false)));
     }
 }
예제 #6
0
 private void _read()
 {
     _name                 = System.Text.Encoding.GetEncoding("UTF-8").GetString(KaitaiStream.BytesStripRight(m_io.ReadBytes(8), 0));
     _virtualSize          = m_io.ReadU4le();
     _virtualAddress       = m_io.ReadU4le();
     _sizeOfRawData        = m_io.ReadU4le();
     _pointerToRawData     = m_io.ReadU4le();
     _pointerToRelocations = m_io.ReadU4le();
     _pointerToLinenumbers = m_io.ReadU4le();
     _numRelocations       = m_io.ReadU2le();
     _numLinenumbers       = m_io.ReadU2le();
     _characteristics      = m_io.ReadU4le();
 }
예제 #7
0
 private void _read()
 {
     _name = System.Text.Encoding.GetEncoding("UTF-8").GetString(KaitaiStream.BytesTerminate(KaitaiStream.BytesStripRight(m_io.ReadBytes(56), 0), 0, false));
     _ofs  = m_io.ReadU4le();
     _size = m_io.ReadU4le();
 }
예제 #8
0
 private void _read()
 {
     _bboxMin  = new MdlVertex(m_io, this, m_root);
     _bboxMax  = new MdlVertex(m_io, this, m_root);
     _name     = System.Text.Encoding.GetEncoding("ASCII").GetString(KaitaiStream.BytesTerminate(KaitaiStream.BytesStripRight(m_io.ReadBytes(16), 0), 0, false));
     _vertices = new List <MdlVertex>();
     for (var i = 0; i < M_Root.Header.NumVerts; i++)
     {
         _vertices.Add(new MdlVertex(m_io, this, m_root));
     }
 }
예제 #9
0
 private void _read()
 {
     _offset = m_io.ReadS4le();
     _size   = m_io.ReadS4le();
     _name   = System.Text.Encoding.GetEncoding("ASCII").GetString(KaitaiStream.BytesStripRight(m_io.ReadBytes(8), 0));
 }
예제 #10
0
 private void _read()
 {
     _name            = System.Text.Encoding.GetEncoding("ASCII").GetString(KaitaiStream.BytesStripRight(m_io.ReadBytes(8), 0));
     _masked          = m_io.ReadU4le();
     _width           = m_io.ReadU2le();
     _height          = m_io.ReadU2le();
     _columnDirectory = m_io.ReadU4le();
     _numPatches      = m_io.ReadU2le();
     _patches         = new List <Patch>();
     for (var i = 0; i < NumPatches; i++)
     {
         _patches.Add(new Patch(m_io, this, m_root));
     }
 }
예제 #11
0
 private void _read()
 {
     _magic = m_io.ReadBytes(8);
     if (!((KaitaiStream.ByteArrayCompare(Magic, new byte[] { 35, 79, 80, 76, 95, 73, 73, 35 }) == 0)))
     {
         throw new ValidationNotEqualError(new byte[] { 35, 79, 80, 76, 95, 73, 73, 35 }, Magic, M_Io, "/seq/0");
     }
     _instruments = new List <InstrumentEntry>();
     for (var i = 0; i < 175; i++)
     {
         _instruments.Add(new InstrumentEntry(m_io, this, m_root));
     }
     _instrumentNames = new List <string>();
     for (var i = 0; i < 175; i++)
     {
         _instrumentNames.Add(System.Text.Encoding.GetEncoding("ASCII").GetString(KaitaiStream.BytesTerminate(KaitaiStream.BytesStripRight(m_io.ReadBytes(32), 0), 0, false)));
     }
 }
예제 #12
0
 private void _read()
 {
     _ititle = System.Text.Encoding.GetEncoding("ascii").GetString(KaitaiStream.BytesStripRight(m_io.ReadBytes(40), 32));
     _usernm = System.Text.Encoding.GetEncoding("ascii").GetString(m_io.ReadBytes(8));
 }
예제 #13
0
 private void _read()
 {
     _physDriveNum         = m_io.ReadU1();
     _reserved1            = m_io.ReadU1();
     _extBootSign          = m_io.ReadU1();
     _volumeId             = m_io.ReadBytes(4);
     _partitionVolumeLabel = System.Text.Encoding.GetEncoding("ASCII").GetString(KaitaiStream.BytesStripRight(m_io.ReadBytes(11), 32));
     _fsTypeStr            = System.Text.Encoding.GetEncoding("ASCII").GetString(KaitaiStream.BytesStripRight(m_io.ReadBytes(8), 32));
 }
예제 #14
0
 private void _read()
 {
     _lsPerFat     = m_io.ReadU4le();
     _hasActiveFat = m_io.ReadBitsIntLe(1) != 0;
     _reserved1    = m_io.ReadBitsIntLe(3);
     _activeFatId  = m_io.ReadBitsIntLe(4);
     m_io.AlignToByte();
     _reserved2 = m_io.ReadBytes(1);
     if (!((KaitaiStream.ByteArrayCompare(Reserved2, new byte[] { 0 }) == 0)))
     {
         throw new ValidationNotEqualError(new byte[] { 0 }, Reserved2, M_Io, "/types/ext_bios_param_block_fat32/seq/4");
     }
     _fatVersion             = m_io.ReadU2le();
     _rootDirStartClus       = m_io.ReadU4le();
     _lsFsInfo               = m_io.ReadU2le();
     _bootSectorsCopyStartLs = m_io.ReadU2le();
     _reserved3              = m_io.ReadBytes(12);
     _physDriveNum           = m_io.ReadU1();
     _reserved4              = m_io.ReadU1();
     _extBootSign            = m_io.ReadU1();
     _volumeId               = m_io.ReadBytes(4);
     _partitionVolumeLabel   = System.Text.Encoding.GetEncoding("ASCII").GetString(KaitaiStream.BytesStripRight(m_io.ReadBytes(11), 32));
     _fsTypeStr              = System.Text.Encoding.GetEncoding("ASCII").GetString(KaitaiStream.BytesStripRight(m_io.ReadBytes(8), 32));
 }
예제 #15
0
 private void _read()
 {
     _jmpInstruction = m_io.ReadBytes(3);
     _oemName        = System.Text.Encoding.GetEncoding("ASCII").GetString(KaitaiStream.BytesStripRight(m_io.ReadBytes(8), 32));
     _bpb            = new BiosParamBlock(m_io, this, m_root);
     if (!(IsFat32))
     {
         _ebpbFat16 = new ExtBiosParamBlockFat16(m_io, this, m_root);
     }
     if (IsFat32)
     {
         _ebpbFat32 = new ExtBiosParamBlockFat32(m_io, this, m_root);
     }
 }
예제 #16
0
 private void _read()
 {
     _lsPerFat     = m_io.ReadU4le();
     _hasActiveFat = m_io.ReadBitsInt(1) != 0;
     _reserved1    = m_io.ReadBitsInt(3);
     _activeFatId  = m_io.ReadBitsInt(4);
     m_io.AlignToByte();
     _reserved2              = m_io.EnsureFixedContents(new byte[] { 0 });
     _fatVersion             = m_io.ReadU2le();
     _rootDirStartClus       = m_io.ReadU4le();
     _lsFsInfo               = m_io.ReadU2le();
     _bootSectorsCopyStartLs = m_io.ReadU2le();
     _reserved3              = m_io.ReadBytes(12);
     _physDriveNum           = m_io.ReadU1();
     _reserved4              = m_io.ReadU1();
     _extBootSign            = m_io.ReadU1();
     _volumeId               = m_io.ReadBytes(4);
     _partitionVolumeLabel   = System.Text.Encoding.GetEncoding("ASCII").GetString(KaitaiStream.BytesStripRight(m_io.ReadBytes(11), 32));
     _fsTypeStr              = System.Text.Encoding.GetEncoding("ASCII").GetString(KaitaiStream.BytesStripRight(m_io.ReadBytes(8), 32));
 }