Indentation corrections in disk.cpp

This commit is contained in:
Dimitris Panokostas 2020-05-03 17:49:48 +02:00
parent d870c6cea4
commit 6c26fcf631

View file

@ -642,45 +642,43 @@ static bool drive_writeprotected(drive* drv)
static void reset_drive(int num)
{
drive *drv = &floppy[num];
drive* drv = &floppy[num];
drive_image_free (drv);
drv->motoroff = 1;
drv->idbit = 0;
drv->drive_id = 0;
drv->drive_id_scnt = 0;
drive_image_free(drv);
drv->motoroff = 1;
drv->idbit = 0;
drv->drive_id = 0;
drv->drive_id_scnt = 0;
drv->lastdataacesstrack = -1;
disabled &= ~(1 << num);
disabled &= ~(1 << num);
if (currprefs.floppyslots[num].dfxtype < 0 || ispcbridgedrive(num))
disabled |= 1 << num;
reset_drive_gui(num);
/* most internal Amiga floppy drives won't enable
* diskready until motor is running at full speed
* and next indexsync has been passed
*/
drv->indexhackmode = 0;
if (num == 0 && currprefs.floppyslots[num].dfxtype == 0)
drv->indexhackmode = 1;
drv->dskchange_time = 0;
drv->dskchange = false;
drv->dskready_down_time = 0;
drv->dskready_up_time = 0;
drv->buffered_cyl = -1;
drv->buffered_side = -1;
gui_led (num + LED_DF0, 0, -1);
drive_settype_id (drv);
_tcscpy (currprefs.floppyslots[num].df, changed_prefs.floppyslots[num].df);
drv->newname[0] = 0;
disabled |= 1 << num;
reset_drive_gui(num);
/* most internal Amiga floppy drives won't enable
* diskready until motor is running at full speed
* and next indexsync has been passed
*/
drv->indexhackmode = 0;
if (num == 0 && currprefs.floppyslots[num].dfxtype == 0)
drv->indexhackmode = 1;
drv->dskchange_time = 0;
drv->dskchange = false;
drv->dskready_down_time = 0;
drv->dskready_up_time = 0;
drv->buffered_cyl = -1;
drv->buffered_side = -1;
gui_led(num + LED_DF0, 0, -1);
drive_settype_id(drv);
_tcscpy(currprefs.floppyslots[num].df, changed_prefs.floppyslots[num].df);
drv->newname[0] = 0;
drv->newnamewriteprotected = false;
if (!drive_insert (drv, &currprefs, num, currprefs.floppyslots[num].df, false, false))
disk_eject (num);
if (!drive_insert(drv, &currprefs, num, currprefs.floppyslots[num].df, false, false))
disk_eject(num);
}
/* code for track display */
static void update_drive_gui(int num, bool force)
{
if (num >= currprefs.nr_floppies)
return;
drive* drv = floppy + num;
bool writ = dskdmaen == DSKDMA_WRITE && drv->state && !((selected | disabled) & (1 << num));
struct gui_info_drive* gid = &gui_data.drives[num];
@ -998,6 +996,10 @@ static bool diskfile_iswriteprotect (struct uae_prefs *p, const TCHAR *fname_in,
*needwritefile = 1;
return wrprot2;
}
if (strncmp ((uae_char*) buffer, "SCP", 3) == 0) {
*needwritefile = 1;
return wrprot2;
}
if (strncmp((uae_char *)buffer, "Formatted Disk Image file", 25) == 0) {
*needwritefile = 1;
return wrprot2;
@ -2297,6 +2299,8 @@ static void drive_write_data (drive * drv)
return;
case ADF_IPF:
break;
case ADF_SCP:
break;
case ADF_PCDOS:
ret = drive_write_pcdos (drv, drv->diskfile, 0);
if (ret < 0)
@ -2558,14 +2562,14 @@ int disk_setwriteprotect (struct uae_prefs *p, int num, const TCHAR *fname_in, b
return 1;
}
void disk_eject (int num)
void disk_eject(int num)
{
set_config_changed ();
gui_filename (num, _T(""));
drive_eject (floppy + num);
*currprefs.floppyslots[num].df = *changed_prefs.floppyslots[num].df = 0;
floppy[num].newname[0] = 0;
update_drive_gui (num, true);
set_config_changed();
gui_filename(num, _T(""));
drive_eject(floppy + num);
*currprefs.floppyslots[num].df = *changed_prefs.floppyslots[num].df = 0;
floppy[num].newname[0] = 0;
update_drive_gui(num, true);
}
static void disk_insert_2 (int num, const TCHAR *name, bool forced, bool forcedwriteprotect)
@ -2663,63 +2667,64 @@ void DISK_select_set (uae_u8 data)
fetch_DISK_select (data);
}
void DISK_select (uae_u8 data)
void DISK_select(uae_u8 data)
{
int step_pulse, prev_selected, dr;
int step_pulse, prev_selected, dr;
prev_selected = selected;
prev_selected = selected;
fetch_DISK_select (data);
step_pulse = data & 1;
fetch_DISK_select(data);
step_pulse = data & 1;
if ((prev_data & 0x80) != (data & 0x80)) {
for (dr = 0; dr < 4; dr++) {
if ((prev_data & 0x80) != (data & 0x80)) {
for (dr = 0; dr < 4; dr++) {
if (floppy[dr].indexhackmode > 1 && !((selected | disabled) & (1 << dr))) {
floppy[dr].indexhack = 1;
}
}
}
floppy[dr].indexhack = 1;
}
}
}
// step goes high and drive was selected when step pulse changes: step
if (prev_step != step_pulse) {
prev_step = step_pulse;
if (prev_step && !savestate_state) {
for (dr = 0; dr < MAX_FLOPPY_DRIVES; dr++) {
if (!((prev_selected | disabled) & (1 << dr))) {
drive_step (floppy + dr, direction);
if (floppy[dr].indexhackmode > 1 && (data & 0x80))
floppy[dr].indexhack = 1;
}
}
}
}
if (prev_step != step_pulse) {
prev_step = step_pulse;
if (prev_step && !savestate_state) {
for (dr = 0; dr < MAX_FLOPPY_DRIVES; dr++) {
if (!((prev_selected | disabled) & (1 << dr))) {
drive_step(floppy + dr, direction);
if (floppy[dr].indexhackmode > 1 && (data & 0x80))
floppy[dr].indexhack = 1;
}
}
}
}
if (!savestate_state) {
for (dr = 0; dr < MAX_FLOPPY_DRIVES; dr++) {
drive *drv = floppy + dr;
/* motor on/off workings tested with small assembler code on real Amiga 1200. */
/* motor/id flipflop is set only when drive select goes from high to low */
if (!((selected | disabled) & (1 << dr)) && (prev_selected & (1 << dr)) ) {
drv->drive_id_scnt++;
drv->drive_id_scnt &= 31;
drv->idbit = (drv->drive_id & (1L << (31 - drv->drive_id_scnt))) ? 1 : 0;
if (!(disabled & (1 << dr))) {
if ((prev_data & 0x80) == 0 || (data & 0x80) == 0) {
/* motor off: if motor bit = 0 in prevdata or data -> turn motor on */
drive_motor (drv, 0);
} else if (prev_data & 0x80) {
/* motor on: if motor bit = 1 in prevdata only (motor flag state in data has no effect)
-> turn motor off */
drive_motor (drv, 1);
}
}
if (!savestate_state) {
for (dr = 0; dr < MAX_FLOPPY_DRIVES; dr++) {
drive* drv = floppy + dr;
/* motor on/off workings tested with small assembler code on real Amiga 1200. */
/* motor/id flipflop is set only when drive select goes from high to low */
if (!((selected | disabled) & (1 << dr)) && (prev_selected & (1 << dr))) {
drv->drive_id_scnt++;
drv->drive_id_scnt &= 31;
drv->idbit = (drv->drive_id & (1L << (31 - drv->drive_id_scnt))) ? 1 : 0;
if (!(disabled & (1 << dr))) {
if ((prev_data & 0x80) == 0 || (data & 0x80) == 0) {
/* motor off: if motor bit = 0 in prevdata or data -> turn motor on */
drive_motor(drv, 0);
}
else if (prev_data & 0x80) {
/* motor on: if motor bit = 1 in prevdata only (motor flag state in data has no effect)
-> turn motor off */
drive_motor(drv, 1);
}
}
if (!currprefs.cs_df0idhw && dr == 0)
drv->idbit = 0;
}
}
}
drv->idbit = 0;
}
}
}
for (dr = 0; dr < MAX_FLOPPY_DRIVES; dr++) {
for (dr = 0; dr < MAX_FLOPPY_DRIVES; dr++) {
// selected
if (!(selected & (1 << dr)) && floppy[dr].selected_delay < 0) {
floppy[dr].selected_delay = 2;
@ -2731,49 +2736,52 @@ void DISK_select (uae_u8 data)
// external drives usually (always?) light activity led when selected. Internal only when motor is running.
bool selected_led = !(selected & (1 << dr)) && floppy[dr].selected_delay == 0 && dr > 0;
floppy[dr].state = selected_led || !floppy[dr].motoroff;
update_drive_gui (dr, false);
}
prev_data = data;
update_drive_gui(dr, false);
}
prev_data = data;
}
uae_u8 DISK_status_ciaa(void)
{
uae_u8 st = 0x3c;
uae_u8 st = 0x3c;
for (int dr = 0; dr < MAX_FLOPPY_DRIVES; dr++) {
drive *drv = floppy + dr;
if (!((selected | disabled) & (1 << dr))) {
if (drive_running (drv)) {
if (drv->dskready && !drv->indexhack && currprefs.floppyslots[dr].dfxtype != DRV_35_DD_ESCOM)
st &= ~0x20;
} else {
for (int dr = 0; dr < MAX_FLOPPY_DRIVES; dr++) {
drive* drv = floppy + dr;
if (!((selected | disabled) & (1 << dr))) {
if (drive_running(drv)) {
if (drv->dskready && !drv->indexhack && currprefs.floppyslots[dr].dfxtype != DRV_35_DD_ESCOM)
st &= ~0x20;
}
else {
if (currprefs.cs_df0idhw || dr > 0) {
/* report drive ID */
if (drv->idbit && currprefs.floppyslots[dr].dfxtype != DRV_35_DD_ESCOM)
st &= ~0x20;
} else {
/* non-ID internal drive: mirror real dskready */
if (drv->dskready)
st &= ~0x20;
}
/* dskrdy needs some cycles after switching the motor off.. (Pro Tennis Tour) */
/* report drive ID */
if (drv->idbit && currprefs.floppyslots[dr].dfxtype != DRV_35_DD_ESCOM)
st &= ~0x20;
}
else {
/* non-ID internal drive: mirror real dskready */
if (drv->dskready)
st &= ~0x20;
}
/* dskrdy needs some cycles after switching the motor off.. (Pro Tennis Tour) */
if (!currprefs.cs_df0idhw && dr == 0 && drv->motordelay)
st &= ~0x20;
}
if (drive_track0 (drv))
st &= ~0x10;
if (drive_writeprotected (drv))
st &= ~8;
if (drv->dskchange && currprefs.floppyslots[dr].dfxtype != DRV_525_SD) {
st &= ~4;
}
} else if (!((selected | disabled) & (1 << dr))) {
if (drv->idbit)
st &= ~0x20;
}
}
st &= ~0x20;
}
if (drive_track0(drv))
st &= ~0x10;
if (drive_writeprotected(drv))
st &= ~8;
if (drv->dskchange && currprefs.floppyslots[dr].dfxtype != DRV_525_SD) {
st &= ~4;
}
}
else if (!((selected | disabled) & (1 << dr))) {
if (drv->idbit)
st &= ~0x20;
}
}
return st;
return st;
}
static bool unformatted (drive *drv)
@ -3252,21 +3260,21 @@ static void DISK_start (void)
static int linecounter;
void DISK_hsync (void)
void DISK_hsync(void)
{
int dr;
int dr;
for (dr = 0; dr < MAX_FLOPPY_DRIVES; dr++) {
drive *drv = &floppy[dr];
if (drv->steplimit)
drv->steplimit--;
for (dr = 0; dr < MAX_FLOPPY_DRIVES; dr++) {
drive* drv = &floppy[dr];
if (drv->steplimit)
drv->steplimit--;
if (drv->revolution_check)
drv->revolution_check--;
if (drv->dskready_down_time > 0)
drv->dskready_down_time--;
/* emulate drive motor turn on time */
if (drv->dskready_up_time > 0 && !drive_empty (drv)) {
if (drv->dskready_up_time > 0 && !drive_empty(drv)) {
drv->dskready_up_time--;
if (drv->dskready_up_time == 0 && !drv->motoroff)
drv->dskready = true;
@ -3275,20 +3283,20 @@ void DISK_hsync (void)
if (drv->dskchange_time > 0) {
drv->dskchange_time--;
if (drv->dskchange_time == 0) {
drive_insert (drv, &currprefs, dr, drv->newname, false, drv->newnamewriteprotected);
update_drive_gui (dr, false);
drive_insert(drv, &currprefs, dr, drv->newname, false, drv->newnamewriteprotected);
update_drive_gui(dr, false);
}
}
}
}
if (indexdecay)
indexdecay--;
if (linecounter) {
linecounter--;
if (! linecounter)
disk_dmafinished ();
return;
}
DISK_update (maxhpos);
if (linecounter) {
linecounter--;
if (!linecounter)
disk_dmafinished();
return;
}
DISK_update(maxhpos);
}
void DISK_update (int tohpos)