AltairZ80: wd179x: Code cleanup and fix MSVC /W4 warnings.
This commit is contained in:
parent
7cca92ce28
commit
75f11a8e3d
1 changed files with 80 additions and 79 deletions
|
@ -84,6 +84,8 @@
|
|||
#define WD179X_STAT_DRQ (1 << 1)
|
||||
/*#define WD179X_STAT_BUSY (1 << 0) */
|
||||
|
||||
#define WD179X_SECTOR_LEN_BYTES (unsigned)(128 << wd179x_info->fdc_sec_len)
|
||||
|
||||
typedef union {
|
||||
uint8 raw[WD179X_SECTOR_LEN];
|
||||
} SECTOR_FORMAT;
|
||||
|
@ -238,6 +240,9 @@ static REG wd179x_reg[] = {
|
|||
#define WD179X_NAME "Western Digital FDC Core"
|
||||
|
||||
static const char* wd179x_description(DEVICE *dptr) {
|
||||
if (dptr == NULL) {
|
||||
return (NULL);
|
||||
}
|
||||
return WD179X_NAME;
|
||||
}
|
||||
|
||||
|
@ -284,6 +289,7 @@ DEVICE wd179x_dev = {
|
|||
/* Used to generate INDEX pulses in response to a FORCE_INTR command */
|
||||
t_stat wd179x_svc (UNIT *uptr)
|
||||
{
|
||||
if (uptr == NULL) return SCPE_IERR;
|
||||
|
||||
if (wd179x_info->index_pulse_wait == TRUE) {
|
||||
wd179x_info->index_pulse_wait = FALSE;
|
||||
|
@ -427,7 +433,7 @@ t_stat wd179x_attach(UNIT *uptr, CONST char *cptr)
|
|||
}
|
||||
|
||||
/* Set the correct number of sides for this disk image. */
|
||||
wd179x_info->drive[i].nheads = imdGetSides(wd179x_info->drive[i].imd);
|
||||
wd179x_info->drive[i].nheads = (uint8)imdGetSides(wd179x_info->drive[i].imd);
|
||||
|
||||
} else {
|
||||
wd179x_info->drive[i].imd = NULL;
|
||||
|
@ -445,7 +451,7 @@ t_stat wd179x_attach(UNIT *uptr, CONST char *cptr)
|
|||
t_stat wd179x_detach(UNIT *uptr)
|
||||
{
|
||||
t_stat r;
|
||||
int8 i;
|
||||
int32 i;
|
||||
|
||||
i = find_unit_index(uptr);
|
||||
|
||||
|
@ -460,10 +466,7 @@ t_stat wd179x_detach(UNIT *uptr)
|
|||
return r;
|
||||
|
||||
r = detach_unit(uptr); /* detach unit */
|
||||
if (r != SCPE_OK)
|
||||
return r;
|
||||
|
||||
return SCPE_OK;
|
||||
}
|
||||
|
||||
|
||||
|
@ -474,7 +477,7 @@ static int32 wd179xdev(const int32 port, const int32 io, const int32 data)
|
|||
if (io) {
|
||||
sim_debug(VERBOSE_MSG, &wd179x_dev, "WD179X: " ADDRESS_FORMAT " %s, Port 0x%02x Data 0x%02x\n",
|
||||
PCX, io ? "OUT" : " IN", port, data);
|
||||
WD179X_Write(port, data);
|
||||
WD179X_Write(port, (uint8)data);
|
||||
} else {
|
||||
result = WD179X_Read(port);
|
||||
sim_debug(VERBOSE_MSG, &wd179x_dev, "WD179X: " ADDRESS_FORMAT " %s, Port 0x%02x Data 0x%02x\n",
|
||||
|
@ -595,14 +598,14 @@ uint8 WD179X_Read(const uint32 Addr)
|
|||
}
|
||||
|
||||
wd179x_info->fdc_sector ++;
|
||||
sim_debug(RD_DATA_MSG, &wd179x_dev, "WD179X[%d]: " ADDRESS_FORMAT " MULTI_READ_REC, T:%2d/S:%d/N:%2d, %s, len=%d\n", wd179x_info->sel_drive, PCX, pDrive->track, wd179x_info->fdc_head, wd179x_info->fdc_sector, wd179x_info->ddens ? "DD" : "SD", 128 << wd179x_info->fdc_sec_len);
|
||||
sim_debug(RD_DATA_MSG, &wd179x_dev, "WD179X[%d]: " ADDRESS_FORMAT " MULTI_READ_REC, T:%2d/S:%d/N:%2d, %s, len=%d\n", wd179x_info->sel_drive, PCX, pDrive->track, wd179x_info->fdc_head, wd179x_info->fdc_sector, wd179x_info->ddens ? "DD" : "SD", WD179X_SECTOR_LEN_BYTES);
|
||||
|
||||
status = sectRead(pDrive->imd,
|
||||
pDrive->track,
|
||||
wd179x_info->fdc_head,
|
||||
wd179x_info->fdc_sector,
|
||||
sdata.raw,
|
||||
128 << wd179x_info->fdc_sec_len,
|
||||
WD179X_SECTOR_LEN_BYTES,
|
||||
&flags,
|
||||
&readlen);
|
||||
|
||||
|
@ -610,7 +613,7 @@ uint8 WD179X_Read(const uint32 Addr)
|
|||
wd179x_info->fdc_status = (WD179X_STAT_DRQ | WD179X_STAT_BUSY); /* Set DRQ, BUSY */
|
||||
wd179x_info->drq = 1;
|
||||
wd179x_info->intrq = 0;
|
||||
wd179x_info->fdc_datacount = 128 << wd179x_info->fdc_sec_len;
|
||||
wd179x_info->fdc_datacount = WD179X_SECTOR_LEN_BYTES;
|
||||
wd179x_info->fdc_dataindex = 0;
|
||||
wd179x_info->fdc_read = TRUE;
|
||||
wd179x_info->fdc_read_addr = FALSE;
|
||||
|
@ -802,7 +805,7 @@ static uint8 Do1793Command(uint8 cCommand)
|
|||
wd179x_info->sel_drive, PCX, pDrive->track,
|
||||
wd179x_info->fdc_head, wd179x_info->fdc_sector,
|
||||
wd179x_info->fdc_multiple ? "Multiple" : "Single",
|
||||
wd179x_info->ddens ? "DD" : "SD", 128 << wd179x_info->fdc_sec_len);
|
||||
wd179x_info->ddens ? "DD" : "SD", WD179X_SECTOR_LEN_BYTES);
|
||||
|
||||
if (testMode(pDrive)) {
|
||||
wd179x_info->fdc_status |= WD179X_STAT_NOT_FOUND; /* Sector not found */
|
||||
|
@ -815,14 +818,14 @@ static uint8 Do1793Command(uint8 cCommand)
|
|||
wd179x_info->fdc_head,
|
||||
wd179x_info->fdc_sector,
|
||||
sdata.raw,
|
||||
128 << wd179x_info->fdc_sec_len,
|
||||
WD179X_SECTOR_LEN_BYTES,
|
||||
&flags,
|
||||
&readlen);
|
||||
|
||||
if (status == SCPE_OK) {
|
||||
wd179x_info->fdc_status |= (WD179X_STAT_DRQ); /* Set DRQ */
|
||||
wd179x_info->drq = 1;
|
||||
wd179x_info->fdc_datacount = 128 << wd179x_info->fdc_sec_len;
|
||||
wd179x_info->fdc_datacount = WD179X_SECTOR_LEN_BYTES;
|
||||
wd179x_info->fdc_dataindex = 0;
|
||||
wd179x_info->fdc_write = FALSE;
|
||||
wd179x_info->fdc_write_track = FALSE;
|
||||
|
@ -856,7 +859,7 @@ static uint8 Do1793Command(uint8 cCommand)
|
|||
" CMD=WRITE_REC, T:%2d/S:%d/N:%2d, %s.\n", wd179x_info->sel_drive, PCX, pDrive->track, wd179x_info->fdc_head, wd179x_info->fdc_sector, (cCommand & 0x10) ? "Multiple" : "Single");
|
||||
wd179x_info->fdc_status |= (WD179X_STAT_DRQ); /* Set DRQ */
|
||||
wd179x_info->drq = 1;
|
||||
wd179x_info->fdc_datacount = 128 << wd179x_info->fdc_sec_len;
|
||||
wd179x_info->fdc_datacount = WD179X_SECTOR_LEN_BYTES;
|
||||
wd179x_info->fdc_dataindex = 0;
|
||||
wd179x_info->fdc_write = TRUE;
|
||||
wd179x_info->fdc_write_track = FALSE;
|
||||
|
@ -916,10 +919,10 @@ static uint8 Do1793Command(uint8 cCommand)
|
|||
sim_debug(FMT_MSG, &wd179x_dev, "WD179X[%d]: " ADDRESS_FORMAT
|
||||
" CMD=WRITE_TRACK, T:%2d/S:%d/N:%d.\n", wd179x_info->sel_drive,
|
||||
PCX, pDrive->track, wd179x_info->fdc_head,
|
||||
128 << wd179x_info->fdc_sec_len);
|
||||
WD179X_SECTOR_LEN_BYTES);
|
||||
wd179x_info->fdc_status |= (WD179X_STAT_DRQ); /* Set DRQ */
|
||||
wd179x_info->drq = 1;
|
||||
wd179x_info->fdc_datacount = 128 << wd179x_info->fdc_sec_len;
|
||||
wd179x_info->fdc_datacount = WD179X_SECTOR_LEN_BYTES;
|
||||
wd179x_info->fdc_dataindex = 0;
|
||||
wd179x_info->fdc_write = FALSE;
|
||||
wd179x_info->fdc_write_track = TRUE;
|
||||
|
@ -952,7 +955,6 @@ static uint8 Do1793Command(uint8 cCommand)
|
|||
wd179x_info->index_pulse_wait = TRUE;
|
||||
if (wd179x_info->sel_drive < WD179X_MAX_DRIVES) {
|
||||
sim_activate (wd179x_unit, ((wd179x_info->drive[wd179x_info->sel_drive].imd->ntracks % 77) == 0) ? CROMFDC_8IN_ROT : CROMFDC_5IN_ROT); /* Generate INDEX pulse */
|
||||
/* sim_printf("Drive %d Num tracks=%d\n", wd179x_info->sel_drive, wd179x_info->drive[wd179x_info->sel_drive].imd->ntracks); */
|
||||
}
|
||||
} else {
|
||||
wd179x_info->intrq = 1;
|
||||
|
@ -1037,7 +1039,6 @@ uint8 max_sectors_per_track[2][7] = {
|
|||
uint8 WD179X_Write(const uint32 Addr, uint8 cData)
|
||||
{
|
||||
WD179X_DRIVE_INFO *pDrive;
|
||||
/* uint8 disk_read = 0; */
|
||||
uint32 flags = 0;
|
||||
uint32 writelen;
|
||||
|
||||
|
@ -1095,14 +1096,14 @@ uint8 WD179X_Write(const uint32 Addr, uint8 cData)
|
|||
}
|
||||
|
||||
sim_debug(WR_DATA_MSG, &wd179x_dev, "WD179X[%d]: " ADDRESS_FORMAT
|
||||
" Writing sector, T:%2d/S:%d/N:%2d, Len=%d\n", wd179x_info->sel_drive, PCX, pDrive->track, wd179x_info->fdc_head, wd179x_info->fdc_sector, 128 << wd179x_info->fdc_sec_len);
|
||||
" Writing sector, T:%2d/S:%d/N:%2d, Len=%d\n", wd179x_info->sel_drive, PCX, pDrive->track, wd179x_info->fdc_head, wd179x_info->fdc_sector, WD179X_SECTOR_LEN_BYTES);
|
||||
|
||||
sectWrite(pDrive->imd,
|
||||
pDrive->track,
|
||||
wd179x_info->fdc_head,
|
||||
wd179x_info->fdc_sector,
|
||||
sdata.raw,
|
||||
128 << wd179x_info->fdc_sec_len,
|
||||
WD179X_SECTOR_LEN_BYTES,
|
||||
&flags,
|
||||
&writelen);
|
||||
|
||||
|
@ -1204,7 +1205,7 @@ uint8 WD179X_Write(const uint32 Addr, uint8 cData)
|
|||
pDrive->track,
|
||||
wd179x_info->fdc_head,
|
||||
wd179x_info->fdc_fmt_sector_count,
|
||||
128 << wd179x_info->fdc_sec_len,
|
||||
WD179X_SECTOR_LEN_BYTES,
|
||||
wd179x_info->fdc_sectormap,
|
||||
wd179x_info->ddens ? 3 : 0, /* data mode */
|
||||
sdata.raw[0],
|
||||
|
|
Loading…
Add table
Reference in a new issue