//m6811s.h
//definition of the 6811-hardware
//the porst as structure
//19940717/wjvg

struct sregs {
  unsigned char  porta;   //00: poort a
  unsigned char  res_01;  //01: reserved
  unsigned char  pioc;    //02: pio
  unsigned char  portc;   //03: 
  unsigned char  portb;   //04: 
  unsigned char  portcl;  //05: 
  unsigned char  ddrb;    //06: 
  unsigned char  ddrc;    //07: reserved
  unsigned char  portd;   //08:  port d data register
  unsigned char  ddrd;    //09:  port d ddr
  unsigned char  porte;   //0a:
  unsigned char  cforc;   //0b:  force output compare
  unsigned char  oc1m;    //0c:
  unsigned char  oc1d;    //0d:
  unsigned short tcnt;    //0e:  timer count

  unsigned short tic1;    //10:  ic1 reg
  unsigned short tic2;    //12:  ic2 reg
  unsigned short tic3;    //14:  ic3 reg
  unsigned short toc1;    //16:  oc1 reg
  unsigned short toc2;    //18:  oc2 reg
  unsigned short toc3;    //1a:  oc3 reg
  unsigned short toc4;    //1c:  oc4 reg
  unsigned short toc5;    //1e:  oc5 reg

  unsigned char  tctl1;   //20:  timer control 1
  unsigned char  tctl2;   //21:  timer control 2
  unsigned char  tmsk1;   //22:  timer mask 1
  unsigned char  tflg1;   //23:  timer flag 1
  unsigned char  tmsk2;   //24:  timer mask 2
  unsigned char  tflg2;   //25:  timer flag 2
  unsigned char  pactl;   //26:  
  unsigned char  pacnt;   //27:  
  unsigned char  spcr;    //28:  SPI CNTL REG  DWOM
  unsigned char  spsr;    //29:
  unsigned char  spdr;    //2a:
  unsigned char  baud;    //2b:  sci baud reg
  unsigned char  sccr1;   //2c:  sci control1 reg
  unsigned char  sccr2;   //2d:  sci control2 reg
  unsigned char  scsr;    //2e:  sci status reg
  unsigned char  scdr;    //2f:  sci data reg

  unsigned char  adctl;   //30:
  unsigned char  adr1;    //31:
  unsigned char  adr2;    //32:
  unsigned char  adr3;    //33:
  unsigned char  adr4;    //34:
  unsigned char  bprot;   //35:  block protect reg
  unsigned char  res_36;  //36:
  unsigned char  res_37;  //37:
  unsigned char  res_38;  //38:
  unsigned char  option;  //39:  option reg
  unsigned char  coprst;  //3a:  cop reset reg
  unsigned char  pprog;   //3b:  ee prog reg
  unsigned char  hprio;   //3c:  hprio reg
  unsigned char  init;    //3d:
  unsigned char  test1;   //3e:
  unsigned char  config;  //3f:  config register
};

//extern struct sregs Sregs;

#if FOR_6811D3
struct sregs Sregs @ 0x0000;
#endif
#if FOR_6811F1
struct sregs Sregs @ 0x1000;
#endif

//#define PIOC_STAF  (1<<7)  //strobe A interrupt status flag
//#define PIOC_STAI  (1<<6)  //strobe A interrupt enable mask
//#define PIOC_CWOM  (1<<5)  //
//#define PIOC_HNDS  (1<<4)  //
//#define PIOC_OIN   (1<<3)  //
//#define PIOC_PLS   (1<<2)  //
//#define PIOC_EGA   (1<<1)  //
//#define PIOC_INVB  (1<<0)  //

//#define CFORC_FOC1 (1<<7)  //
//#define CFORC_FOC2 (1<<6)  //
//#define CFORC_FOC3 (1<<5)  //
//#define CFORC_FOC4 (1<<4)  //
//#define CFORC_FOC5 (1<<3)  //

// base 0xe000
//Arom rmb 0x2000      de rom
//SZ_ROM *-Arom

// base 0xb600
//Aeeprom rmb 0x200        de eeprom
//SZ_EEPROM *-Aeeprom
 
// base 0xbf40
//Abootrom rmb 0xc0          de bootrom
//SZ_BOOTROM *-Abootrom

//#define dstree   $F000      start of eprom
//#define dendee   $FFFF      end of eprom

//#define dflop    $4000      evb d flip flop
//#define acia     $9800      acia address

//end
