Added the ability to select earlier CD-ROM drive (emulates Chinon CDS-431 for SCSI and NEC CDR-260 for ATAPI) - needs to be ported to QT.

This commit is contained in:
OBattler
2022-10-29 06:44:30 +02:00
parent f4c2bc7a20
commit 4d19b8a1e4
31 changed files with 539 additions and 295 deletions

View File

@@ -111,7 +111,7 @@ typedef struct cdrom {
char *image_history[CD_IMAGE_HISTORY];
uint32_t sound_on, cdrom_capacity,
pad, seek_pos,
early, seek_pos,
seek_diff, cd_end;
int host_drive, prev_host_drive,

View File

@@ -134,6 +134,7 @@
#define IDS_2158 2158 // "Hard reset"
#define IDS_2159 2159 // "ACPI shutdown"
#define IDS_2160 2160 // "Settings"
#define IDS_2161 2161 // "Early drive"
#define IDS_4096 4096 // "Hard disk (%s)"
#define IDS_4097 4097 // "%01i:%01i"
@@ -242,8 +243,8 @@
#define IDS_LANG_ENUS IDS_7168
#define STR_NUM_2048 106
#define STR_NUM_3072 11
#define STR_NUM_2048 114
// UNUSED: #define STR_NUM_3072 11
#define STR_NUM_4096 40
#define STR_NUM_4352 6
#define STR_NUM_4608 6

View File

@@ -130,9 +130,8 @@
#define IDT_CD_DRIVES 1754 /* CD-ROM drives: */
#define IDT_CD_BUS 1755 /* Bus: */
#define IDT_CD_ID 1756 /* ID: */
#define IDT_CD_LUN 1757 /* LUN: */
#define IDT_CD_CHANNEL 1758 /* Channel: */
#define IDT_CD_SPEED 1759 /* Speed: */
#define IDT_CD_CHANNEL 1757 /* Channel: */
#define IDT_CD_SPEED 1758 /* Speed: */
/* DLG_CFG_OTHER_REMOVABLE_DEVICES */
#define IDT_MO_DRIVES 1760 /* MO drives: */
@@ -277,38 +276,39 @@
#define IDC_COMBO_CD_ID 1127
#define IDC_COMBO_CD_LUN 1128
#define IDC_COMBO_CD_CHANNEL_IDE 1129
#define IDC_CHECKEARLY 1130
#define IDC_LIST_ZIP_DRIVES 1130 /* other removable devices config */
#define IDC_COMBO_ZIP_BUS 1131
#define IDC_COMBO_ZIP_ID 1132
#define IDC_COMBO_ZIP_LUN 1133
#define IDC_COMBO_ZIP_CHANNEL_IDE 1134
#define IDC_CHECK250 1135
#define IDC_COMBO_CD_SPEED 1136
#define IDC_LIST_MO_DRIVES 1137
#define IDC_COMBO_MO_BUS 1138
#define IDC_COMBO_MO_ID 1139
#define IDC_COMBO_MO_LUN 1140
#define IDC_COMBO_MO_CHANNEL_IDE 1141
#define IDC_COMBO_MO_TYPE 1142
#define IDC_LIST_ZIP_DRIVES 1140 /* other removable devices config */
#define IDC_COMBO_ZIP_BUS 1141
#define IDC_COMBO_ZIP_ID 1142
#define IDC_COMBO_ZIP_LUN 1143
#define IDC_COMBO_ZIP_CHANNEL_IDE 1144
#define IDC_CHECK250 1145
#define IDC_COMBO_CD_SPEED 1146
#define IDC_LIST_MO_DRIVES 1147
#define IDC_COMBO_MO_BUS 1148
#define IDC_COMBO_MO_ID 1149
#define IDC_COMBO_MO_LUN 1150
#define IDC_COMBO_MO_CHANNEL_IDE 1151
#define IDC_COMBO_MO_TYPE 1152
#define IDC_CHECK_BUGGER 1150 /* other periph config */
#define IDC_CHECK_POSTCARD 1151
#define IDC_COMBO_ISARTC 1152
#define IDC_CONFIGURE_ISARTC 1153
#define IDC_COMBO_FDC 1154
#define IDC_CONFIGURE_FDC 1155
#define IDC_GROUP_ISAMEM 1156
#define IDC_COMBO_ISAMEM_1 1157
#define IDC_COMBO_ISAMEM_2 1158
#define IDC_COMBO_ISAMEM_3 1159
#define IDC_COMBO_ISAMEM_4 1160
#define IDC_CONFIGURE_ISAMEM_1 1161
#define IDC_CONFIGURE_ISAMEM_2 1162
#define IDC_CONFIGURE_ISAMEM_3 1163
#define IDC_CONFIGURE_ISAMEM_4 1164
#define IDC_CHECK_BUGGER 1160 /* other periph config */
#define IDC_CHECK_POSTCARD 1161
#define IDC_COMBO_ISARTC 1162
#define IDC_CONFIGURE_ISARTC 1163
#define IDC_COMBO_FDC 1164
#define IDC_CONFIGURE_FDC 1165
#define IDC_GROUP_ISAMEM 1166
#define IDC_COMBO_ISAMEM_1 1167
#define IDC_COMBO_ISAMEM_2 1168
#define IDC_COMBO_ISAMEM_3 1169
#define IDC_COMBO_ISAMEM_4 1170
#define IDC_CONFIGURE_ISAMEM_1 1171
#define IDC_CONFIGURE_ISAMEM_2 1172
#define IDC_CONFIGURE_ISAMEM_3 1173
#define IDC_CONFIGURE_ISAMEM_4 1174
#define IDC_SLIDER_GAIN 1170 /* sound gain dialog */
#define IDC_SLIDER_GAIN 1180 /* sound gain dialog */
#define IDC_EDIT_FILE_NAME 1200 /* new floppy image dialog */
#define IDC_COMBO_DISK_SIZE 1201

View File

@@ -36,7 +36,7 @@ typedef struct {
uint8_t status, phase,
error, id,
features, cur_lun,
pad0, pad1;
early, pad1;
uint16_t request_length, max_transfer_len;

View File

@@ -64,6 +64,7 @@
#define GPCMD_PREVENT_REMOVAL 0x1e
#define GPCMD_READ_FORMAT_CAPACITIES 0x23
#define GPCMD_READ_CDROM_CAPACITY 0x25
#define GPCMD_CHINON_UNKNOWN 0x26
#define GPCMD_READ_10 0x28
#define GPCMD_READ_GENERATION 0x29
#define GPCMD_WRITE_10 0x2a
@@ -105,11 +106,13 @@
#define GPCMD_MECHANISM_STATUS 0xbd
#define GPCMD_READ_CD 0xbe
#define GPCMD_SEND_DVD_STRUCTURE 0xbf /* This is for writing only, irrelevant to 86Box. */
#define GPCMD_CHINON_EJECT 0xc0 /* Chinon Vendor Unique command */
#define GPCMD_AUDIO_TRACK_SEARCH 0xc0 /* Toshiba Vendor Unique command */
#define GPCMD_TOSHIBA_PLAY_AUDIO 0xc1 /* Toshiba Vendor Unique command */
#define GPCMD_PAUSE_RESUME_ALT 0xc2
#define GPCMD_STILL 0xc2 /* Toshiba Vendor Unique command */
#define GPCMD_CADDY_EJECT 0xc4 /* Toshiba Vendor Unique command */
#define GPCMD_CHINON_STOP 0xc6 /* Chinon Vendor Unique command */
#define GPCMD_READ_SUBCODEQ_PLAYING_STATUS 0xc6 /* Toshiba Vendor Unique command */
#define GPCMD_READ_DISC_INFORMATION_TOSHIBA 0xc7 /* Toshiba Vendor Unique command */
#define GPCMD_SCAN_ALT 0xcd /* Should be equivalent to 0xba */
@@ -249,6 +252,7 @@
#define MMC_PROFILE_HDDVD_RW_DL 0x005A
#define MMC_PROFILE_INVALID 0xFFFF
#define EARLY_ONLY 64
#define SCSI_ONLY 32
#define ATAPI_ONLY 16
#define IMPLEMENTED 8