httpd wip
[fw/openocd] / src / server / httpd / browsemem.tcl
1 # converted to .tcl by html2tcl.tcl\r
2 set buffer ""\r
3 append buffer {\r
4         \r
5         \r
6 \r
7                 \r
8                 \r
9                 \r
10 \r
11 \r
12                 \r
13 \r
14 \r
15 \r
16                 \r
17                 \r
18 \r
19                 \r
20 \r
21 \r
22 \r
23 \r
24                 \r
25 \r
26 \r
27 \r
28                 \r
29 \r
30 \r
31                 \r
32 \r
33 \r
34                 <html xmlns="http://www.w3.org/TR/REC-html40">\r
35 <head>\r
36 <title>OpenOCD debugger</title>\r
37 <meta charset="utf-8" content="text/html" http-equiv="Content-Type"/>\r
38 <link type="text/css" rel="stylesheet" href="menuweb.css"/>\r
39 </head>\r
40 }\r
41 \r
42                                 set console ""\r
43                                 set upload_filename /ram/upload\r
44                         \r
45 append buffer {\r
46 <body style="margin:0px;">\r
47 <div style="width:974px;height:85px;">\r
48 <div style="float:left;position:relative;left:32px;width:478px;">\r
49 <a href="/">\r
50                                                         OpenOCD\r
51                                                 </a>\r
52 </div>\r
53 <div style="float:left;position:relative;height:26px; width:278px;left:122px;background-image:url('menu_cuts/top_right.png');">\r
54 <div style="position:relative;left:15px;top:4px;" class="textlight">\r
55 }\r
56 append buffer [capture version]\r
57 append buffer {\r
58 </div>\r
59 </div>\r
60 </div>\r
61 <table style="padding:0px;border-collapse:collapse;">\r
62 <tr>\r
63 <td style="width:33px;">\r
64 <div style="width:20px;height:510px;">\r
65                                                                 &nbsp;\r
66                                                         </div>\r
67 </td>\r
68 <td style="vertical-align:top;height:100%;width:140px;padding:0px;">\r
69 <table style="padding:0px;border-collapse:collapse;height:100%;width:140px;">\r
70 <tr style="height:59px;">\r
71 <td/>\r
72 </tr>\r
73 <tr>\r
74 <td style="width:140px;height:38px;background-image:url('menu_cuts/v_tab_selected.png');background-repeat: no-repeat;">\r
75 <div style="position:relative;left:10px;top:10px;font-weight:bold;">\r
76 <a href="browsemem.tcl" style="font-weight: bold;">Browse / Edit</a>\r
77 </div>\r
78 </td>\r
79 </tr>\r
80 <tr>\r
81 <td style="width:140px;height:38px;background-image:url('menu_cuts/v_tab.png');background-repeat: no-repeat;">\r
82 <div style="position:relative;left:10px;top:10px;font-weight:bold;">\r
83 <a href="downloadmem.tcl" style="">Download</a>\r
84 </div>\r
85 </td>\r
86 </tr>\r
87 <tr>\r
88 <td style="width:140px;height:35px;background-image:url('menu_cuts/v_1.png')"/>\r
89 </tr>\r
90 <tr>\r
91 <td style="width:140px;background-image:url('menu_cuts/v_2_tile.png')"/>\r
92 </tr>\r
93 <tr>\r
94 <td style="width:140px;height:140px;background-image:url('menu_cuts/v_3.png')"/>\r
95 </tr>\r
96 </table>\r
97 </td>\r
98 <td style="vertical-align:top;padding:0px;height:100%">\r
99 <table style="padding:0px;border-collapse:collapse;height:100%;">\r
100 <tr>\r
101 <td>\r
102 <table style="padding:0px;border-collapse:collapse;">\r
103 <tr>\r
104 <td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1.png');background-repeat: no-repeat;">\r
105 <div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">\r
106 <a href="index.tcl">Config Target</a>\r
107 </div>\r
108 </td>\r
109 <td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1.png');background-repeat: no-repeat;">\r
110 <div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">\r
111 <a href="flashinfo.tcl">Flash</a>\r
112 </div>\r
113 </td>\r
114 <td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1_selected.png');background-repeat: no-repeat;">\r
115 <div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">\r
116 <a href="browsemem.tcl" style="font-weight: bold;">Memory</a>\r
117 </div>\r
118 </td>\r
119 <td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1.png');background-repeat: no-repeat;">\r
120 <div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">\r
121 <a href="openocd.tcl">OpenOCD</a>\r
122 </div>\r
123 </td>\r
124 </tr>\r
125 </table>\r
126 </td>\r
127 </tr>\r
128 <tr>\r
129 <td style="height:30px;width:535px;background-image:url('menu_cuts/center_top.png');background-repeat: no-repeat;background-position:top right;" colspan="6">\r
130 <div style="width:500px;background-color:#ffffff;height:100%;">\r
131                                                                                         &nbsp;\r
132                                                                                 </div>\r
133 </td>\r
134 </tr>\r
135 <tr>\r
136 <td style="background-color:#ffffff;text-indent:30px;height:40px;" colspan="6">\r
137 <H1>Browse / Edit Memory</H1>\r
138 </td>\r
139 </tr>\r
140 <tr style="height:100%;">\r
141 <td style="background-color:#ffffff;padding-left:30px;padding-right:30px;width=535px;height:100%;" colspan="6">\r
142 \r
143 \r
144                         \r
145                         }\r
146 \r
147                         \r
148                         set form_address [formfetch form_address]\r
149                         set form_length [formfetch form_length]\r
150                         set form_type [formfetch form_type]\r
151                         set form_action [formfetch form_action]\r
152                         set form_value [formfetch form_value]\r
153                         \r
154                         if {[string compare $form_length ""]==0} {\r
155                                 set form_length 0\r
156                         }  \r
157                         if {$form_length<=0} {\r
158                                 set form_length 0x80\r
159                         } \r
160                         if {$form_length>0x1000} {\r
161                                 set form_length 0x1000\r
162                         } \r
163                         \r
164                         if {[string compare $form_type ""]==0} {\r
165                                 set form_type mdw\r
166                         }\r
167                         \r
168                         if {[string compare $form_type "mdw"]==0} {\r
169                                 set wordsize 4\r
170                                 set modify_cmd mww \r
171                         }\r
172                         if {[string compare $form_type "mdh"]==0} {\r
173                                 set wordsize 2\r
174                                 set modify_cmd mwh \r
175                         }\r
176                         if {[string compare $form_type "mdb"]==0} {\r
177                                 set wordsize 1\r
178                                 set modify_cmd mwb \r
179                         }\r
180                         \r
181                         \r
182                         \r
183                         \r
184                         if {[string compare $form_address ""]!=0} {\r
185                                 if {[string compare $form_action "Previous"]==0} {\r
186                                         # Kludge! Work around problems parsing hex in Jim Tcl expressions\r
187                                         incr form_address ; set form_address [expr $form_address-1]\r
188                                         if {$form_address-$form_length>0} {\r
189                                                 set form_address "0x[tohex [expr $form_address-$form_length]]"\r
190                                         } else {\r
191                                                 set form_address "0x0"\r
192                                         }\r
193                                 }  \r
194                                 if {[string compare $form_action "Next"]==0} {\r
195                                         # Kludge! Work around problems parsing hex in Jim Tcl expressions\r
196                                         incr form_address ; set form_address [expr $form_address-1]\r
197                                         set form_address "0x[tohex [expr $form_address+$form_length]]"\r
198                                 }  \r
199                                 if {[string compare $form_action "Modify"]==0} {\r
200                                         append console [capture_catch "$modify_cmd $form_address $form_value"]\r
201                                 }  \r
202                                 if {[string compare $form_action "Fill"]==0} {\r
203                                         append console [capture_catch "$modify_cmd $form_address $form_value $form_length"]\r
204                                 }  \r
205                         }\r
206                         \r
207                         \r
208                         \r
209 append buffer {\r
210                         \r
211                         <form action="browsemem.tcl" method="post"> \r
212                                 <table>\r
213                                 <tr><td class="formtext">Address</td><td><input type="text" name="form_address" value="}\r
214 append buffer $form_address\r
215 append buffer {"></td></tr>\r
216                                 <tr><td class="formtext">Length</td><td><input type="text" name="form_length" value="}\r
217 append buffer "0x[tohex $form_length]"\r
218 append buffer {"></td></tr>\r
219                                 <tr><td class="formtext">Value</td><td><input type="text" name="form_value" value="}\r
220 append buffer $form_value\r
221 append buffer {"></td>\r
222                                         <td class="buttonspacesmall">&nbsp</td><td><input type="submit" name="form_action" value="Modify"></td>\r
223                                         <td class="buttonspacesmall">&nbsp</td><td><input type="submit" name="form_action" value="Fill"></td></tr>\r
224                                 <tr><td class="formtext">Type</td><td style="padding-top:1px;">\r
225                                 <select name="form_type">\r
226                                   <option \r
227                                     }\r
228 if {[string compare $form_type "mdb"]==0} { append buffer {selected="selected"} }  \r
229 append buffer { value ="mdb">8 bit\r
230                                   </option>\r
231                                   <option \r
232                                    }\r
233 if {[string compare $form_type "mdh"]==0} { append buffer {selected="selected"} }  \r
234 append buffer { value ="mdh">16 bit\r
235                                   </option>\r
236                                         <option\r
237                                            }\r
238 if {[string compare $form_type "mdw"]==0} { append buffer {selected="selected"} }  \r
239 append buffer {value ="mdw">32 bit\r
240                                         </option>\r
241                                 </select>\r
242                                 \r
243                                 </td></tr>\r
244                                 </table>\r
245                                 <table>\r
246                                         <tr><td style="height:15px;width:535px;">&nbsp</td></tr>\r
247                                         <tr><td style="height:1px;width:535px;background-color:#a2c5d1;"></td></tr>\r
248                                         <tr><td style="height:15px;width:535px;">&nbsp</td></tr>\r
249                                 </table>\r
250                         \r
251                                 <table><tr>\r
252                                         <td><input type="submit" name="form_action" value="Refresh"></td>\r
253                                         <td class="buttonspacesmall">&nbsp</td><td><input type="submit" name="form_action" value="Previous" ></td>\r
254                                         <td class="buttonspacesmall">&nbsp</td><td><input type="submit" name="form_action" value="Next" ></td>\r
255                                 </tr></table>\r
256                                 <br>\r
257                                 \r
258                         </form>\r
259                         <p>\r
260                         <div class="fontbigger">Memory:</div><p>\r
261                         <code style="white-space: nowrap; font-size:11px;font:courier new;">\r
262                                 }\r
263 \r
264                                 if {[string compare $form_address ""]!=0} {\r
265                                         append console [encode [capture_catch halt]]\r
266                                         append buffer [encode [capture_catch "$form_type $form_address [expr $form_length]"]]\r
267                                 } \r
268                                 \r
269 append buffer {\r
270                         </code>\r
271 \r
272 \r
273                         \r
274 \r
275                         \r
276                         </td>\r
277 </tr>\r
278 }\r
279 \r
280                                                                         \r
281                                                                         set toggle_details [formfetch toggle_details]\r
282                                                                         if {[string length $toggle_details]==0} {\r
283                                                                                 set toggle_details 0\r
284                                                                         }\r
285                                                                         set show_details [load_var show_details]\r
286                                                                         if {[string length $show_details]==0} {\r
287                                                                                 set show_details 0\r
288                                                                         }\r
289                                                                         if {$toggle_details==1} {\r
290                                                                                 set show_details [expr 1-$show_details]\r
291                                                                                 save_var show_details $show_details\r
292                                                                         }\r
293                                                                         \r
294                                                                         if {[string length $console]!=0} {\r
295                                                                                 \r
296 append buffer {\r
297 <tr style="height:100%;">\r
298 <td style="height:100%;background-color:red;" colspan="6">\r
299 <table style="padding:0px;border-collapse:collapse;background-color:#ffffff;width:100%" class="textgray">\r
300 <td style="width:25px;">&nbsp;</td>\r
301 }\r
302 \r
303                                                                                                                 if {$show_details==1} {\r
304                                                                                                                         append buffer <\r
305                                                                                                                         append buffer {td style="background-color:#dddddd;padding-left:5px;padding-right:5px;padding-top:3px;padding-bottom:3px;"}\r
306                                                                                                                         append buffer >\r
307                                                                                                                 } else {\r
308                                                                                                                         append buffer <\r
309                                                                                                                         append buffer {td style="background-image:url('menu_cuts/h_tab_free.png');width:110px;height:29px;background-repeat: no-repeat;background-position:top left;"}\r
310                                                                                                                         append buffer >\r
311                                                                                                                 }\r
312                                                                                                         \r
313 append buffer {\r
314 <a class="openocd" href="browsemem.tcl?toggle_details=1">\r
315 }\r
316 \r
317                                                                                                                         if {$show_details==1} {\r
318                                                                                                                                 append buffer "Hide details"\r
319                                                                                                                                 append buffer <br/>\r
320                                                                                                                         } else {\r
321                                                                                                                                 append buffer {<div style="position:relative;top:7px;text-align:center;">}\r
322                                                                                                                                 append buffer "Show details"\r
323                                                                                                                                 append buffer {</div>}\r
324                                                                                                                         }\r
325                                                                                                                         \r
326 append buffer {\r
327 </a>\r
328 }\r
329 \r
330                                                                                                                         if {$show_details==1} {\r
331                                                                                                                                 append buffer $console\r
332                                                                                                                         }\r
333                                                                                                                 \r
334 append buffer {</td>}\r
335 \r
336                                                                                                                 if {$show_details!=1} {\r
337                                                                                                                         append buffer {<td>&nbsp;</td>}\r
338                                                                                                                 }\r
339                                                                                                          \r
340 append buffer {\r
341 <td style="width:25px;">&nbsp;</td>\r
342 </table>\r
343 </td>\r
344 </tr>\r
345 }\r
346 \r
347                                                                          }\r
348                                                                 \r
349 append buffer {\r
350 <tr>\r
351 <td style="height:30px;background-image:url('menu_cuts/center_bottom.png');background-repeat: no-repeat;background-position:top right;" colspan="6">\r
352 <div style="width:500px;background-color:#ffffff;height:100%;">\r
353                                                                                         &nbsp;\r
354                                                                                 </div>\r
355 </td>\r
356 </tr>\r
357 </table>\r
358 </td>\r
359 <td style="width:6px;"/>\r
360 <td style="width:245px;height:100%">\r
361 <table style="padding:0px;border-collapse:collapse;height:100%;">\r
362 <tr>\r
363 <td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab2_selected.png');background-repeat: no-repeat;">\r
364 <div style="position:relative;top:7px;;font-weight:bold;text-align:center;width:100px;" class="textgray">\r
365                                                                                     Documentation\r
366                                                                                  </div>\r
367 </td>\r
368 <td width="40px">\r
369                                                                                 &nbsp;\r
370                                                                         </td>\r
371 <td/>\r
372 </tr>\r
373 <tr>\r
374 <td style="height:10px;width:245px;background-image:url('menu_cuts/right_top_small.png');" colspan="3"/>\r
375 </tr>\r
376 <tr>\r
377 <td style="background-color:#d8d7d7;width:245px;padding-left:10px;padding-buttom:10px;line-height:17px;" colspan="3">\r
378 <a target="_blank" href="http://openocd.berlios.de/doc/openocd.pdf">OpenOCD Manual</a>\r
379 <br/>\r
380 </td>\r
381 </tr>\r
382 <tr>\r
383 <td style="background-color:#d8d7d7;height:15px;" colspan="3"/>\r
384 </tr>\r
385 <tr>\r
386 <td colspan="3">\r
387 <table style="padding:0px;border-collapse:collapse;">\r
388 <td style="background-color:#d8d7d7;width:10px;height:1px"/>\r
389 <td style="background-color:#999999;width:225px; height:1px;"/>\r
390 <td style="background-color:#d8d7d7;width:10px;height:1px"/>\r
391 </table>\r
392 </td>\r
393 </tr>\r
394 <tr>\r
395 <td style="background-color:#d8d7d7;height:15px;" colspan="3"/>\r
396 </tr>\r
397 <tr style="height:100%;">\r
398 <td style="height:100%;background-color:#d8d7d7;padding-left:10px;padding-right:10px;" colspan="3" class="textgray">\r
399                                 \r
400                                 <p>Browse and edit target memory.<br>\r
401                                    Length is in bytes, maximum 4096 bytes.</p> \r
402                                 <p>An error message is shown when trying to browse or edit memory which cases a CPU fault.</p>\r
403                                 <p>CPU will be halted if required.</p>\r
404                                 <p><b>Modify</b> - Will modify only one byte, half-word or word starting at Address.</p>\r
405                                 <p><b>Fill</b> - Will fill the specified region with the specified value.</p>\r
406                                 <p><b>Refresh</b> - Display the content of the specified memory area.</p>\r
407                                         \r
408                         </td>\r
409 </tr>\r
410 <tr>\r
411 <td style="height:30px;background-image:url('menu_cuts/right_bottom.png');" colspan="3">\r
412                                                                                 &nbsp;\r
413                                                                         </td>\r
414 </tr>\r
415 </table>\r
416 </td>\r
417 </tr>\r
418 </table>\r
419 </body>\r
420 </html>\r
421 \r
422                 \r
423 \r
424 \r
425                 \r
426 \r
427 \r
428 \r
429                 \r
430 \r
431                 \r
432                 \r
433                 \r
434                 \r
435 \r
436 \r
437                 \r
438 \r
439 \r
440                 \r
441 \r
442 \r
443                 \r
444 \r
445 \r
446                 \r
447         \r
448         \r
449 }\r
450 \r
451 start_chunked "html"\r
452 write_chunked $buffer\r
453 end_chunked\r
454 \r