2 * betty.c - alternative firmware for the betty tv ;)
4 * author: hackbard@hackdaworld.org
15 const char announce[]="betty - live from flash at 0x80000000! ;)\r\n";
16 const char d1_txt[]="betty";
17 const char d2_txt[]="- alphablend -";
25 #define cc1100_init spi1_init(8,SPI_MASTER,8)
27 void display_string_page(u8 x,u8 p,u8 *s,u8 f,u8 o,u8 sp) {
34 display_font_page(x,p,(u8 *)default_font+(*(s)<<3),f);
40 void __attribute__ ((interrupt("IRQ"))) input_event(void) {
45 if(button_get_event(&button)) {
46 switch(button.key[0]) {
48 display_logo((u8 *)default_logo);
53 DISPLAY_SET_CONTRAST(contrast);
58 DISPLAY_SET_CONTRAST(contrast);
61 display_fill_screen(DISPLAY_FILL_W);
64 display_fill_screen(DISPLAY_FILL_LG);
67 display_fill_screen(DISPLAY_FILL_DG);
70 display_fill_screen(DISPLAY_FILL_B);
73 display_rectangle_page(4,2,60,5,
77 display_rectangle_page(40,5,50,5,
78 DISPLAY_FILL_LG,0x7f);
83 display_font_page(42,18,
84 (u8 *)default_font+(0x34<<3),
88 display_font_page(50,18,
89 (u8 *)default_font+(0x35<<3),
93 display_font_page(58,18,
94 (u8 *)default_font+(0x36<<3),
102 display_string_page(50,13,(u8 *)d1_txt,
106 display_string_page(10,8,(u8 *)d2_txt,
110 display_clear_screen();
115 /* resume the interrupt at button release */
121 noret=IOPIN0&(1<<30)?0:1;
127 interrupt_ext_ir_set(INTERRUPT_EXT3);
143 /* memory mapping - dirty! */
144 if((void *)announce<(void *)FLASH_BANK0)
145 mmap_init(MEMTYPE_RAM);
147 mmap_init(MEMTYPE_EXT);
156 button.mode=BUTTON_INT;
157 button_init(&button);
158 button_set_retries(&button,30);
169 interrupt_ext_ir_config(INTERRUPT_EXT3,INTERRUPT_EXT_NOWAKE,
170 INTERRUPT_EXT_MODE_EDGE,
171 INTERRUPT_EXT_POLAR_LOW);
172 interrupt_ext_ir_set(INTERRUPT_EXT3);
173 interrupt_enable(INTERRUPT_EINT3,INTERRUPT_MODE_VIRQ,
180 /* toggle the display back light */
184 uart0_send_string((char *)announce);
189 uart0_send_string((char *)announce);