K850 SuperFunction v1.0β

download
Date: 23.06.2009.
Author: Strong
Nationality: Greek

                   k850 camdriver SuperFunction  v1.0 Beta by Strong 

 // You can edit below values to select your own desired final effect.
 // REMEMBER: All values are in hexadecimal number system! 
 // Dont TOUCH  $-5

                            //CUSTOMISATION ZONE BY USER//

//======================NORMAL========================//

SHOT_SPEED=              1D;           // 1D is default Normal shot speed

EXPOSURE= $-5            09;          // Adjust exposure      

LOCK_AE=                     00;          // 02= Lock exposure  00= Unlock
UNLOCK_AE=                00;

HUE=                            00;            // Adjust hue 
CONTRAST=              00;           // Adjust contrast
BRIGHTNESS=          00;            // Adjust brightness
SHARPNESS=            05;          //  Adjust sharpness

CC_RED=                   FD;           // Color corection Cyan-Red
CC_BLUE=                 00;         // Color corection Yellow-Blue

SATURATION=          04;         // Adjust xenon flash saturation

//====================XENON FLASH=====================//

HUE_2=                            00;            // Adjust hue for xenon flash
CONTRAST_2=              00;           // Adjust contrast
BRIGHTNESS_2=          00;            // Adjust brightness
SHARPNESS_2=            04;          // Adjust sharpness

CC_RED_2=                  ff;           // Color corection for xenon flash Cyan-Red
CC_BLUE_2=                ef;           // Color corection for xenon flash Yellow-Blue

SATURATION_2=          FA;         // 00 to 08 adjust xenon flash saturation

//===================FOR XENON R.E.R.=================//

SATUR_RER=                FA;          // Adjust Xenon RER saturation
HUE_3=                           00;           // Adjust hue for xenon flash R.E.R.
CONTRAST_3=              00;           // Adjust contrast
BRIGHTNESS_3=          00;           // Adjust brightness
SHARPNESS_3=            04;          // Adjust sharpness

CC_RED_3 =                FF;         // Color corection for RER flash Cyan-Red
CC_BLUE_3=               ef;         // Color corection for RER flash Yellow-Blue

FORCE=                     13;        // 13=>ON for Forced Flash, 00=> OFF
SPEED=                     09;        // Increase or decrease Forced Flash shuter Speed 
 
//====================PORTRAIT======================//

PORTRAIT_SPEED=         1D;           // Adjust shot speed
PORTRAIT_AE=                 00;          // 01= Lock exposure  00= Unlock

//====================LANDSCAPE======================//

LANDSCAPE_SPEED=        1D;        // Adjust shot speed
LANDSCAPE_AE=                00;       // 01= Lock exposure  00= Unlock

//=====================NIGHT==========================//

NIGHT_SPEED =               23;        // Adjust Night mode shot speed 23 is default 
NIGHT_EXPOSURE=        09;        // Adjust exposure for night mode
NIGHT_AE=                        00;        // 01= Lock exposure  00= Unlock

//================NIGHT_PORTRAIT====================//

NIGHT_PORTRAIT_SPEED =     1D;       // Adjust shot speed
NIGHT_PORTRAIT_AE=              00;       // 01= Lock exposure  00= Unlock

//=================BEACH_SNOW=====================//

BEACH_SNOW_SPEED =       1D;         // Adjust shot speed
BEACH_SNOW_AE=                00;        // 01= Lock exposure  00= Unlock

//===================SPORTS=======================//

SPORTS_SPEED =             1D;         // Adjust shot speed
SPORTS_AE=                      00;        // 01= Lock exposure  00= Unlock

//===================DOCUMENT=====================//

DOCUMENT_SPEED =         1D;         // Adjust shot speed
DOCUMENT_AE=                  01;        // 01= Lock exposure  00= Unlock

//****************************-END-*********************************//

SET_5MP = $cf.05 1
    $"CAMDRIVER0: 5M NORMAL COMPRESSION" 
    0D 02 00 3C
    46 05              // JPEG_MAX_CODE_SIZE    = 1350d  
    9E 02              // JPEG_MIN_CODE_SIZE    =  670d
    E8 03              // JPEG_TARGET_CODE_SIZE = 1000d
    5A
    50
    46
    $f $ra 1111111111 $d0002
  $cl 
    $"CAMDRIVER0: 5M LOW COMPRESSION" 
    0D 02 00 3C
    DC 05              // JPEG_MAX_CODE_SIZE    = 1500d   
    B0 04              // JPEG_MIN_CODE_SIZE    = 1200d
    78 05              // JPEG_TARGET_CODE_SIZE = 1400d
    5F
    55
    4B
    $f $ra 1111111111 $d0002 $cx;

SET_3MP = $cf.05 1
    $"CAMDRIVER0: 3M NORMAL COMPRESSION"
    0D 02 00 3C
    46 05
    9E 02
    E8 03
    5A
    50
    46
    $f $ra 1111111111 $d0002
  $cl
    $"CAMDRIVER0: 3M LOW COMPRESSION"
    0D 02 00 3C
    DC 05
    B0 04
    78 05
    64
    5A
    50
    $f $ra 1111111111 $d0002 $cx;

SET_2MP = $cf.05 1
    $"CAMDRIVER0: 2M NORMAL COMPRESSION"            
    0D 02 00 3C
    58 02 96 00 90 01 46 3C 32                  
    $f $ra 1111111111 $d0002
  $cl 
    $"CAMDRIVER0: 2M LOW COMPRESSION"
    0D 02 00 3C 
    58 02 90 01 F4 01 50 46 3C                  
    $f $ra 1111111111 $d0002 $cx;

SET_1MP = $cf.05 1               
    $"CAMDRIVER0: 1M NORMAL COMPRESSION"
    0D 02 00 3C
    90 01 3C 00 C8 00 46 3C 32
    $f $ra 1111111111 $d0002
  $cl
    $"CAMDRIVER0: 1M LOW COMPRESSION"
    0D 02 00 3C
    90 01 64 00 2C 01 50 46 3C
    $f $ra 1111111111 $d0002 $cx;
 
SET_VGA = $cf.05 1
    $"CAMDRIVER0: VGA NORMAL COMPRESSION"
    0D 02 00 3C
    96 00 0A 00 37 00 46 3C 32
    $f $ra 1111111111 $d0002
  $cl
    $"CAMDRIVER0: VGA LOW COMPRESSION"
    0D 02 00 3C
    96 00 32 00 50 00 50 46 3C
    $f $ra 1111111111 $d0002 $cx;

//Information section
//========================
info_name=MCB991;
info_vendor=Strong;
info_major_ver=1;
info_minor_ver=0;

