#ifndef __912D60_H
#define __912D60_H        1

/* Courtesy of Dr. Wannek */
/* base address of register block, change this if you relocate the register
 * block. This is for 912d60 !
 */
#define _IO_BASE        0x0000
#define _P(off)         *(unsigned char volatile *)(_IO_BASE + off)
#define _LP(off)        *(unsigned short volatile *)(_IO_BASE + off)

#define PORTA   _P(0x00)
#define PORTB   _P(0x01)
#define DDRA    _P(0x02)
#define DDRB    _P(0x03)
//#define reserved      _P(0x04)
//#define reserved      _P(0x05)
//#define reserved      _P(0x06)
//#define reserved      _P(0x07)
#define PORTE   _P(0x08)
#define DDRE    _P(0x09)
#define PEAR    _P(0x0A)
#define MODE    _P(0x0B)
#define PUCR    _P(0x0C)
#define RDRIV   _P(0x0D)
//#define reserved      _P(0x0E)
//#define reserved      _P(0x0F)
#define INITRM  _P(0x10)
#define INITRG  _P(0x11)
#define INITEE  _P(0x12)
#define MISC    _P(0x13)
#define RTICTL  _P(0x14)
#define RTIFLG  _P(0x15)
#define COPCTL  _P(0x16)
#define COPRST  _P(0x17)
// --- reserved laut rev2 #define       ITST0   _P(0x18)
// --- reserved laut rev2 #define       ITST1   _P(0x19)
// --- reserved laut rev2 #define       ITST2   _P(0x1A)
// --- reserved laut rev2 #define       ITST3   _P(0x1B)
//#define reserved      _P(0x1C)
//#define reserved      _P(0x1D)
#define INTCR   _P(0x1E)
#define HPRIO   _P(0x1F)
#define BRKCT0  _P(0x20)
#define BRKCT1  _P(0x21)
#define BRKA    _LP(0x22)
#define BRKD    _LP(0x24)
//#define reserved      _P(0x26)
//#define reserved      _P(0x27)
#define PORTG   _P(0x28)
#define PORTH   _P(0x29)
#define DDRG    _P(0x2A)
#define DDRH    _P(0x2B)
#define KWIEG   _P(0x2C)
#define KWIEH   _P(0x2D)
#define KWIFG   _P(0x2E)
#define KWIFH   _P(0x2F)
//#define reserved      _P(0x30)
//#define reserved      _P(0x31)
//#define reserved      _P(0x32)
//#define reserved      _P(0x33)
//#define reserved      _P(0x34)
//#define reserved      _P(0x35)
//#define reserved      _P(0x36)
//#define reserved      _P(0x37)
#define SYNR    _P(0x38)
#define REFDV   _P(0x39)
// --- reserved laut rev2 #define       CGTFLG  _P(0x3A)
#define PLLFLG  _P(0x3B)
#define PLLCR   _P(0x3C)
#define CLKSEL  _P(0x3D)
#define SLOW    _P(0x3E)
// --- reserved laut rev2 #define       CGTCTL  _P(0x3F)

#define PWCLK   _P(0x40)
#define PWPOL   _P(0x41)
#define PWEN    _P(0x42)
#define PWPRES  _P(0x43)
#define PWSCAL0 _P(0x44)
#define PWSCNT0 _P(0x45)
#define PWCCAL1 _P(0x46)
#define PWSCNT1 _P(0x47)
#define PWCNT0  _P(0x48)
#define PWCNT1  _P(0x49)
#define PWCNT2  _P(0x4A)
#define PWCNT3  _P(0x4B)
#define PWPER0  _P(0x4C)
#define PWPER1  _P(0x4D)
#define PWPER2  _P(0x4E)
#define PWPER3  _P(0x4F)
#define PWDTY0  _P(0x50)
#define PWDTY1  _P(0x51)
#define PWDTY2  _P(0x52)
#define PWDTY3  _P(0x53)
#define PWCTL   _P(0x54)
#define PWTST   _P(0x55)
#define PORTP   _P(0x56)
#define DDRP    _P(0x57)

