#include "typedefs.h"
//#include ".\typedefs.h"
// Gradually fix the misunderstanding about "set" and "clear" and remove duplicated definitions
// set means from now on - set LOGICALLY, i.e. if the signal is in negative logic, the set will make it LOW
//     and oppositely, if it is in positive logic set will make it HIGH
// on the schematics the signal nakes in negative logic preceeded by "n"
#define GREEN 0x01
#define RED   0x02
#define OFF   0x00
#define ON    0x01
U8 ioData;


#define  pulseTXD0          GPIO_PORTA_AHB_DATA_BITS_R[0x02] = 0x00;  GPIO_PORTA_AHB_DATA_BITS_R[0x02]     = 0x00;  GPIO_PORTA_AHB_DATA_BITS_R[0x02]    = 0x00;     GPIO_PORTA_AHB_DATA_BITS_R[0x02] = 0x02;
#define  setCs4             GPIO_PORTA_AHB_DATA_BITS_R[0x10] = 0x00;  // be careful!!! set means here make it VALID - negative logic !!!
#define  clearCs4           GPIO_PORTA_AHB_DATA_BITS_R[0x10] = 0x10;
#define  pulseCS4           GPIO_PORTA_AHB_DATA_BITS_R[0x10] = 0x00;  GPIO_PORTA_AHB_DATA_BITS_R[0x10]     = 0x00; GPIO_PORTA_AHB_DATA_BITS_R[0x10]     = 0x10;
#define  setCs5             GPIO_PORTA_AHB_DATA_BITS_R[0x20] = 0x00;
#define  clearCs5           GPIO_PORTA_AHB_DATA_BITS_R[0x20] = 0x20;
#define  pulseCs5           GPIO_PORTA_AHB_DATA_BITS_R[0x20] = 0x00;  GPIO_PORTA_AHB_DATA_BITS_R[0x20]     = 0x00; GPIO_PORTA_AHB_DATA_BITS_R[0x20]     = 0x20;
//#define  setAFLS            GPIO_PORTA_AHB_DATA_BITS_R[0x40] = 0x40;    // setSequencerToMain
//#define  clearAFLS          GPIO_PORTA_AHB_DATA_BITS_R[0x40] = 0x00;    // setSequencerToAfl
#define  setENAFLO          GPIO_PORTA_AHB_DATA_BITS_R[0x80] = 0x00;      // enable flash output
#define  clearENAFLO        GPIO_PORTA_AHB_DATA_BITS_R[0x80] = 0x80;      // disable flash output

#define  pulseRLLWR         GPIO_PORTB_AHB_DATA_BITS_R[0x01] = 0x00;  pulseWR;  GPIO_PORTB_AHB_DATA_BITS_R[0x01] = 0x00; /* GPIO_PORTB_AHB_DATA_BITS_R[0x01] = 0x00;*/  GPIO_PORTB_AHB_DATA_BITS_R[0x01] = 0x01;
#define  pulseNHBWR         GPIO_PORTB_AHB_DATA_BITS_R[0x01] = 0x00;  writePulse; GPIO_PORTB_AHB_DATA_BITS_R[0x01] = 0x01;
#define  pulseBLCNT         GPIO_PORTB_AHB_DATA_BITS_R[0x13] = 0x02;  pulseWR;  GPIO_PORTB_AHB_DATA_BITS_R[0x13]     = 0x13;

#define  pulsePTCWR         GPIO_PORTB_AHB_DATA_BITS_R[0x02] = 0x00;  pulseWR;  GPIO_PORTB_AHB_DATA_BITS_R[0x02] = 0x00; /* GPIO_PORTB_AHB_DATA_BITS_R[0x02] = 0x00;*/  GPIO_PORTB_AHB_DATA_BITS_R[0x02] = 0x02;
#define  pulseNLBWR         GPIO_PORTB_AHB_DATA_BITS_R[0x02] = 0x00;  writePulse; GPIO_PORTB_AHB_DATA_BITS_R[0x02] = 0x02;