cam_power_on_0 = 5, 2, 31, 0, 05;   
cam_power_on_1 = 5, 2, 20, 1, 05;   
cam_power_on_2 = 5, 2, 33, 1, 00;  
cam_power_on_3 = 5, 2, 30, 1, 05;   
cam_power_on_4 = 5, 3,  9, 6590,05; 
cam_power_on_5 = 5, 2, 31, 1, 05;   
cam_power_off_0 = 5, 2, 31, 0, 05;  
cam_power_off_1 = 5, 3,  9, 0, 05; 
cam_power_off_2 = 5, 2, 30, 0, 20;  
cam_power_off_3 = 5, 2, 33, 0, 05;  
cam_power_off_4 = 5, 2, 20, 0, 05;  
cam_i2c_address = 1F;
cam_i2c_clock   =190;
//cam_vf_clock_freq =1,32C8;
//cam_ss_clock_freq =1,32C8;
cam_vf_format = B100;
cam_ss_format = 0001;
cam_ss_format_10 = B100;
cam_ss_format_11 = B100;
cam_data_offset = 2;
cam_data_offset_10 = 0;
cam_data_offset_11 = 0;
cam_vf_sync = 5;
cam_ss_sync = 5;
cam_post_processing_20 = 1;   
cam_post_processing_25 = 1;   
cam_post_processing_26 = 1;   
cam_post_processing_29 = 1;   
cam_ss_jpeg_buf_size_1 = 25800;
cam_ss_jpeg_buf_size_2 = 64000;
cam_ss_jpeg_buf_size_4 = 96000;
cam_ss_jpeg_buf_size_5 = 177000;
cam_ss_jpeg_buf_size_6 = 177000;

sup_sizes = 1[280,1E0,0],  2[500,3C0,0], 4[660,4C8,0], 5[800,600,0], 6[A20,798,0],
  10[140, F0,0], 11[280,1E0,0], 20[140,F0,BB8], 21[140,F0,5DC], 25[60,80,4B0],
  26[90,B0,4B0], 29[90,B0,3E8], 2a[160,120,BB8], 2b[160,120,9C4], 2c[160,120,7D0],
  2f[140,F0,BB8];

sup_properties = 
  0[3,f,9],     // Exposure 
  1[0,4,0],     // White balance  
  2[0,3,0],     // Flicker  
  3[0,1,0],     // Vertical mirroring  
  4[0,1,0],     // Horisontal mirroring
  5[0,1,0],     // JPEG compression
  6[A,A0,A],    // Step zoom 
  7[0,1,0],     // Night mode, HS ON/OFF
  8[0,4,0],     // Effects  
  9[0,1,0],     // Focus mode
  A[0,2,0],     // Focus operation
  B[0,0,0],     // EXIF info 1
  C[0,0,0],     // EXIF info 2
//D[0,0,0],     // 
  E[0,4,0],     // Xenon flash support
//F[0,0,0],     //
  10[0,7,0],    // Scenes    
  11[0,4,0],    // ISO
  12[0,1,0],    // Framerate adjustments for GUI speed
//13[0,0,0],    //
//14[0,0,0],    //
//15[0,0,0],    //
  16[0,1,0],    // Photo metering
  17[0,0,0],    // Xenon flash required
  18[0,1,0],    // Image stabilization
  19[0,2,0],    // Continuous zoom
  1A[0,0,0],    // Get zoom level in percentage
  1B[0,9,0],    // Snapshot operation
  1C[0,3,0],    // BestPic picture size
  1D[0,4,0],    // BestPic Operation
  1E[0,1,0];     // Reset and Test pattern 

// Macros 
//=============================================
SET= 05 02 00 !0 !1 $f $r2 1 1 $d0002;        

READ= 05 01 00 !0 01 $f $r2 4 4 $d0002;       

CLEAR_EVENT =05 01 00 03 03 $f $r4 1 123 $d0002 $c3 00              
    $"CAMDRIVER0: Queue_was_empty"
  $cl
    $"CAMDRIVER0: Cleared_Int_Source_%1_Event_Info_%2_Event_ID_%3"   
  $cx 
 #SET(06,03);     

