//super8f.h //registerfields in the super8 //19940812/wjvg //bank 0 //0x0d5 flags, system flags register #define FLAGS_BA (1<<0) //bank address #define FLAGS_FIS (1<<1) //fast interrupt status #define FLAGS_HCF (1<<2) //half-carry flag #define FLAGS_DA (1<<3) //decimal adjust #define FLAGS_OF (1<<4) //overflow flag #define FLAGS_SF (1<<5) //sign flag #define FLAGS_ZF (1<<6) //zero flag #define FLAGS_CF (1<<7) //carry flag //0x0dc irq, interrupt request (read only) #define IRQ_L0 (1<<0) //level 0 #define IRQ_L1 (1<<1) //level 1 #define IRQ_L2 (1<<2) //level 2 #define IRQ_L3 (1<<3) //level 3 #define IRQ_L4 (1<<4) //level 4 #define IRQ_L5 (1<<5) //level 5 #define IRQ_L6 (1<<6) //level 6 #define IRQ_L7 (1<<7) //level 7 //0x0dd imr, interrupt mask #define IMR_L0 (1<<0) //level 0 #define IMR_L1 (1<<1) //level 1 #define IMR_L2 (1<<2) //level 2 #define IMR_L3 (1<<3) //level 3 #define IMR_L4 (1<<4) //level 4 #define IMR_L5 (1<<5) //level 5 #define IMR_L6 (1<<6) //level 6 #define IMR_L7 (1<<7) //level 7 #define IMR_P23 IMR_L0 #define IMR_P33 IMR_L0 #define IMR_P31 IMR_L1 #define IMR_P21 IMR_L1 #define IMR_UART_TD IMR_L1 #define IMR_UART_ZC IMR_L1 #define IMR_C0_ZC IMR_L2 #define IMR_P26 IMR_L2 #define IMR_P27 IMR_L2 #define IMR_P22 IMR_L3 #define IMR_P32 IMR_L3 #define IMR_P24 IMR_L4 #define IMR_P25 IMR_L4 #define IMR_C1_ZC IMR_L5 #define IMR_P36 IMR_L5 #define IMR_P37 IMR_L5 #define IMR_P20 IMR_L6 #define IMR_UART_RD IMR_L6 #define IMR_P30 IMR_L6 #define IMR_UART_BRK IMR_L6 #define IMR_UART_CC IMR_L6 #define IMR_UART_WU IMR_L6 #define IMR_UART_ERR IMR_L6 #define IMR_P34 IMR_L7 #define IMR_P35 IMR_L7 //0x0de sym, system mode #define SYM_GIE (1<<0) //global interrupt enable #define SYM_FIE (1<<1) //fast interrupt enable #define SYM_FIL0 (0<<2) //fast interrupt level 0 #define SYM_FIL1 (1<<2) //fast interrupt level 1 #define SYM_FIL2 (2<<2) //fast interrupt level 2 #define SYM_FIL3 (3<<2) //fast interrupt level 3 #define SYM_FIL4 (4<<2) //fast interrupt level 4 #define SYM_FIL5 (5<<2) //fast interrupt level 5 #define SYM_FIL6 (6<<2) //fast interrupt level 6 #define SYM_FIL7 (7<<2) //fast interrupt level 7 #define SYM_M_FIL (7<<2) //fast interrupt level, masker //0x0e0 c0ct, counter 0 control //0x0e1 c1ct, counter 1 control #define CCT_EC (1<<0) //enable counter #define CCT_EOC (1<<1) //end of count #define CCT_ZCIE (1<<2) //zero count interrupt enable #define CCT_SC (1<<3) //software capture #define CCT_ST (1<<4) //software trigger #define CCT_LC (1<<5) //load counter #define CCT_CU (1<<6) //count up #define CCT_C (1<<7) //continuous/single cycle //0x0eb utc, UART transmit control #define UTC_TDE (1<<0) //transmit DMA enable #define UTC_TBE (1<<1) //transmit buffer empty #define UTC_ZC (1<<2) //zero count #define UTC_TE (1<<3) //transmit enable #define UTC_WUE (1<<4) //wake-up enable #define UTC_2SB (1<<5) //2/1 stop bits #define UTC_SB (1<<6) //send break #define UTC_TDS (1<<7) //transmit data select: UART/p31 //0x0ec urc, UART receive control #define UTC_RCA (1<<0) //receive character available #define UTC_RE (1<<1) //receive enable #define UTC_PE (1<<2) //parity error #define UTC_OE (1<<3) //overrun error #define UTC_FE (1<<4) //framing error #define UTC_BD (1<<5) //break detect #define UTC_CCD (1<<6) //control character detect #define UTC_WUD (1<<7) //wake-up detect //0x0ed uie, UART interrupt enable #define UTC_RCAIE (1<<0) //receive character available interrupt enable #define UTC_RDE (1<<1) //receive DMA enable #define UTC_TIE (1<<2) //transmit interrupt enable #define UTC_ZCIE (1<<3) //zero count interrupt enable #define UTC_REIE (1<<4) //receive error interrupt enable #define UTC_BIE (1<<5) //break interrupt enable #define UTC_CCIE (1<<6) //control character interrupt enable #define UTC_WUIE (1<<7) //wake-up interrupt enable //0x0f1 pm, port mode (write only) #define PM_P0I (1<<0) //port 0 input #define PM_P0OD (1<<1) //port 0 open-drain #define PM_P1OD (1<<2) //port 1 open-drain #define PM_EDM (1<<3) //enable DM p35 #define PM_P1I (1<<4) //port1 input (overruled by next bit) #define PM_P1AD (1<<5) //port1 address/data (overrules previous bit) //0x0f4 h0c, handshake 0 control (write only) //0x0f5 h1c, handshake 1 control (write only) #define HC_HE (1<<0) //handshake enable #define HC_PS1 (1<<1) //port select 1/4 (only for h0c) #define HC_DE (1<<2) //DMA enable (only for h0c) #define HC_FIM (1<<3) //fully interlocked/strobed mode #define HC_F_DC (1<<4) //deskew counter (1..16) factor //port modes #define PM_I 0 //input #define PM_IIE 1 //input, interrupt enabled #define PM_OPP 2 //output, push-pull #define PM_OOD 3 //output, open-drain #define PM_M 3 //mask //0x0f8 p2am, port 2/3 a mode (write only) #define P2AM_F_P20 (1<<0) //port 20, faktor #define P2AM_F_P21 (1<<2) //port 21, faktor #define P2AM_F_P30 (1<<4) //port 30, faktor #define P2AM_F_P31 (1<<6) //port 31, faktor #define P2AM_M_P20 (3<<0) //port 20, masker #define P2AM_M_P21 (3<<2) //port 21, masker #define P2AM_M_P30 (3<<4) //port 30, masker #define P2AM_M_P31 (3<<6) //port 31, masker //0x0f9 p2bm, port 2/3 b mode (write only) #define P2BM_F_P22 (1<<0) //port 22, faktor #define P2BM_F_P23 (1<<2) //port 23, faktor #define P2BM_F_P32 (1<<4) //port 32, faktor #define P2BM_F_P33 (1<<6) //port 33, faktor #define P2BM_M_P22 (3<<0) //port 22, masker #define P2BM_M_P23 (3<<2) //port 23, masker #define P2BM_M_P32 (3<<4) //port 32, masker #define P2BM_M_P33 (3<<6) //port 33, masker //0x0fa p2cm, port 2/3 c mode (write only) #define P2CM_F_P24 (1<<0) //port 24, faktor #define P2CM_F_P25 (1<<2) //port 25, faktor #define P2CM_F_P34 (1<<4) //port 34, faktor #define P2CM_F_P35 (1<<6) //port 35, faktor #define P2CM_M_P24 (3<<0) //port 24, masker #define P2CM_M_P25 (3<<2) //port 25, masker #define P2CM_M_P34 (3<<4) //port 34, masker #define P2CM_M_P35 (3<<6) //port 35, masker //0x0fb p2dm, port 2/3 d mode (write only) #define P2DM_F_P26 (1<<0) //port 26, faktor #define P2DM_F_P27 (1<<2) //port 27, faktor #define P2DM_F_P36 (1<<4) //port 36, faktor #define P2DM_F_P37 (1<<6) //port 37, faktor #define P2DM_M_P26 (3<<0) //port 26, masker #define P2DM_M_P27 (3<<2) //port 27, masker #define P2DM_M_P36 (3<<4) //port 36, masker #define P2DM_M_P37 (3<<6) //port 37, masker //0x0ff ipr, interrupt priority register #define IPR_01 (1<<0) // group a: irq0