#define  rdtPhasePulse      GPIO_PORTB_AHB_DATA_BITS_R[0x08] = 0x00;  GPIO_PORTB_AHB_DATA_BITS_R[0x08] = 0x00;  GPIO_PORTB_AHB_DATA_BITS_R[0x08] = 0x08;
#define  pulseASENA         GPIO_PORTB_AHB_DATA_BITS_R[0x08] = 0x00;  GPIO_PORTB_AHB_DATA_BITS_R[0x08] = 0x00;  GPIO_PORTB_AHB_DATA_BITS_R[0x08] = 0x08;
#define  setASENA           GPIO_PORTB_AHB_DATA_BITS_R[0x08] = 0x00;
#define  clearASENA         GPIO_PORTB_AHB_DATA_BITS_R[0x08] = 0x08;
#define  pulseBLLD          GPIO_PORTB_AHB_DATA_BITS_R[0x10] = 0x00;  pulseWR;  GPIO_PORTB_AHB_DATA_BITS_R[0x10] = 0x00; GPIO_PORTB_AHB_DATA_BITS_R[0x10]     = 0x10;
#define  nBllPulse          GPIO_PORTB_AHB_DATA_BITS_R[0x13] = 0x03;  GPIO_PORTB_AHB_DATA_BITS_R[0x13] = 0x03;   GPIO_PORTB_AHB_DATA_BITS_R[0x13] = 0x13;
#define  nRwrPulse          GPIO_PORTB_AHB_DATA_BITS_R[0x13] = 0x12;  GPIO_PORTB_AHB_DATA_BITS_R[0x13] = 0x12;   GPIO_PORTB_AHB_DATA_BITS_R[0x13] = 0x13;
#define  nPwrPulse          GPIO_PORTB_AHB_DATA_BITS_R[0x13] = 0x11;  GPIO_PORTB_AHB_DATA_BITS_R[0x13] = 0x11;   GPIO_PORTB_AHB_DATA_BITS_R[0x13] = 0x13;
#define  pulseBLEN          GPIO_PORTB_AHB_DATA_BITS_R[0x20] = 0x00;  GPIO_PORTB_AHB_DATA_BITS_R[0x20] = 0x00;   GPIO_PORTB_AHB_DATA_BITS_R[0x20] = 0x00; GPIO_PORTB_AHB_DATA_BITS_R[0x20] = 0x20;
#define  enableBlock        GPIO_PORTB_AHB_DATA_BITS_R[0x20] = 0;     GPIO_PORTB_AHB_DATA_BITS_R[0x20] = 0x00;   GPIO_PORTB_AHB_DATA_BITS_R[0x20] = 0x00;    GPIO_PORTB_AHB_DATA_BITS_R[0x20]     = 0x20;
//#define  pulseBlockAddressL GPIO_PORTB_AHB_DATA_BITS_R[0x13] = 0x03;  pulseWR;  GPIO_PORTB_AHB_DATA_BITS_R[0x13]     = 0x13;
//#define  pulseBlockAddressM GPIO_PORTB_AHB_DATA_BITS_R[0x13] = 0x12;  pulseWR;  GPIO_PORTB_AHB_DATA_BITS_R[0x13]     = 0x13;
//#define  pulseBlockAddressH GPIO_PORTB_AHB_DATA_BITS_R[0x13] = 0x11;  pulseWR;  GPIO_PORTB_AHB_DATA_BITS_R[0x13]     = 0x13;

#define  writeSTTL          GPIO_PORTC_AHB_DATA_BITS_R[0xF0] = 0xC0;   setCs4;   setDisck;     writePulse;   clearDisck;    clearCs4;
#define  sttltPulse         GPIO_PORTC_AHB_DATA_BITS_R[0xF0] = 0xC0;   setCs4;   setDisck;     writePulse;   clearDisck;    clearCs4; 
#define  writeFlash         GPIO_PORTC_AHB_DATA_BITS_R[0xF0] = 0xD0;   setCs4;   writePulse;   clearCs4;
#define  setPortC           GPIO_PORTC_AHB_DATA_BITS_R[0xF0] = address;
#define  setDecoderAddress  GPIO_PORTC_AHB_DATA_BITS_R[0xF0] = address;   setCs4;   setDisck;
                          
#define  setGldAddress      GPIO_PORTC_AHB_DATA_BITS_R[0xF0] = 0x80;   setCs4;   setDisck;
#define  pulseBLCR          GPIO_PORTD_AHB_DATA_BITS_R[0x40] = 0;   GPIO_PORTD_AHB_DATA_BITS_R[0x40] = 0;   GPIO_PORTD_AHB_DATA_BITS_R[0x40] = 0x40;
                          
