From: <jim...@us...> - 2013-04-21 16:44:07
|
Revision: 3173 http://sourceforge.net/p/openlcb/svn/3173 Author: jimkueneman626 Date: 2013-04-21 16:44:02 +0000 (Sun, 21 Apr 2013) Log Message: ----------- - New Config Memory/Datagram for Pending Replies complete and tested. Updated all projects for new features. Modified Paths: -------------- trunk/prototypes/mikroPascal/Library/NMRAnet/NMRAnetBufferPools.mpas trunk/prototypes/mikroPascal/Library/NMRAnet/NMRAnetDefines.mpas trunk/prototypes/mikroPascal/Library/NMRAnet/NMRAnetStateMachine.mpas trunk/prototypes/mikroPascal/dsPIC33EP256_CommandStation/NMRAnetAppCallbacks.mpas trunk/prototypes/mikroPascal/dsPIC33EP256_CommandStation/dsPIC33EP_NMRABusCommandStation.hex trunk/prototypes/mikroPascal/dsPIC33EP256_CommandStation/dsPIC33EP_NMRABusCommandStation.mppds trunk/prototypes/mikroPascal/dsPIC33EP_NceBridge/NMRAnetAppCallbacks.mpas trunk/prototypes/mikroPascal/dsPIC33EP_NceBridge/NMRAnetAppDefines.mpas trunk/prototypes/mikroPascal/dsPIC33EP_NceBridge/dsPIC33EP_NMRABusNceBridge.hex trunk/prototypes/mikroPascal/dsPIC33EP_NceBridge/dsPIC33EP_NMRABusNceBridge.mppds trunk/prototypes/mikroPascal/dsPIC33EP_XpressnetBridge/NMRAnetAppCallbacks.mpas trunk/prototypes/mikroPascal/dsPIC33EP_XpressnetBridge/NMRAnetAppDefines.mpas trunk/prototypes/mikroPascal/dsPIC33EP_XpressnetBridge/dsPIC33EP_NMRABusXpressnet.hex trunk/prototypes/mikroPascal/dsPIC33EP_XpressnetBridge/dsPIC33EP_NMRABusXpressnet.mppds trunk/prototypes/mikroPascal/dsPIC33FJ_Visual TFT_BasicThrottle/Throttle_Code/mikroPascal PRO for dsPIC/NMRAnetAppCallbacks.mpas trunk/prototypes/mikroPascal/dsPIC33FJ_Visual TFT_BasicThrottle/Throttle_Code/mikroPascal PRO for dsPIC/NMRAnetAppDefines.mpas trunk/prototypes/mikroPascal/dsPIC33FJ_Visual TFT_BasicThrottle/Throttle_Code/mikroPascal PRO for dsPIC/NMRAnetVisualThrottle.xml trunk/prototypes/mikroPascal/dsPIC33FJ_Visual TFT_BasicThrottle/Throttle_Code/mikroPascal PRO for dsPIC/Throttle.hex trunk/prototypes/mikroPascal/dsPIC33FJ_Visual TFT_BasicThrottle/Throttle_Code/mikroPascal PRO for dsPIC/Throttle.mppds Modified: trunk/prototypes/mikroPascal/Library/NMRAnet/NMRAnetBufferPools.mpas =================================================================== --- trunk/prototypes/mikroPascal/Library/NMRAnet/NMRAnetBufferPools.mpas 2013-04-21 03:16:55 UTC (rev 3172) +++ trunk/prototypes/mikroPascal/Library/NMRAnet/NMRAnetBufferPools.mpas 2013-04-21 16:44:02 UTC (rev 3173) @@ -163,7 +163,6 @@ Buffer^.mCode := 0; Buffer^.StateMachine := 0; Buffer^.Tag := 0; - Buffer^.SourceNodePtr := Generic16BitPointer( nil); Buffer^.iByteCount := 0; Buffer^.iWatchdog := 0; @@ -197,10 +196,10 @@ Buffer^.AddressSpace := 0; Buffer^.Address := 0; Buffer^.DataCount := 0; + Buffer^.DataOffset := 0; for i := 0 to MAX_CONFIG_MEM_DATA - 1 do Buffer^.DataBytes[i] := 0; - Buffer^.AckReply := 0; - Buffer^.DataIndex := 0; + Buffer^.AckReply := DATAGRAM_OK_ACK_REPLY_PENDING; // The Write call is no longer blocked until the write is complete so tell the caller to wait until we tell you the write is complete end; // ***************************************************************************** Modified: trunk/prototypes/mikroPascal/Library/NMRAnet/NMRAnetDefines.mpas =================================================================== --- trunk/prototypes/mikroPascal/Library/NMRAnet/NMRAnetDefines.mpas 2013-04-21 03:16:55 UTC (rev 3172) +++ trunk/prototypes/mikroPascal/Library/NMRAnet/NMRAnetDefines.mpas 2013-04-21 16:44:02 UTC (rev 3173) @@ -112,7 +112,7 @@ Address: DWord; // Configuration Memory Address into the Address Space DataCount: Byte; // Number of Bytes DataBytes: TConfigMemData; // Databytes for the ConfigMem access - DataIndex: Byte; // General use to point to the current index in the Memory Data during a statemachine run + DataOffset: Byte; // Allows Offsets to reads/writes in to the DataBytes array AckReply: Byte; // Reply to send back to the requesting node, allows telling the node the reply is pending and an estimated time end; PConfigMemBuffer = ^TConfigMemBuffer; @@ -202,7 +202,6 @@ iByteCount: Byte; // The number of bytes recevied as they come in, or the number of bytes to transmit DataBytes: TDatagram; // The 72 bytes sent in the datagram ErrorCode: TDatagramError; // Tracks any errors that occur through the MTI/Error Codes send as the first few bytes in the datagram - SourceNodePtr: Generic16BitPointer; // Pointer to the Node that is transmitting the Datagram iWatchdog: Word; // Increments every 1ms or so to allow detecting a datagram that was abandon and never sent the End message or during transmit the Target Node never responds iRetransmit: Byte; // Number of times the Datagram was attempted to transmit use to test before not trying any more end; Modified: trunk/prototypes/mikroPascal/Library/NMRAnet/NMRAnetStateMachine.mpas =================================================================== --- trunk/prototypes/mikroPascal/Library/NMRAnet/NMRAnetStateMachine.mpas 2013-04-21 03:16:55 UTC (rev 3172) +++ trunk/prototypes/mikroPascal/Library/NMRAnet/NMRAnetStateMachine.mpas 2013-04-21 16:44:02 UTC (rev 3173) @@ -555,8 +555,11 @@ case ConfigMemBuffer^.AddressSpace of // Strip off bottom two bits MSI_CDI : DatagramBuffer^.DataBytes[1] := MCP_CDI; MSI_ALL : DatagramBuffer^.DataBytes[1] := MCP_ALL; - MSI_CONFIG : DatagramBuffer^.DataBytes[1] := MCP_CONFIGURATION; - MCP_NONE : Inc(DataOffset); + MSI_CONFIG : DatagramBuffer^.DataBytes[1] := MCP_CONFIGURATION + else begin + Inc(DataOffset); + DatagramBuffer^.DataBytes[6] := ConfigMemBuffer^.AddressSpace + end; end; DatagramBuffer^.DataBytes[2] := (DWord(ConfigMemBuffer^.Address) shr 24) and $000000FF; @@ -575,7 +578,6 @@ DatagramBuffer^.DataBytes[1] := DatagramBuffer^.DataBytes[1] or MCP_WRITE_DATAGRAM_REPLY_OK; DatagramBuffer^.Alias := ConfigMemBuffer^.Alias; - DatagramBuffer^.SourceNodePtr := Generic16BitPointer( Node); end; // ***************************************************************************** @@ -695,102 +697,100 @@ BMC_SIMPLE_NODE_INFO_REQEUST : begin if NMRABusTxBufferAvailable then - begin - i := 0; - while (BaseBuffer^.StateMachine <> STATE_ACDI_DONE) and (i < 6) do // All messages have the Destination Alias as the first 2 bytes so only 6 left to use + if NMRAnetBufferPools_AllocateConfigMemBuffer(ConfigMemBuffer) then begin - case BaseBuffer^.StateMachine of - STATE_ACDI_MFG_VERSION : - begin {$IFDEF TRACE_SNIP}UART1_Write_Text('STATE_ACDI_MFG_VERSION'+LF); {$ENDIF} - DataBytes[i] := ACDI_MFG_VERSION; - Inc(i); - BaseBuffer^.Tag := 0; - BaseBuffer^.StateMachine := STATE_ACDI_MFG_INFO; - end; - STATE_ACDI_MFG_INFO : - begin {$IFDEF TRACE_SNIP}UART1_Write_Text('STATE_ACDI_MFG_INFO'+LF); {$ENDIF} - {$IFDEF SUPPORT_VIRTUAL_NODES} - if Node^.State and NS_VIRTUAL <> 0 then - begin - if BaseBuffer^.Tag < MAX_ACDI_MFG_ARRAY_VNODE then + i := 0; + while (BaseBuffer^.StateMachine <> STATE_ACDI_DONE) and (i < 6) do // All messages have the Destination Alias as the first 2 bytes so only 6 left to use + begin + case BaseBuffer^.StateMachine of + STATE_ACDI_MFG_VERSION : + begin {$IFDEF TRACE_SNIP}UART1_Write_Text('STATE_ACDI_MFG_VERSION'+LF); {$ENDIF} + DataBytes[i] := ACDI_MFG_VERSION; + Inc(i); + BaseBuffer^.Tag := 0; + BaseBuffer^.StateMachine := STATE_ACDI_MFG_INFO; + end; + STATE_ACDI_MFG_INFO : + begin {$IFDEF TRACE_SNIP}UART1_Write_Text('STATE_ACDI_MFG_INFO'+LF); {$ENDIF} + {$IFDEF SUPPORT_VIRTUAL_NODES} + if Node^.State and NS_VIRTUAL <> 0 then begin - DataBytes[i] := ACDI_MFG_STRINGS_VNODE[BaseBuffer^.Tag]; + if BaseBuffer^.Tag < MAX_ACDI_MFG_ARRAY_VNODE then + begin + DataBytes[i] := ACDI_MFG_STRINGS_VNODE[BaseBuffer^.Tag]; + Inc(BaseBuffer^.Tag); + Inc(i); + end else + BaseBuffer^.StateMachine := STATE_ACDI_USER_VERSION; + end else {$ENDIF} + begin + if BaseBuffer^.Tag < MAX_ACDI_MFG_ARRAY then + begin + DataBytes[i] := ACDI_MFG_STRINGS[BaseBuffer^.Tag]; + Inc(BaseBuffer^.Tag); + Inc(i); + end else + BaseBuffer^.StateMachine := STATE_ACDI_USER_VERSION; + end; + end; + STATE_ACDI_USER_VERSION : + begin {$IFDEF TRACE_SNIP}UART1_Write_Text('STATE_ACDI_USER_VERSION'+LF); {$ENDIF} + DataBytes[i] := ACDI_USER_VERSION; + Inc(i); + BaseBuffer^.StateMachine := STATE_ACDI_USER_NAME; + BaseBuffer^.Tag := 1; // EEPROM layout start at offset 1 + end; + STATE_ACDI_USER_NAME : + begin {$IFDEF TRACE_SNIP}UART1_Write_Text('STATE_ACDI_USER_NAME'+LF); {$ENDIF} + if BaseBuffer^.Tag < MAX_USER_NAME then + begin + // Very wasteful and slow 1 at a time but it is easy + ConfigMemBuffer^.Address := BaseBuffer^.Tag; + ConfigMemBuffer^.DataCount := 1; + AppCallback_Configuration_Read(Node, ConfigMemBuffer); + DataBytes[i] := ConfigMemBuffer^.DataBytes[0]; + + if DataBytes[i] = #0 then + BaseBuffer^.StateMachine := STATE_ACDI_START_DESC + else + if BaseBuffer^.Tag = MAX_USER_NAME - 1 then + DataBytes[i] := #0; + Inc(i); Inc(BaseBuffer^.Tag); - Inc(i); end else - BaseBuffer^.StateMachine := STATE_ACDI_USER_VERSION; - end else {$ENDIF} - begin - if BaseBuffer^.Tag < MAX_ACDI_MFG_ARRAY then + BaseBuffer^.StateMachine := STATE_ACDI_START_DESC; + end; + STATE_ACDI_START_DESC : + begin {$IFDEF TRACE_SNIP}UART1_Write_Text('STATE_ACDI_START_DESC'+LF); {$ENDIF} + BaseBuffer^.Tag := MAX_USER_NAME + 1; // EEPROM layout start at offset 1 + BaseBuffer^.StateMachine := STATE_ACDI_USER_DESC; + end; + STATE_ACDI_USER_DESC : + begin {$IFDEF TRACE_SNIP}UART1_Write_Text('STATE_ACDI_USER_DESC'+LF); {$ENDIF} + if BaseBuffer^.Tag < MAX_USER_CONFIG_DATA then begin - DataBytes[i] := ACDI_MFG_STRINGS[BaseBuffer^.Tag]; + // Very wasteful and slow 1 at a time but it is easy + ConfigMemBuffer^.Address := BaseBuffer^.Tag; + ConfigMemBuffer^.DataCount := 1; + AppCallback_Configuration_Read(Node, ConfigMemBuffer); + DataBytes[i] := ConfigMemBuffer^.DataBytes[0]; + + if DataBytes[i] = #0 then + BaseBuffer^.StateMachine := STATE_ACDI_DONE + else + if BaseBuffer^.Tag = MAX_USER_CONFIG_DATA - 1 then + DataBytes[i] := #0; + Inc(i); Inc(BaseBuffer^.Tag); - Inc(i); end else - BaseBuffer^.StateMachine := STATE_ACDI_USER_VERSION; + BaseBuffer^.StateMachine := STATE_ACDI_DONE; end; - end; - STATE_ACDI_USER_VERSION : - begin {$IFDEF TRACE_SNIP}UART1_Write_Text('STATE_ACDI_USER_VERSION'+LF); {$ENDIF} - DataBytes[i] := ACDI_USER_VERSION; - Inc(i); - BaseBuffer^.StateMachine := STATE_ACDI_USER_NAME; - BaseBuffer^.Tag := 1; // EEPROM layout start at offset 1 - end; - STATE_ACDI_USER_NAME : - begin {$IFDEF TRACE_SNIP}UART1_Write_Text('STATE_ACDI_USER_NAME'+LF); {$ENDIF} - if BaseBuffer^.Tag < MAX_USER_NAME then - begin - // Very wasteful and slow 1 at a time but it is easy - - - - // AppCallback_Configuration_Read(Node, @DataBytes[i], BaseBuffer^.Tag, 1); - - - - - if DataBytes[i] = #0 then - BaseBuffer^.StateMachine := STATE_ACDI_START_DESC - else - if BaseBuffer^.Tag = MAX_USER_NAME - 1 then - DataBytes[i] := #0; - Inc(i); - Inc(BaseBuffer^.Tag); - end else - BaseBuffer^.StateMachine := STATE_ACDI_START_DESC; - end; - STATE_ACDI_START_DESC : - begin {$IFDEF TRACE_SNIP}UART1_Write_Text('STATE_ACDI_START_DESC'+LF); {$ENDIF} - BaseBuffer^.Tag := MAX_USER_NAME + 1; // EEPROM layout start at offset 1 - BaseBuffer^.StateMachine := STATE_ACDI_USER_DESC; - end; - STATE_ACDI_USER_DESC : - begin {$IFDEF TRACE_SNIP}UART1_Write_Text('STATE_ACDI_USER_DESC'+LF); {$ENDIF} - if BaseBuffer^.Tag < MAX_USER_CONFIG_DATA then - begin - // Very wasteful and slow 1 at a time but it is easy - - - // AppCallback_Configuration_Read(Node, @DataBytes[i], BaseBuffer^.Tag, 1); - - - - if DataBytes[i] = #0 then - BaseBuffer^.StateMachine := STATE_ACDI_DONE - else - if BaseBuffer^.Tag = MAX_USER_CONFIG_DATA - 1 then - DataBytes[i] := #0; - Inc(i); - Inc(BaseBuffer^.Tag); - end else - BaseBuffer^.StateMachine := STATE_ACDI_DONE; - end; - STATE_ACDI_DONE : - begin {$IFDEF TRACE_SNIP}UART1_Write_Text('STATE_ACDI_DONE'+LF); {$ENDIF} - end; + STATE_ACDI_DONE : + begin {$IFDEF TRACE_SNIP}UART1_Write_Text('STATE_ACDI_DONE'+LF); {$ENDIF} + end; + end; + NMRAnetBufferPools_ReleaseConfigMemBuffer(ConfigMemBuffer); end; - end; if i > 0 then TransmitNMRABusLayerMsg(Node, CANBuffer, MTI_SIMPLE_NODE_INFO_REPLY, BaseBuffer^.Alias, i, @DataBytes, False); @@ -904,39 +904,47 @@ end; MSI_CONFIG : AppCallback_Configuration_Read(Node, ConfigMemBuffer); MSI_ACDI_MFG : begin - i := 0; if ConfigMemBuffer^.Address = 0 then - begin - ConfigMemBuffer^.DataBytes[i] := ACDI_MFG_VERSION; - Inc(i); + begin + Dec(ConfigMemBuffer^.DataCount); + ConfigMemBuffer^.DataOffset := 1; + ConfigMemBuffer^.DataBytes[0] := ACDI_MFG_VERSION; end; + {$IFDEF SUPPORT_VIRTUAL_NODES} if Node^.State and NS_VIRTUAL <> 0 then begin - while i < ConfigMemBuffer^.DataCount do - begin - ConfigMemBuffer^.DataBytes[i] := ACDI_MFG_STRINGS_VNODE[i+ConfigMemBuffer^.Address]; - Inc(i) - end + for i := 0 to ConfigMemBuffer^.DataCount - 1 do + ConfigMemBuffer^.DataBytes[i + ConfigMemBuffer^.DataOffset] := ACDI_MFG_STRINGS_VNODE[ConfigMemBuffer^.Address + i]; end else {$ENDIF} begin - while i < ConfigMemBuffer^.DataCount do - begin - ConfigMemBuffer^.DataBytes[i] := ACDI_MFG_STRINGS[i+ConfigMemBuffer^.Address]; - Inc(i) - end + for i := 0 to ConfigMemBuffer^.DataCount - 1 do + ConfigMemBuffer^.DataBytes[i + ConfigMemBuffer^.DataOffset] := ACDI_MFG_STRINGS[ConfigMemBuffer^.Address + i]; end; + + if ConfigMemBuffer^.Address = 0 then + begin + ConfigMemBuffer^.DataOffset := 1; + Inc(ConfigMemBuffer^.DataCount); + end; end; MSI_ACDI_USER : begin - i := 0; if ConfigMemBuffer^.Address = 0 then begin - ConfigMemBuffer^.DataBytes[i] := ACDI_USER_VERSION; - Inc(i); - end; - - if ConfigMemBuffer^.DataCount > 0 then + ConfigMemBuffer^.DataBytes[0] := ACDI_USER_VERSION; + Inc(ConfigMemBuffer^.Address); // The CDI offsets the Configuration Memory by 1 so everything needs to be shifted + Dec(ConfigMemBuffer^.DataCount); + ConfigMemBuffer^.DataOffset := 1; // Write to the array at offset 1 AppCallback_Configuration_Read(Node, ConfigMemBuffer); + Inc(ConfigMemBuffer^.DataCount); // Restore the state + ConfigMemBuffer^.DataOffset := 0; + Dec(ConfigMemBuffer^.Address); + end else + begin + Inc(ConfigMemBuffer^.Address); // The CDI offsets the Configuration Memory by 1 so everything needs to be shifted + AppCallback_Configuration_Read(Node, ConfigMemBuffer); + Dec(ConfigMemBuffer^.Address); + end end; end; ConfigMemBuffer^.StateMachine := STATE_MEM_CONFIG_READWRITE_WAIT @@ -1004,11 +1012,9 @@ NMRAnetUtilities_ConfigMemBufferLink(Node, ConfigMemBuffer); DecodeConfigMemReadWriteHeader(Node, DatagramBuffer, ConfigMemBuffer); AppCallback_ConfigMemReadWriteAckReply(Node, ConfigMemBuffer); // How to handle the ACK is up to the app - DataBytes[0] := Hi( Node^.Info.AliasID); - DataBytes[1] := Lo( Node^.Info.AliasID); if ConfigMemBuffer^.AckReply <> 0 then begin - DataBytes[2] := ConfigMemBuffer^.AckReply; + DataBytes[0] := ConfigMemBuffer^.AckReply; TransmitNMRABusLayerMsg(Node, CANBuffer, MTI_DATAGRAM_OK_REPLY, DatagramBuffer^.Alias, 1, @DataBytes, False); end else TransmitNMRABusLayerMsg(Node, CANBuffer, MTI_DATAGRAM_OK_REPLY, DatagramBuffer^.Alias, 0, @DataBytes, False); @@ -1110,7 +1116,6 @@ DatagramBuffer^.State := (DatagramBuffer^.State or CBS_OUTGOING or CBS_PROCESSING) and not CBS_TRANSFER_COMPLETE; // Turn it into an outgoing Datagram DatagramBuffer^.Tag := 0; // Reset for the Transmit side DatagramBuffer^.iWatchdog := 0; - DatagramBuffer^.SourceNodePtr := Generic16BitPointer( Node); // So the Transmit Engine knows what source Node and Alias to associate the Datagram to DatagramBuffer^.Statemachine := STATE_DATAGRAM_MEM_CONFIG_WAITFOR_REPLY; // Waiting for the target to reply it received the datagram successfully end; STATE_DATAGRAM_MEM_CONFIG_WAITFOR_REPLY : @@ -1156,8 +1161,7 @@ if NMRAnetUtilities_FindOutgoingDatagram(Node, DatagramBuffer, True) then begin {$IFDEF TRACE_DATAGRAM_SEND}UART1_Write_Text('NMRAnetUtilities_FindOutgoingDatagram = Found'+LF);{$ENDIF} - {$IFDEF TRACE_DATAGRAM_SEND}WordToHex(DatagramBuffer^.SourceNodePtr, s1); UART1_Write_Text('SourceNodePtr = '+s1+LF);{$ENDIF} - if NMRAnetStateMachine_TrySendDatagram(PNMRAnetNode( DatagramBuffer^.SourceNodePtr), CANBuffer, DatagramBuffer) then + if NMRAnetStateMachine_TrySendDatagram(Node, CANBuffer, DatagramBuffer) then begin {$IFDEF TRACE_DATAGRAM_SEND}UART1_Write_Text('NMRAnetStateMachine_TrySendDatagram = Sent'+LF);{$ENDIF} DatagramBuffer^.iWatchdog := 0; // Reset watchdog, now that it is complete it can timout waiting for the ACK/NAK Modified: trunk/prototypes/mikroPascal/dsPIC33EP256_CommandStation/NMRAnetAppCallbacks.mpas =================================================================== --- trunk/prototypes/mikroPascal/dsPIC33EP256_CommandStation/NMRAnetAppCallbacks.mpas 2013-04-21 03:16:55 UTC (rev 3172) +++ trunk/prototypes/mikroPascal/dsPIC33EP256_CommandStation/NMRAnetAppCallbacks.mpas 2013-04-21 16:44:02 UTC (rev 3173) @@ -492,7 +492,7 @@ 0 : begin while _25AAxxxx_Busy(EEPROM_BANK_0) do Delay_us(10); - _25AAxxxx_Write(EEPROM_BANK_0, Node^.ConfigurationAddress + ConfigMemBuffer^.Address, ConfigMemBuffer^.DataCount, @ConfigMemBuffer^.DataBytes); + _25AAxxxx_Write(EEPROM_BANK_0, Node^.ConfigurationAddress + ConfigMemBuffer^.Address, ConfigMemBuffer^.DataCount, @ConfigMemBuffer^.DataBytes[ConfigMemBuffer^.DataOffset]); // Update the Command Station Ram with the new configuration data if Node^.ConfigurationAddress = 0 then AppCallback_Sync_Config_Ram_with_EEPROM @@ -583,7 +583,7 @@ // Not a CV access, normal Config Memory call while _25AAxxxx_Busy(EEPROM_BANK_0) do Delay_us(10); - _25AAxxxx_Read(EEPROM_BANK_0, Node^.ConfigurationAddress + ConfigMemBuffer^.Address, ConfigMemBuffer^.DataCount, @ConfigMemBuffer^.DataBytes); + _25AAxxxx_Read(EEPROM_BANK_0, Node^.ConfigurationAddress + ConfigMemBuffer^.Address, ConfigMemBuffer^.DataCount, @ConfigMemBuffer^.DataBytes[ConfigMemBuffer^.DataOffset]); end; 1: begin // Double Indexed CV @@ -674,8 +674,8 @@ begin if ConfigMemBuffer^.Address shr 30 <> 0 then begin - ConfigMemBuffer^.AckReply := DATAGRAM_OK_ACK_REPLY_PENDING; - ConfigMemBuffer^.State := ConfigMemBuffer^.State or CBS_PROCESSING; + // It is a CV Read/Write, need to do something special here.... + // ConfigMemBuffer^.State := ConfigMemBuffer^.State or CBS_PROCESSING; end; end; end; @@ -690,7 +690,7 @@ if ConfigMemBuffer^.Address shr 30 <> 0 then begin // Are we done reading/writing? - ConfigMemBuffer^.State := ConfigMemBuffer^.State and not CBS_PROCESSING; + // ConfigMemBuffer^.State := ConfigMemBuffer^.State and not CBS_PROCESSING; end; end; end; Modified: trunk/prototypes/mikroPascal/dsPIC33EP256_CommandStation/dsPIC33EP_NMRABusCommandStation.hex =================================================================== --- trunk/prototypes/mikroPascal/dsPIC33EP256_CommandStation/dsPIC33EP_NMRABusCommandStation.hex 2013-04-21 03:16:55 UTC (rev 3172) +++ trunk/prototypes/mikroPascal/dsPIC33EP256_CommandStation/dsPIC33EP_NMRABusCommandStation.hex 2013-04-21 16:44:02 UTC (rev 3173) @@ -1,15 +1,15 @@ -:100000003076040000000000A08600007E8600001C -:1000100000000000C28600005C86000000000000B6 +:100000001077040000000000808700005E87000079 +:1000100000000000A28700003C87000000000000F4 :1000200000000000000000000000000000000000D0 -:1000300000000000B8880000000000000000000080 -:1000400000000000468900009289000000000000C6 -:10005000000000000000000000000000E486000036 +:10003000000000009889000000000000000000009F +:1000400000000000268A0000728A00000000000004 +:10005000000000000000000000000000C487000055 :100060000000000000000000000000000000000090 :100070000000000000000000000000000000000080 :100080000000000000000000000000000000000070 -:100090000000000000000000948700000000000045 +:100090000000000000000000748800000000000064 :1000A0000000000000000000000000000000000050 -:1000B00000000000B6870000000000000000000003 +:1000B0000000000096880000000000000000000022 :1000C0000000000000000000000000000000000030 :1000D0000000000000000000000000000000000020 :1000E0000000000000000000000000000000000010 @@ -62,3165 +62,3166 @@ :1003D000000000000000000000000000000000001D :1003E000000000000000000000000000000000000D :1003F00000000000000000000000000000000000FD -:10EC60000F3C2300F0FF270020A0B7002020200049 -:10EC700032A0B700400020004420B7004E00FA0048 -:10EC80008A1F78008B1F78008C1F78008D1F7800FA -:10EC9000F1F12F0020042000108860000E2EEF00FC -:10ECA0001E2EEF00008EA900048EA8008EF507002E -:10ECB0000C7020001D0020001A1020005B002000B6 -:10ECC00022F20700CFF307003FF307000FF307001E -:10ECD0001420EF0053F4070035F50700042EA900B7 -:10ECE000140EA900142EA900148EA900002EA9004C -:10ECF000100EA900102EA900108EA90015EEA80074 -:10ED000015CEA90011EEA90011CEA900E000470020 -:10ED100030C5B3008058780040C7B30080587800F1 -:10ED200010C6B3008058780020C7B3008058780020 -:10ED300040C7B3008058780090C6B3008058780070 -:10ED4000E0C6B3008058780070C6B30080587800E1 -:10ED500000C2B3008058780010C3B3008058780018 -:10ED6000D0C0B30080587800A0C0B30080587800AD -:10ED700000C0B300805878006000470000057800AC -:10ED8000AFF2070021A8A80011E1A800FAF10700DE -:10ED900005E1A80007A02F000E20ED00FEFF3A00BD -:10EDA0000000000000000000D4FC0700E000470065 -:10EDB00030C5B3008058780040C7B3008058780051 -:10EDC00010C6B3008058780020C7B3008058780080 -:10EDD00040C7B3008058780090C6B30080587800D0 -:10EDE000E0C6B3008058780070C6B3008058780041 -:10EDF00000C2B3008058780020C3B3008058780068 -:10EE0000D0C0B30080587800A0C0B300805878000C -:10EE100000C0B3008058780060004700000578000B -:10EE200087F20700C0262200104078006004E1004D -:10EE30000220EF0001003A0002A0EE0070138100F2 -:10EE40006000E1000020EF000100360000A0EE00AD -:10EE50000080600009003200DEFC070021FD070091 -:10EE60006000E10001003A00E5FC0700701381003A -:10EE70000020ED0070138900B1F6070096F6070038 -:10EE800050138900010020000100E10061073200F9 -:10EE90005A138100B5F607005FF507000000E20095 -:10EEA0005C0732002DF5070001272200804878001A -:10EEB00001C5B3000104E10001003A005507370025 -:10EEC000002722009040780080C5B300000CE100CC -:10EED00004003A001620EF005A13810024F50700C1 -:10EEE0004C073700002722009040780010C4B30080 -:10EEF000000CE10001003A00050037000027220065 -:10EF00009040780010C6B300000CE10004003A0005 -:10EF1000B0FC0700BAFC070089F607003D07370080 -:10EF2000002722009040780040C4B300000CE100AC -:10EF300001003A00050037000027220090407800C9 -:10EF400040C6B300000CE1000F003A00A1FC07002E -:10EF500036F60700001489006000E1000800320066 -:10EF60000A148100C7CA0700F01389009040780096 -:10EF70000181FB00E10F2000810061000148780061 -:10EF80006FF6070023073700002722009040780023 -:10EF900060C4B300000CE10001003A000500370036 -:10EFA000002722009040780060C6B300000CE1000A -:10EFB00009003A0087FC07001CF6070000148900CE -:10EFC0006000E100020032000A14810013D907003A -:10EFD0005BF607000F0737000027220090407800FB -:10EFE000A0C5B300000CE10001003A0005003700A5 -:10EFF0000027220090407800A0C7B300000CE10079 -:10F0000003003A001420EF0020F607000107370044 -:10F01000002722009040780060C5B300000CE1009A -:10F0200003003A00FAFF2F0094F50700F9063700B5 -:10F03000002722009040780060C7B300000CE10078 -:10F0400003003A001420EF008CF50700F1063700AA -:10F050000027220090407800D0C4B300000CE100EB -:10F0600001003A0005003700002722009040780098 -:10F07000D0C6B300000CE10067003A000020EF00AA -:10F08000E013890021032000C02722001009B800E6 -:10F090002028220082004000200220000080400042 -:10F0A0004C3623001005BE00FCF407006E0047003C -:10F0B000F2C4B3000258780062C6B3000258780068 -:10F0C00062C6B3000258780032C7B3000258780015 -:10F0D00052C6B3000258780042C7B3000258780005 -:10F0E000A2C3B3000258780002C2B30002587800ED -:10F0F000413623000CC9070021B82B000AC90700BC -:10F10000800078000020EF00805878006E004700F3 -:10F1100000057800CAF1070011052000C027220071 -:10F120001008E1000400320011002000C027220076 -:10F1300010884000D3FF37000020EF00E013890063 -:10F1400021032000C02722001009B8002028220037 -:10F1500082004000E0022000008040004C36230086 -:10F160001005BE00CDF407006E00470022C5B300B5 -:10F170000258780012C4B30002587800D2C4B30019 -:10F180000258780002C2B30002587800F2C4B300FB -:10F190000258780062C6B3000258780062C6B30015 -:10F1A0000258780032C7B3000258780052C6B30044 -:10F1B0000258780042C7B30002587800A2C3B300D7 -:10F1C0000258780002C2B30002587800413623008A -:10F1D000D5C8070021B82B00D3C8070080007800ED -:10F1E0000020EF00805878006E004700000578008E -:10F1F00093F1070011052000C02722001008E1004C -:10F200000400320011002000C027220010884000B6 -:10F21000CBFF37007F0637000027220090407800A0 -:10F2200090C3B300000CE10088003A00C033230013 -:10F230004B3623001045780040C907006E00470098 -:10F24000F2C4B3000258780052C7B30002587800E5 -:10F2500042C7B3000258780002C7B30002587800D2 -:10F2600052C7B3000258780042C7B3000258780072 -:10F2700002C2B30002587800D2C4B300025878002A -:10F28000F2C6B3000258780042C6B30002587800B4 -:10F2900052C6B30002587800A2C3B30002587800E7 -:10F2A00002C2B30002587800413623009EC807000E -:10F2B00021B82B009CC80700800078000020EF00D8 -:10F2C000805878006E004700000578005CF1070068 -:10F2D000D03323004B3623001045780017C90700B0 -:10F2E0006E00470002C5B3000258780022C7B30081 -:10F2F00002587800F2C6B3000258780072C6B30014 -:10F300000258780022C7B3000258780012C6B30032 -:10F3100002587800D2C6B30002587800D2C6B300B3 -:10F320000258780092C6B30002587800E2C6B300D3 -:10F330000258780072C6B3000258780002C2B300C7 -:10F3400002587800D2C4B30002587800F2C6B30065 -:10F350000258780042C6B3000258780052C6B30083 -:10F3600002587800A2C3B3000258780002C2B3006A -:10F3700002587800413623006BC8070021B82B00E3 -:10F3800069C80700800078000020EF0080587800EE -:10F390006E0047000005780029F10700E0332300E4 -:10F3A0004B36230010457800E4C807006E00470084 -:10F3B00042C4B3000258780032C4B3000258780047 -:10F3C00032C4B3000258780002C2B3000258780079 -:10F3D00022C4B3000258780052C7B3000258780024 -:10F3E00032C7B3000258780002C2B3000258780056 -:10F3F000D2C4B30002587800F2C6B30002587800B5 -:10F4000042C6B3000258780052C6B30002587800D2 -:10F41000A2C3B3000258780002C2B30002587800B9 -:10F420004136230040C8070021B82B003EC8070022 -:10F43000800078000020EF00805878006E004700C0 -:10F4400000057800FEF00700F205370000272200D3 -:10F450009040780010C3B300000CE1008B013A002B -:10F46000E03223004B36230010457800B3C8070074 -:10F470006E00470032C5B30002587800D2C4B30012 -:10F480000258780002C2B3000258780022C5B300C7 -:10F490000258780052C6B3000258780032C7B30051 -:10F4A0000258780052C7B30002587800C2C6B300B1 -:10F4B0000258780042C7B30002587800A2C3B300D4 -:10F4C0000258780002C2B300025878004136230087 -:10F4D00015C8070021B82B0013C80700800078006A -:10F4E0000020EF00805878006E004700000578008B -:10F4F000D3F00700F03223004B362300104578008C -:10F500008EC807006E00470032C5B300025878006D -:10F51000D2C4B3000258780002C2B3000258780087 -:10F5200062C5B3000258780012C6B30002587800D2 -:10F53000C2C6B3000258780052C7B3000258780020 -:10F5400052C6B30002587800A2C3B3000258780034 -:10F5500002C2B3000258780041362300F2C7070008 -:10F5600021B82B00F0C70700800078000020EF00D2 -:10F57000805878006E00470000057800B0F0070062 -:10F58000003323004B362300104578006BC807007A -:10F590006E00470032C5B30002587800D2C4B300F1 -:10F5A0000258780002C2B3000258780022C5B300A6 -:10F5B0000258780052C6B3000258780012C6B30051 -:10F5C0000258780042C6B3000258780072C5B300F2 -:10F5D0000258780022C7B3000258780092C6B300E0 -:10F5E0000258780042C7B3000258780052C6B300F0 -:10F5F00002587800A2C3B3000258780002C2B300D8 -:10F600000258780041362300C7C7070021B82B00F5 -:10F61000C5C70700800078000020EF008058780000 -:10F620006E0047000005780085F007004B36230088 -:10F630009A99810041C807006E00470032C5B300A7 -:10F6400002587800D2C4B3000258780002C2B30056 -:10F650000258780032C4B3000258780062C5B30083 -:10F6600002587800A2C3B3000258780002C2B30067 -:10F670000258780041362300ABC7070021B82B00A1 -:10F68000A9C70700800078000020EF0080587800AC -:10F690006E0047000005780069F007004033230042 -:10F6A0004B3623001045780024C807006E00470041 -:10F6B00032C5B30002587800D2C4B30002587800B3 -:10F6C00002C2B3000258780032C5B3000258780075 -:10F6D00052C6B3000258780022C7B300025878001F -:10F6E00062C7B3000258780092C6B300025878008F -:10F6F00032C6B3000258780052C6B30002587800F0 -:10F70000D2C4B30002587800F2C6B30002587800A1 -:10F7100042C6B3000258780052C6B30002587800BF -:10F7200042C5B3000258780092C7B300025878006F -:10F7300002C7B3000258780052C6B30002587800DE -:10F74000A2C3B3000258780002C2B3000258780086 -:10F750004136230074C7070021B82B0072C7070089 -:10F76000800078000020EF00805878006E0047008D -:10F770000005780032F00700503323004B36230099 -:10F7800010457800EDC707006E00470032C5B30092 -:10F7900002587800D2C4B3000258780002C2B30005 -:10F7A0000258780062C4B30002587800C2C6B300A1 -:10F7B0000258780012C6B3000258780072C6B3002F -:10F7C0000258780032C7B30002587800A2C3B300D1 -:10F7D0000258780002C2B300025878004136230074 -:10F7E00051C7070021B82B004FC7070080007800E1 -:10F7F0000020EF00805878006E0047000005780078 -:10F800000FF00700603323004B36230010457800CB -:10F81000CAC707006E00470032C5B300025878001F -:10F82000D2C4B3000258780002C2B3000258780074 -:10F8300092C6B3000258780032C5B300025878006F -:10F8400042C7B3000258780012C6B30002587800CD -:10F8500042C7B3000258780052C6B300025878007D -:10F86000D2C4B3000258780012C6B3000258780020 -:10F8700032C6B3000258780082C6B300025878003E -:10F8800092C6B30002587800E2C6B300025878006E -:10F8900052C6B30002587800A2C3B30002587800E1 -:10F8A00002C2B30002587800413623001EC7070089 -:10F8B00021B82B001CC70700800078000020EF0053 -:10F8C000805878006E00470000057800DCEF0700E4 -:10F8D000703323004B3623001045780097C707008C -:10F8E0006E00470032C5B30002587800D2C4B3009E -:10F8F0000258780002C2B3000258780092C6B300E2 -:10F900000258780092C4B30002587800E2C6B300EF -:10F910000258780032C7B3000258780042C7B300DB -:10F920000258780022C7B3000258780052C7B300CB -:10F930000258780032C6B3000258780042C7B300BC -:10F940000258780092C6B30002587800F2C6B3009D -:10F9500002587800E2C6B3000258780032C4B300FF -:10F9600002587800F2C6B3000258780052C7B300BC -:10F9700002587800E2C6B3000258780042C7B300CC -:10F980000258780032C5B3000258780052C6B3005E -:10F9900002587800E2C6B3000258780042C7B300AC -:10F9A00002587800A2C3B3000258780002C2B30024 -:10F9B0000258780041362300DBC6070021B82B002F -:10F9C000D9C60700800078000020EF00805878003A -:10F9D0006E0047000005780099EF07008033230090 -:10F9E0004B3623001045780054C707006E004700CF -:10F9F00032C5B30002587800D2C4B3000258780070 -:10FA000002C2B3000258780022C5B3000258780041 -:10FA100052C6B3000258780012C6B30002587800EC -:10FA200042C6B3000258780092C4B300025878006E -:10FA3000E2C6B3000258780042C6B300025878000C -:10FA400052C6B3000258780082C7B300025878004B -:10FA5000A2C3B3000258780002C2B3000258780073 -:10FA600041362300B0C6070021B82B00AEC6070000 -:10FA7000800078000020EF00805878006E0047007A -:10FA8000000578006EEF07006204370000272200AF -:10FA90009040780020C3B300000CE10031013A002F -:10FAA0004B3623009A138100B5F207006E00470021 -:10FAB00052C3B30002587800D2C6B300025878008F -:10FAC00032C7B3000258780002C2B300025878006F -:10FAD00032C5B3000258780012C6B300025878004D -:10FAE000D2C6B3000258780002C7B30002587800AB -:10FAF000C2C6B3000258780052C6B300025878005C -:10FB000002C2B3000258780032C4B3000258780031 -:10FB1000F2C6B3000258780052C7B300025878000A -:10FB2000E2C6B3000258780042C7B300025878001A -:10FB300002C2B3000258780042C7B30002587800EE -:10FB4000F2C6B3000258780002C2B300025878002F -:10FB500042C5B3000258780022C7B30002587800AB -:10FB600092C6B3000258780072C6B30002587800FB -:10FB700072C6B3000258780052C6B300025878002B -:10FB800022C7B30002587800A2C3B300025878001D -:10FB900002C2B300025878004136230062C6070053 -:10FBA00021B82B0060C60700800078000020EF001D -:10FBB000805878006E0047000005780020EF0700AD -:10FBC0004B362300DA1381006DF207006E00470008 -:10FBD000F2C4B3000258780062C7B300025878003C -:10FBE00052C6B3000258780022C7B300025878000A -:10FBF00002C2B3000258780032C4B3000258780041 -:10FC000052C7B3000258780022C7B30002587800E8 -:10FC100022C7B3000258780052C6B30002587800D9 -:10FC2000E2C6B3000258780042C7B3000258780019 -:10FC300002C2B3000258780032C4B3000258780000 -:10FC4000F2C6B3000258780052C7B30002587800D9 -:10FC5000E2C6B3000258780042C7B30002587800E9 -:10FC600052C6B3000258780022C7B3000258780089 -:10FC7000A2C3B3000258780002C2B3000258780051 -:10FC80004136230028C6070021B82B0026C60700EE -:10FC9000800078000020EF00805878006E00470058 -:10FCA00000057800E6EE0700B01381008000EB004D -:10FCB000F4E4070082EB210053F0230087D0070013 -:10FCC0003234230033B5230084D007004C362300A0 -:10FCD0000005BE00FCF907006E004700D2C4B30067 -:10FCE0000258780052C6B3000258780012C6B3001A -:10FCF0000258780032C7B3000258780052C7B300E8 -:10FD00000258780022C7B3000258780052C6B300E8 -:10FD10000258780042C6B3000258780002C2B3000D -:10FD20000258780032C4B3000258780052C7B300BA -:10FD30000258780022C7B3000258780022C7B300E7 -:10FD40000258780052C6B30002587800E2C6B300E9 -:10FD50000258780042C7B30002587800A2C3B3002B -:10FD60000258780002C2B3000258780041362300DE -:10FD7000EDC5070012C4B3000258780021B82B006B -:10FD8000E9C50700800078000020EF008058780067 -:10FD90006E00470000057800A9EE07004B362300EF -:10FDA0000A9A8100A5FA07006E00470092C4B300CA -:10FDB0000258780002C2B30002587800C2C4B300EF -:10FDC0000258780052C6B3000258780062C7B300E8 -:10FDD0000258780052C6B30002587800C2C6B30079 -:10FDE00002587800A2C3B3000258780002C2B300E0 -:10FDF0000258780041362300CBC5070021B82B00FC -:10FE0000C9C50700800078000020EF008058780006 -:10FE10006E0047000005780089EE07004B3623008E -:10FE20001A9A810085FA07006E00470092C4B30059 -:10FE30000258780002C2B3000258780042C5B300ED -:10FE40000258780092C6B30002587800D2C6B300B8 -:10FE50000258780052C6B30002587800A2C3B3001B -:10FE60000258780002C2B3000258780041362300DD -:10FE7000ADC5070021B82B00ABC507008000780096 -:10FE80000020EF00805878006E00470000057800E1 -:10FE90006BEE0700403423004B3623001085FB0037 -:10FEA00066FA07006E004700F2C4B30002587800FB -:10FEB00062C7B3000258780052C6B30002587800F7 -:10FEC00022C7B30002587800C2C6B30002587800B7 -:10FED000F2C6B3000258780012C6B3000258780088 -:10FEE00042C6B3000258780042C4B30002587800FA -:10FEF00052C6B3000258780042C7B30002587800D7 -:10FF000052C6B3000258780032C6B30002587800D7 -:10FF100042C7B3000258780052C6B30002587800B6 -:10FF200042C6B30002587800A2C3B300025878005A -:10FF300002C2B30002587800413623007AC5070098 -:10FF400021B82B0078C50700800078000020EF0062 -:10FF5000805878006E0047000005780038EE0700F2 -:10FF60002C033700002722009040780030C3B300F4 -:10FF7000000CE10001003A002603370000272200B0 -:10FF80009040780040C3B300000CE10001003A004B -:10FF900020033700002722009040780050C3B300B0 -:10FFA000000CE100AD013A004B3623000A18800036 -:10FFB00073F107006E00470012C4B30002587800C6 -:10FFC00042C4B3000258780032C4B300025878002B -:10FFD00002C3B30002587800A2C3B30002587800ED -:10FFE00002C2B30002587800413623004EC5070014 -:10FFF00021B82B004CC50700800078000020EF00DE +:10EE2000CF3A2300F0FF270020A0B70020202000C9 +:10EE300032A0B700400020004420B7004E00FA0086 +:10EE40008A1F78008B1F78008C1F78008D1F780038 +:10EE5000F1F12F0020042000108860000E2EEF003A +:10EE60001E2EEF00008EA900048EA8008EF507006C +:10EE70000C7020001D0020001A1020005B002000F4 +:10EE800022F20700CFF307003FF307000FF307005C +:10EE90001420EF0053F4070035F50700042EA900F5 +:10EEA000140EA900142EA900148EA900002EA9008A +:10EEB000100EA900102EA900108EA90015EEA800B2 +:10EEC00015CEA90011EEA90011CEA900E00047005F +:10EED00030C5B3008058780040C7B3008058780030 +:10EEE00010C6B3008058780020C7B300805878005F +:10EEF00040C7B3008058780090C6B30080587800AF +:10EF0000E0C6B3008058780070C6B300805878001F +:10EF100000C2B3008058780010C3B3008058780056 +:10EF2000D0C0B30080587800A0C0B30080587800EB +:10EF300000C0B300805878006000470000057800EA +:10EF4000AFF2070021A8A80011E1A800FAF107001C +:10EF500005E1A80007A02F000E20ED00FEFF3A00FB +:10EF60000000000000000000D4FC0700E0004700A3 +:10EF700030C5B3008058780040C7B300805878008F +:10EF800010C6B3008058780020C7B30080587800BE +:10EF900040C7B3008058780090C6B300805878000E +:10EFA000E0C6B3008058780070C6B300805878007F +:10EFB00000C2B3008058780020C3B30080587800A6 +:10EFC000D0C0B30080587800A0C0B300805878004B +:10EFD00000C0B3008058780060004700000578004A +:10EFE00087F2070080252200104078006004E100CD +:10EFF0000220EF0001003A0002A0EE00D0128100D2 +:10F000006000E1000020EF000100360000A0EE00EB +:10F010000080600009003200DEFC070021FD0700CF +:10F020006000E10001003A00E5FC0700D012810019 +:10F030000020ED00D0128900B1F6070096F6070017 +:10F04000B0128900010020000100E10061073200D8 +:10F05000BA128100B5F607005FF507000000E20074 +:10F060005C0732002DF50700C1252200804878009A +:10F0700001C5B3000104E10001003A005507370063 +:10F08000C02522009040780080C5B300000CE1004C +:10F0900004003A001620EF00BA12810024F50700A0 +:10F0A0004C073700C02522009040780010C4B30000 +:10F0B000000CE10001003A0005003700C0252200E5 +:10F0C0009040780010C6B300000CE10004003A0044 +:10F0D000B0FC0700BAFC070089F607003D073700BF +:10F0E000C02522009040780040C4B300000CE1002D +:10F0F00001003A0005003700C0252200904078004A +:10F1000040C6B300000CE1000F003A00A1FC07006C +:10F1100036F60700601389006000E1000800320045 +:10F120006A138100C6C90700501389009040780017 +:10F130000181FB00E10F200081006100014878009F +:10F140006FF6070023073700C025220090407800A3 +:10F1500060C4B300000CE10001003A000500370074 +:10F16000C02522009040780060C6B300000CE1008A +:10F1700009003A0087FC07001CF6070060138900AD +:10F180006000E100020032006A13810099D8070094 +:10F190005BF607000F073700C0252200904078007B +:10F1A000A0C5B300000CE10001003A0005003700E3 +:10F1B000C025220090407800A0C7B300000CE100F9 +:10F1C00003003A001420EF0020F607000107370083 +:10F1D000C02522009040780060C5B300000CE1001B +:10F1E00003003A00FAFF2F0094F50700F9063700F4 +:10F1F000C02522009040780060C7B300000CE100F9 +:10F2000003003A001420EF008CF50700F1063700E8 +:10F21000C025220090407800D0C4B300000CE1006B +:10F2200001003A0005003700C02522009040780018 +:10F23000D0C6B300000CE10067003A000020EF00E8 +:10F240004013890021032000802622001009B80005 +:10F25000E0262200820040002002200000804000C2 +:10F260000C3523001005BE00FCF407006E004700BB +:10F27000F2C4B3000258780062C6B30002587800A6 +:10F2800062C6B3000258780032C7B3000258780053 +:10F2900052C6B3000258780042C7B3000258780043 +:10F2A000A2C3B3000258780002C2B300025878002B +:10F2B00001352300E9C8070021B82B00E7C8070083 +:10F2C000800078000020EF00805878006E00470032 +:10F2D00000057800CAF107001105200080262200F1 +:10F2E0001008E100040032001100200080262200F6 +:10F2F00010884000D3FF37000020EF004013890042 +:10F3000021032000802622001009B800E0262200F8 +:10F3100082004000E0022000008040000C35230005 +:10F320001005BE00CDF407006E00470022C5B300F3 +:10F330000258780012C4B30002587800D2C4B30057 +:10F340000258780002C2B30002587800F2C4B30039 +:10F350000258780062C6B3000258780062C6B30053 +:10F360000258780032C7B3000258780052C6B30082 +:10F370000258780042C7B30002587800A2C3B30015 +:10F380000258780002C2B300025878000135230009 +:10F39000B2C8070021B82B00B0C807008000780071 +:10F3A0000020EF00805878006E00470000057800CC +:10F3B00093F1070011052000802622001008E100CB +:10F3C0000400320011002000802622001088400036 +:10F3D000CBFF37007F063700C02522009040780021 +:10F3E00090C3B300000CE10088003A008032230093 +:10F3F0000B3523001045780046C707006E00470014 +:10F40000F2C4B3000258780052C7B3000258780023 +:10F4100042C7B3000258780002C7B3000258780010 +:10F4200052C7B3000258780042C7B30002587800B0 +:10F4300002C2B30002587800D2C4B3000258780068 +:10F44000F2C6B3000258780042C6B30002587800F2 +:10F4500052C6B30002587800A2C3B3000258780025 +:10F4600002C2B30002587800013523007BC80700B0 +:10F4700021B82B0079C80700800078000020EF0039 +:10F48000805878006E004700000578005CF10700A6 +:10F49000903223000B352300104578001DC707006C +:10F4A0006E00470002C5B3000258780022C7B300BF +:10F4B00002587800F2C6B3000258780072C6B30052 +:10F4C0000258780022C7B3000258780012C6B30071 +:10F4D00002587800D2C6B30002587800D2C6B300F2 +:10F4E0000258780092C6B30002587800E2C6B30012 +:10F4F0000258780072C6B3000258780002C2B30006 +:10F5000002587800D2C4B30002587800F2C6B300A3 +:10F510000258780042C6B3000258780052C6B300C1 +:10F5200002587800A2C3B3000258780002C2B300A8 +:10F53000025878000135230048C8070021B82B0085 +:10F5400046C80700800078000020EF00805878004F +:10F550006E0047000005780029F10700A032230063 +:10F560000B35230010457800EAC607006E004700FF +:10F5700042C4B3000258780032C4B3000258780085 +:10F5800032C4B3000258780002C2B30002587800B7 +:10F5900022C4B3000258780052C7B3000258780062 +:10F5A00032C7B3000258780002C2B3000258780094 +:10F5B000D2C4B30002587800F2C6B30002587800F3 +:10F5C00042C6B3000258780052C6B3000258780011 +:10F5D000A2C3B3000258780002C2B30002587800F8 +:10F5E000013523001DC8070021B82B001BC80700E8 +:10F5F000800078000020EF00805878006E004700FF +:10F6000000057800FEF00700F2053700C025220053 +:10F610009040780010C3B300000CE1008B013A0069 +:10F62000A03123000B35230010457800B9C6070030 +:10F630006E00470032C5B30002587800D2C4B30050 +:10F640000258780002C2B3000258780022C5B30005 +:10F650000258780052C6B3000258780032C7B3008F +:10F660000258780052C7B30002587800C2C6B300EF +:10F670000258780042C7B30002587800A2C3B30012 +:10F680000258780002C2B300025878000135230006 +:10F69000F2C7070021B82B00F0C7070080007800F0 +:10F6A0000020EF00805878006E00470000057800C9 +:10F6B000D3F00700B03123000B352300104578004C +:10F6C00094C607006E00470032C5B30002587800A8 +:10F6D000D2C4B3000258780002C2B30002587800C6 +:10F6E00062C5B3000258780012C6B3000258780011 +:10F6F000C2C6B3000258780052C7B300025878005F +:10F7000052C6B30002587800A2C3B3000258780072 +:10F7100002C2B3000258780001352300CFC70700AA +:10F7200021B82B00CDC70700800078000020EF0033 +:10F73000805878006E00470000057800B0F00700A0 +:10F74000C03123000B3523001045780071C6070037 +:10F750006E00470032C5B30002587800D2C4B3002F +:10F760000258780002C2B3000258780022C5B300E4 +:10F770000258780052C6B3000258780012C6B3008F +:10F780000258780042C6B3000258780072C5B30030 +:10F790000258780022C7B3000258780092C6B3001E +:10F7A0000258780042C7B3000258780052C6B3002E +:10F7B00002587800A2C3B3000258780002C2B30016 +:10F7C0000258780001352300A4C7070021B82B0098 +:10F7D000A2C70700800078000020EF008058780062 +:10F7E0006E0047000005780085F007000B35230008 +:10F7F000FA98810047C607006E00470032C5B30083 +:10F8000002587800D2C4B3000258780002C2B30094 +:10F810000258780032C4B3000258780062C5B300C1 +:10F8200002587800A2C3B3000258780002C2B300A5 +:10F83000025878000135230088C7070021B82B0043 +:10F8400086C70700800078000020EF00805878000D +:10F850006E0047000005780069F0070000322300C1 +:10F860000B352300104578002AC607006E004700BC +:10F8700032C5B30002587800D2C4B30002587800F1 +:10F8800002C2B3000258780032C5B30002587800B3 +:10F8900052C6B3000258780022C7B300025878005D +:10F8A00062C7B3000258780092C6B30002587800CD +:10F8B00032C6B3000258780052C6B300025878002E +:10F8C000D2C4B30002587800F2C6B30002587800E0 +:10F8D00042C6B3000258780052C6B30002587800FE +:10F8E00042C5B3000258780092C7B30002587800AE +:10F8F00002C7B3000258780052C6B300025878001D +:10F90000A2C3B3000258780002C2B30002587800C4 +:10F910000135230051C7070021B82B004FC707004E +:10F92000800078000020EF00805878006E004700CB +:10F930000005780032F00700103223000B35230059 +:10F9400010457800F3C507006E00470032C5B300CC +:10F9500002587800D2C4B3000258780002C2B30043 +:10F960000258780062C4B30002587800C2C6B300DF +:10F970000258780012C6B3000258780072C6B3006D +:10F980000258780032C7B30002587800A2C3B3000F +:10F990000258780002C2B3000258780001352300F3 +:10F9A0002EC7070021B82B002CC707008000780065 +:10F9B0000020EF00805878006E00470000057800B6 +:10F9C0000FF00700203223000B352300104578008C +:10F9D000D0C507006E00470032C5B300025878005A +:10F9E000D2C4B3000258780002C2B30002587800B3 +:10F9F00092C6B3000258780032C5B30002587800AE +:10FA000042C7B3000258780012C6B300025878000B +:10FA100042C7B3000258780052C6B30002587800BB +:10FA2000D2C4B3000258780012C6B300025878005E +:10FA300032C6B3000258780082C6B300025878007C +:10FA400092C6B30002587800E2C6B30002587800AC +:10FA500052C6B30002587800A2C3B300025878001F +:10FA600002C2B3000258780001352300FBC607002C +:10FA700021B82B00F9C60700800078000020EF00B5 +:10FA8000805878006E00470000057800DCEF070022 +:10FA9000303223000B352300104578009DC5070048 +:10FAA0006E00470032C5B30002587800D2C4B300DC +:10FAB0000258780002C2B3000258780092C6B30020 +:10FAC0000258780092C4B30002587800E2C6B3002E +:10FAD0000258780032C7B3000258780042C7B3001A +:10FAE0000258780022C7B3000258780052C7B3000A +:10FAF0000258780032C6B3000258780042C7B300FB +:10FB00000258780092C6B30002587800F2C6B300DB +:10FB100002587800E2C6B3000258780032C4B3003D +:10FB200002587800F2C6B3000258780052C7B300FA +:10FB300002587800E2C6B3000258780042C7B3000A +:10FB40000258780032C5B3000258780052C6B3009C +:10FB500002587800E2C6B3000258780042C7B300EA +:10FB600002587800A2C3B3000258780002C2B30062 +:10FB70000258780001352300B8C6070021B82B00D1 +:10FB8000B6C60700800078000020EF00805878009B +:10FB90006E0047000005780099EF0700403223000F +:10FBA0000B352300104578005AC507006E0047004A +:10FBB00032C5B30002587800D2C4B30002587800AE +:10FBC00002C2B3000258780022C5B3000258780080 +:10FBD00052C6B3000258780012C6B300025878002B +:10FBE00042C6B3000258780092C4B30002587800AD +:10FBF000E2C6B3000258780042C6B300025878004B +:10FC000052C6B3000258780082C7B3000258780089 +:10FC1000A2C3B3000258780002C2B30002587800B1 +:10FC2000013523008DC6070021B82B008BC60700C5 +:10FC3000800078000020EF00805878006E004700B8 +:10FC4000000578006EEF070062043700C02522002F +:10FC50009040780020C3B300000CE10031013A006D +:10FC60000B352300FA128100B5F207006E00470041 +:10FC700052C3B30002587800D2C6B30002587800CD +:10FC800032C7B3000258780002C2B30002587800AD +:10FC900032C5B3000258780012C6B300025878008B +:10FCA000D2C6B3000258780002C7B30002587800E9 +:10FCB000C2C6B3000258780052C6B300025878009A +:10FCC00002C2B3000258780032C4B3000258780070 +:10FCD000F2C6B3000258780052C7B3000258780049 +:10FCE000E2C6B3000258780042C7B3000258780059 +:10FCF00002C2B3000258780042C7B300025878002D +:10FD0000F2C6B3000258780002C2B300025878006D +:10FD100042C5B3000258780022C7B30002587800E9 +:10FD200092C6B3000258780072C6B3000258780039 +:10FD300072C6B3000258780052C6B3000258780069 +:10FD400022C7B30002587800A2C3B300025878005B +:10FD500002C2B30002587800013523003FC60700F5 +:10FD600021B82B003DC60700800078000020EF007E +:10FD7000805878006E0047000005780020EF0700EB +:10FD80000B3523003A1381006DF207006E00470027 +:10FD9000F2C4B3000258780062C7B300025878007A +:10FDA00052C6B3000258780022C7B3000258780048 +:10FDB00002C2B3000258780032C4B300025878007F +:10FDC00052C7B3000258780022C7B3000258780027 +:10FDD00022C7B3000258780052C6B3000258780018 +:10FDE000E2C6B3000258780042C7B3000258780058 +:10FDF00002C2B3000258780032C4B300025878003F +:10FE0000F2C6B3000258780052C7B3000258780017 +:10FE1000E2C6B3000258780042C7B3000258780027 +:10FE200052C6B3000258780022C7B30002587800C7 +:10FE3000A2C3B3000258780002C2B300025878008F +:10FE40000135230005C6070021B82B0003C60700B3 +:10FE5000800078000020EF00805878006E00470096 +:10FE600000057800E6EE0700101381008000EB002B +:10FE7000F4E4070082EB210053F0230011D00700C7 +:10FE80003234230033B523000ED007000C35230095 +:10FE90000005BE00FCF907006E004700D2C4B300A5 +:10FEA0000258780052C6B3000258780012C6B30058 +:10FEB0000258780032C7B3000258780052C7B30026 +:10FEC0000258780022C7B3000258780052C6B30027 +:10FED0000258780042C6B3000258780002C2B3004C +:10FEE0000258780032C4B3000258780052C7B300F9 +:10FEF0000258780022C7B3000258780022C7B30026 +:10FF00000258780052C6B30002587800E2C6B30027 +:10FF10000258780042C7B30002587800A2C3B30069 +:10FF20000258780002C2B30002587800013523005D +:10FF3000CAC5070012C4B3000258780021B82B00CC +:10FF4000C6C50700800078000020EF0080587800C8 +:10FF50006E00470000057800A9EE07000B3523006E +:10FF60006A998100A5FA07006E00470092C4B300A9 +:10FF70000258780002C2B30002587800C2C4B3002D +:10FF80000258780052C6B3000258780062C7B30026 +:10FF90000258780052C6B30002587800C2C6B300B7 +:10FFA00002587800A2C3B3000258780002C2B3001E +:10FFB0000258780001352300A8C5070021B82B009E +:10FFC000A6C50700800078000020EF008058780068 +:10FFD0006E0047000005780089EE07000B3523000E +:10FFE0007A99810085FA07006E00470092C4B30039 +:10FFF0000258780002C2B3000258780042C5B3002C :020000040001F9 -:10000000805878006E004700000578000CEE07006D -:100010004B3623001A18800059F107006E00470084 -:1000200012C4B3000258780042C4B30002587800EA -:1000300032C4B3000258780012C3B30002587800EB -:10004000A2C3B3000258780002C2B300025878007D -:100050004136230034C5070021B82B0032C5070004 -:10006000800078000020EF00805878006E00470084 -:1000700000057800F2ED07004B3623002A188000B7 -:100080003FF107006E00470012C4B3000258780029 -:1000900042C4B3000258780032C4B300025878005A -:1000A00022C3B30002587800A2C3B30002587800FC -:1000B00002C2B30002587800413623001AC5070077 -:1000C00021B82B0018C50700800078000020EF0041 -:1000D000805878006E00470000057800D8ED0700D2 -:1000E0004B3623003A18800025F107006E004700C8 -:1000F00012C4B3000258780042C4B300025878001A -:1001000032C4B3000258780032C3B30002587800FA -:10011000A2C3B3000258780002C2B30002587800AC -:100120004136230000C5070021B82B00FEC407009C -:10013000800078000020EF00805878006E004700B3 -:1001400000057800BEED07004B3623004A188000FA -:100150000BF107006E00470012C4B300025878008C -:1001600042C4B3000258780032C4B3000258780089 -:1001700042C3B30002587800A2C3B300025878000B -:1001800002C2B3000258780041362300E6C40700DB -:1001900021B82B00E4C40700800078000020EF00A5 -:1001A000805878006E00470000057800A4ED070035 -:1001B0004B3623005A188000F1F007006E0047000C -:1001C00012C4B3000258780042C4B3000258780049 -:1001D00032C4B3000258780052C3B300025878000A -:1001E000A2C3B3000258780002C2B30002587800DC -:1001F00041362300CCC4070021B82B00CAC4070035 -:10020000800078000020EF00805878006E004700E2 -:10021000000578008AED07004B3623006A1880003D -:10022000D7F007006E00470012C4B30002587800F0 -:1002300042C4B3000258780032C4B30002587800B8 -:1002400062C3B30002587800A2C3B300025878001A -:1002500002C2B3000258780041362300B2C407003E -:1002600021B82B00B0C40700800078000020EF0008 -:10027000805878006E0047000005780070ED070098 -:100280004B3623007A188000BDF007006E0047004F -:1002900012C4B3000258780042C4B3000258780078 -:1002A00032C4B3000258780072C3B3000258780019 -:1002B000A2C3B3000258780002C2B300025878000B -:1002C0004136230098C4070021B82B0096C40700CC -:1002D000800078000020EF00805878006E00470012 -:1002E0000005780056ED07004B3623008A18800081 -:1002F000A3F007006E00470012C4B3000258780054 -:1003000042C4B3000258780032C4B30002587800E7 -:1003100082C3B30002587800A2C3B3000258780029 -:1003200002C2B30002587800413623007EC40700A1 -:1003300021B82B007CC40700800078000020EF006B -:10034000805878006E004700000578003CED0700FB -:100350004B3623009A18800089F007006E00470092 -:1003600012C4B3000258780042C4B30002587800A7 -:1003700032C4B3000258780092C3B3000258780028 -:10038000A2C3B3000258780002C2B300025878003A -:100390004136230064C4070021B82B0062C4070063 -:1003A000800078000020EF00805878006E00470041 -:1003B0000005780022ED07004B362300AA188000C4 -:1003C0006FF007006E00470012C4B30002587800B7 -:1003D00042C4B3000258780032C4B3000258780017 -:1003E00012C3B3000258780002C3B3000258780069 -:1003F000A2C3B3000258780002C2B30002587800CA -:100400004136230048C4070021B82B0046C407002A -:10041000800078000020EF00805878006E004700D0 -:100420000005780006ED07004B362300BA1880005F -:1004300053F007006E00470012C4B3000258780062 -:1004400042C4B3000258780032C4B30002587800A6 -:1004500012C3B3000258780012C3B30002587800E8 -:10046000A2C3B3000258780002C2B3000258780059 -:10047000413623002CC4070021B82B002AC40700F2 -:10048000800078000020EF00805878006E00470060 -:1004900000057800EAEC07004B362300CA188000FC -:1004A00037F007006E00470012C4B300025878000E -:1004B00042C4B3000258780032C4B3000258780036 -:1004C00012C3B3000258780022C3B3000258780068 -:1004D000A2C3B3000258780002C2B30002587800E9 -:1004E0004136230010C4070021B82B000EC40700BA -:1004F000800078000020EF00805878006E004700F0 -:1005000000057800CEEC07004B362300DA18800097 -:100510001BF007006E00470012C4B30002587800B9 -:1005200042C4B3000258780032C4B30002587800C5 -:1005300012C3B3000258780032C3B30002587800E7 +:100000000258780092C6B30002587800D2C6B300F6 +:100010000258780052C6B30002587800A2C3B30059 +:100020000258780002C2B30002587800013523005C +:100030008AC5070021B82B0088C50700800078001A +:100040000020EF00805878006E004700000578001F +:100050006BEE0700003323000B3523001085FB00F7 +:1000600066FA07006E004700F2C4B3000258780039 +:1000700062C7B3000258780052C6B3000258780035 +:1000800022C7B30002587800C2C6B30002587800F5 +:10009000F2C6B3000258780012C6B30002587800C6 +:1000A00042C6B3000258780042C4B3000258780038 +:1000B00052C6B3000258780042C7B3000258780015 +:1000C00052C6B3000258780032C6B3000258780016 +:1000D00042C7B3000258780052C6B30002587800F5 +:1000E00042C6B30002587800A2C3B3000258780099 +:1000F00002C2B300025878000135230057C507003B +:1001000021B82B0055C50700800078000020EF00C3 +:10011000805878006E0047000005780038EE070030 +:100120002C033700C02522009040780030C3B30074 +:10013000000CE10001003A0026033700C025220030 +:100140009040780040C3B300000CE10001003A0089 +:1001500020033700C02522009040780050C3B30030 +:10016000000CE100AD013A000B3523000A188000B5 +:1001700073F107006E00470012C4B3000258780004 +:1001800042C4B3000258780032C4B3000258780069 +:1001900002C3B30002587800A2C3B30... [truncated message content] |