|  | @@ -121,7 +121,6 @@ byte          m_msb[256];             // Command storage bytes
 | 
	
		
			
				|  |  |  /**
 | 
	
		
			
				|  |  |   * BSRR register generator
 | 
	
		
			
				|  |  |   * Totally configurable for which pin is each data bit, which pin is PTY, and which pin is REQ.
 | 
	
		
			
				|  |  | - * The only requirement is that data and parity pins are in the same GPIO block.
 | 
	
		
			
				|  |  |   * REQ can be specified as -1 to ignore, as it doens't have to be in the same GPIO block.
 | 
	
		
			
				|  |  |   * This is dramatically slower than the original static array, but is easier to configure
 | 
	
		
			
				|  |  |   */
 | 
	
	
		
			
				|  | @@ -228,7 +227,6 @@ byte SCSI_INFO_BUF[SCSI_INFO_BUF_SIZE] = {
 | 
	
		
			
				|  |  |  inline byte readIO(void)
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  |    // Port input data register
 | 
	
		
			
				|  |  | -  // FIXED FOR BLACKSASI
 | 
	
		
			
				|  |  |    uint32_t ret = GPIOD->regs->IDR;
 | 
	
		
			
				|  |  |    byte bret = (byte)(~(ret)); 
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -248,7 +246,6 @@ inline byte readIO(void)
 | 
	
		
			
				|  |  |   */
 | 
	
		
			
				|  |  |  inline byte readHandshake(void)
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  | -  // FIXED FOR BLACKSASI
 | 
	
		
			
				|  |  |    SCSI_OUT(vREQ,active)
 | 
	
		
			
				|  |  |    //SCSI_DB_INPUT()
 | 
	
		
			
				|  |  |    while( ! SCSI_IN(vACK)) { if(m_isBusReset) return 0; }
 | 
	
	
		
			
				|  | @@ -328,34 +325,6 @@ void setup()
 | 
	
		
			
				|  |  |    //Check which image to load
 | 
	
		
			
				|  |  |    switchImage();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -/*
 | 
	
		
			
				|  |  | -Should not be used due to buffers
 | 
	
		
			
				|  |  | -  // set up OTYPER for open drain on SCSI pins of PA and PB
 | 
	
		
			
				|  |  | -  // PA 0-7, 11-14
 | 
	
		
			
				|  |  | -  uint32_t oTypeA_And = 0x000078FF;
 | 
	
		
			
				|  |  | -  // PA 8, 9, 10, 15
 | 
	
		
			
				|  |  | -  uint32_t oTypeA_Or = 0x00008700;
 | 
	
		
			
				|  |  | -  GPIOA->regs->OTYPER = (GPIOA->regs->OTYPER & oTypeA_And) | oTypeA_Or;
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -  // PB 1, 11 are not used
 | 
	
		
			
				|  |  | -  uint32_t oTypeB_And = 0x00000000;
 | 
	
		
			
				|  |  | -  // PB 0, 2-10, 12-15 are used for SCSI, set open drain
 | 
	
		
			
				|  |  | -  uint32_t oTypeB_Or = 0x0000F7FD;
 | 
	
		
			
				|  |  | -  GPIOB->regs->OTYPER = (GPIOB->regs->OTYPER & oTypeB_And) | oTypeB_Or;
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -  // PD 8-15 are not used
 | 
	
		
			
				|  |  | -  uint32_t oTypeD_And = 0b00000000000000001111111100000000;
 | 
	
		
			
				|  |  | -  // PD 0-7 are used for SCSI, set open drain
 | 
	
		
			
				|  |  | -  uint32_t oTypeD_Or  = 0b00000000000000000000000011111111;
 | 
	
		
			
				|  |  | -  GPIOD->regs->OTYPER = (GPIOD->regs->OTYPER & oTypeD_And) | oTypeD_Or;
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -  // PE 1, 7-15 are not used
 | 
	
		
			
				|  |  | -  uint32_t oTypeE_And = 0b00000000000000001111111110000010;
 | 
	
		
			
				|  |  | -  // PE 0,2-6 are used for SCSI, set open drain
 | 
	
		
			
				|  |  | -  uint32_t oTypeE_Or  = 0b00000000000000000000000001111101;
 | 
	
		
			
				|  |  | -  GPIOD->regs->OTYPER = (GPIOE->regs->OTYPER & oTypeE_And) | oTypeE_Or;
 | 
	
		
			
				|  |  | -*/
 | 
	
		
			
				|  |  |    // Turn off the output port
 | 
	
		
			
				|  |  |    SCSI_TARGET_INACTIVE()
 | 
	
		
			
				|  |  |    
 |