Changeset 1581 for branches/release-1_0


Ignore:
Timestamp:
01/20/12 02:35:19 (16 months ago)
Author:
reyalp
Message:

updated sx150 raw size, address and viewport addresses from sgtrum in http://chdk.setepontos.com/index.php?topic=6953.msg79603#msg79603
Also clean up some spurious whitespace

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/release-1_0/platform/sx150is/sub/100a/lib.c

    r1415 r1581  
    77#include "platform.h" 
    88 
    9 char *hook_raw_image_addr()    
    10 { 
    11 /* 
    12 ROM:FFB102F0                 LDR     R6, =0x41F3B020  <<<<<<<<<<<<<<< 
    13 ROM:FFB102F4                 LDR     R4, =0x41876740 
    14 ROM:FFB102F8                 LDR     R5, =0x409A0520 
    15 ROM:FFB10328                 BL      sub_FF93AC08 
    16 ROM:FFB1032C                 MOV     R1, R4 
    17 ROM:FFB10330                 ADR     R0, aImgVramBuffP ; "IMG VRAM BUFF   %p" 
    18 ROM:FFB10334                 BL      sub_FF93AC08 
    19 ROM:FFB10338                 MOV     R1, R5 
    20 ROM:FFB1033C                 ADR     R0, aThumVramBuffP ; "THUM VRAM BUFF  %p" 
    21 ROM:FFB10340                 BL      sub_FF93AC08 
    22 ROM:FFB10344                 MOV     R1, R6 
    23 ROM:FFB10348                 ADR     R0, aCrawBuffP  ; "CRAW BUFF       %p" 
    24 ROM:FFB1034C                 BL      sub_FF93AC08 
    25 ROM:FFB10350                 LDR     R1, =0x11CA240  <<<<<<<<<<<<<< 
    26 ROM:FFB10354                 ADR     R0, aCrawBuffSizeP ; "CRAW BUFF SIZE  %p" 
    27 */ 
    28         return (char*)(0x41F3B020); 
    29 } 
    30  
    31 /* 
    32 ROM:FFB0FF90 ; --------------------------------------------------------------------------- 
    33 ROM:FFB0FF90 
    34 ROM:FFB0FF90 loc_FFB0FF90                            ; CODE XREF: sub_FFB0FF50+10j 
    35 ROM:FFB0FF90                 MOV     R0, #0xFF0         // raw sensor size X - 4080 
    36 ROM:FFB0FF94                 STR     R0, [R1] 
    37 ROM:FFB0FF98                 LDR     R0, =0xBE8     // raw sensor size Y - 3048 
    38 ROM:FFB0FF9C                 STR     R0, [R1,#4] 
    39 ROM:FFB0FFA0                 MOV     R0, #0xFA0     // cropped size X - 4000 
    40 ROM:FFB0FFA4                 STR     R0, [R1,#8] 
    41 ROM:FFB0FFA8                 SUB     R0, R0, #0x3E8 // cropped size Y - (4000 - 1000) = 3000 
    42 ROM:FFB0FFAC 
    43 ROM:FFB0FFAC loc_FFB0FFAC                            ; CODE XREF: sub_FFB0FF50+3Cj 
    44 ROM:FFB0FFAC                 STR     R0, [R1,#0xC] 
    45 ROM:FFB0FFB0                 MOV     R0, #0 
    46 ROM:FFB0FFB4                 BX      LR 
    47 ROM:FFB0FFB4 ; End of function sub_FFB0FF50 
    48  
    49 */ 
    50  
    51 /* 
    52 Raw buffer size 0x11CA240 / 12 * 8 = 0xBDC180 pixels  ( RAW 12 bit per pixel) 
    53 4080  *  3048  = 12435840 pixels 
    54 0xFF0 *  0xBE8 = 0xBDC180 pixels 
    55 same senzor as SX200, SX20 ( probably?) 
    56  
    57 ROM:FF9397C8 loc_FF9397C8                            ; CODE XREF: sub_FF939780+3Cj 
    58 ROM:FF9397C8                 LDR     R1, =0x41F3B020 
    59 ROM:FF9397CC                 MOV     R2, #0xFF0 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 
    60 ROM:FF9397D0                 LDR     R3, =0xBE8 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 
    61 ROM:FF9397D4                 STMFA   SP, {R1,R2} 
    62 ROM:FF9397D8                 ADR     R0, aCrwaddressLxCr ; " CrwAddress %lx, CrwSize H %ld V %ld\r" 
    63  
    64  
    65 */ 
    66 long hook_raw_size()  
     9char *hook_raw_image_addr() 
     10{ 
     11/* 
     12ROM:FFB4FFE8                 LDR     R5, =0x4159DBE0 
     13ROM:FFB4FFEC                 LDR     R4, =0x409DC9F0 
     14ROM:FFB4FFF0                 LDR     R6, =0x41D65F00  <<<<<<<<<<<<<<< 
     15ROM:FFB50008                 ADR     R0, aJpegBuffPLx ; "JPEG BUFF       %p ( %lx )" 
     16ROM:FFB50020                 BL      sub_FF950780 
     17ROM:FFB50024                 MOV     R1, R5 
     18ROM:FFB50028                 ADR     R0, aImgVramBuffP ; "IMG VRAM BUFF   %p" 
     19ROM:FFB5002C                 BL      sub_FF950780 
     20ROM:FFB50030                 MOV     R1, R4 
     21ROM:FFB50034                 ADR     R0, aThumVramBuffP ; "THUM VRAM BUFF  %p" 
     22ROM:FFB50038                 BL      sub_FF950780 
     23ROM:FFB5003C                 MOV     R1, R6 
     24ROM:FFB50040                 ADR     R0, aCrawBuffP  ; "CRAW BUFF       %p" 
     25ROM:FFB50044                 BL      sub_FF950780 
     26ROM:FFB50048                 LDR     R1, =0x14EB7E0 
     27ROM:FFB5004C                 ADR     R0, aCrawBuffSizeP ; "CRAW BUFF SIZE  %p" 
     28*/ 
     29        return (char*)(0x41D65F00); 
     30} 
     31 
     32/* 
     33ROM:FFB50048                 LDR     R1, =0x14EB7E0  <<<<<<<<<<<<<<< 
     34ROM:FFB5004C                 ADR     R0, aCrawBuffSizeP ; "CRAW BUFF SIZE  %p" 
     35*/ 
     36long hook_raw_size() 
    6737{ 
    6838                return 0x014eb7e0; 
     
    7141 
    7242 
    73 // Live picture buffer (shoot not pressed)  
     43// Live picture buffer (shoot not pressed) 
    7444void *vid_get_viewport_live_fb() 
    7545{ 
     
    8656{ 
    8757/* 
    88 ROM:FF9177B8 ; =============== S U B R O U T I N E ======================================= 
    89 ROM:FF9177B8 
    90 ROM:FF9177B8 ; LOCATION: BmpDDev.c:0 
    91 ROM:FF9177B8 
    92 ROM:FF9177B8                 EXPORT _sub_FF9177B8__BmpDDev.c__0 
    93 ROM:FF9177B8 _sub_FF9177B8__BmpDDev.c__0             ; CODE XREF: sub_FFA0D168+48p 
    94 ROM:FF9177B8                 STMFD   SP!, {R4-R8,LR} 
    95 ROM:FF9177BC                 LDR     R8, =0x5BA0 
    96 ROM:FF9177C0                 MOV     R4, R0 
    97 ROM:FF9177C4                 LDR     R0, [R8,#0x10] 
    98 ROM:FF9177C8                 MOV     R5, R1 
    99 ROM:FF9177CC                 CMP     R0, #1 
    100 ROM:FF9177D0                 LDREQ   R1, =0x17F 
    101 ROM:FF9177D4                 ADREQ   R0, aBmpddev_c  ; "BmpDDev.c" 
    102 ROM:FF9177D8                 MOV     R7, R3 
    103 ROM:FF9177DC                 MOV     R6, R2 
    104 ROM:FF9177E0                 BLEQ    DebugAssert 
    105 ROM:FF9177E4                 CMP     R4, #0 
    106 ROM:FF9177E8                 CMPNE   R5, #0 
    107 ROM:FF9177EC                 CMPNE   R6, #0 
    108 ROM:FF9177F0                 CMPNE   R7, #0 
    109 ROM:FF9177F4                 LDREQ   R1, =0x182 
    110 ROM:FF9177F8                 ADREQ   R0, aBmpddev_c  ; "BmpDDev.c" 
    111 ROM:FF9177FC                 BLEQ    DebugAssert 
    112 ROM:FF917800                 MOV     R0, #0x2D0   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<  Height  0x2D0 dec 720 
    113 ROM:FF917804                 MOV     R1, #0xF0    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<  Width  0xF0   dec 240 
    114 ROM:FF917808                 STR     R0, [R4] 
    115 ROM:FF91780C                 STR     R1, [R5] 
    116 ROM:FF917810                 STR     R0, [R6] 
    117 ROM:FF917814                 LDR     R0, =0x403F1000 <<<<<<<<<<<<<<<<< 
    118 ROM:FF917818                 STR     R0, [R7] 
    119 ROM:FF91781C                 MOV     R0, #1 
    120 ROM:FF917820                 STR     R0, [R8,#0x10] 
    121 ROM:FF917824                 MOV     R0, #0 
    122 ROM:FF917828                 LDMFD   SP!, {R4-R8,PC} 
    123 ROM:FF917828 ; End of function _sub_FF9177B8__BmpDDev.c__0 
    124 ROM:FF917828 
    125 ROM:FF91782C 
    126 */ 
    127         return (void*)0x403f1000;                               
    128 } 
    129  
    130  
    131 // Live picture buffer (shoot half-pressed)  
     58ROM:FF92A878 sub_FF92A878                            ; CODE XREF: sub_FFA2DAC0+48p 
     59ROM:FF92A878                 STMFD   SP!, {R4-R8,LR} 
     60ROM:FF92A87C                 LDR     R8, =0x5D88 
     61ROM:FF92A880                 MOV     R4, R0 
     62ROM:FF92A884                 LDR     R0, [R8,#0x10] 
     63ROM:FF92A888                 MOV     R5, R1 
     64ROM:FF92A88C                 CMP     R0, #1 
     65ROM:FF92A890                 MOV     R6, R2 
     66ROM:FF92A894                 MOV     R7, R3 
     67ROM:FF92A898                 MOVEQ   R1, #0x18C 
     68ROM:FF92A89C                 ADREQ   R0, aBmpddev_c  ; "BmpDDev.c" 
     69ROM:FF92A8A0                 BLEQ    sub_FF81EDBC 
     70ROM:FF92A8A4                 CMP     R4, #0 
     71ROM:FF92A8A8                 CMPNE   R5, #0 
     72ROM:FF92A8AC                 CMPNE   R6, #0 
     73ROM:FF92A8B0                 CMPNE   R7, #0 
     74ROM:FF92A8B4                 LDREQ   R1, =0x18F 
     75ROM:FF92A8B8                 ADREQ   R0, aBmpddev_c  ; "BmpDDev.c" 
     76ROM:FF92A8BC                 BLEQ    sub_FF81EDBC 
     77ROM:FF92A8C0                 MOV     R0, #0x2D0   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<  Height  0x2D0 dec 720 
     78ROM:FF92A8C4                 MOV     R1, #0xF0    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<  Width  0xF0   dec 240 
     79ROM:FF92A8C8                 STR     R0, [R4] 
     80ROM:FF92A8CC                 STR     R1, [R5] 
     81ROM:FF92A8D0                 STR     R0, [R6] 
     82ROM:FF92A8D4                 LDR     R0, =0x403F1000 <<<<<<<<<<<<<<<<< 
     83ROM:FF92A8D8                 STR     R0, [R7] 
     84ROM:FF92A8DC                 MOV     R0, #1 
     85ROM:FF92A8E0                 STR     R0, [R8,#0x10] 
     86ROM:FF92A8E4                 MOV     R0, #0 
     87ROM:FF92A8E8                 LDMFD   SP!, {R4-R8,PC} 
     88ROM:FF92A8E8 ; End of function sub_FF92A878 
     89*/ 
     90        return (void*)0x403f1000; 
     91} 
     92 
     93 
     94// Live picture buffer (shoot half-pressed) 
    13295void *vid_get_viewport_fb() 
    13396{ 
    13497/* 
    135 ROM:FFB0CEB8 loc_FFB0CEB8                            ; CODE XREF: sub_FFB0CE7C+28j 
    136 ROM:FFB0CEB8                 MOV     R2, R7 
    137 ROM:FFB0CEBC                 MOV     R1, R6 
    138 ROM:FFB0CEC0                 MOV     R0, R5 
    139 ROM:FFB0CEC4                 BL      sub_FF85263C 
    140 ROM:FFB0CEC8                 LDR     R1, =0x40507700  <<<<<<<<<<<<<<<<<<< 
    141 ROM:FFB0CECC                 LDR     R0, =0x3F480 
    142 ROM:FFB0CED0                 STR     R1, [R4] 
    143 ROM:FFB0CED4                 STR     R0, [R4,#4] 
    144 ROM:FFB0CED8                 ADR     R0, aVramAddressP ; "VRAM Address  : %p\r" 
    145 ROM:FFB0CEDC                 BL      sub_FF93AC08 
    146 ROM:FFB0CEE0                 LDR     R1, [R4,#4] 
    147 ROM:FFB0CEE4                 ADR     R0, aVramSize0xX ; "VRAM Size     : 0x%x\r" 
    148 ROM:FFB0CEE8                 BL      sub_FF93AC08 
    149 ROM:FFB0CEEC                 MOV     R0, #0 
    150 ROM:FFB0CEF0                 LDMFD   SP!, {R4-R8,PC} 
    151 ROM:FFB0CEF0 ; End of function sub_FFB0CE7C 
    152 */ 
    153  
    154  
    155         return (void*)0x40546b80;                               
     98ROM:FFB4D218 loc_FFB4D218                            ; CODE XREF: sub_FFB4D1DC+28j 
     99ROM:FFB4D218                 MOV     R2, R7 
     100ROM:FFB4D21C                 MOV     R1, R6 
     101ROM:FFB4D220                 MOV     R0, R5 
     102ROM:FFB4D224                 BL      sub_FF855380 
     103ROM:FFB4D228                 LDR     R1, =0x40546B80  <<<<<<<<<<<<<<<<<<< 
     104ROM:FFB4D22C                 LDR     R0, =0x3F480 
     105ROM:FFB4D230                 STR     R1, [R4] 
     106ROM:FFB4D234                 STR     R0, [R4,#4] 
     107ROM:FFB4D238                 ADR     R0, aVramAddressP ; "VRAM Address  : %p\r" 
     108ROM:FFB4D23C                 BL      sub_FF950780 
     109ROM:FFB4D240                 LDR     R1, [R4,#4] 
     110ROM:FFB4D244                 ADR     R0, aVramSize0xX ; "VRAM Size     : 0x%x\r" 
     111ROM:FFB4D248                 BL      sub_FF950780 
     112ROM:FFB4D24C                 MOV     R0, #0 
     113ROM:FFB4D250                 LDMFD   SP!, {R4-R8,PC} 
     114ROM:FFB4D250 ; End of function sub_FFB4D1DC 
     115*/ 
     116 
     117 
     118        return (void*)0x40546B80; 
    156119} 
    157120 
     
    161124 
    162125/* 
    163 ROM:FF872090 ; =============== S U B R O U T I N E ======================================= 
    164 ROM:FF872090 
    165 ROM:FF872090 ; LOCATION: ImagePlayer.c:0 
    166 ROM:FF872090 
    167 ROM:FF872090                 EXPORT _sub_FF872090__ImagePlayer.c__0 
    168 ROM:FF872090 _sub_FF872090__ImagePlayer.c__0         ; CODE XREF: _sub_FF882734__VisualHandle.c__154+1B4 p 
    169 ROM:FF872090                                         ; sub_FF882908+94 p ... 
    170 ROM:FF872090                 STMFD   SP!, {R1-R7,LR} 
    171 ROM:FF872094                 LDR     R7, =0x2710 
    172 ROM:FF872098                 LDR     R5, =0x2A70   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 
    173 ROM:FF87209C                 LDR     R3, =0x6CE 
    174 ROM:FF8720A0                 LDR     R2, =aImageplayer_c ; "ImagePlayer.c" 
    175 ROM:FF8720A4                 LDR     R0, [R5,#0x4C] 
    176 ROM:FF8720A8                 MOV     R1, R7 
    177 ROM:FF8720AC                 BL      sub_FF83A488 
    178 ROM:FF8720B0                 MOV     R0, #1 
    179 ROM:FF8720B4                 BL      sub_FF871280 
    180 ROM:FF8720B8                 CMN     R0, #1 
    181 ROM:FF8720BC                 BEQ     loc_FF87218C 
    182 ROM:FF8720C0                 LDR     R4, =0x37A4C 
    183 ROM:FF8720C4                 ADD     R1, R0, R0,LSL#2 
    184 ROM:FF8720C8                 LDR     R0, [R4,R1,LSL#2] 
    185 ROM:FF8720CC                 MOV     R3, #0 
    186 ROM:FF8720D0                 ADR     R2, sub_FF871988 
    187 ROM:FF8720D4                 ADD     R12, R4, R1,LSL#2 
    188 ROM:FF8720D8                 STR     R0, [R5,#0x58]   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 
    189 ROM:FF8720DC                 LDR     R1, [R12,#0xC] 
    190 ROM:FF8720E0                 STMEA   SP, {R1-R3} 
    191 ROM:FF8720E4                 LDR     R3, [R12,#8] 
    192 ROM:FF8720E8                 MOV     R2, #0 
    193 ROM:FF8720EC                 MOV     R1, #0 
    194 ROM:FF8720F0                 BL      _sub_FF918DA8__ImgDDev.c__6 ; LOCATION: ImgDDev.c:6 
    195 ROM:FF8720F4                 TST     R0, #1 
    196 ROM:FF8720F8                 LDRNE   R1, =0x6F4 
    197 ROM:FF8720FC                 LDRNE   R0, =aImageplayer_c ; "ImagePlayer.c" 
    198 */ 
    199  
    200     return (void*)(*(int*) (0x2A70+0x58));        
    201 }  
     126ROM:FF8780C4 ; =============== S U B R O U T I N E ======================================= 
     127ROM:FF8780C4 
     128ROM:FF8780C4 
     129ROM:FF8780C4 sub_FF8780C4                            ; CODE XREF: sub_FF889880+1BCp 
     130ROM:FF8780C4                                         ; sub_FF889A5C+90p ... 
     131ROM:FF8780C4                 STMFD   SP!, {R1-R7,LR} 
     132ROM:FF8780C8                 LDR     R5, =0x2710 
     133ROM:FF8780CC                 LDR     R4, =0x2BA8   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 
     134ROM:FF8780D0                 LDR     R3, =0x6D1 
     135ROM:FF8780D4                 LDR     R2, =aImageplayer_c ; "ImagePlayer.c" 
     136ROM:FF8780D8                 LDR     R0, [R4,#0x4C] 
     137ROM:FF8780DC                 MOV     R1, R5 
     138ROM:FF8780E0                 BL      sub_FF83AB9C 
     139ROM:FF8780E4                 MOV     R0, #1 
     140ROM:FF8780E8                 BL      sub_FF8772A8 
     141ROM:FF8780EC                 CMN     R0, #1 
     142ROM:FF8780F0                 BEQ     loc_FF8781C0 
     143ROM:FF8780F4                 LDR     R6, =0x382F4 
     144ROM:FF8780F8                 ADD     R1, R0, R0,LSL#2 
     145ROM:FF8780FC                 LDR     R0, [R6,R1,LSL#2] 
     146ROM:FF878100                 ADD     R12, R6, R1,LSL#2 
     147ROM:FF878104                 STR     R0, [R4,#0x58]   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 
     148ROM:FF878108                 LDR     R1, [R12,#0xC] 
     149ROM:FF87810C                 LDR     R2, =sub_FF8779C4 
     150ROM:FF878110                 MOV     R3, #0 
     151ROM:FF878114                 STMEA   SP, {R1-R3} 
     152ROM:FF878118                 MOV     R2, #0 
     153ROM:FF87811C                 LDR     R3, [R12,#8] 
     154ROM:FF878120                 MOV     R1, R2 
     155ROM:FF878124                 BL      sub_FF92C098 
     156ROM:FF878128                 TST     R0, #1 
     157ROM:FF87812C                 LDRNE   R1, =0x6F7 
     158ROM:FF878130                 LDRNE   R0, =aImageplayer_c ; "ImagePlayer.c" 
     159*/ 
     160 
     161    return (void*)(*(int*) (0x2BA8+0x58)); 
     162} 
    202163 
    203164char *camera_jpeg_count_str() 
    204165/* 
    205 ROM:FF9FF420 loc_FF9FF420                            ; CODE XREF: sub_FF9FF35C+50 j 
    206 ROM:FF9FF420                 SUBS    R12, R0, #0x2700 
    207 ROM:FF9FF424                 SUBCSS  R12, R12, #0xF 
    208 ROM:FF9FF428                 BCC     loc_FF9FF43C 
    209 ROM:FF9FF42C                 LDR     R0, =0xB33A4  <<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 
    210 ROM:FF9FF430                 ADR     R1, a9999       ; "9999" 
    211 ROM:FF9FF434                 BL      eventproc_export_sprintf 
    212 ROM:FF9FF438                 B       loc_FF9FF44C 
    213 ROM:FF9FF43C ; --------------------------------------------------------------------------- 
     166ROM:FFA1EA90 ; jumptable FFA1E9E8 entry 2 
     167ROM:FFA1EA90                 LDR     R0, =0x270F 
     168ROM:FFA1EA94                 CMP     R1, R0 
     169ROM:FFA1EA98                 BCC     loc_FFA1EAAC 
     170ROM:FFA1EA9C                 LDR     R0, =0xBA380  <<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 
     171ROM:FFA1EAA0                 ADR     R1, a9999       ; "9999" 
     172ROM:FFA1EAA4                 BL      sprintf 
     173ROM:FFA1EAA8                 B       loc_FFA1EABC 
    214174*/ 
    215175{ 
     
    219179long vid_get_bitmap_screen_width() 
    220180{ 
    221     return 360;     
     181    return 360; 
    222182} 
    223183 
     
    238198 
    239199 
    240 long vid_get_bitmap_buffer_width() { return 720; }  
    241  
    242 long vid_get_bitmap_buffer_height() { return 240; }  
     200long vid_get_bitmap_buffer_width() { return 720; } 
     201 
     202long vid_get_bitmap_buffer_height() { return 240; } 
    243203 
    244204 
     
    257217 _PostLogicalEventForNotPowerType(0x875, 2);  // RotateJogDialLeft 
    258218} 
    259 */  
     219*/ 
    260220 
    261221/* 
     
    263223GetBatteryTemperature usually will get back temperature of battery compartment/batteries. GetBatteryTemperature is implemented in Canon's firmware for SX120IS. 
    264224Firmware entry point is identified (0xFFC394D8) but function is not usable. Camera will crash if Canon's GetBatteryTemperature is called by CHDK. 
    265 To avoid a crash Canon's GetBatteryTemperature must not called. As long CHDK general code do not distinguish between cameras that support or don't support GetBatteryTemperature,  
     225To avoid a crash Canon's GetBatteryTemperature must not called. As long CHDK general code do not distinguish between cameras that support or don't support GetBatteryTemperature, 
    266226this function will be implemented as specific CHDK-code. It returns always with -99 (which means -99° Celsius or -146° Fahrenheit). 
    267227Original entry point in Canon's firmware is disabled (in stubs_entry.S). 
     
    272232      return -99; 
    273233} 
    274   
    275   
     234 
     235 
Note: See TracChangeset for help on using the changeset viewer.