mirror of
https://github.com/erichelgeson/BlueSCSI.git
synced 2024-05-29 04:41:28 +00:00
Compare commits
13 Commits
v1.1-20231
...
main
Author | SHA1 | Date | |
---|---|---|---|
|
bf5823468a | ||
|
2baa0155e1 | ||
|
3a9db99723 | ||
|
70eda86484 | ||
|
9d4207ea14 | ||
|
1d49003fe1 | ||
|
0a30396c3b | ||
|
ba06827814 | ||
|
a45af3edec | ||
|
0be37ccde0 | ||
|
e236b5b054 | ||
|
47179c5fd0 | ||
|
59c858332a |
BIN
3D-Files/1.1/internal-50pin/bluescsi11a_kerosmacmodsv2.stl.zip
Normal file
BIN
3D-Files/1.1/internal-50pin/bluescsi11a_kerosmacmodsv2.stl.zip
Normal file
Binary file not shown.
516
src/BlueSCSI.cpp
516
src/BlueSCSI.cpp
File diff suppressed because it is too large
Load Diff
|
@ -99,8 +99,6 @@ enum SCSI_DEVICE_TYPE
|
|||
#define IO PB7 // SCSI:I/O
|
||||
|
||||
#define SD_CS PA4 // SDCARD:CS
|
||||
#define LED PC13 // LED
|
||||
#define LED2 PA0 // External LED
|
||||
|
||||
// Image Set Selector
|
||||
#ifdef XCVR
|
||||
|
@ -116,17 +114,29 @@ enum SCSI_DEVICE_TYPE
|
|||
#define PBREG GPIOB->regs
|
||||
#define PCREG GPIOC->regs
|
||||
|
||||
// LED control
|
||||
#define LED_ON() PCREG->BSRR = 0b00100000000000000000000000000000; PAREG->BSRR = 0b00000000000000000000000000000001;
|
||||
#define LED_OFF() PCREG->BSRR = 0b00000000000000000010000000000000; PAREG->BSRR = 0b00000000000000010000000000000000;
|
||||
|
||||
// Virtual pin (Arduio compatibility is slow, so make it MCU-dependent)
|
||||
#define PA(BIT) (BIT)
|
||||
#define PB(BIT) (BIT+16)
|
||||
#define PC(BIT) (BIT+32)
|
||||
|
||||
// Virtual pin decoding
|
||||
#define GPIOREG(VPIN) ((VPIN)>=16?PBREG:PAREG)
|
||||
#define GPIOREG(VPIN) ((VPIN)>=16?((VPIN)>=32?PCREG:PBREG):PAREG)
|
||||
#define BITMASK(VPIN) (1<<((VPIN)&15))
|
||||
|
||||
// Built-in LED
|
||||
#define LED PC13
|
||||
#define vLED PC(13)
|
||||
#define LED_MODE GPIO_OUTPUT_OD
|
||||
|
||||
// External LED
|
||||
#define LED2 PA0
|
||||
#define vLED2 PA(0)
|
||||
#define LED2_MODE GPIO_OUTPUT_PP
|
||||
|
||||
// LED control
|
||||
#define LED_ON() GPIOREG(vLED)->BSRR = BITMASK(vLED) << (LED_MODE == GPIO_OUTPUT_PP ? 0 : 16); GPIOREG(vLED2)->BSRR = BITMASK(vLED2) << (LED2_MODE == GPIO_OUTPUT_PP ? 0 : 16);
|
||||
#define LED_OFF() GPIOREG(vLED)->BSRR = BITMASK(vLED) << (LED_MODE == GPIO_OUTPUT_PP ? 16 : 0); GPIOREG(vLED2)->BSRR = BITMASK(vLED2) << (LED2_MODE == GPIO_OUTPUT_PP ? 16 : 0);
|
||||
|
||||
#define vATN PA(8) // SCSI:ATN
|
||||
#define vBSY PA(9) // SCSI:BSY
|
||||
#define vACK PA(10) // SCSI:ACK
|
||||
|
@ -172,7 +182,7 @@ enum SCSI_DEVICE_TYPE
|
|||
| 1 | 1 | 1 | MESSAGE IN | Initiator from target / | phase |
|
||||
|-----------------------------------------------------------------------------|
|
||||
| Key: 0 = False, 1 = True, * = Reserved for future standardization |
|
||||
+=============================================================================+
|
||||
+=============================================================================+
|
||||
*/
|
||||
// SCSI phase change as single write to port B
|
||||
#define SCSIPHASEMASK(MSGACTIVE, CDACTIVE, IOACTIVE) ((BITMASK(vMSG)<<((MSGACTIVE)?16:0)) | (BITMASK(vCD)<<((CDACTIVE)?16:0)) | (BITMASK(vIO)<<((IOACTIVE)?16:0)))
|
||||
|
@ -330,15 +340,15 @@ typedef struct _SCSI_INQUIRY_DATA
|
|||
// HDD image
|
||||
typedef __attribute__((aligned(4))) struct _SCSI_DEVICE
|
||||
{
|
||||
FsFile m_file; // File object
|
||||
uint64_t m_fileSize; // File size
|
||||
uint16_t m_blocksize; // SCSI BLOCK size
|
||||
FsFile m_file; // File object
|
||||
uint64_t m_fileSize; // File size
|
||||
uint16_t m_blocksize; // SCSI BLOCK size
|
||||
uint16_t m_rawblocksize; // OPTICAL raw sector size
|
||||
uint8_t m_type; // SCSI device type
|
||||
uint32_t m_blockcount; // blockcount
|
||||
SCSI_INQUIRY_DATA inquiry_block; // SCSI information
|
||||
SCSI_INQUIRY_DATA inquiry_block; // SCSI information
|
||||
uint8_t m_senseKey; // Sense key
|
||||
uint16_t m_additional_sense_code; // ASC/ASCQ
|
||||
uint16_t m_additional_sense_code; // ASC/ASCQ
|
||||
uint8_t m_sector_offset; // optical sector offset for missing sync header
|
||||
uint8_t flags; // various device flags
|
||||
} SCSI_DEVICE;
|
||||
|
|
Loading…
Reference in New Issue
Block a user