//#define  pulsePCLK          GPIO_PORTE_AHB_DATA_BITS_R[0x01] = 0x00; GPIO_PORTF_AHB_DATA_BITS_R[0x04]     = 0x00; GPIO_PORTE_AHB_DATA_BITS_R[0x01]     = 0x01; GPIO_PORTF_AHB_DATA_BITS_R[0x04]     = 0x04;
#define  pulseDSCLK         GPIO_PORTE_AHB_DATA_BITS_R[0x02] = 0x00; GPIO_PORTE_AHB_DATA_BITS_R[0x02] = 0x00; GPIO_PORTE_AHB_DATA_BITS_R[0x02] = 0x02;
#define  setDSCLK           GPIO_PORTE_AHB_DATA_BITS_R[0x02] = 0x00; 
#define  clearDSCLK         GPIO_PORTE_AHB_DATA_BITS_R[0x02] = 0x02;
#define  setASTB            GPIO_PORTE_AHB_DATA_BITS_R[0x10] = 0x00;
#define  clearASTB          GPIO_PORTE_AHB_DATA_BITS_R[0x10] = 0x10;
#define  enableDataLT       GPIO_PORTE_AHB_DATA_BITS_R[0x10] = 0x00;
#define  disableDataLT      GPIO_PORTE_AHB_DATA_BITS_R[0x10] = 0x10;
#define  setSHCS            GPIO_PORTE_AHB_DATA_BITS_R[0x20] = 0x20;
#define  clearSHCS          GPIO_PORTE_AHB_DATA_BITS_R[0x20] = 0x00;

#define  mstbPulse          GPIO_PORTF_AHB_DATA_BITS_R[0x02] = 0x00; GPIO_PORTF_AHB_DATA_BITS_R[0x02] = 0x00; GPIO_PORTF_AHB_DATA_BITS_R[0x02] = 0x00; GPIO_PORTF_AHB_DATA_BITS_R[0x02] = 0x02;
#define  pulseMSTB          GPIO_PORTF_AHB_DATA_BITS_R[0x02] = 0x00; GPIO_PORTF_AHB_DATA_BITS_R[0x02]     = 0x00; GPIO_PORTF_AHB_DATA_BITS_R[0x02]     = 0x02;
#define  setMstb            GPIO_PORTF_AHB_DATA_BITS_R[0x02] = 0x00;
#define  clearMstb          GPIO_PORTF_AHB_DATA_BITS_R[0x02] = 0x02;
#define  setWR              GPIO_PORTF_AHB_DATA_BITS_R[0x04] = 0x00;
#define  clearWR            GPIO_PORTF_AHB_DATA_BITS_R[0x04] = 0x04;
#define  pulseWR            GPIO_PORTF_AHB_DATA_BITS_R[0x04] = 0x00; GPIO_PORTF_AHB_DATA_BITS_R[0x04]     = 0x00; GPIO_PORTF_AHB_DATA_BITS_R[0x04]     = 0x04;
#define  writePulse         GPIO_PORTF_AHB_DATA_BITS_R[0x04] = 0x00; GPIO_PORTF_AHB_DATA_BITS_R[0x04]     = 0x00;   mstbPulse;   GPIO_PORTF_AHB_DATA_BITS_R[0x04] = 0x04;
#define  setPFCMD           GPIO_PORTF_AHB_DATA_BITS_R[0x08] = 0x00;
#define  clearPFCMD         GPIO_PORTF_AHB_DATA_BITS_R[0x08] = 0x08;
#define  pulsePFCMD         GPIO_PORTF_AHB_DATA_BITS_R[0x04] = 0x00; GPIO_PORTF_AHB_DATA_BITS_R[0x08] = 0x00; GPIO_PORTF_AHB_DATA_BITS_R[0x0C] = 0x00;   GPIO_PORTF_AHB_DATA_BITS_R[0x0C]     = 0x00;    GPIO_PORTF_AHB_DATA_BITS_R[0x08] = 0x08; GPIO_PORTF_AHB_DATA_BITS_R[0x04] = 0x04;

#define  pulseWRPF          GPIO_PORTF_AHB_DATA_BITS_R[0x0C] = 0x00; GPIO_PORTF_AHB_DATA_BITS_R[0x0C] = 0x00; GPIO_PORTF_AHB_DATA_BITS_R[0x0C] = 0x00; GPIO_PORTF_AHB_DATA_BITS_R[0x08] = 0x08; GPIO_PORTF_AHB_DATA_BITS_R[0x04]     = 0x04;
#define  pulsePFWR          GPIO_PORTF_AHB_DATA_BITS_R[0x0C] = 0x00; GPIO_PORTF_AHB_DATA_BITS_R[0x0C] = 0x00; GPIO_PORTE_AHB_DATA_BITS_R[0x01] = 0x00;   GPIO_PORTF_AHB_DATA_BITS_R[0x08]     = 0x08;    clearWR;