CLEAR_EVENT_FIFO = $s0 01[ 0 ff #CLEAR_EVENT $c3 00 $s0 00 $cx ];

COMMAND= 06 02 00 01 !1 !0 $f $r3 111 $d0002;

WAIT_FOR_TRIG = $h 0 02 5 1000      
  $c0 00
    $"CAMDRIVER0: TRIG_Timeout"   
  $cl
    $"CAMDRIVER0: TRIG_Recieved"  
  $cx;

POLL_EVENT_ID = !0 $s0 01 [ 0 ff #CLEAR_EVENT $-3 r4 $c3 00
 $"CAMDRIVER0: Successfully_acknowledged_Event_ID_%4" $s0 00  $cx ] ;

CAPTURE_EVENT = #WAIT_FOR_TRIG #CLEAR_EVENT;

MODE = #CLEAR_EVENT_FIFO #COMMAND(!0,!1) #POLL_EVENT_ID($s4 ea) #SET(06,03);  

CMD= #CLEAR_EVENT_FIFO #COMMAND(!0,!1) #WAIT_FOR_TRIG #CLEAR_EVENT;

SCENE_GET= $m0 c $>0 4;

UPDATE_WB = $p5 01 $c5 00 $cl  $u01 $cx;

UPDATE_PHOTO = $p5 16 $c5 00 $cl $u16 $cx;

UPDATE_ISO = $p5 11 $c5 00 $cl $u11 $cx;

UPDATE_COLOR= $p5 08 $c5 00  #CMD(58,#SATURATION_2) $cl #CMD(58,#SATURATION_2) $cx;  

WB_ISOAUTO= #SET(98,28) #SET(99,60);

WB_ISO100 = #SET(98,25) #SET(99,73);

WB_ISO200 = #SET(98,26) #SET(99,69);

WB_ISO400 = #SET(98,28) #SET(99,6A);

FLASH_ISO100 = #SET(A2,C8) #SET(A3,25) #SET(A4,D0) #SET(A5,25);

FLASH_ISO200 = #SET(A2,C7) #SET(A3,22) #SET(A4,D0) #SET(A5,22);

FLASH_ISO400 = #SET(A2,C6) #SET(A3,1D) #SET(A4,D0) #SET(A5,1D);

CC= #SET(65,!0) #SET(66,!1) #CMD(13,01);

GET_SATUR=  $m0 7 $>0 6 $b0 00 1 7;

CC_NORMAL= 
  #CMD(54,#BRIGHTNESS) 
  #CMD(55,#CONTRAST) 
  #CMD(56,#SHARPNESS)
  #CMD(57,#HUE)
  #GET_SATUR
  #CMD(58,#SATURATION)
  #CC(#CC_RED,#CC_BLUE);

CC_XENON= 
  #CMD(54,#BRIGHTNESS_2)
  #CMD(55,#CONTRAST_2)
  #CMD(56,#SHARPNESS_2)
  #CMD(57,#HUE_2)
  #GET_SATUR
  #CMD(58,#SATURATION_2)
  #CC(#CC_RED_2,#CC_BLUE_2);
  
CC_RER=
  #CMD(54,#BRIGHTNESS_3)
  #CMD(55,#CONTRAST_3)
  #CMD(56,#SHARPNESS_3)
  #CMD(57,#HUE_3)
  #GET_SATUR
  #CMD(58,#SATUR_RER)
  #CC(#CC_RED_3,#CC_BLUE_3)
  #UPDATE_COLOR;

CC_2 = #GET_SATUR  #CC(#CC_RED,#CC_BLUE) $p5 10 $c5 02 
  #CMD(58,03) $cl  #CMD(58,#SATURATION) $cx;

DOC_MODE =
  #CMD(55,FF)
  #CMD(56,08)
  #CMD(06,FD)
  #SET(AD,FF)
  #CC(FF,12)
  #SET(95,01)
  #WB_ISO100
  #FLASH_ISO100;
 
NOT_DOC_MODE =
  #CMD(06,00)
  #CMD(55,#CONTRAST)
  #CMD(56,#SHARPNESS)
  #CC(#CC_RED,#CC_BLUE) 
  #SET(AD,00)
  #SET(95,03)
  #WB_ISO200
  #FLASH_ISO200;

UPDATE_MIN_FRMRATE = $p5 10 $c5 03 #SET(22,01) $cl #SET(22,0F) $cx;

FLASH_SETTINGS = #SET(92,00) #SET(A0,02) #SET(A1,02) #SET(96,00)
  #SET(97,04) #SET(9A,F0) #SET(9B,A0) #SET(9C,0D) #SET(9D,2B);

TO_DRAFT = $cf.02 0 #MODE(33,00) $sf.02 1 $cl $cx;

NORMAL= $sa 09 
  #TO_DRAFT 
  #CMD(03,0f)
  #SCENE_GET
  #SET(64,#SHOT_SPEED)            // Shuter Speed
  #CMD(02,#LOCK_AE)                 // AE (auto exposure)
  #SET(22,0a)
  #CMD(51,00)                              // Auto scene
  #UPDATE_WB
  #UPDATE_PHOTO
  #NOT_DOC_MODE
  #UPDATE_ISO
  #MODE(34,00)
  #CMD(5A,01)        
  $cf.00 1                
  #MODE(35,00)    
  $cl $cx;

PORTRAIT= $sa 09 
  #TO_DRAFT 
  #CMD(03,0f)
  #SCENE_GET
  #SET(64,#PORTRAIT_SPEED)         // Shuter Speed
  #CMD(02,#PORTRAIT_AE)            // AE 
  #SET(22,0F)
  #CMD(51,01)                                // Portrait scene
  #UPDATE_WB 
  #NOT_DOC_MODE
  #MODE(34,00)
  #CMD(5A,01)
  $cf.00 1
  #MODE(35,00)
  $cl $cx;

LANDSCAPE= $sa 09 
  #TO_DRAFT 
  #CMD(03,0f)
  #SCENE_GET
  #SET(64,#LANDSCAPE_SPEED)        // Shuter Speed
  #CMD(02,#LANDSCAPE_AE)             // AE
  #SET(22,0F)
  #CMD(51,06)                                  // Landscape scene
  #UPDATE_WB 
  #NOT_DOC_MODE
  #MODE(34,00)
  #CMD(5A,01)
  $cf.00 1
  #MODE(35,00)
  $cl $cx;

NIGHT= $sa 09 
  #TO_DRAFT
  #CMD(03,04)
  #SCENE_GET
  #SET(64,#NIGHT_SPEED)                    // Shuter Speed
  #SET(22,02)                                            // DRAFT_MIN_FRMRATE 1 fps
  #CMD(06,#NIGHT_EXPOSURE)          // Increase exposure 
  #CMD(02,#NIGHT_AE)                         // AE 
  #SET(77,26) 
  #SET(78,1A)
  #SET(79,0F)
  #SET(7A,0F)
  #SET(7B,1A)
  #SET(7C,0F)
  #CMD(51,04)                                  // Night scene   
  #UPDATE_WB 
  #NOT_DOC_MODE
  #MODE(34,00)
  #CMD(5A,01)
  $cf.00 1
  #MODE(35,00)
  $cl $cx;

NIGHT_PORTRAIT= $sa 09 
  #TO_DRAFT  
  #CMD(03,0f)
  #SCENE_GET
  #SET(64,#NIGHT_PORTRAIT_SPEED)        // Shuter Speed
  #CMD(02,#NIGHT_PORTRAIT_AE)              // AE Auto
  #SET(22,0F)
  #SET(77,20)
  #SET(78,1A)
  #SET(79,46)
  #SET(7A,3C)
  #SET(7B,1A)
  #SET(7C,3C)
  #CMD(51,08)                                        // Custom scene
  #UPDATE_WB
  #NOT_DOC_MODE
  #MODE(34,00)
  #CMD(5A,01)
  $cf.00 1
  #MODE(35,00)
  $cl $cx;

BEACH_SNOW= $sa 09 
  #TO_DRAFT  
 #CMD(03,0f)
  #SCENE_GET
  #SET(64,#BEACH_SNOW_SPEED)         // Shuter Speed
  #CMD(02,#BEACH_SNOW_AE)             // AE Auto
  #SET(22,0F)
  #CMD(51,02)                                     // Beach & snow scene 
  #UPDATE_WB 
  #NOT_DOC_MODE
  #MODE(34,00)
  #CMD(5A,01)
  $cf.00 1
  #MODE(35,00)
  $cl $cx;

SPORTS= $sa 09 
  #TO_DRAFT  
  #CMD(03,0f)
  #SCENE_GET
  #SET(64,#SPORTS_SPEED)           // Shuter Speed
  #CMD(02,#SPORTS_AE)                // AE
  #SET(22,0F)
  #CMD(51,05)                              // Sports scene
  #UPDATE_WB  
  #NOT_DOC_MODE
  #MODE(34,00)
  #CMD(5A,01)
  $cf.00 1
  #MODE(35,00)
  $cl $cx;

DOCUMENT= $sa 08 
  #TO_DRAFT  
  #CMD(03,0f)
  #SCENE_GET
  #SET(64,#DOCUMENT_SPEED)               // Shuter Speed
  #CMD(02,#DOCUMENT_AE)                   // AE 
  #SET(22,0F)
  #CMD(51,08)                                      // Custom scene 
  #UPDATE_WB  
  #DOC_MODE
  #MODE(34,00)
  #CMD(5A,01)
  $cf.00 1
  #MODE(35,00)
  $cl $cx;

// I2C sequences
//================================================
 
seq_init = 
  $sf 00  $sf.05 1 $sf.02 1 
  $s8 00  $sa 09  $sc 00 
  $se 00  $sd 00
  #CAPTURE_EVENT
  #CAPTURE_EVENT
  #SET(29,01)
  #SET(3B,03)    
  #SET(3A,E8)
   #SET(6B,06)
  #SET(6C,01)
  #SET(6F,3C)
  #SET(70,28)
  #SET(64,#SHOT_SPEED)
  #SET(22,0F)
  08 02 00 9A
  32 10 30 3C
  $f $r5 11111 $d0002
  #SET(95,03) 
  #WB_ISO200
  #FLASH_ISO200 
  #CMD(5A,01)
  #CC_NORMAL;

seq_ping = ;

M_CONTRAST =
  $cf.16 1
  #CMD(06,00)
  $s4 %0
  $-4 08
  #CMD(55,$w4)
  $c5
  #CMD(61,40)
  $c5 $cx $cx 
  $cx
  #CMD(72,00);

SATUR_LAND=
   $p5 10
   $c5 02
   #CMD(06,00)
  $s6 %0
  $-6 08
  $*6 06
  #CMD(58,$w6)
  $c5
  #CMD(61,40)
  $c5 
  $cx $cx $cx
  #CMD(72,00);

V_FOCUS=
  $c8 01 
  $p5 07  
  $c5 01  
 #CMD(06,00)
 #SET(6A,01)
  $s4 %0 
  $-4 03
  $*4 08 
  #CMD(43,$w4)
  $c5
  #CMD(61,40)
  $c5 $cx $cx 
  $cx $cx
  #CMD(72,00);

M_FOCUS =
  $p5 10
  $c5 01  
  $p5 0a
  $s5 00  
  #CMD(06,00)
  #SET(6A,01)
  $s4 %0
  $-4 03
  $*4 08
  #CMD(43,$w4)
  $c5
  #CMD(61,40)
  $c5 $cx $cx 
  $cx 
  #CMD(72,00);

MANUAL_XENON=
  $cf.06 1 
  $s4 %0
  $-4 03
  $*4 08
  #SET(9E,$w4)
   $c5
  #CMD(61,40)
  $c5 
  $cx $cx $cx
 #CMD(72,00);

MANUAL_RER =
  $cd 03
  $s4 %0
  $-4 03
  $*4 08
  #SET(9E,$w4)
  $c5
  #CMD(61,40)
  $c5 $cx $cx
  $cx
  #CMD(72,00);

// Property 0, Exposure,3-2,90.0,f+2

seq_set_prop_0 = 
#TO_DRAFT 
$s5 %0 $ma 5
 #EXPOSURE 
 #CMD(06,$w5) 
 #V_FOCUS  
 #M_CONTRAST
 #SATUR_LAND
 #M_FOCUS
 #MANUAL_RER
 #MANUAL_XENON; 

seq_get_prop_0 = $s3 00 $s2 00 $s1 01 $m0 a;

// Property 1, White balance

seq_set_prop_1 = #TO_DRAFT 
    $m0 f $>0 7 $b0 00 1 7 
    $s5 %0
    $c5 01 $s5 03 $cl
    $c5 02 $s5 04 $cl
    $c5 03 $s5 05 $cl
    $c5 04 $s5 06 $cl
    $cx $cx $cx $cx
    #CMD(11,$w5); 

// Property 2, Flicker mode

seq_set_prop_2_0 = #CMD(21,01);   // Auto
seq_set_prop_2_1 = #CMD(21,02);   // 50 Hz
seq_set_prop_2_2 = #CMD(21,03);   // 60 Hz
seq_set_prop_2_3 = #CMD(21,00);   // Disable

// Property 3, Vertical mirroring

seq_set_prop_3_0 = #CMD(52,00);   // Off 
seq_set_prop_3_1 = #CMD(52,0A);   // On

// Property 4, Horizontal mirroring

seq_set_prop_4_0 = #CMD(52,00);   // Off
seq_set_prop_4_1 = #CMD(52,05);   // On

// Property 5, JPEG compression

seq_set_prop_5_0 = $sf.05 1;
seq_set_prop_5_1 = $sf.05 0;

// Property 6, Zoom

seq_set_prop_6 =
  #TO_DRAFT
  $s4 %0  $ma 4 
  $*4  3C $/4 96  
  $s5 44  $-5 r4  
  #SET(67,3C)
  #CMD(61,$w5);

seq_get_prop_6 = 
  #TO_DRAFT
  #READ(69) 
  $*4 96  $/4 3C  $s0 AA
  $-0 r4  $s1 00  $s2 00  $s3 00;

// Property 7, Night mode 

seq_set_prop_7_0 = ;
seq_set_prop_7_1 = ;

// Property 8, Effects

seq_set_prop_8 = #TO_DRAFT $s5 %0 #CMD(53,$w5);   

// Property 9, Focus mode  

seq_set_prop_9_0 = #TO_DRAFT $sf.09 1 #SET(6A,00);
seq_set_prop_9_1 = #TO_DRAFT $sf.09 0 #SET(6A,01);

// Property 10, Focus operation    

seq_set_prop_a_0 = $cf.02 0 #MODE(33,00) $sf.02 1#CMD(43,00) #CMD(5A,01) $cx;
seq_set_prop_a_1 = #MODE(31,06) $sf.02 0;
seq_set_prop_a_2 = #MODE(31,02) $sf.02 0;

seq_get_prop_a =  05 01 00 03 03 $f $r4 1 123 $d0005 $c3 e9 $b2 00 4 1
  $c2 00
   $"CAMDRIVER0: Focus_operation_succeded"
  $s0 04 $d0096 
 $cf.06 1 
 #COMMAND(72,00)  $d0005 
  #READ(71) $d000a
    $"CAMDRIVER0: Lens_position_=_%4" 
   $cs4 00
   #SET(95,03)
   #WB_ISO200 
 #FLASH_ISO200
$"CAMDRIVER0: FLASH_FORCE_ISO 200 USED"
 $cl 
  #SET(95,01) 
  #WB_ISO100 
 #FLASH_ISO100
$"CAMDRIVER0: FLASH_FORCE_ISO 100 USED"
  $cx 
$cl 
$cx 
  $cl
$"CAMDRIVER0: Focus_operation_failed"
 $s0 05          
  $cx
$"CAMDRIVER0: Received_and_cleared_Int_Source_%0_Event_Info_%2_Event_ID_%3"
 #SET(06,03)
$cl
 $"CAMDRIVER0: Focus_operation_not_finnished" 
$s0 03
 $cx 
$s1 00  $s2 00  $s3 00;

// Property 11, EXIF 1    

seq_get_prop_b = #CMD(72,00) 05 01 00 B0 04 $f $r5 0 0 1 2 3 $d0002;

// Property 12, EXIF 2

seq_get_prop_c = #CMD(72,00) 05 01 00 B4 02 $f $r3 0 0 1 $d0002 
$cf.06 1 $ce 00 $s2 01 $cl $s2 00 $cx $cl $s2 00 $cx #READ(4A) $m3 4;

// Property 14, Xenon flash support    

seq_set_prop_e_0 = $sd 00  #SET(91,00) #CC_NORMAL;
seq_set_prop_e_1 = $sd 01;
seq_set_prop_e_2 = $sd 02 #FLASH_SETTINGS #CC_XENON;
seq_set_prop_e_3 = $sd 03 #FLASH_SETTINGS #CC_RER;
seq_set_prop_e_4 = $sd 04 #SET(91,03);

// Property 16, Scenes    

seq_set_prop_10_0 = #NORMAL; 
seq_set_prop_10_1 = #PORTRAIT;
seq_set_prop_10_2 = #LANDSCAPE;
seq_set_prop_10_3 = #NIGHT;
seq_set_prop_10_4 = #NIGHT_PORTRAIT;
seq_set_prop_10_5 = #BEACH_SNOW;
seq_set_prop_10_6 = #SPORTS;
seq_set_prop_10_7 = #DOCUMENT;

// Property 17, ISO    

seq_set_prop_11_0 =
  #TO_DRAFT $sc 00
  #SET(95,03)
  #CMD(02,#LOCK_AE)
  #WB_ISO200
  #FLASH_ISO200
  #CMD(5A,01);
  
seq_set_prop_11_1 =
  #TO_DRAFT $sc 01 
  #SET(61,01) 
  #SET(95,01)
  #CMD(02,04)
  #WB_ISO100
  #FLASH_ISO100  
  #CMD(5A,01);
  
seq_set_prop_11_2 =
  #TO_DRAFT $sc 04 
  #SET(61,04)
  #SET(95,04) 
  #CMD(02,04)
  #WB_ISO200
  #FLASH_ISO200
  #CMD(5A,01);
  
seq_set_prop_11_3 =
  #TO_DRAFT $sc 07  
  #SET(61,07) 
  #SET(95,07)
  #CMD(02,04)
  #WB_ISO400
  #FLASH_ISO400
  #CMD(5A,01);

// Property 18, Framerate reduction/restoration for GUI speed

seq_set_prop_12_0 =        // Restore framerate
  $"CAMDRIVER0: Restore framerate" 
  $sf.07 0                 // Set flag to "not in menu"
  $z5                      // Put res id in reg 5
  $c5 20                   // If res id 0x20
    $p6 10                 // Put scene value in reg 6
    $c6 03
      #SET(22,01)      // DRAFT_MIN_FRMRATE 1 fps
    $cl
      #SET(22,0A)      // DRAFT_MIN_FRMRATE 5 fps
      #SET(25,0A)      // HS_DRAFT_MIN_FRMRATE 5 fps
    $cx
    #SET(21,3C)        // DRAFT_MAX_FRMRATE 30 fps
    #SET(24,3C)        // HS_DRAFT_MAX_FRMRATE 30 fps      
  $cx
  $c5 2f                   // If res id 0x2f
    $p6 10                 // Put scene value in reg 6
    $c6 03
      #SET(22,01)      // DRAFT_MIN_FRMRATE 1 fps
    $cl
      #SET(22,0A)      // DRAFT_MIN_FRMRATE 5 fps
      #SET(25,0A)      // HS_DRAFT_MIN_FRMRATE 5 fps
    $cx
    #SET(21,3C)        // DRAFT_MAX_FRMRATE 30 fps
    #SET(24,3C)        // HS_DRAFT_MAX_FRMRATE 30 fps      
  $cx
  $c5 21                   // If res id 0x21
    #SET(22,0A)        // DRAFT_MIN_FRMRATE 5 fps
    #SET(25,0A)        // HS_DRAFT_MIN_FRMRATE 5 fps
    #SET(21,3C)        // DRAFT_MAX_FRMRATE 30 fps
    #SET(24,3C)        // HS_DRAFT_MAX_FRMRATE 30 fps      
  $cx
  $c5 25                   // If res id 0x25
    #SET(22,18)        // DRAFT_MIN_FRMRATE 12 fps
    #SET(25,18)        // HS_DRAFT_MIN_FRMRATE 12 fps
    #SET(21,18)        // DRAFT_MAX_FRMRATE 12 fps
    #SET(24,18)        // HS_DRAFT_MAX_FRMRATE 12 fps      
  $cx
  $c5 26                   // If res id 0x26
    #SET(22,18)        // DRAFT_MIN_FRMRATE 12 fps
    #SET(25,18)        // HS_DRAFT_MIN_FRMRATE 12 fps
    #SET(21,18)        // DRAFT_MAX_FRMRATE 12 fps
    #SET(24,18)        // HS_DRAFT_MAX_FRMRATE 12 fps      
  $cx
  $c5 29                   // If res id 0x29
    #SET(22,14)        // DRAFT_MIN_FRMRATE 10 fps
    #SET(25,14)        // HS_DRAFT_MIN_FRMRATE 10 fps
    #SET(21,14)        // DRAFT_MAX_FRMRATE 10 fps
    #SET(24,14)        // HS_DRAFT_MAX_FRMRATE 10 fps      
  $cx
  $c5 2a                   // If res id 0x2a
    #SET(22,3B)        // DRAFT_MIN_FRMRATE 29.5 fps
    #SET(25,3B)        // HS_DRAFT_MIN_FRMRATE 29.5 fps
    #SET(21,3C)        // DRAFT_MAX_FRMRATE 30 fps
    #SET(24,3C)        // HS_DRAFT_MAX_FRMRATE 30 fps      
  $cx
  $c5 2b                   // If res id 0x2b
    #SET(22,3B)        // DRAFT_MIN_FRMRATE 15 fps
    #SET(25,3B)        // HS_DRAFT_MIN_FRMRATE 15 fps
    #SET(21,3C)        // DRAFT_MAX_FRMRATE 15 fps
    #SET(24,3C)        // HS_DRAFT_MAX_FRMRATE 15 fps      
  $cx
  $c5 2c                   // If res id 0x2c
    #SET(22,3B)        // DRAFT_MIN_FRMRATE 7,5 fps
    #SET(25,3B)        // HS_DRAFT_MIN_FRMRATE 7,5 fps
    #SET(21,3C)        // DRAFT_MAX_FRMRATE 7,5 fps
    #SET(24,3C)        // HS_DRAFT_MAX_FRMRATE 7,5 fps      
  $cl $cx
  #MODE(34,00)
  #CMD(5A,01)          // FLASH_INFO = 1
  $cf.00 1                   // If imst mode
    #MODE(35,00)      // IS_DRAFT mode
    $cf.01 1                 // If (IS) HS mode 
      #MODE(38,00)    // Mode IS HS draft
    $cl 
    $cx 
  $cl                            // Not in IS
    $cf.01 1                 // If HS mode
      #MODE(37,00)    // Mode HS draft
    $cl 
    $cx $cx;

seq_set_prop_12_1 =        // Decrease framerate
  $"CAMDRIVER0: Decrease framerate"
  $sf.07 1                 // Set flag to "menu" mode
  #SET(22,0F)          // DRAFT_MIN_FRMRATE 7,5 fps
  #SET(25,0F)          // HS_DRAFT_MIN_FRMRATE 7,5 fps
  #SET(21,0F)          // DRAFT_MAX_FRMRATE 7,5 fps
  #SET(24,0F)          // HS_DRAFT_MAX_FRMRATE 7,5 fps  
  #MODE(34,00);

// Property 22, Photo metering    

seq_set_prop_16_0 = #TO_DRAFT $sf.16 0  #CMD(08,00);   // Multimode
seq_set_prop_16_1 = #TO_DRAFT $sf.16 1  #CMD(08,01);   // Spot

// Property 23, Xenon flash required   

seq_get_prop_17 = #READ(93)            // 0 = no flash, 1 = flash                                   
  $-4 02 $m0 4 
  $sf.06 0                      // Set flash flag to FALSE     
  $cd 02                        // Auto setting?
  $c0 01                        // If use flash?
   $sf.06 1                         // Set flash flag to TRUE                  
      $p5 10                     // Put value of Scene in reg 5
      $c5 04                      // If scene = night portrait
       #SET(9E,1D)         // FLASH_MSHUT_LONG = 1/8 sec1D 
       #SET(91,23)         // FLASH_XENON_MODE = 0b00100011, slow sync 
       $cl
       #SET(91,03)          // FLASH_XENON_MODE = 0b00000011, autoflash ON  
       #CC_XENON 
    $cx 
   $cl                                // Else not use
    #SET(91,00)            // FLASH_XENON_MODE = 0, autoflash OFF   
  $cl
  #SET(91,00)
  $cx
  $cl 
  $cx   
  $cd 03                     // Auto RER setting?
    $c0 01                   // If use flash? 
    $sf.06 1                  // Set flash flag to TRUE                      
      $p5 10                 // Put value of Scene in reg 5
      $c5 04                  // If scene = night portrait
        #SET(91,13)       // FLASH_XENON_MODE = 0b00010011, slow sync RER 
        $cl 
       #SET(91,13)          // FLASH_XENON_MODE = 0b00010011, autoflash ON, RER13 
      $cx
    $cl 
    $p5 10
    $c5 04 
     $sf.06 0
     #SET(91,00)
    $cl   
    $sf.06 1 
    #SET(91,#FORCE)                // FLASH_XENON for RER forced on/off     
    #CC_RER 
   $cx
   $cx
  $cl
  $cx
  $s1 00 $s2 00 $s3 00 ; 

// Property 24, Image stabilization 

seq_set_prop_18_0 = #TO_DRAFT            // IS Off
  #MODE(34,00)                             // DRAFT_MODE
  $sf.00 0  
  $cc 00                                // AE_MODE = auto?
    #CMD(02,#LOCK_AE)                 // Auto
  $cl
    #CMD(02,04)         // ISO priority
    #SET(61,$wc)               // Change back to last ISO
  $cx
  #CMD(5A,01)                 // FLASH_INFO = 1
  $c8 01                             // If (IS) HS video mode 
    #MODE(37,00)            // Mode HS draft
  $cl $cx;
                 
seq_set_prop_18_1 = #TO_DRAFT     // IS On
  $sf.00 1     
  #CMD(02,00)        // AE_MODE = Auto
  #MODE(35,00)     // IS_DRAFT mode
  $c8 01                   // If (IS) HS video mode 
    #MODE(38,00)     // Mode IS HS draft
  $cl $cx;

// Property 25, Continuous zoom 

seq_set_prop_19_0 = #TO_DRAFT #CMD(61,84);     // Stop
  
seq_set_prop_19_1 = #TO_DRAFT      // Zoom in
  #SET(67,01)                                    // ZM_SMTH_SPEED = 1 
  #CMD(61,04);      

seq_set_prop_19_2 = #TO_DRAFT     // Zoom out
  #SET(67,01)                                      // ZM_SMTH_SPEED = 1 
  #CMD(61,40);     

// Property 26, Get continuous zoom 

seq_get_prop_1a = #TO_DRAFT
  #READ(69)                                       // Get zoom level in percent 1-100
  $s0 63  $*0 40  $/0 r4  $-0 54
  $/0 0F 
$s3 00  $s2 00 $s1 00;

// Property 27, Snapshot operation 

seq_set_prop_1b = $se %0;        // 0 => Normal, Read out pict 1-9 in BestPic

// Property 28, BestPic image size

seq_set_prop_1c_0 =     // 5M
  #SET(2D,01)       // BURST_JPEG_IMAGE_SIZE = 5M
  #SET(42,46)       // JPEG_INIT_QUALITY = 70d, 0x46
  $cf.05 1              // If normal
    #SET(45,5A)     // JPEG_BURST_TARGET_RATE = 90d  850KB
  $cl                   // Else low compr
    #SET(45,5F)     // JPEG_BURST_TARGET_RATE = 95d = 897KB
  $cx;

seq_set_prop_1c_1 =     // 3M
  #SET(2D,03)       // BURST_JPEG_IMAGE_SIZE = 3M   
  #SET(42,40)       // JPEG_INIT_QUALITY = 64d, 0x40
  $cf.05 1              // If normal
    #SET(45,40)     // JPEG_BURST_TARGET_RATE = 64d 605 KB
  $cl                   // Else low compr
    #SET(45,46)     // JPEG_BURST_TARGET_RATE = 70d 662 KB
  $cx;

seq_set_prop_1c_2 =     // 1M
  #SET(2D,06)       // BURST_JPEG_IMAGE_SIZE = SXGA  
  #SET(42,32)       // JPEG_INIT_QUALITY = 50d, 0x32
  $cf.05 1              // If normal
    #SET(45,14)     // JPEG_BURST_TARGET_RATE = 20d 189KB
  $cl                   // Else low compr
    #SET(45,1E)     // JPEG_BURST_TARGET_RATE = 30d 283KB   
  $cx;

seq_set_prop_1c_3 =     // VGA
  #SET(2D,08)       // BURST_JPEG_IMAGE_SIZE = VGA 
  #SET(42,20)       // JPEG_INIT_QUALITY = 32d, 0x20
  $cf.05 1              // If normal
    #SET(45,05)     // JPEG_BURST_TARGET_RATE = 5d 43KB      
  $cl                   // Else low compr
    #SET(45,0A)     // JPEG_BURST_TARGET_RATE = 10d 95KB 
  $cx;


// Property 29, BestPic operation, 

seq_set_prop_1d_0 = $sb 00;     // Normal burst operation
  
seq_set_prop_1d_1 = $sb 01;     // Half speed burst operation
     
seq_set_prop_1d_2 = $sb 02;    // Abort Burst operation     

seq_set_prop_1d_3 =     // Start Burst (only for ITP)
  #MODE(31,02)   // Half-release with focus set to inf
  #MODE(39,04);

seq_set_prop_1d_4 = #CMD(3A,00);    // Stop Burst (only for ITP)
                                                                   // Take picture  
// Reset and test pattern,  property 30

seq_set_prop_1e_0 = $go 31 0             // Reset low
  $d0020
  $go 31 1             // Reset high
  #CAPTURE_EVENT       // EV_CAM_READY 
  #CAPTURE_EVENT       // EV_MUTE_OFF
  #SET(29,01)      // STILL_OUT_REPEAT = 1
  #SET(2B,01);      // VSGATE ON   

seq_set_prop_1e_1 =    // Testpattern
  #SET(81,01) 
  03 55 AA $f $r2 01 $d0003   
  08 04 70 30 00 05 01 00 $f $r3 001 $d0003;

// Viewfinder and snapshot sequences

seq_ss_config_1 = $sf.03 1    // JPEG flag to 1
 #SET(26,08) #SET_VGA;      // 640 x 480 JPEG and JPEG IMST

seq_ss_config_2 = $sf.03 1     // JPEG flag to 1
 #SET(26,06) #SET_1MP;      // 1280 x 960 JPEG and JPEG IMST

seq_ss_config_4 = $sf.03 1     // JPEG flag to 1
 #SET(26,05) #SET_2MP;      // 1632 x 1224 JPEG and JPEG IMST 

seq_ss_config_5 = $sf.03 1    // JPEG output
 #SET(26,03) #SET_3MP;      // 2048 x 1536 JPEG and JPEG IMST 

seq_ss_config_6 = $sf.03 1    // JPEG output
 #SET(26,01) #SET_5MP;      // 2592 x 1944 JPEG and JPEG IMST 

seq_ss_config_10 =
  $sf.03 0             // YCbCr output
  #SET(26,0C);      // 320 x 240 YCbCr and YCbCr IMST 

seq_ss_config_11 =
  $sf.03 0             // YCbCr output
 #SET(26,08);     // 640 x 480 YCbCr and YCbCr IMST

seq_vf_config_20 =     // Viewfinder 
  #SET(20,0C)      // DRAFT_IMAGE_SIZE 320x240 
  $cf.07 1             // If in menu mode
  $cl                      // do not change max framerate
  #SET(21,3C)    // DRAFT_MAX_FRMRATE = 30 (60/2)
  $cx
  #UPDATE_MIN_FRMRATE
  $s8 00;               // No video HS

seq_vf_config_21 =     // Viewfinder for BestPic
  #SET(20,0C)      // DRAFT_IMAGE_SIZE 320x240 
  $cf.07 1             // If in menu mode
  $cl                      // do not change max framerate
 #SET(21,1E)    // DRAFT_MAX_FRMRATE = 15 (30/2)
  $cx
  #UPDATE_MIN_FRMRATE
  $s8 00;              // No video HS  

seq_vf_config_25 =     // VT
  #SET(20,14)      // DRAFT_IMAGE_SIZE 96x128
  #SET(23,14)      // HS_DRAFT_IMAGE_SIZE 96x128
  $cf.07 1             // If in menu mode
  $cl                      // do not change max framerate
  #SET(22,14)    // DRAFT_MIN_FRMRATE 10 fps
    #SET(25,14)    // HS_DRAFT_MIN_FRMRATE 10 fps    
    #SET(21,14)    // DRAFT_MAX_FRMRATE 10 fps
    #SET(24,14)    // HS_DRAFT_MAX_FRMRATE 10 fps
  $cx
  $s8 00;               // No video HS

seq_vf_config_26 =     // VT
  #SET(20,12)      // DRAFT_IMAGE_SIZE 144x176
  #SET(23,12)      // HS_DRAFT_IMAGE_SIZE 144x176
  $cf.07 1             // If in menu mode
  $cl                      // do not change max framerate
    #SET(22,18)    // DRAFT_MIN_FRMRATE 12 fps
    #SET(25,18)    // HS_DRAFT_MIN_FRMRATE 12 fps    
    #SET(21,18)    // DRAFT_MAX_FRMRATE 12 fps
    #SET(24,18)    // HS_DRAFT_MAX_FRMRATE 12 fps  
  $cx
  $s8 00;               // No video HS

seq_vf_config_29 =     // VR
  #SET(20,12)      // DRAFT_IMAGE_SIZE 144x176
  #SET(23,12)      // HS_DRAFT_IMAGE_SIZE 144x176
  $cf.07 1             // If in menu mode
  $cl                      // do not change max framerate
  #SET(22,14)    // DRAFT_MIN_FRMRATE 10 fps
    #SET(25,14)    // HS_DRAFT_MIN_FRMRATE 10 fps    
    #SET(21,14)    // DRAFT_MAX_FRMRATE 10 fps
    #SET(24,14)    // HS_DRAFT_MAX_FRMRATE 10 fps  
  $cx
  $s8 01;               // Video HS

seq_vf_config_2a =     // VR
  #SET(20,0B)      // DRAFT_IMAGE_SIZE 320x240
  #SET(23,0B)      // HS_DRAFT_IMAGE_SIZE 320x240
  $cf.07 1             // If in menu mode
  $cl                      // do not change max framerate
   #SET(22,3B)    // DRAFT_MIN_FRMRATE 29.5 fps
    #SET(25,3B)    // HS_DRAFT_MIN_FRMRATE 29.5 fps    
    #SET(24,3C)    // HS_DRAFT_MAX_FRMRATE 30 fps  
    #SET(21,3C)    // DRAFT_MAX_FRMRATE 30 fps
    $cx
  $s8 01;               // Video HS

seq_vf_config_2b =     // VR
  #SET(20,0B)      // DRAFT_IMAGE_SIZE 320x240
  #SET(23,0B)      // HS_DRAFT_IMAGE_SIZE 320x240
  $cf.07 1             // If menu mode
  $cl                      // do not change max framerate
  #SET(22,28)    // DRAFT_MIN_FRMRATE 15 fps
    #SET(25,28)    // HS_DRAFT_MIN_FRMRATE 15 fps    
    #SET(21,28)    // DRAFT_MAX_FRMRATE 15 fps
    #SET(24,28)    // HS_DRAFT_MAX_FRMRATE 15 fps  
  $cx
  $s8 01;               // Video HS

seq_vf_config_2c =     // VR
  #SET(20,0B)      // DRAFT_IMAGE_SIZE 320x240
  #SET(23,0B)      // HS_DRAFT_IMAGE_SIZE 320x240
  $cf.07 1             // If in menu mode
  $cl                      // do not change max framerate
   #SET(22,24)    // DRAFT_MIN_FRMRATE 7,5 fps
    #SET(25,24)    // HS_DRAFT_MIN_FRMRATE 7,5 fps
    #SET(21,28)    // DRAFT_MAX_FRMRATE 7,5 fps
   #SET(24,28)    // HS_DRAFT_MAX_FRMRATE 7,5 fps  
  $cx 
  $s8 01;               // Video HS

seq_vf_config_2f =     // Viewfinder 
  #SET(20,0C)      // DRAFT_IMAGE_SIZE 320x240 
  $cf.07 1             // If in menu mode
 $cl                      // do not change max framerate
  #SET(21,3C)    // DRAFT_MAX_FRMRATE = 30 (60/2)
  $cx
  #UPDATE_MIN_FRMRATE
  $s8 00;               // No Video HS

//-----------------------------------------------

seq_vf_start = $cf.02 0    // If not in any draft mode 
    #MODE(33,00)           // MODE_MAIN
    #CMD(43,00)            // MANUAL_FOCUS = 00, Infinity 
    #CMD(5A,01)           // FLASH_INFO = 1
    $sf.02 1                   // Set draft flag to 1
    $se 00                     // Set snapshot operation to normal 
  $cl
    #MODE(34,00)
    #CMD(5A,01)          // FLASH_INFO = 1
    $cf.00 1                   // If imst mode
      #MODE(35,00)      // IS_DRAFT mode
      $c8 01                   // If (IS) HS video mode 
        #MODE(38,00)    // Mode IS HS draft
   $cl 
 $cx 
    $cl                        // Not in IS
      $c8 01                   // If HS video mode
        #MODE(37,00)    // Mode HS draft
      $cl $cx $cx $cx;

seq_vf_stop =;

seq_ss_start = $cf.02 1    // If draft mode?
    #MODE(31,02)          // Half-release with focus set to inf
    $sf.02 0                     // Not in draft mode
  $cl $cx;

seq_ss_take = $ce 00      // If not BestPic
    $cf.03 1                   // IF JPEG 
      #MODE(36,80)        // MODE_IMST_STILL_CAPT, JPEG
      #CAPTURE_EVENT             // EV_CAPTURE_STATUS, 02 e4
    $cl                          // Else IMST OFF       
      #MODE(36,00)        // MODE_STILL_CAPT, YCbCr
    $cx 
  $cl                            // Else BestPic mode
    #MODE(3A,$we)         // Read out pict # stored in reg e
  $cx  
  #CAPTURE_EVENT;                 // Capture EV_CAPTURE_STATUS, 00 E4     

seq_ss_verify = #CAPTURE_EVENT   // Capture EV_CAPTURE_STATUS, 01 E4
  $c2 01
    $s0 01
    $"CAMDRVIER0: Image_verified"
  $cl            
    $"CAMDRIVER0: Image_not_verified"
  $cx;

// Functions for synchronized viewfinder images in burst mode.

seq_ss_stop =#UNLOCK_AE;

seq_pv_start = $cf.02 1    // If draft mode?
    #MODE(31,02)          // Half-release with focus set to inf
    $sf.02 0                     // Not in draft mode
  $cl
  $cx  
  $"CAMDRIVER0: seq_pv_start"
  $s9 00                        // BurstStatus -> Init
  $cb 00                        // If normal interval    
    #MODE(39,04)         // Mode burst start, BURST_INTERVAL = 0, BURST_REMAIN = 4
  $cl                           // Else half speed, every 2nd frame 
    #MODE(39,14)         // Mode burst start, BURST_INTERVAL = 1, BURST_REMAIN = 4
  $cx;

seq_pv_stop = $c9 01
    $"CAMDRIVER0: seq_pv_stop"
    $s9 03                      // BurstStatus -> BurstOutput
    #CMD(3A,00)           // Take picture
  $cl
    $"CAMDRIVER0: seq_pv_stop is waiting for EV_RECORD_STATUS"
    $s9 02                      // BurstStatus -> WaitForEV_RECORD_STATUS
  $cx;

seq_pv_verify = $h0 02 5 0000                 // Wait for TRIG  
  05 01 00 03 03 $f $r4 0 012       // [source, info, id]
  05 02 00 06 03 $f                 // Release interrupt
  $cb 02                             // If Burst operation  = abort? 
    $s0 ff                          // Abort!
  $cl 
    $s0 00
    $c2 e3
      $b1 00 4 4
      $c1 00
        $s0 01                  // Rotate, i.e synch vf-image
        $"CAMDRIVER0: Rotate, synch vf"
      $cl
        $"CAMDRIVER0: Compr_failed_%0_%1_%2"
      $cx
    $cl 
    $cx
    $c2 ea                      // If EVENT_MODE_CHANGED
      $c1 50  
        $s0 ff                  // Done (Burst output)
      $cl
      $cx
    $cl
    $cx
    $c2 ee                      // EV_RECORD_STATUS
      $c9 02
        $"CAMDRIVER0: EV_RECORD_STATUS(completed)"
        $"CAMDRIVER0: Change the mode to BurstOutput"
        $s9 03                  // BurstStatus -> BurstOutput
        #CMD(3A,00)       // Take picture
        $s0 00                  // Reset register 0 to 0
      $cl
        $"CAMDRIVER0: EV_RECORD_STATUS(completed)"
        $s9 01                  // BurstStatus -> ReadyForBurstOutput
      $cx
    $cl
    $cx $cx;

// JPEG section
//================================================

jpeg_qtable_selector_0 = 
      $s2 00 #READ(4A)    // JPEG_HOST_QUALITY
      $m0 4 $s1 00
     $"CAMDRIVER0: qtable0=%0" ;   

jpeg_qtable_selector_1 = 
      $s2 01 #READ(4A)    // JPEG_HOST_QUALITY 
      $m0 4 $s1 00
      $"CAMDRIVER0: qtable1=%0" ;

jpeg_qtable_0 =
      10 0B 0C 0E 0C 0A 10 0E 
      0D 0E 12 11 10 13 18 28 
      1A 18 16 16 18 31 23 25 
      1D 28 3A 33 3D 3C 39 33 
      38 37 40 48 5C 4E 40 44 
      57 45 37 38 50 6D 51 57 
      5F 62 67 68 67 3E 4D 71
      79 70 64 78 5C 65 67 63;

jpeg_qtable_1 = 
      11 12 12 18 15 18 2F 1A 
      1A 2F 63 42 38 42 63 63 
      63 63 63 63 63 63 63 63 
      63 63 63 63 63 63 63 63 
      63 63 63 63 63 63 63 63 
      63 63 63 63 63 63 63 63 
      63 63 63 63 63 63 63 63 
      63 63 63 63 63 63 63 63; 
                        
jpeg_qtable_factors = 
      0,320100,190000,10AB00,C8000,A0000,85500,72500,64000,58E00,50000,
      48C00,42B00,3D900,39200,35500,32000,2F100,2C700,2A200,28000,
      26200,24600,22D00,21500,20000,1EC00,1DA00,1C900,1B900,1AB00,
      19D00,19000,18400,17800,16E00,16400,15A00,15100,14800,14000,
      13800,13100,12A00,12300,11C00,11600,11000,10B00,10500,10000,
       FB00, F600, F100, EC00, E600, E100, DC00,D700,D200,CD00,
       C800, C300, BD00, B800, B300, AE00, A900,A400,9F00,9A00,
       9400, 8F00, 8A00, 8500, 8000, 7B00, 7600,7100,6C00,6600,
       6100, 5C00, 5700, 5200, 4D00, 4800, 4300,3D00,3800,3300,
       2E00, 2900, 2400, 1F00, 1A00, 1400,  F00, A00, 500, 100;

jpeg_header= FF D8
             FF E0 00 10 4A 46 49 46 00 01 01 00 00 01 00 01 00 00
             FF DB 00 84 00 $qt0  01 $qt1                             
             FF C4 01 A2 00 00 01 05 01 01 01 01 01 01 00 00 00 00 00 00 00 
                            00 01 02 03 04 05 06 07 08 09 0A 0B
                         01 00 03 01 01 01 01 01 01 01 01 01 00 00 00 00 00 
                            00 01 02 03 04 05 06 07 08 09 0A 0B
                         10 00 02 01 03 03 02 04 03 05 05 04 04 00 00 01 7D
                            01 02 03 00 04 11 05 12 21 31 41 06 13 51 61 07 
                            22 71 14 32 81 91 a1 08 23 42 b1 c1 15 52 d1 f0 
                            24 33 62 72 82 09 0a 16 17 18 19 1a 25 26 27 28 
                            29 2a 34 35 36 37 38 39 3a 43 44 45 46 47 48 49 
                            4a 53 54 55 56 57 58 59 5a 63 64 65 66 67 68 69 
                            6a 73 74 75 76 77 78 79 7a 83 84 85 86 87 88 89 
                            8a 92 93 94 95 96 97 98 99 9a a2 a3 a4 a5 a6 a7 
                            a8 a9 aa b2 b3 b4 b5 b6 b7 b8 b9 ba c2 c3 c4 c5 
                            c6 c7 c8 c9 ca d2 d3 d4 d5 d6 d7 d8 d9 da e1 e2
                            e3 e4 e5 e6 e7 e8 e9 ea f1 f2 f3 f4 f5 f6 f7 f8 
                            f9 fa
                         11 00 02 01 02 04 04 03 04 07 05 04 04 00 01 02 77
                            00 01 02 03 11 04 05 21 31 06 12 41 51 07 61 71 
                            13 22 32 81 08 14 42 91 a1 b1 c1 09 23 33 52 f0 
                            15 62 72 d1 0a 16 24 34 e1 25 f1 17 18 19 1a 26 
                            27 28 29 2a 35 36 37 38 39 3a 43 44 45 46 47 48 
                            49 4a 53 54 55 56 57 58 59 5a 63 64 65 66 67 68 
                            69 6a 73 74 75 76 77 78 79 7a 82 83 84 85 86 87 
                            88 89 8a 92 93 94 95 96 97 98 99 9a a2 a3 a4 a5 
                            a6 a7 a8 a9 aa b2 b3 b4 b5 b6 b7 b8 b9 ba c2 c3 
                            c4 c5 c6 c7 c8 c9 ca d2 d3 d4 d5 d6 d7 d8 d9 da
                            e2 e3 e4 e5 e6 e7 e8 e9 ea f2 f3 f4 f5 f6 f7 f8 
                            f9 fa             
             FF DD 00 04 00 00 
             FF C0 00 11 08 $h $w 03 01 21 00 02 11 01 03 11 01
             FF DA 00 0C 03 01 00 02 11 03 11 00 3F 00;
//............................................................................................

No comments:

Post a Comment