//  #define     ATD0CTL0        _P(0x60)
//  #define     ATD0CTL1        _P(0x61)
#define ATD0CTL2        _P(0x62)
#define ATD0CTL3        _P(0x63)
#define ATD0CTL4        _P(0x64)
#define ATD0CTL5        _P(0x65)
#define ATD0STAT        _LP(0x66)
#define ATD0TEST        _LP(0x68)
//#define reserved      _P(0x6A)
//#define reserved      _P(0x6B)
//#define reserved      _P(0x6C)
//#define reserved      _P(0x6D)
//#define reserved      _P(0x6E)
#define PORTAD0 _P(0x6F)
#define ADR00H  _P(0x70)
#define ADR00L  _P(0x71)
#define ADR01H  _P(0x72)
#define ADR01L  _P(0x73)
#define ADR02H  _P(0x74)
#define ADR02L  _P(0x75)
#define ADR03H  _P(0x76)
#define ADR03L  _P(0x77)
#define ADR04H  _P(0x78)
#define ADR04L  _P(0x79)
#define ADR05H  _P(0x7A)
#define ADR05L  _P(0x7B)
#define ADR06H  _P(0x7C)
#define ADR06L  _P(0x7D)
#define ADR07H  _P(0x7E)
#define ADR07L  _P(0x7F)
#define TIOS    _P(0x80)
#define CFORC   _P(0x81)
#define OC7M    _P(0x82)
#define OC7D    _P(0x83)
#define TCNT    _LP(0x84)
#define TSCR    _P(0x86)
//  #define     TQCR    _P(0x87)
#define TCTL1   _P(0x88)
#define TCTL2   _P(0x89)
#define TCTL3   _P(0x8A)
#define TCTL4   _P(0x8B)
#define TMSK1   _P(0x8C)
#define TMSK2   _P(0x8D)
#define TFLG1   _P(0x8E)
#define TFLG2   _P(0x8F)
#define TC0             _LP(0x90)
#define TC1             _LP(0x92)
#define TC2             _LP(0x94)
#define TC3             _LP(0x96)
#define TC4             _LP(0x98)
#define TC5             _LP(0x9A)
#define TC6             _LP(0x9C)
#define TC7             _LP(0x9E)
#define PACTL   _P(0xA0)
#define PAFLG   _P(0xA1)
#define PACNT   _LP(0xA2)
#define PACN3   _P(0xA2)
#define PACN2   _P(0xA3)
#define PACN1   _P(0xA4)
#define PACN0   _P(0xA5)
#define MCCTL   _P(0xA6)
#define MCFLG   _P(0xA7)
#define ICPAR   _P(0xA8)
#define DLYCT   _P(0xA9)
#define ICOVW   _P(0xAA)
#define ICSYS   _P(0xAB)
//#define reserved      _P(0xAC)
#define TIMTST  _P(0xAD)
#define PORTT   _P(0xAE)
#define DDRT    _P(0xAF)
#define PBCTL   _P(0xB0)
#define PBFLG   _P(0xB1)
#define PA3H    _P(0xB2)
#define PA2H    _P(0xB3)
#define PA1H    _P(0xB4)
#define PA0H    _P(0xB5)
#define MCCNT   _LP(0xB6)
#define TC0H    _LP(0xB8)
#define TC1H    _LP(0xBA)
#define TC2H    _LP(0xBC)
#define TC3H    _LP(0xBE)

#define SC0BD   _LP(0xC0)
#define SC0BDH  _P(0xC0)
#define SC0BDL  _P(0xC1)
#define SC0CR1  _P(0xC2)
#define SC0CR2  _P(0xC3)
#define SC0SR1  _P(0xC4)
#define SC0SR2  _P(0xC5)
#define SC0DRH  _P(0xC6)
#define SC0DRL  _P(0xC7)
#define SC1BD   _LP(0xC8)
#define SC1BDH  _P(0xC8)
#define SC1BDL  _P(0xC9)
#define SC1CR1  _P(0xCA)
#define SC1CR2  _P(0xCB)
#define SC1SR1  _P(0xCC)
#define SC1SR2  _P(0xCD)
#define SC1DRH  _P(0xCE)
#define SC1DRL  _P(0xCF)
#define SP0CR1  _P(0xD0)
#define SP0CR2  _P(0xD1)
#define SP0BR   _P(0xD2)
#define SP0SR   _P(0xD3)
//#define reserved      _P(0xD4)
#define SP0DR   _P(0xD5)
#define PORTS   _P(0xD6)
#define DDRS    _P(0xD7)
//#define reserved      _P(0xD8)
#define PURDS   _P(0xD9)

#define EEMCR   _P(0xF0)
#define EEPROT  _P(0xF1)
//---- reserved laut rev2 #define       EETST   _P(0xF2)
#define EEPROG  _P(0xF3)
#define FEE32LCK        _P(0xF4)
#define FEE32MCR        _P(0xF5)
#define FEE32TST        _P(0xF6)
#define FEE32CTL        _P(0xF7)
#define FEE28LCK        _P(0xF8)
#define FEE28MCR        _P(0xF9)
#define FEE28TST        _P(0xFA)
#define FEE28CTL        _P(0xFB)

#define CMCR0           _P(0x0100)
/*
 to be continued
*/

#include "hc12def.h"
#endif