/*
//#define  pulsePFCMD         GPIO_PORTF_AHB_DATA_BITS_R[0x08] = 0x00; setWR;    GPIO_PORTE_AHB_DATA_BITS_R[0x01] = 0x00; GPIO_PORTE_AHB_DATA_BITS_R[0x01] = 0x00; clearWR;   GPIO_PORTE_AHB_DATA_BITS_R[0x01]     = 0x01;
#define  pulseMSTB          GPIO_PORTF_AHB_DATA_BITS_R[0x02] = 0x00; GPIO_PORTF_AHB_DATA_BITS_R[0x02]     = 0x00; GPIO_PORTF_AHB_DATA_BITS_R[0x02]     = 0x02;
#define  mstbPulse          GPIO_PORTF_AHB_DATA_BITS_R[0x02] = 0x00; GPIO_PORTF_AHB_DATA_BITS_R[0x02] = 0x00; GPIO_PORTF_AHB_DATA_BITS_R[0x02] = 0x00; GPIO_PORTF_AHB_DATA_BITS_R[0x02] = 0x02;
#define  setMstb            GPIO_PORTF_AHB_DATA_BITS_R[0x02] = 0x00;
#define  clearMstb          GPIO_PORTF_AHB_DATA_BITS_R[0x02] = 0x02;
#define  pulseWR            GPIO_PORTF_AHB_DATA_BITS_R[0x04] = 0x00; GPIO_PORTF_AHB_DATA_BITS_R[0x04]     = 0x00; GPIO_PORTF_AHB_DATA_BITS_R[0x04]     = 0x04;
#define  writePulse         GPIO_PORTF_AHB_DATA_BITS_R[0x04] = 0x00; GPIO_PORTF_AHB_DATA_BITS_R[0x04]     = 0x00;   mstbPulse;   GPIO_PORTF_AHB_DATA_BITS_R[0x04] = 0x04;
#define  pulseWRPF          GPIO_PORTF_AHB_DATA_BITS_R[0x0C] = 0x00; GPIO_PORTF_AHB_DATA_BITS_R[0x0C] = 0x00; GPIO_PORTF_AHB_DATA_BITS_R[0x0C] = 0x00; GPIO_PORTF_AHB_DATA_BITS_R[0x08] = 0x08; GPIO_PORTF_AHB_DATA_BITS_R[0x04]     = 0x04;
#define  setWR              GPIO_PORTF_AHB_DATA_BITS_R[0x04] = 0x00;
#define  clearWR            GPIO_PORTF_AHB_DATA_BITS_R[0x04] = 0x04;
//#define  setPA3             GPIO_PORTF_AHB_DATA_BITS_R[8]    = 0x00; setDataOutput; setData; GPIO_PORTF_AHB_DATA_BITS_R[8]    = 0x08;   // change ALL set/clear PA3 to PA3B making the apprpriate change
//#define  clearPA3           GPIO_PORTF_AHB_DATA_BITS_R[8]    = 0x00; setDataOutput; setData; GPIO_PORTF_AHB_DATA_BITS_R[8]    = 0x08;   //   i.e. setPA3  ---> clearPA3B
#define  setUp214B_INPUTS   GPIO_PORTF_AHB_DATA_BITS_R[0x06] = 0x06;   ;
*/
//#define  setCh4Sync         GPIO_PORTG_AHB_DATA_BITS_R[0x01] = 0x01;
//#define  clearCh4Sync       GPIO_PORTG_AHB_DATA_BITS_R[0x01] = 0;
//#define  pulsePG1           GPIO_PORTG_AHB_DATA_BITS_R[0x02] = 0x00;   GPIO_PORTG_AHB_DATA_BITS_R[0x02] = 0x02;

#define  enableEPROM        GPIO_PORTH_AHB_DATA_BITS_R[0x01] = 0;
#define  disableEPROM       GPIO_PORTH_AHB_DATA_BITS_R[0x01] = 1;
#define  setDisck           GPIO_PORTH_AHB_DATA_BITS_R[0x08] = 0x00;     //  in fact the signal becomes L
#define  clearDisck         GPIO_PORTH_AHB_DATA_BITS_R[0x08] = 0x08;
#define  setRDP             clearDisck;  setCs4;  GPIO_PORTH_AHB_DATA_BITS_R[0x02] = 0x00;
#define  clearRDP           GPIO_PORTH_AHB_DATA_BITS_R[0x02] = 0x02;


#define  setCh3Sync         GPIO_PORTJ_AHB_DATA_BITS_R[0x01] = 0x01;
#define  clearCh3Sync       GPIO_PORTJ_AHB_DATA_BITS_R[0x01] = 0;
#define  setCh4Sync         GPIO_PORTJ_AHB_DATA_BITS_R[0x02] = 0x02;
#define  clearCh4Sync       GPIO_PORTJ_AHB_DATA_BITS_R[0x02] = 0;
                           
