This is fs_cbm.h in view mode; [Download] [Up]
/* * $Id: fs_cbm.h,v 1.7 1997/05/22 21:17:38 ettore Exp $ * * This file is part of VICE, the Versatile Commodore Emulator. * See README for copyright notice * * Definitions for simulated disk drive. * * * Written by * Teemu Rantanen (tvr@cs.hut.fi) * Dan Miner (dminer@nyx10.cs.du.edu) * * Patches by * Olaf Seibert (rhialto@mbfys.kun.nl) * * * $Log: fs_cbm.h,v $ * Revision 1.7 1997/05/22 21:17:38 ettore * c1541 version 2.02. * * Revision 1.6 1996/07/29 21:08:08 ettore * MAX_TRACKS_1541 and MAX_BLOCK_1541 accept 40 track disks. * * Revision 1.5 1996/04/01 09:01:41 jopi * New device type declarations * * Revision 1.4 1995/11/07 16:51:00 jopi * *** empty log message *** * * Revision 1.3 1995/04/01 07:54:09 jopi * X64 0.3 PL 0 * Structure for passing Disk Header information. * Prototypes. * * Revision 1.2 1994/12/12 16:59:44 jopi * *** empty log message *** * * Revision 1.1 1994/08/10 17:46:41 jopi * Initial revision * * */ #ifndef X64_FS_CBM_H #define X64_FS_CBM_H #include "serial.h" /* for DT_1541 */ #include "drive.h" #define BUFFER_NOT_IN_USE 0 #define BUFFER_DIRECTORY_READ 1 #define BUFFER_SEQUENTIAL 2 #define BUFFER_MEMORY_BUFFER 3 #define BUFFER_OTHER 4 #define BUFFER_COMMAND_CHANNEL 5 #define WRITE_BLOCK 512 /* Disk Directory Organization */ #define SLOT_TYPE_OFFSET 2 #define SLOT_FIRST_TRACK 3 #define SLOT_FIRST_SECTOR 4 #define SLOT_NAME_OFFSET 5 #define SLOT_SIDE_TRACK 21 #define SLOT_SIDE_SECTOR 22 #define SLOT_NR_BLOCKS 30 #define BAM_FIRST_TRACK 0 #define BAM_FIRST_SECTOR 1 #define BAM_FORMAT_TYPE 2 #define BAM_BIT_MAP 4 #define BAM_DISK_NAME 144 #define BAM_DISK_ID 162 #define BAM_VERSION 165 #define BAM_EXT_BIT_MAP 192 #define BAM_SET(n) (bamp[1+(n)/8] |= (1 << ((n) % 8))) #define BAM_CLR(n) (bamp[1+(n)/8] &= ~(1 << ((n) % 8))) #define BAM_ISSET(n) (bamp[1+(n)/8] & (1 << ((n) % 8))) /* * At the beginning of each image is header that makes sure * only c1541 images are used. There is room for additional * information that is not used yet (errors, drive types etc.) */ #define HEADER_MAGIC_OFFSET 0 /* Length 4 bytes */ #define HEADER_MAGIC_1 'C' #define HEADER_MAGIC_2 (0x15) #define HEADER_MAGIC_3 (0x41) #define HEADER_MAGIC_4 (0x64) #define HEADER_VERSION_OFFSET 4 /* Length 2 bytes */ #define HEADER_VERSION_MAJOR 1 #define HEADER_VERSION_MINOR 2 #define HEADER_FLAGS_OFFSET 6 /* Disk Image Flags */ #define HEADER_FLAGS_LEN 4 /* Disk Image Flags */ /* These 4 bytes are disk type flags (set upon create or format) * They contain: Device Type, Max Tracks, Side, and Error Flag. */ #define HEADER_LABEL_OFFSET 32 /* Disk Description */ #define HEADER_LABEL_LEN 31 #define HEADER_LENGTH 64 /* * Disk Drive Specs * For customized disks, the values must fit beteen the NUM_ and MAX_ * limits. Do not change the NUM_ values, as they define the standard * disk geometry. */ /* * XXX Rhialto: These #defines should be replaced by something like struct FormatData { int NumTracks, NumBlocks, MaxTracks, MaxBlocks; int NumTracksPerSide, NumBlocksPerSide; int *SectorsPerTrack; int HdrT, HdrS; int FormatOffset, NameOffset, ... int DirT, DirS; int BamT, BamS; ... whatever more is needed }; */ #define DEFAULT_DEVICE_TYPE DT_1541 #define NUM_TRACKS_1541 35 #define NUM_BLOCKS_1541 683 /* 664 free */ #define EXT_TRACKS_1541 40 #define EXT_BLOCKS_1541 768 #define MAX_TRACKS_1541 42 #define MAX_BLOCKS_1541 802 #define NUM_TRACKS_1571 70 #define NUM_BLOCKS_1571 1366 /* 1328 free */ #define MAX_TRACKS_1571 70 #define MAX_BLOCKS_1571 1366 #define NUM_TRACKS_1581 80 #define NUM_SECTORS_1581 40 /* Logical sectors */ #define NUM_BLOCKS_1581 3200 /* 3120 free */ #define MAX_TRACKS_1581 80 #define MAX_BLOCKS_1581 3200 #define NUM_TRACKS_8050 77 #define NUM_BLOCKS_8050 2088 /* 2052 free */ #define MAX_TRACKS_8050 77 #define MAX_BLOCKS_8050 2088 #define NUM_TRACKS_8250 144 #define NUM_BLOCKS_8250 4166 /* 4133 free */ #define MAX_TRACKS_8250 144 #define MAX_BLOCKS_8250 4166 #define MAX_TRACKS_ANY MAX_TRACKS_8250 #define MAX_BLOCKS_ANY MAX_BLOCKS_8250 #define DSK_DIR_TRACK 18 /* these are not valid for 8{0,2}50 */ #define DSK_DIR_SECTOR 1 #define DSK_BAM_TRACK 18 #define DSK_BAM_SECTOR 0 /* 8{0,2}50 have {2,4} bam sectors */ typedef struct { int v_major; int v_minor; int wprot; /* From stat() + mtime() */ int devtype; int format; int sides; int tracks; int errblk; int d64; int gcr; char description[HEADER_LABEL_LEN+1]; } hdrinfo; extern int utility_flag; #endif /* X64_FS_CBM_H */
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.