This source file includes following definitions.
- shutdown
- debug_led
- camera_set_led
- get_flash_params_count
- vid_bitmap_refresh
- vid_get_viewport_live_fb
- vid_get_bitmap_active_palette
- vid_get_palette_type
- vid_get_palette_size
- vid_get_bitmap_active_buffer
1 #include "platform.h"
2 #include "lolevel.h"
3
4 void shutdown()
5 {
6 volatile long *p = (void*)0xC0220010;
7
8 asm(
9 "MRS R1, CPSR\n"
10 "AND R0, R1, #0x80\n"
11 "ORR R1, R1, #0x80\n"
12 "MSR CPSR_cf, R1\n"
13 :::"r1","r0");
14
15 *p = 0x44;
16
17 while(1);
18 }
19
20
21 #define LED_PR 0xC0220010
22
23 void debug_led(int state)
24 {
25 volatile long *p=(void*)LED_PR;
26 if (state)
27 p[0]=0x46;
28 else
29 p[0]=0x44;
30 }
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55 #define LED_BASE 0xc0220000
56
57 void camera_set_led(int led, int state, __attribute__ ((unused))int bright)
58
59 {
60 int leds[] = {16,0,5,4,0,9,0};
61 if(led < 4 || led > 10) return;
62 led -= 4;
63 if (leds[led])
64 {
65 volatile long *p=(void*)LED_BASE + leds[led];
66 if (state)
67 p[0]=0x46;
68 else
69 p[0]=0x44;
70 }
71 }
72
73
74
75
76
77
78
79
80
81 int get_flash_params_count(void){
82
83
84
85
86
87 return 0x94;
88 }
89 void vid_bitmap_refresh() {
90 extern int enabled_refresh_physical_screen;
91 extern int full_screen_refresh;
92
93
94
95
96 extern void _ScreenLock();
97 extern void _ScreenUnlock();
98
99 _ScreenLock();
100
101 enabled_refresh_physical_screen=1;
102 full_screen_refresh=3;
103
104 _ScreenUnlock();
105 }
106
107
108 extern char active_viewport_buffer;
109 extern void* viewport_buffers[];
110
111
112 void *vid_get_viewport_live_fb()
113 {
114 unsigned char buff = (unsigned char) active_viewport_buffer;
115 if (buff == 0) buff = 2; else buff--;
116 return viewport_buffers[buff];
117 }
118
119
120
121 void *vid_get_bitmap_active_palette() {
122 return (void*)(*(int*)(0x4c18+0x20));
123 }
124
125
126 int vid_get_palette_type() { return 4; }
127 int vid_get_palette_size() { return 16*4; }
128
129 void *vid_get_bitmap_active_buffer()
130 {
131 return (void*)(*(int*)(0x4c18+0xC));
132 }