From: Toni Wilen Date: Wed, 18 Apr 2018 14:42:57 +0000 (+0300) Subject: Fix directory harddrive/HDF uaehf.device conflict. X-Git-Tag: 4000~117 X-Git-Url: https://git.unchartedbackwaters.co.uk/w/?a=commitdiff_plain;h=c81f9cc757602ae2c700ba684be00f49ff36db09;p=francis%2Fwinuae.git Fix directory harddrive/HDF uaehf.device conflict. --- diff --git a/filesys.cpp b/filesys.cpp index 3e93624e..7165ae92 100644 --- a/filesys.cpp +++ b/filesys.cpp @@ -1139,7 +1139,13 @@ struct hardfiledata *get_hardfile_data_controller(int nr) for (int i = 0; i < MAX_FILESYSTEM_UNITS; i++) { if (uip[i].open == 0) continue; - if (uip[i].hf.ci.controller_unit == nr) + if (uip[i].hf.ci.controller_unit == nr && uip[i].hf.ci.type != UAEDEV_DIR) + return &uip[i].hf; + } + for (int i = 0; i < MAX_FILESYSTEM_UNITS; i++) { + if (uip[i].open == 0) + continue; + if (uip[i].hf.ci.controller_unit == nr && uip[i].hf.ci.type == UAEDEV_DIR) return &uip[i].hf; } return NULL; diff --git a/hardfile.cpp b/hardfile.cpp index e8985267..42791ca2 100644 --- a/hardfile.cpp +++ b/hardfile.cpp @@ -2451,7 +2451,7 @@ static uae_u32 REGPARAM2 hardfile_open (TrapContext *ctx) struct hardfileprivdata *hfpd = &hardfpd[unit]; struct hardfiledata *hfd = get_hardfile_data_controller(unit); if (hfd) { - if (is_hardfile(unit) == FILESYS_VIRTUAL) { + if (hfd->ci.type == UAEDEV_DIR) { if (start_thread(ctx, unit)) { hfpd->directorydrive = true; trap_put_word(ctx, hfpd->base + 32, trap_get_word(ctx, hfpd->base + 32) + 1);