/// <summary> /// Create a Dragon file object. /// </summary> /// <param name="name">File name.</param> /// <param name="type">File type.</param> /// <param name="data">File payload data.</param> /// <param name="isascii">Indicates that the file is ASCII encoded.</param> /// <param name="isgapped">Indicates that the file is recorded with gaps between each block.</param> /// <param name="loadAddress">Load address for machine code programs.</param> /// <param name="startAddress">Execution start address for machine code programs.</param> /// <remarks> /// This class assumes ownership of the data parameter and assumes that the caller will not make changes to the contents of this /// array. /// </remarks> internal DragonFile(string name, DragonFileType type, byte[] data, bool isascii, bool isgapped, int loadAddress, int startAddress) { Name = name; FileType = type; this.data = data; IsAscii = isascii; IsGapped = isgapped; LoadAddress = loadAddress; StartAddress = startAddress; }
/// <summary> /// Create a Dragon file object. /// </summary> /// <param name="name">File name.</param> /// <param name="type">File type.</param> /// <param name="data">File payload data.</param> /// <param name="isascii">Indicates that the file is ASCII encoded.</param> /// <param name="isgapped">Indicates that the file is recorded with gaps between each block.</param> /// <param name="loadAddress">Load address for machine code programs.</param> /// <param name="startAddress">Execution start address for machine code programs.</param> /// <remarks> /// This class assumes ownership of the data parameter and assumes that the caller will not make changes to the contents of this /// array. /// </remarks> internal DragonFile(string name, DragonFileType type, byte[] data, bool isascii, bool isgapped, int loadAddress, int startAddress) { Name = name; FileType = type; this.data = data; IsAscii = isascii; IsGapped = isgapped; LoadAddress = loadAddress; StartAddress = startAddress; }
/// <summary> /// Create a header block by specifying the individual header fields. /// The block checksum will be computed based on the header fields. /// </summary> /// <param name="filename">File name.</param> /// <param name="filetype">File type.</param> /// <param name="isascii">Set for an ASCII encoded file.</param> /// <param name="isgapped">Set for a file recorded with gaps between each block.</param> /// <param name="loadaddress">Load address for machine code programs.</param> /// <param name="execaddress">Exec address for machine code programs.</param> public DragonTapeHeaderBlock(string filename, DragonFileType filetype, bool isascii, bool isgapped, int loadaddress = 0, int execaddress = 0) : base(DragonTapeBlockType.Header) { Filename = filename; FileType = filetype; IsAscii = isascii; IsGapped = isgapped; LoadAddress = loadaddress; StartAddress = execaddress; SetData(EncodeHeaderBlock(), 0, FileHeaderSize); Checksum = ComputeChecksum(); }
/// <summary> /// Create a header block by specifying the individual header fields. /// The block checksum will be computed based on the header fields. /// </summary> /// <param name="filename">File name.</param> /// <param name="filetype">File type.</param> /// <param name="isascii">Set for an ASCII encoded file.</param> /// <param name="isgapped">Set for a file recorded with gaps between each block.</param> /// <param name="loadaddress">Load address for machine code programs.</param> /// <param name="execaddress">Exec address for machine code programs.</param> public DragonTapeHeaderBlock(string filename, DragonFileType filetype, bool isascii, bool isgapped, int loadaddress = 0, int execaddress = 0) : base(DragonTapeBlockType.Header) { Filename = filename; FileType = filetype; IsAscii = isascii; IsGapped = isgapped; LoadAddress = loadaddress; StartAddress = execaddress; SetData(EncodeHeaderBlock(), 0, FileHeaderSize); Checksum = ComputeChecksum(); }