
      :

A1234560: 0xB1C2D3E4,0xA1234504,0xA1234508,0x00000000,"\
"\
  1 \
  2 \
 ... \
  N \
",00

 ,  ,    \,  
   !         
,     ,00!

      16  (   0).
0xB1C2D3E4 - magic,    -  -
0xA1234504 - onStartup,  ,    
0xA1234508 - onConfigChange,  ,   
             
0x00000000 -   .
onStartup,onConfigChange   NULL (0x00000000).

   .    
,   :

    { [__ptc_]   [= ...] }

       .
       . ,  
 ` `.


-     - getConfig()

: r0 = PatchID
: r0 =    

      ptc-.
7-      0,      ,
 1  .  0-6   ,    
  ( 0 = profile1,  1 = profile2  ..)
         ,
     ,     RAM.


   (     )

patch (p) -   -  ,  .

        :
        id                 PatchID,     0...0xffffffff
        version (ver)        ()
        copyright (cp)       
        memory (mem)        -  (,  
                            ,    
                           )
        profiles (pf)       "y",      
                           ,  "n",    
                           (  "y")

        {patch `My patch` id=12345 copyright=`me` version=1.0 memory=64 pf=y}


info -    (  )

	{info `Some info and help for this patch`}


choice (c) -      option

        {choice `mode`
         `Variant 1`=0x01
         `Variant 2`=0x05
         `Variant 3`=0x10
        }


offset (of) - :       
               .      .

        {offset +0x10}


byte (b) - 1- 

        :
        value (v)            
        range=n1...n2 (r)    n1  n2.   
                           ,    
                           ,     
                              signed  unsigned.
                             - unsigned,  0  .

        {0x0E byte `Byte parameter` range=1..5 value=1}


int (i) - 4- 

       :
       value (v)            
       range=n1...n2 (r)    n1  n2.   
                           ,    
                           ,     
                              signed  unsigned.
                             - unsigned,  0  .

       {0x10 int `Integer parameter` range=-100..+100 value=50}


byte(n), int(n) -  byte  int

       {0x20 byte(5) `Bytes (1-5)` value=1,2,3,4,5}
       {0x28 int(4) `Integers (1-4)`}


string (s) -   ASCII  UTF-8

       :
       maxlen (ml)          ,   15
       value (v)            

       {0x14 string `ASCII string` maxlen=16 value=`abc`}


ustring (u) -   UNICODE (UCS-2)

       :
       maxlen (ml)          ,   15
       value (v)            

       {0x24 ustring `Unicode string` maxlen=16 value=`zxc`}


hex (h) - 16- 

       :
       maxlen (ml)          ,   1
       value (v)            

       {0x44 hex `Hex data` maxlen=4 value=11223344}


address (a) - : hex-,    little-endian,
                NULL

       :
       value (v)            

       {0x44 address `Address` value=A0012348}


timeinms (ms) -    (4-),   ptc-
                 (T / 1000) * 216

       :
       value (v)            

       {0x48 timeinms `Interval` value=100}


checkbox (cb) - 

       :
       value (v)             (0  1)

       {0x48 checkbox `Enable` value=0}


selectfile (sf), selectdir (sd) -   / 

       :
       maxlen (ml)          ,   15
       type                : sound,picture ( selectfile)
       mask                 ( selectfile)
       contains            ,     
                          ( selectdir)

       {0x50 selectfile `Choose file` mask=`*.png` maxlen=32}

           (sound, picture):

       {0x50 selectfile `Choose sound` type=sound maxlen=32}
       {0x50 selectfile `Choose picture` type=picture maxlen=32}

         (2-  -    *.mid)

       {0x70 selectdir `Choose dir` maxlen=16}
       {0x80 selectdir `Choose dir` contains=`*.mid` maxlen=16}



phone (ph) -      (  - 31 )

       :
       value (v)            

       {0x90 phone `Phone number` value=`+380671234567`}


slider (sl) - 

       :
       range=n1...n2 (r)    n1  n2
       value (v)            

       {0xa0 slider `Volume` range=0..10 value=5}


option (o) -   

       :
       value (v)            

       {0xa2 option `Mode` `Variant 1`=0x10 `Variant 2`=0x20 value=0x10}

       (     ,
          )

         ,   choice:

       {0xa4 option `Mode` choice=`mode` value=0x05}


date (d), time (t) -  /

       :
       value (v)            

       {0xa8 date `Choose date` value=01.12.2005}
       {0xac time `Choose time` value=15:30}


xy, xy2 -    

       :
       x,y -   
       w,h -   (   , )

             . Ÿ 
          png/jpg/bmp ,    
       Misc\Patches\Ptc   screen.png(jpg,bmp)

       {0x78 xy `Coordinates` x=5 y=5 w=35 h=10}

       xy   ptc-   1- ,  
       ,   255,255. xy2 -  2- ,
              x-.


color (co) -  

       :
       value (v) -   ,    AABBGGRR
                   (AA - )

       {0xac color `Screen color` value=0xc0c0ff}


submenu,endsumbenu (sm,endsm) - ,    
                                  

       {submenu `Advanced`}

       ...

       {endsubmenu}


const -  

       :
       size                (1, 2  4,   1)
       value (v)          


template,endtemplate (tp,endtp) -  

             

       {template `temp1`}
         {0x00 string `name` maxlen=7}
         {0x08 int `value`}
       {endtemplate}


usetemplate (usetp) -  

       {0x80 usetemplate `temp1`}