#define  setDataOutput      GPIO_PORTK_DIR_R                 = 0xFF;  setASTB;
#define  setDataInput       GPIO_PORTK_DIR_R                 = 0x00;
#define  setUp212B_INPUTS   GPIO_PORTK_DATA_BITS_R[0xFF]   = 0xFF; 
#define  clear212B_INPUTS   GPIO_PORTK_DATA_BITS_R[0xFF]   = 0x00; 
#define  setData            GPIO_PORTK_DATA_BITS_R[0xFF]     =   data;
//#define  setBlockAddressL   GPIO_PORTK_DATA_BITS_R[0x3F]     =   (stabDev & 0x3F);
//#define  setBlockAddressM   GPIO_PORTK_DATA_BITS_R[0x3F]     =   ((stabDev >> 6) & 0x3F);
//#define  setBlockAddressH   GPIO_PORTK_DATA_BITS_R[0x3F]     =   ((stabDev >> 12) & 0x3F);
//#define  setBlockCounter    GPIO_PORTK_DATA_BITS_R[0x3F]     =   blockLength;;

#define  setPQ0             GPIO_PORTQ_DATA_BITS_R[0x01]     = 1;
#define  clearPQ0           GPIO_PORTQ_DATA_BITS_R[0x01]     = 0;

#define  setFLWR            GPIO_PORTP_DATA_BITS_R[0x04]     = 0;
#define  clearFLWR          GPIO_PORTP_DATA_BITS_R[0x04]     = 4;

#define  delayStart         pulseDelay; mstbPulse;
                           
#define  clockLED           GPIO_PORTN_DATA_BITS_R[0x08] = 0x00; GPIO_PORTN_DATA_BITS_R[0x08] = 0x00; GPIO_PORTN_DATA_BITS_R[0x08] = 0x00; GPIO_PORTN_DATA_BITS_R[0x08] = 0x08;
#define  clockLowByte       GPIO_PORTN_DATA_BITS_R[0x10] = 0x00; GPIO_PORTN_DATA_BITS_R[0x10] = 0x00; GPIO_PORTN_DATA_BITS_R[0x10] = 0x00; GPIO_PORTN_DATA_BITS_R[0x10] = 0x10;
#define  clockHighByte      GPIO_PORTN_DATA_BITS_R[0x20] = 0x00; GPIO_PORTN_DATA_BITS_R[0x20] = 0x00; GPIO_PORTN_DATA_BITS_R[0x20] = 0x00; GPIO_PORTN_DATA_BITS_R[0x20] = 0x20;

#define  setD0              GPIO_PORTK_DATA_BITS_R[0x01] = 0x01;
#define  setD1              GPIO_PORTK_DATA_BITS_R[0x02] = 0x02;
#define  setD2              GPIO_PORTK_DATA_BITS_R[0x04] = 0x04;
#define  setD3              GPIO_PORTK_DATA_BITS_R[0x08] = 0x08;
#define  setD4              GPIO_PORTK_DATA_BITS_R[0x10] = 0x10;
#define  setD5              GPIO_PORTK_DATA_BITS_R[0x20] = 0x20;
#define  setD6              GPIO_PORTK_DATA_BITS_R[0x40] = 0x40;
#define  setD7              GPIO_PORTK_DATA_BITS_R[0x80] = 0x80;
                         
#define  clearD0            GPIO_PORTK_DATA_BITS_R[0x01] = 0xFE;
#define  clearD1            GPIO_PORTK_DATA_BITS_R[0x02] = 0xFD;
#define  clearD2            GPIO_PORTK_DATA_BITS_R[0x04] = 0xFB;
#define  clearD3            GPIO_PORTK_DATA_BITS_R[0x08] = 0xF7;
#define  clearD4            GPIO_PORTK_DATA_BITS_R[0x10] = 0xEF;
#define  clearD5            GPIO_PORTK_DATA_BITS_R[0x20] = 0xDF;
#define  clearD6            GPIO_PORTK_DATA_BITS_R[0x40] = 0xBF;
#define  clearD7            GPIO_PORTK_DATA_BITS_R[0x80] = 0x7F;
                         
#define  pulseD0P           setD0;  clearD0;
#define  pulseD1P           setD1;  clearD1;
#define  pulseD2P           setD2;  clearD2;
#define  pulseD3P           setD3;  clearD3;
#define  pulseD4P           setD4;  clearD4;
#define  pulseD5P           setD5;  clearD5;
#define  pulseD6P           setD6;  clearD6;
#define  pulseD7P           setD7;  clearD7;
                         
#define  pulseD0Z           clearD0;  setD0;  
#define  pulseD1Z           clearD1;  setD1;  
#define  pulseD2Z           clearD2;  setD2;  
#define  pulseD3Z           clearD3;  setD3;  
#define  pulseD4Z           clearD4;  setD4;  
#define  pulseD5Z           clearD5;  setD5;  
#define  pulseD6Z           clearD6;  setD6;  
#define  pulseD7Z           clearD7;  setD7;  


