diff --git a/scp.c b/scp.c index b6c6ed5f..e9a76f5c 100644 --- a/scp.c +++ b/scp.c @@ -2746,6 +2746,10 @@ if (flag) { fprintf (st, "\n\t\t%s", sim_sa64); fprintf (st, "\n\t\t%s", sim_snet); fprintf (st, "\n\t\t%s", sim_taddr_64 ? "Large File (>2GB) support" : "No Large File support"); + if (sim_disk_vhd_support()) + fprintf (st, "\n\t\tVirtual Hard Disk (VHD) support"); + if (sim_disk_raw_support()) + fprintf (st, "\n\t\tRAW disk and CD/DVD ROM support"); #if defined (SIM_ASYNCH_IO) fprintf (st, "\n\t\tAsynchronous I/O support"); #endif diff --git a/sim_disk.c b/sim_disk.c index 18b31698..6abdd84b 100644 --- a/sim_disk.c +++ b/sim_disk.c @@ -1259,6 +1259,16 @@ fprintf (st, " RQ2, 456MB, attached to RA81-Copy.vhd, write enabled, RA81, noau return SCPE_OK; } +t_bool sim_disk_vhd_support (void) +{ +return SCPE_OK == sim_vhd_disk_implemented (); +} + +t_bool sim_disk_raw_support (void) +{ +return SCPE_OK == sim_os_disk_implemented_raw (); +} + t_stat sim_disk_reset (UNIT *uptr) { struct disk_context *ctx = (struct disk_context *)uptr->disk_ctx; @@ -1575,7 +1585,7 @@ return "Unknown"; static t_stat sim_os_disk_implemented_raw (void) { -return SCPE_OK; +return sim_taddr_64 ? SCPE_OK : SCPE_NOFNC; } static FILE *sim_os_disk_open_raw (const char *rawdevicename, const char *openmode) @@ -1863,7 +1873,7 @@ return SCPE_IOERR; static t_stat sim_os_disk_implemented_raw (void) { -return SCPE_OK; +return sim_taddr_64 ? SCPE_OK : SCPE_NOFNC; } static FILE *sim_os_disk_open_raw (const char *rawdevicename, const char *openmode) @@ -2711,7 +2721,7 @@ struct VHD_IOData { static t_stat sim_vhd_disk_implemented (void) { -return SCPE_OK; +return sim_taddr_64 ? SCPE_OK : SCPE_NOFNC; } static t_stat sim_vhd_disk_set_dtype (FILE *f, const char *dtype) diff --git a/sim_disk.h b/sim_disk.h index b9b850d6..8701404e 100644 --- a/sim_disk.h +++ b/sim_disk.h @@ -86,6 +86,8 @@ t_bool sim_disk_isavailable (UNIT *uptr); t_bool sim_disk_isavailable_a (UNIT *uptr, DISK_PCALLBACK callback); t_bool sim_disk_wrp (UNIT *uptr); t_addr sim_disk_size (UNIT *uptr); +t_bool sim_disk_vhd_support (void); +t_bool sim_disk_raw_support (void); void sim_disk_data_trace (UNIT *uptr, const uint8 *data, size_t lba, size_t len, const char* txt, int detail, uint32 reason); #endif