cbmimage
Loading...
Searching...
No Matches
fileimage.c File Reference

cbmimage: image specific processing More...

#include "cbmimage/internal.h"
#include "cbmimage/alloc.h"
#include "cbmimage/helper.h"
#include <assert.h>
#include <stdio.h>
#include <string.h>
Include dependency graph for fileimage.c:

Classes

struct  cbmimage_mapping_size_imagetype_s
 

Typedefs

typedef struct cbmimage_mapping_size_imagetype_s cbmimage_mapping_size_imagetype
 

Functions

static int cbmimage_i_get_number_of_blocks (cbmimage_imagetype imagetype)
 
void cbmimage_i_create_last_block (cbmimage_fileimage *image)
 
static cbmimage_fileimagecbmimage_i_fileimage_create (const uint8_t *buffer, size_t size, const char *filename, cbmimage_imagetype imagetype_hint)
 
cbmimage_imagetype cbmimage_image_guesstype (const uint8_t *buffer, size_t size, int *extra_errormap)
 
cbmimage_imagetype cbmimage_image_file_guesstype (const char *filename)
 
cbmimage_fileimagecbmimage_image_open (const uint8_t *buffer, size_t size, cbmimage_imagetype imagetype_hint)
 open an in-memory CBM image
 
cbmimage_fileimagecbmimage_image_openfile (const char *filename, cbmimage_imagetype imagetype_hint)
 open a CBM image from a file
 
void cbmimage_image_readfile (cbmimage_fileimage *image, const char *filename)
 read a file and store it in a given CBM image
 
void cbmimage_image_writefile (cbmimage_fileimage *image, const char *filename)
 write the CBM image to a file
 
void cbmimage_image_close (cbmimage_fileimage *image)
 close a CBM image
 
void cbmimage_image_fat_dump (cbmimage_fileimage *image, int trackformat)
 dump a FAT structure of the image
 

Variables

static cbmimage_mapping_size_imagetype cbmimage_mapping_from_size_to_imagetype []
 

Detailed Description

cbmimage: image specific processing


Author
Spiro Trikaliotis

Typedef Documentation

◆ cbmimage_mapping_size_imagetype

structure for mapping of image type and their respective file size

Function Documentation

◆ cbmimage_i_get_number_of_blocks()

static int cbmimage_i_get_number_of_blocks ( cbmimage_imagetype imagetype)
static

get the number of blocks of an image type

Parameters
[in]imagetypeThe image type for which to determine the number of blocks
Returns
The number of blocks of this image type

Variable Documentation

◆ cbmimage_mapping_from_size_to_imagetype

cbmimage_mapping_size_imagetype cbmimage_mapping_from_size_to_imagetype[]
static
Initial value:
= {
{ "D64", TYPE_D64, 174848, 683 },
{ "D64_40", TYPE_D64_40TRACK, 174848 + 5 * 17 * 256, 683 + 5 * 17 },
{ "D64_42", TYPE_D64_42TRACK, 174848 + 7 * 17 * 256, 683 + 7 * 17 },
{ "D40", TYPE_D40, 174848 + 7 * 256, 683 + 7 },
{ "D71", TYPE_D71, 174848 * 2, 683 * 2 },
{ "D81", TYPE_D81, 819200, 3200 },
{ "D80", TYPE_D80, 533248, 2083 },
{ "D82", TYPE_D82, 533248 * 2, 2083 * 2 },
{ "D1M", TYPE_CMD_D1M, 3240 * 256, 3240 },
{ "D2M", TYPE_CMD_D2M, 3240 * 256 * 2, 3240 * 2 },
{ "D4M", TYPE_CMD_D4M, 3240 * 256 * 4, 3240 * 4 },
}
@ TYPE_D81
1581 3,5" file format
Definition cbmimage.h:414
@ TYPE_CMD_D4M
CMD FD4000 3,2 MB file format.
Definition cbmimage.h:422
@ TYPE_D71
1571 5,25" DS file format
Definition cbmimage.h:413
@ TYPE_D64_42TRACK
1541 5,25" SS file format with 42 tracks
Definition cbmimage.h:412
@ TYPE_D64
2031/1540/1541/1570 5,25" SS file format
Definition cbmimage.h:407
@ TYPE_D82
8250 5,25" DS file format
Definition cbmimage.h:416
@ TYPE_D80
8050 5,25" SS file format
Definition cbmimage.h:415
@ TYPE_CMD_D2M
CMD FD2000/FD4000 1,6 MB file format.
Definition cbmimage.h:421
@ TYPE_CMD_D1M
CMD FD2000/FD4000 800 KB file format.
Definition cbmimage.h:420
@ TYPE_D64_40TRACK
1541 5,25" SS file format with 40 tracks
Definition cbmimage.h:408
@ TYPE_D40
2040/3040 5,25" SS format (similar to D64, but 20 sectors on track 18-24)
Definition cbmimage.h:406

mapping of image type and their respective file size Note that image types can have multiple entries. This happens because there are variants, for example, with and without an error map.