2009-01-06 07:37:50 +00:00
|
|
|
/*
|
|
|
|
* UniversalDiskImage.cpp
|
|
|
|
* profuse
|
|
|
|
*
|
|
|
|
* Created by Kelvin Sherlock on 1/6/09.
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
|
|
|
#include "UniversalDiskImage.h"
|
|
|
|
|
|
|
|
#include "common.h"
|
|
|
|
#include <string.h>
|
|
|
|
|
|
|
|
bool UniversalDiskImage::Load(const uint8_t *buffer)
|
|
|
|
{
|
|
|
|
if (strncmp((const char *)buffer, "2IMG", 4) != 0) return false;
|
|
|
|
|
|
|
|
// all numbers little-endian.
|
|
|
|
|
|
|
|
magic_word = load32(&buffer[0]);
|
|
|
|
|
|
|
|
creator = load32(&buffer[0x04]);
|
|
|
|
|
|
|
|
header_size = load16(&buffer[0x08]);
|
|
|
|
|
|
|
|
version = load16(&buffer[0x0a]);
|
|
|
|
|
|
|
|
image_format = load32(&buffer[0x0c]);
|
|
|
|
|
|
|
|
flags = load32(&buffer[0x10]);
|
|
|
|
|
|
|
|
data_blocks = load32(&buffer[0x14]);
|
|
|
|
|
|
|
|
data_offset = load32(&buffer[0x18]);
|
|
|
|
data_size = load32(&buffer[0x1c]);
|
|
|
|
|
|
|
|
|
|
|
|
comment_offset = load32(&buffer[0x20]);
|
|
|
|
comment_size = load32(&buffer[0x24]);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
creator_data_offset = load32(&buffer[0x28]);
|
|
|
|
creator_data_size = load32(&buffer[0x2c]);
|
|
|
|
|
|
|
|
// 16 bytes reserved.
|
|
|
|
|
|
|
|
|
|
|
|
return true;
|
2009-01-09 21:57:02 +00:00
|
|
|
}
|
|
|
|
|