|
|||||||||
When the memory contents of a camcorder's control system have been modified, it is subsequently necessary either to update the checksum (if the method for doing this is known), or to introduce a value into (ideally an unused) memory location in order to compensate for the functional changes made elsewhere. Failure to update or compensate the checksum will inevitably result in the camcorder crashing on start-up the first time power is applied after all power sources have been disconnected. The preferred method is to update the checksum, but assuming that this cannot be done because details of the procedure are not available, a method of calculating a suitable compensating value is provided by this program: Click here to download program Right-click on the link, then select "Save Target As". Save the program in a suitable directory on your hard drive. The program requires GW Basic to run. There is a link to a download source for this on the Links page. It would be advisable to save the GW Basic program file in the same directory as the checksum program file. To run GW Basic and the checksum compensating program, it is necessary to open a DOS window. GW Basic dates back to 1987, and therefore presumably pre-dates Windows. In any case it appears not to be Windows compatible. The program is organised in terms of virtual lines and columns. When it is run, it initially asks for a data value for line 1, column 1. This would be the first memory value to be modified. Enter the original value (not the address or the modified value) of the memory location, and hit return. The program then asks for the new, ie modified value, for column 2 of line 1. Enter this, and hit return. This procedure is repeated for line 2, and continues until the original and new data values for all modified memory locations have been entered. There are 50 lines available for data entry, and this should be more than enough. If at any time it is realised that wrong data has been entered on a line, this may be corrrected. When the program requests data entry for column 1 on a subsequent line, enter the word "line" (lower case, no quote marks) instead of hex data, and hit return. The program will then ask for the line number of the line to be corrected. Enter the line number and hit return. Enter the correct data for this line, then re-invoke the "line" command to return to the latest line for data entry. When the data for all modified locations has been entered, it is necessary to perform the checksum compensation calculation. To do this, enter "calc" (lower case, no quote marks) in response to the request for data for column 1 of the latest line. The program requests the initial hex value of the memory location to be used for checksum compensation. This would normally be "00", as it is advisable to select a location holding the value "00" as such a location is unlikely to be responsible for enabling a camcorder function. The only reason for using a location with a non-zero value is that this location had been used for compensation in the past, and therefore had already been updated from "00" to a compensating value. If later modifications are then made, the same compensation location could be re-used simply by further updating. Entering the value required and hitting return will cause the program to calculate the compensating checksum, and display this as a hex value. This value may then be entered into the chosen location. A practical example: (based on information from another page on this site). Details have been given to enable modification of a Sony CCD-TR913E camcorder to have manual white balance selection and display of aperture in the viewfinder when using manual exposure. On early models of Sony Digital-8 camcorders, the checksum is derived by performing "XOR" operations on memory values in approximately the range 0D:14 to 0D:2E. Memory page 0D is where the control values for determining the features and facilites of the camcorder are held. Although we found that the analogue Hi-8 TR913E camcorders which we were seeking to modify responded similarly to the memory changes listed for the 1st generation Digital-8s, we could not safely make the assumption that the method for updating the checksum would be identical for both the analogue and the digital product ranges. In any case we were not familiar with the method for either product range. Ernst Parth of Adaptive Telecom (Austria) advised us that as changes were made to the memory values in the control range, the camcorder kept a continuously updated record of the resulting checksum at location 02:F0. What it did not do was transfer this value to the location where it would be used for checksum evaluation on start-up. We deduced that if the dynamically revised value at 02:F0 was found to be different from the expected vaue stored elsewhere, the checksum test would fail and the camcorder would not start. Initially we made the changes necessary to enable the required features, while keeping a record of what was done in respect of bit manipulation. Once the functional changes had been made, we then made offsetting changes to an unused memory location to bring the calculated checksum (at 02:F0) back to the original value. With no difference between the checksum at 02:F0 and that held in the evaluation location, the camcorder should not have been able to detect that a change had been made, and would then be expected to start normally. In respect of the changes detailed below which we made to both of the TR913E camcorders, this did indeed turn out to be the case. We found that 0D:1B originally held the value 00, so we used this location for entering our compensating values. The modifications were made to the TR913Es in accordance with the following procedure, before the development of the checksum compensation program:
The camcorder worked, and had remembered the changes in respect of white balance and aperture readout. What was a little worrying was that it started up in 16:9 FULL mode, but when we switched this off it performed normally. The second camcorder was then modified, and it too initially started up in 16:9 FULL mode. However, it too performed correctly after switching off this feature. If the checksum compensation program is to be used, the above procedure would be slightly modified. Steps 1 & 7 would become un-necessary, unless it was required to confirm that the checksum compensation procedure was leading to the correct outcome. Steps 2, 3, and 4 would be exactly as above. Step 5 would require the original and modified data from steps 3 & 4 to be entered into the checksum program, and the checksum compensating value to be calculated. This would then be entered into the selected compensation location, in this case 0D:1B. Steps 6 and 8 are unchanged. Page last updated: 09 April, 2005 |
This web page is optimised for viewing in
800 x 600 resolution & 16 bit colour, or better. The
use of lower resolutions is not recommended. Web page design © Video Pages (2002). |