|
@@ -103,8 +103,7 @@
|
|
|
|
|
|
// Virtual pin decoding
|
|
|
#define GPIOREG(VPIN) ((VPIN) >= 16 ? ((VPIN) >= 32 ? ((VPIN) >= 48 ? ((VPIN) >= 48 ? PEREG : PDREG) : PCREG) : PBREG) : PAREG)
|
|
|
-//BLACKSASI need to be fixed
|
|
|
-#define BITMASK(VPIN) (1 << ((VPIN) & 15))
|
|
|
+#define BITMASK(VPIN) (1 << ((VPIN % 16) & 15))
|
|
|
|
|
|
#define vATN PB(14) // SCSI:ATN
|
|
|
#define vBSY PB(6) // SCSI:BSY
|
|
@@ -121,12 +120,11 @@
|
|
|
#define vTAD PC(2) // SCSI:TAD
|
|
|
#define vTRANS_OE PB(12) // SCSI:TRANS_OE
|
|
|
// SCSI output pin control: opendrain active LOW (direct pin drive)
|
|
|
-//BLACKSASI need to be fixed
|
|
|
#define SCSI_OUT(VPIN,ACTIVE) { GPIOREG(VPIN)->BSRR = BITMASK(VPIN) << ((ACTIVE) ? 16 : 0); }
|
|
|
|
|
|
// SCSI input pin check (inactive=0,active=1)
|
|
|
-//BLACKSASI need to be fixed
|
|
|
-#define SCSI_IN(VPIN) ((~GPIOREG(VPIN)->IDR >> (VPIN & 15)) & 1)
|
|
|
+//BLACKSASI need to be checked
|
|
|
+#define SCSI_IN(VPIN) ((~GPIOREG(VPIN)->IDR >> ((VPIN % 16) & 15)) & 1)
|
|
|
|
|
|
// HDDiamge file
|
|
|
#define HDIMG_ID_POS 2 // Position to embed ID number
|