ok ill give that a go , the array that have been defined were existing sdc_buffer of 255bytes that i use for data transfer to spi chips so all this is about building the buffers ready to write the records for this section


i have the time in sec / laps count = lap time avg (result + remander) in sec
this then needs to be placed in to the record as days/hour/mins/sec/100th
here is the fisrt attempt in nbit math for this

Code:
 '------- NbIT Math 32bit length  get lap average time value -------------
    glc_s = SDC_buffer[24]                             ' get the current lap count into tmp var ( Nmath wont allow indexed var) 
   
    @ MOVE?BP _glc_s,_Tmp32bit_1                        ' copy lap value into tmp1 
    @ MATH_DIV _Tmp32bit_3,_Tmp32bit_1,_Result_32bit    ' Tmp32bit_3 hold last lap time  div total laps  = lap time in secs , REg_Z holds remainder sec 
    @ MOVE?PB  REG_Z, _glc_s                            ' copy sec remainder to tmp pbp var ( non indexed)
      SDC_buffer[44] = glc_s                            ' copy remainder to AVG lap time 1/100th buffer 
    
    @ MOVE?CP 60,_Tmp32bit_1                            ' copy 60 value into tmp1 for minutes div 
    @ MATH_DIV _Result_32bit,_Tmp32bit_1,_Tmp32bit_3    ' Result_32bit ( laps in sec div 60 = minutes  Reg_Z holds remainder sec           
    @ MOVE?PB  REG_Z, _glc_s                            ' copy min remainder to tmp pbp var ( non indexed)
      SDC_buffer[45] = glc_s                            ' copy min remainder to AVG lap time secs buffer 
   
    @ MATH_DIV _Tmp32bit_3,_Tmp32bit_1,_Result_32bit    ' _Tmp32bit_3 (laps in mins div 60 = hours ,Reg_Z holds remainder mins 
    @ MOVE?PB  REG_Z, _glc_s                            ' copy hour remainder to tmp pbp var ( non indexed)
      SDC_buffer[46] = glc_s                            ' copy hour remainder to AVG lap time mins buffer 
 
    @ MOVE?CP 24,_Tmp32bit_1                            ' copy 24 value into tmp1 for days div 
    @ MATH_DIV _Result_32bit,_Tmp32bit_1,_Tmp32bit_3    ' Result_32bit ( laps in hours  div 24 = days  Reg_Z holds remainder hours     
    @ MOVE?PB  REG_Z, _glc_s                            ' copy days remainder to tmp pbp var ( non indexed)
      SDC_buffer[47] = glc_s                            ' copy days remainder to AVG lap time hours buffer 
    
    @ MOVE?PW _Tmp32bit_3,_glc_s                        ' copy days result to tmp pbp var ( byte size max value = 7)  
      glc_s = glc_s << 5                                ' move day value to bit7-5 from bit2-0 
      SDC_buffer[47] = glc_s + SDC_buffer[47]           ' assemble days + hours to  AVG lap time day/hours buffer