//additional definitions
#define  enableDcBus       setCs4; setDisck;
#define  disableDcBus      clearCs4; clearDisck;

#define setLedValue   GPIO_PORTK_DATA_BITS_R[0xFF] = ledValue;
#define setIoDecAddr  GPIO_PORTC_AHB_DATA_BITS_R[0xF0] = address;
#define setXmblLed    setCs4;  setDisck;  setASTB; writePulse; clearASTB; clearDisck; clearCs4;
#define  executeEnaDis    setCs4;  setDisck;  setWR;  setDataOutput;  enableDataLT; mstbPulse; disableDataLT;  clearWR;  clearCs4; clearDisck;
#define  xmitDisable0     GPIO_PORTM_DATA_BITS_R[0x01]     = 0x00;  GPIO_PORTC_AHB_DATA_BITS_R[0xF0] = 0x20; GPIO_PORTK_DATA_BITS_R[0x03]  = 0x02; executeEnaDis;
#define  xmitDisable1     GPIO_PORTM_DATA_BITS_R[0x01]     = 0x01;  GPIO_PORTC_AHB_DATA_BITS_R[0xF0] = 0x30; GPIO_PORTK_DATA_BITS_R[0x03]  = 0x02; executeEnaDis;
#define  recDisable00     GPIO_PORTM_DATA_BITS_R[0x31]     = 0x00;  GPIO_PORTC_AHB_DATA_BITS_R[0xF0] = 0x40; GPIO_PORTK_DATA_BITS_R[0xFF]  = 0xFF; executeEnaDis;
#define  recDisable01     GPIO_PORTM_DATA_BITS_R[0x31]     = 0x01;  GPIO_PORTC_AHB_DATA_BITS_R[0xF0] = 0x50; GPIO_PORTK_DATA_BITS_R[0xFF]  = 0xFF; executeEnaDis;
#define  recDisable10     GPIO_PORTM_DATA_BITS_R[0x31]     = 0x10;  GPIO_PORTC_AHB_DATA_BITS_R[0xF0] = 0x40; GPIO_PORTK_DATA_BITS_R[0xFF]  = 0xFF; executeEnaDis;
#define  recDisable11     GPIO_PORTM_DATA_BITS_R[0x31]     = 0x11;  GPIO_PORTC_AHB_DATA_BITS_R[0xF0] = 0x50; GPIO_PORTK_DATA_BITS_R[0xFF]  = 0xFF; executeEnaDis;
#define  recDisable20     GPIO_PORTM_DATA_BITS_R[0x31]     = 0x20;  GPIO_PORTC_AHB_DATA_BITS_R[0xF0] = 0x40; GPIO_PORTK_DATA_BITS_R[0xFF]  = 0xFF; executeEnaDis;
#define  recDisable21     GPIO_PORTM_DATA_BITS_R[0x31]     = 0x21;  GPIO_PORTC_AHB_DATA_BITS_R[0xF0] = 0x50; GPIO_PORTK_DATA_BITS_R[0xFF]  = 0xFF; executeEnaDis;
#define  recDisable30     GPIO_PORTM_DATA_BITS_R[0x31]     = 0x30;  GPIO_PORTC_AHB_DATA_BITS_R[0xF0] = 0x40; GPIO_PORTK_DATA_BITS_R[0xFF]  = 0xFF; executeEnaDis;
#define  recDisable31     GPIO_PORTM_DATA_BITS_R[0x31]     = 0x31;  GPIO_PORTC_AHB_DATA_BITS_R[0xF0] = 0x50; GPIO_PORTK_DATA_BITS_R[0xFF]  = 0xFF; executeEnaDis;













