//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