ソースを参照

new Quirks X68000

Merges #102
aotta 1 年間 前
コミット
aa77d67eca

+ 1 - 0
lib/SCSI2SD/include/scsi2sd.h

@@ -84,6 +84,7 @@ typedef enum
 	S2S_CFG_QUIRKS_OMTI = 2,
 	S2S_CFG_QUIRKS_XEBEC = 4,
 	S2S_CFG_QUIRKS_VMS = 8,
+	S2S_CFG_QUIRKS_X68000 = 16,
 } S2S_CFG_QUIRKS;
 
 typedef enum

+ 17 - 0
lib/SCSI2SD/src/firmware/scsi.c

@@ -377,6 +377,23 @@ static void process_Command()
 		memset(scsiDev.cdb, 0xff, sizeof(scsiDev.cdb));
 		return;
 	}
+	// X68000 and strange "0x00 0xXX .. .. .. .." command
+	else if ((command == 0x00) && likely(scsiDev.target->cfg->quirks == S2S_CFG_QUIRKS_X68000))
+	{
+		if (scsiDev.cdb[1] == 0x28)
+		{
+			scsiDev.target->sense.code = NO_SENSE;
+			scsiDev.target->sense.asc = NO_ADDITIONAL_SENSE_INFORMATION;
+			enter_Status(CHECK_CONDITION);
+			return;
+		} 	else if (scsiDev.cdb[1] == 0x03)
+		{
+			scsiDev.target->sense.code = NO_SENSE;
+			scsiDev.target->sense.asc = NO_ADDITIONAL_SENSE_INFORMATION;
+			enter_Status(GOOD);
+			return;
+		}
+	}
 	else if (parityError &&
 		(scsiDev.boardCfg.flags & S2S_CFG_ENABLE_PARITY))
 	{

+ 1 - 1
platformio.ini

@@ -18,7 +18,7 @@ platform_packages = platformio/toolchain-gccarmnoneeabi@1.100301.220327
 framework = arduino
 board = rpipicow
 board_build.core = earlephilhower
-upload_protocol = picoprobe
+upload_protocol = cmsis-dap
 debug_tool = cmsis-dap ; new picoprobe.uf2's emulate cmsis-dap
 ; extra_scripts = src/build_bootloader.py
 ; ldscript_bootloader = lib/BlueSCSI_platform_RP2040/rp2040_btldr.ld

+ 2 - 0
src/BlueSCSI.cpp

@@ -210,6 +210,8 @@ const char * quirksToChar(int quirks)
     return "VMS";
   case S2S_CFG_QUIRKS_XEBEC:
     return "XEBEC";
+  case S2S_CFG_QUIRKS_X68000:
+    return "X68000";
   case S2S_CFG_QUIRKS_NONE:
     return "None";
   default:

+ 2 - 1
src/BlueSCSI_presets.cpp

@@ -56,8 +56,9 @@ preset_config_t getSystemPreset(const char *presetName)
     }
     else if (strequals(presetName, "X68000"))
     {
+        cfg.presetName = "X68000";
         cfg.selectionDelay = 0;
-        cfg.quirks = 0;
+        cfg.quirks = S2S_CFG_QUIRKS_X68000;
         cfg.enableSCSI2 = 0;
         cfg.maxSyncSpeed = 5;
     }