// OBSOLETED DEFINITIONS
/*
//#define  nBlenPulse      GPIO_PORTB_AHB_DATA_BITS_R[0x20] = 0x00;   GPIO_PORTB_AHB_DATA_BITS_R[0x20] = 0x00;  GPIO_PORTB_AHB_DATA_BITS_R[0x20] = 0x20;
//#define  pulseAsena        GPIO_PORTE_AHB_DATA_BITS_R[0x10] = 0x10;  GPIO_PORTE_AHB_DATA_BITS_R[0x10] = 0x00;  GPIO_PORTE_AHB_DATA_BITS_R[0x10] = 0x00;  GPIO_PORTE_AHB_DATA_BITS_R[0x10] = 0x10;
//#define  setPA3            GPIO_PORTF_AHB_DATA_BITS_R[8]    = 0x08;
//#define  clearPA3          GPIO_PORTF_AHB_DATA_BITS_R[8]    = 0x00;
//#define  pulsePA3          GPIO_PORTF_AHB_DATA_BITS_R[0x08] = 0x00;  GPIO_PORTF_AHB_DATA_BITS_R[0x08] = 0x00;  GPIO_PORTF_AHB_DATA_BITS_R[0x08] = 0x00; GPIO_PORTF_AHB_DATA_BITS_R[0x08] = 0x08;
//#define  setPG1          GPIO_PORTQ_DATA_BITS_R[0x01]     = 1;
//#define  clearPG1h       GPIO_PORTQ_DATA_BITS_R[0x01]     = 0;
// defines for the Address lines

//#define  xmitEnable      setCs4;  setWR;  setDataOutput;  enableDataLT; GPIO_PORTK_DATA_BITS_R[0x03]     = 0x03; mstbPulse; \\
//                         disableDataLT;  clearWR;  clearCs4;

//#define  setFlashWrite
//#define  pulseADLDH      GPIO_PORTL_DATA_BITS_R[0x01]     = 0x00; GPIO_PORTP_DATA_BITS_R[0x02]     = 0x00; GPIO_PORTP_DATA_BITS_R[0x02]     = 0x02; GPIO_PORTL_DATA_BITS_R[0x01]     = 0x01;              // pulse on ADLDH
//#define  pulseADLDL      GPIO_PORTL_DATA_BITS_R[0x01]     = 0x00; GPIO_PORTP_DATA_BITS_R[0x01]     = 0x00; GPIO_PORTP_DATA_BITS_R[0x01]     = 0x01; GPIO_PORTL_DATA_BITS_R[0x01]     = 0x01;             // pulse on ADLDL
//#define  memWritePulse   GPIO_PORTF_AHB_DATA_BITS_R[0x04] = 0x00; GPIO_PORTE_DATA_BITS_R[0x04]     = 0x00;   mstbPulse;   GPIO_PORTE_DATA_BITS_R[0x04]     = 0x04;    GPIO_PORTF_AHB_DATA_BITS_R[0x04] = 0x04;
//#define  startWriting    setFLINI;    stwrPulse;
//#define  stopWriting     clearFLINI;  stwrPulse;
//#define  startReading    setFLINI;    strdPulse;
//#define  stopReading     clearFLINI;  strdPulse;
//#define  setFLINI        GPIO_PORTQ_DATA_BITS_R[0x01]     = 0x01;
//#define  clearFLINI      GPIO_PORTQ_DATA_BITS_R[0x01]     = 0x00;
//#define  stwrPulse       GPIO_PORTP_DATA_BITS_R[0x08]     = 0x00; GPIO_PORTP_DATA_BITS_R[0x08]     = 0x08;
//#define  strdPulse       GPIO_PORTP_DATA_BITS_R[0x04]     = 0x00; GPIO_PORTP_DATA_BITS_R[0x04]     = 0x04;
//#define  pulseDelay      setPA3; setFLINI; clearFLINI;
//#define  disableDcBus    GPIO_PORTM_DATA_BITS_R[255]      = 0x04;  GPIO_PORTC_AHB_DATA_BITS_R[0xF0] = 0;   GPIO_PORTK_DATA_BITS_R[0x01]     = 1;    setCs4; writePulse; clearCs4;
//#define  rdtPhasePulse   GPIO_PORTC_AHB_DATA_BITS_R[0x30] = 0;     GPIO_PORTM_DATA_BITS_R[0xC1]     = 1;   GPIO_PORTA_AHB_DATA_BITS_R[0x10]     = 0;    writePulse;           GPIO_PORTA_AHB_DATA_BITS_R[0x10]     = 0x10;    GPIO_PORTM_DATA_BITS_R[0xC1]     = 0;
*/


// definitions from PortFunctions.c

//#define   writeIoAddress         GPIO_PORTC_AHB_DATA_BITS_R[0xF0] = ioAddress; GPIO_PORTP_DATA_BITS_R[0x20]     = 0; GPIO_PORTP_DATA_BITS_R[0x20]     = 0; GPIO_PORTP_DATA_BITS_R[0x20]     = 0x20;              // U21 has the address
//#define   writeIoData            GPIO_PORTL_DATA_BITS_R[0x01]     = 0x00;  GPIO_PORTK_DATA_BITS_R[0xFF]     = ioData;   memWritePulse;  GPIO_PORTL_DATA_BITS_R[0x01]     = 0x01;              // disable data bus output
//
//#define  setPA3          GPIO_PORTF_AHB_DATA_BITS_R[8]    = 8;
//#define  clearPA3        GPIO_PORTF_AHB_DATA_BITS_R[8]    = 0;
//#define  setFLINI        GPIO_PORTQ_DATA_BITS_R[0x01]     = 1;   // to delete
//#define  clearFLINI      GPIO_PORTQ_DATA_BITS_R[0x01]     = 0;   // to delete
//#define  stwrPulse       GPIO_PORTP_DATA_BITS_R[0x08]     = 0;                   GPIO_PORTP_DATA_BITS_R[0x08]     = 0x08;
//#define  strdPulse       GPIO_PORTP_DATA_BITS_R[0x04]     = 0;                   GPIO_PORTP_DATA_BITS_R[0x04]     = 0x04;
//#define  pulseADLDH      GPIO_PORTL_DATA_BITS_R[0x01]     = 0x00; GPIO_PORTP_DATA_BITS_R[0x02]     = 0x00; GPIO_PORTP_DATA_BITS_R[0x02]     = 0x02; GPIO_PORTL_DATA_BITS_R[0x01]     = 0x01;              // pulse on ADLDH
//#define  pulseADLDL      GPIO_PORTL_DATA_BITS_R[0x01]     = 0x00; GPIO_PORTP_DATA_BITS_R[0x01]     = 0x00; GPIO_PORTP_DATA_BITS_R[0x01]     = 0x01; GPIO_PORTL_DATA_BITS_R[0x01]     = 0x01;             // pulse on ADLDL
//#define  writePulse      GPIO_PORTF_AHB_DATA_BITS_R[0x04] = 0x00; GPIO_PORTL_DATA_BITS_R[0x01]     = 0x00;   mstbPulse;   GPIO_PORTL_DATA_BITS_R[0x01]     = 0x01;    GPIO_PORTF_AHB_DATA_BITS_R[0x04] = 0x04;
//#define  memWritePulse   GPIO_PORTF_AHB_DATA_BITS_R[0x04] = 0x00; GPIO_PORTL_DATA_BITS_R[0x01]     = 0x00;   mstbPulse;   GPIO_PORTL_DATA_BITS_R[0x01]     = 0x01;    GPIO_PORTF_AHB_DATA_BITS_R[0x04] = 0x04;
//#define  delayStart      pulseDelay; mstbPulse;
//#define  startWriting    setFLINI;    stwrPulse;   // to delete
//#define  stopWriting     clearFLINI;  stwrPulse;   // to delete
//#define  startReading    setFLINI;    strdPulse;   // to delete
//#define  stopReading     clearFLINI;  strdPulse;   // to delete
//#define  mstbPulse       GPIO_PORTF_AHB_DATA_BITS_R[0x02] = 0x00;GPIO_PORTF_AHB_DATA_BITS_R[0x02] = 0x00;GPIO_PORTF_AHB_DATA_BITS_R[0x02] = 0x00;   GPIO_PORTF_AHB_DATA_BITS_R[0x02] = 0x02;
//#define  pulseDelay      setPA3; setFLINI; clearFLINI;
//#define  setCh3Sync      GPIO_PORTG_AHB_DATA_BITS_R[0x02] = 2;
//#define  setCh4Sync      GPIO_PORTG_AHB_DATA_BITS_R[0x01] = 1; GPIO_PORTL_DATA_BITS_R[0x01]     = 0x01;
//#define  clearCh3Sync    GPIO_PORTG_AHB_DATA_BITS_R[0x02] = 0;
//#define  clearCh4Sync    GPIO_PORTG_AHB_DATA_BITS_R[0x01] = 0;
//#define  writeAddress    GPIO_PORTP_DATA_BITS_R[0x04]     = 0;  GPIO_PORTP_DATA_BITS_R[0x04]     = 0;  GPIO_PORTP_DATA_BITS_R[0x04]     = 0;    GPIO_PORTP_DATA_BITS_R[0x04]     = 0x04;
//#define  enableBlock     GPIO_PORTP_DATA_BITS_R[0x08]     = 0;  GPIO_PORTP_DATA_BITS_R[0x08]     = 0;  GPIO_PORTP_DATA_BITS_R[0x08]     = 0;    GPIO_PORTP_DATA_BITS_R[0x08]     = 0x08;
//#define  rdtPhasePulse   GPIO_PORTC_AHB_DATA_BITS_R[0x30] = 0;  GPIO_PORTM_DATA_BITS_R[0xC1]     = 1;  GPIO_PORTP_DATA_BITS_R[0x20]     = 0;    writePulse;           GPIO_PORTP_DATA_BITS_R[0x20]     = 0x20;    GPIO_PORTM_DATA_BITS_R[0xC1]     = 0;




