Matter comment code used only by controler (#21752)

This commit is contained in:
s-hadinger 2024-07-09 14:01:45 +02:00 committed by GitHub
parent b56e3c43a8
commit 5df51a9365
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 2186 additions and 2801 deletions

View File

@ -89,7 +89,8 @@ class Matter_IM
self.send_ack_now(msg)
return self.process_write_request(msg, val)
elif opcode == 0x07 # Write Response
return self.process_write_response(msg, val)
# return self.process_write_response(msg, val) # not implemented for Matter device
return false
elif opcode == 0x08 # Invoke Request
# self.send_ack_now(msg) # to improve latency, we don't automatically Ack on invoke request
return self.process_invoke_request(msg, val)
@ -1160,11 +1161,11 @@ class Matter_IM
#############################################################
# process IM 0x07 Write Response
#
def process_write_response(msg, val)
var query = matter.WriteResponseMessage().from_TLV(val)
# log("MTR: received WriteResponseMessage=" + str(query), 4)
return false
end
# def process_write_response(msg, val)
# var query = matter.WriteResponseMessage().from_TLV(val)
# # log("MTR: received WriteResponseMessage=" + str(query), 4)
# return false
# end
#############################################################
# process IM 0x09 Invoke Response

View File

@ -615,17 +615,18 @@ class Matter_ReadRequestMessage : Matter_IM_Message_base
return self
end
def to_TLV()
var TLV = matter.TLV
var s = TLV.Matter_TLV_struct()
self.to_TLV_array(s, 0, self.attributes_requests)
self.to_TLV_array(s, 1, self.event_requests)
self.to_TLV_array(s, 2, self.event_filters)
s.add_TLV(3, TLV.BOOL, self.fabric_filtered)
self.to_TLV_array(s, 4, self.data_version_filters)
s.add_TLV(0xFF, TLV.U1, self.InteractionModelRevision)
return s
end
# to_TLV not used in Matter Device
# def to_TLV()
# var TLV = matter.TLV
# var s = TLV.Matter_TLV_struct()
# self.to_TLV_array(s, 0, self.attributes_requests)
# self.to_TLV_array(s, 1, self.event_requests)
# self.to_TLV_array(s, 2, self.event_filters)
# s.add_TLV(3, TLV.BOOL, self.fabric_filtered)
# self.to_TLV_array(s, 4, self.data_version_filters)
# s.add_TLV(0xFF, TLV.U1, self.InteractionModelRevision)
# return s
# end
end
matter.ReadRequestMessage = Matter_ReadRequestMessage
@ -872,15 +873,16 @@ class Matter_ReportDataMessage : Matter_IM_Message_base
var suppress_response # bool
# decode from TLV
def from_TLV(val)
if val == nil return nil end
self.subscription_id = val.findsubval(0)
self.attribute_reports = self.from_TLV_array(val.findsubval(1), matter.AttributeReportIB)
self.event_reports = self.from_TLV_array(val.findsubval(2), matter.EventReportIB)
self.more_chunked_messages = val.findsubval(3)
self.suppress_response = val.findsubval(4)
return self
end
# from_TLV not used in Matter Device
# def from_TLV(val)
# if val == nil return nil end
# self.subscription_id = val.findsubval(0)
# self.attribute_reports = self.from_TLV_array(val.findsubval(1), matter.AttributeReportIB)
# self.event_reports = self.from_TLV_array(val.findsubval(2), matter.EventReportIB)
# self.more_chunked_messages = val.findsubval(3)
# self.suppress_response = val.findsubval(4)
# return self
# end
def to_TLV()
var TLV = matter.TLV
@ -923,20 +925,21 @@ class Matter_SubscribeRequestMessage : Matter_IM_Message_base
return self
end
def to_TLV()
var TLV = matter.TLV
var s = TLV.Matter_TLV_struct()
s.add_TLV(0, TLV.BOOL, self.keep_subscriptions)
s.add_TLV(1, TLV.U2, self.min_interval_floor)
s.add_TLV(2, TLV.U2, self.max_interval_ceiling)
self.to_TLV_array(s, 3, self.attributes_requests)
self.to_TLV_array(s, 4, self.event_requests)
self.to_TLV_array(s, 5, self.event_filters)
s.add_TLV(7, TLV.BOOL, self.fabric_filtered)
self.to_TLV_array(s, 8, self.data_version_filters)
s.add_TLV(0xFF, TLV.U1, self.InteractionModelRevision)
return s
end
# to_TLV not used in Matter Device
# def to_TLV()
# var TLV = matter.TLV
# var s = TLV.Matter_TLV_struct()
# s.add_TLV(0, TLV.BOOL, self.keep_subscriptions)
# s.add_TLV(1, TLV.U2, self.min_interval_floor)
# s.add_TLV(2, TLV.U2, self.max_interval_ceiling)
# self.to_TLV_array(s, 3, self.attributes_requests)
# self.to_TLV_array(s, 4, self.event_requests)
# self.to_TLV_array(s, 5, self.event_filters)
# s.add_TLV(7, TLV.BOOL, self.fabric_filtered)
# self.to_TLV_array(s, 8, self.data_version_filters)
# s.add_TLV(0xFF, TLV.U1, self.InteractionModelRevision)
# return s
# end
end
matter.SubscribeRequestMessage = Matter_SubscribeRequestMessage
@ -948,12 +951,13 @@ class Matter_SubscribeResponseMessage : Matter_IM_Message_base
var max_interval # u16
# decode from TLV
def from_TLV(val)
if val == nil return nil end
self.subscription_id = val.findsubval(0)
self.max_interval = val.findsubval(2)
return self
end
# from_TLV not used in Matter Device
# def from_TLV(val)
# if val == nil return nil end
# self.subscription_id = val.findsubval(0)
# self.max_interval = val.findsubval(2)
# return self
# end
def to_TLV()
var TLV = matter.TLV
@ -985,16 +989,17 @@ class Matter_WriteRequestMessage : Matter_IM_Message_base
return self
end
def to_TLV()
var TLV = matter.TLV
var s = TLV.Matter_TLV_struct()
s.add_TLV(0, TLV.BOOL, self.suppress_response)
s.add_TLV(1, TLV.BOOL, self.timed_request)
self.to_TLV_array(s, 2, self.write_requests)
s.add_TLV(3, TLV.BOOL, self.more_chunked_messages)
s.add_TLV(0xFF, TLV.U1, self.InteractionModelRevision)
return s
end
# to_TLV not used in Matter Device
# def to_TLV()
# var TLV = matter.TLV
# var s = TLV.Matter_TLV_struct()
# s.add_TLV(0, TLV.BOOL, self.suppress_response)
# s.add_TLV(1, TLV.BOOL, self.timed_request)
# self.to_TLV_array(s, 2, self.write_requests)
# s.add_TLV(3, TLV.BOOL, self.more_chunked_messages)
# s.add_TLV(0xFF, TLV.U1, self.InteractionModelRevision)
# return s
# end
end
matter.WriteRequestMessage = Matter_WriteRequestMessage
@ -1005,11 +1010,12 @@ class Matter_WriteResponseMessage : Matter_IM_Message_base
var write_responses # array of AttributeStatusIB
# decode from TLV
def from_TLV(val)
if val == nil return nil end
self.write_requests = self.from_TLV_array(val.findsubval(0), matter.AttributeStatusIB)
return self
end
# from_TLV not used in Matter Device
# def from_TLV(val)
# if val == nil return nil end
# self.write_requests = self.from_TLV_array(val.findsubval(0), matter.AttributeStatusIB)
# return self
# end
def to_TLV()
var TLV = matter.TLV
@ -1034,13 +1040,14 @@ class Matter_TimedRequestMessage : Matter_IM_Message_base
return self
end
def to_TLV()
var TLV = matter.TLV
var s = TLV.Matter_TLV_struct()
s.add_TLV(0, TLV.U2, self.timeout)
s.add_TLV(0xFF, TLV.U1, self.InteractionModelRevision)
return s
end
# to_TLV not used in Matter Device
# def to_TLV()
# var TLV = matter.TLV
# var s = TLV.Matter_TLV_struct()
# s.add_TLV(0, TLV.U2, self.timeout)
# s.add_TLV(0xFF, TLV.U1, self.InteractionModelRevision)
# return s
# end
end
matter.TimedRequestMessage = Matter_TimedRequestMessage
@ -1061,15 +1068,16 @@ class Matter_InvokeRequestMessage : Matter_IM_Message_base
return self
end
def to_TLV()
var TLV = matter.TLV
var s = TLV.Matter_TLV_struct()
s.add_TLV(0, TLV.BOOL, self.suppress_response)
s.add_TLV(1, TLV.BOOL, self.timed_request)
self.to_TLV_array(s, 2, self.invoke_requests)
s.add_TLV(0xFF, TLV.U1, self.InteractionModelRevision)
return s
end
# to_TLV not used in Matter Device
# def to_TLV()
# var TLV = matter.TLV
# var s = TLV.Matter_TLV_struct()
# s.add_TLV(0, TLV.BOOL, self.suppress_response)
# s.add_TLV(1, TLV.BOOL, self.timed_request)
# self.to_TLV_array(s, 2, self.invoke_requests)
# s.add_TLV(0xFF, TLV.U1, self.InteractionModelRevision)
# return s
# end
end
matter.InvokeRequestMessage = Matter_InvokeRequestMessage
@ -1081,12 +1089,13 @@ class Matter_InvokeResponseMessage : Matter_IM_Message_base
var invoke_responses # array of InvokeResponseIB
# decode from TLV
def from_TLV(val)
if val == nil return nil end
self.suppress_response = val.findsubval(0)
self.invoke_responses = self.from_TLV_array(val.findsubval(1), matter.InvokeResponseIB)
return self
end
# from_TLV not used in Matter Device
# def from_TLV(val)
# if val == nil return nil end
# self.suppress_response = val.findsubval(0)
# self.invoke_responses = self.from_TLV_array(val.findsubval(1), matter.InvokeResponseIB)
# return self
# end
def to_TLV()
var TLV = matter.TLV

View File

@ -235,21 +235,22 @@ class Matter_Device
#############################################################
# Stop PASE commissioning, mostly called when CASE is about to start
def stop_basic_commissioning()
var n = nil
if self.is_root_commissioning_open()
tasmota.publish_result('{"Matter":{"Commissioning":0}}', 'Matter')
end
self.commissioning_open = nil
self.commissioning_open = n
self.mdns_remove_PASE()
# clear any PBKDF information to free memory
self.commissioning_iterations = nil
self.commissioning_discriminator = nil
self.commissioning_salt = nil
self.commissioning_w0 = nil
self.commissioning_iterations = n
self.commissioning_discriminator = n
self.commissioning_salt = n
self.commissioning_w0 = n
# self.commissioning_w1 = nil
self.commissioning_L = nil
self.commissioning_admin_fabric = nil
self.commissioning_L = n
self.commissioning_admin_fabric = n
end
def is_commissioning_open()
return self.commissioning_open != nil

File diff suppressed because it is too large Load Diff

View File

@ -2626,83 +2626,6 @@ be_local_closure(class_Matter_ReadRequestMessage_from_TLV, /* name */
/*******************************************************************/
/********************************************************************
** Solidified function: to_TLV
********************************************************************/
extern const bclass be_class_Matter_ReadRequestMessage;
be_local_closure(class_Matter_ReadRequestMessage_to_TLV, /* name */
be_nested_proto(
8, /* nstack */
1, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
&be_class_Matter_ReadRequestMessage,
1, /* has constants */
( &(const bvalue[17]) { /* constants */
/* K0 */ be_nested_str_weak(matter),
/* K1 */ be_nested_str_weak(TLV),
/* K2 */ be_nested_str_weak(Matter_TLV_struct),
/* K3 */ be_nested_str_weak(to_TLV_array),
/* K4 */ be_const_int(0),
/* K5 */ be_nested_str_weak(attributes_requests),
/* K6 */ be_const_int(1),
/* K7 */ be_nested_str_weak(event_requests),
/* K8 */ be_const_int(2),
/* K9 */ be_nested_str_weak(event_filters),
/* K10 */ be_nested_str_weak(add_TLV),
/* K11 */ be_const_int(3),
/* K12 */ be_nested_str_weak(BOOL),
/* K13 */ be_nested_str_weak(fabric_filtered),
/* K14 */ be_nested_str_weak(data_version_filters),
/* K15 */ be_nested_str_weak(U1),
/* K16 */ be_nested_str_weak(InteractionModelRevision),
}),
be_str_weak(to_TLV),
&be_const_str_solidified,
( &(const binstruction[35]) { /* code */
0xB8060000, // 0000 GETNGBL R1 K0
0x88040301, // 0001 GETMBR R1 R1 K1
0x8C080302, // 0002 GETMET R2 R1 K2
0x7C080200, // 0003 CALL R2 1
0x8C0C0103, // 0004 GETMET R3 R0 K3
0x5C140400, // 0005 MOVE R5 R2
0x58180004, // 0006 LDCONST R6 K4
0x881C0105, // 0007 GETMBR R7 R0 K5
0x7C0C0800, // 0008 CALL R3 4
0x8C0C0103, // 0009 GETMET R3 R0 K3
0x5C140400, // 000A MOVE R5 R2
0x58180006, // 000B LDCONST R6 K6
0x881C0107, // 000C GETMBR R7 R0 K7
0x7C0C0800, // 000D CALL R3 4
0x8C0C0103, // 000E GETMET R3 R0 K3
0x5C140400, // 000F MOVE R5 R2
0x58180008, // 0010 LDCONST R6 K8
0x881C0109, // 0011 GETMBR R7 R0 K9
0x7C0C0800, // 0012 CALL R3 4
0x8C0C050A, // 0013 GETMET R3 R2 K10
0x5814000B, // 0014 LDCONST R5 K11
0x8818030C, // 0015 GETMBR R6 R1 K12
0x881C010D, // 0016 GETMBR R7 R0 K13
0x7C0C0800, // 0017 CALL R3 4
0x8C0C0103, // 0018 GETMET R3 R0 K3
0x5C140400, // 0019 MOVE R5 R2
0x541A0003, // 001A LDINT R6 4
0x881C010E, // 001B GETMBR R7 R0 K14
0x7C0C0800, // 001C CALL R3 4
0x8C0C050A, // 001D GETMET R3 R2 K10
0x541600FE, // 001E LDINT R5 255
0x8818030F, // 001F GETMBR R6 R1 K15
0x881C0110, // 0020 GETMBR R7 R0 K16
0x7C0C0800, // 0021 CALL R3 4
0x80040400, // 0022 RET 1 R2
})
)
);
/*******************************************************************/
/********************************************************************
** Solidified class: Matter_ReadRequestMessage
********************************************************************/
@ -2710,15 +2633,14 @@ extern const bclass be_class_Matter_IM_Message_base;
be_local_class(Matter_ReadRequestMessage,
5,
&be_class_Matter_IM_Message_base,
be_nested_map(7,
be_nested_map(6,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_weak(event_filters, -1), be_const_var(2) },
{ be_const_key_weak(fabric_filtered, 3), be_const_var(3) },
{ be_const_key_weak(to_TLV, -1), be_const_closure(class_Matter_ReadRequestMessage_to_TLV_closure) },
{ be_const_key_weak(from_TLV, -1), be_const_closure(class_Matter_ReadRequestMessage_from_TLV_closure) },
{ be_const_key_weak(event_filters, -1), be_const_var(2) },
{ be_const_key_weak(fabric_filtered, -1), be_const_var(3) },
{ be_const_key_weak(data_version_filters, -1), be_const_var(4) },
{ be_const_key_weak(event_requests, 3), be_const_var(1) },
{ be_const_key_weak(attributes_requests, -1), be_const_var(0) },
{ be_const_key_weak(event_requests, 0), be_const_var(1) },
})),
be_str_weak(Matter_ReadRequestMessage)
);
@ -2907,79 +2829,6 @@ be_local_class(Matter_ReadRequestMessage_solo,
extern const bclass be_class_Matter_ReportDataMessage;
/********************************************************************
** Solidified function: from_TLV
********************************************************************/
extern const bclass be_class_Matter_ReportDataMessage;
be_local_closure(class_Matter_ReportDataMessage_from_TLV, /* name */
be_nested_proto(
7, /* nstack */
2, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
&be_class_Matter_ReportDataMessage,
1, /* has constants */
( &(const bvalue[14]) { /* constants */
/* K0 */ be_nested_str_weak(subscription_id),
/* K1 */ be_nested_str_weak(findsubval),
/* K2 */ be_const_int(0),
/* K3 */ be_nested_str_weak(attribute_reports),
/* K4 */ be_nested_str_weak(from_TLV_array),
/* K5 */ be_const_int(1),
/* K6 */ be_nested_str_weak(matter),
/* K7 */ be_nested_str_weak(AttributeReportIB),
/* K8 */ be_nested_str_weak(event_reports),
/* K9 */ be_const_int(2),
/* K10 */ be_nested_str_weak(EventReportIB),
/* K11 */ be_nested_str_weak(more_chunked_messages),
/* K12 */ be_const_int(3),
/* K13 */ be_nested_str_weak(suppress_response),
}),
be_str_weak(from_TLV),
&be_const_str_solidified,
( &(const binstruction[34]) { /* code */
0x4C080000, // 0000 LDNIL R2
0x1C080202, // 0001 EQ R2 R1 R2
0x780A0001, // 0002 JMPF R2 #0005
0x4C080000, // 0003 LDNIL R2
0x80040400, // 0004 RET 1 R2
0x8C080301, // 0005 GETMET R2 R1 K1
0x58100002, // 0006 LDCONST R4 K2
0x7C080400, // 0007 CALL R2 2
0x90020002, // 0008 SETMBR R0 K0 R2
0x8C080104, // 0009 GETMET R2 R0 K4
0x8C100301, // 000A GETMET R4 R1 K1
0x58180005, // 000B LDCONST R6 K5
0x7C100400, // 000C CALL R4 2
0xB8160C00, // 000D GETNGBL R5 K6
0x88140B07, // 000E GETMBR R5 R5 K7
0x7C080600, // 000F CALL R2 3
0x90020602, // 0010 SETMBR R0 K3 R2
0x8C080104, // 0011 GETMET R2 R0 K4
0x8C100301, // 0012 GETMET R4 R1 K1
0x58180009, // 0013 LDCONST R6 K9
0x7C100400, // 0014 CALL R4 2
0xB8160C00, // 0015 GETNGBL R5 K6
0x88140B0A, // 0016 GETMBR R5 R5 K10
0x7C080600, // 0017 CALL R2 3
0x90021002, // 0018 SETMBR R0 K8 R2
0x8C080301, // 0019 GETMET R2 R1 K1
0x5810000C, // 001A LDCONST R4 K12
0x7C080400, // 001B CALL R2 2
0x90021602, // 001C SETMBR R0 K11 R2
0x8C080301, // 001D GETMET R2 R1 K1
0x54120003, // 001E LDINT R4 4
0x7C080400, // 001F CALL R2 2
0x90021A02, // 0020 SETMBR R0 K13 R2
0x80040000, // 0021 RET 1 R0
})
)
);
/*******************************************************************/
/********************************************************************
** Solidified function: to_TLV
********************************************************************/
@ -3065,15 +2914,14 @@ extern const bclass be_class_Matter_IM_Message_base;
be_local_class(Matter_ReportDataMessage,
5,
&be_class_Matter_IM_Message_base,
be_nested_map(7,
be_nested_map(6,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_weak(attribute_reports, -1), be_const_var(1) },
{ be_const_key_weak(from_TLV, -1), be_const_closure(class_Matter_ReportDataMessage_from_TLV_closure) },
{ be_const_key_weak(suppress_response, -1), be_const_var(4) },
{ be_const_key_weak(event_reports, 3), be_const_var(2) },
{ be_const_key_weak(subscription_id, -1), be_const_var(0) },
{ be_const_key_weak(to_TLV, -1), be_const_closure(class_Matter_ReportDataMessage_to_TLV_closure) },
{ be_const_key_weak(more_chunked_messages, -1), be_const_var(3) },
{ be_const_key_weak(event_reports, -1), be_const_var(2) },
{ be_const_key_weak(suppress_response, -1), be_const_var(4) },
{ be_const_key_weak(subscription_id, 5), be_const_var(0) },
{ be_const_key_weak(attribute_reports, -1), be_const_var(1) },
})),
be_str_weak(Matter_ReportDataMessage)
);
@ -3182,102 +3030,6 @@ be_local_closure(class_Matter_SubscribeRequestMessage_from_TLV, /* name */
/*******************************************************************/
/********************************************************************
** Solidified function: to_TLV
********************************************************************/
extern const bclass be_class_Matter_SubscribeRequestMessage;
be_local_closure(class_Matter_SubscribeRequestMessage_to_TLV, /* name */
be_nested_proto(
8, /* nstack */
1, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
&be_class_Matter_SubscribeRequestMessage,
1, /* has constants */
( &(const bvalue[21]) { /* constants */
/* K0 */ be_nested_str_weak(matter),
/* K1 */ be_nested_str_weak(TLV),
/* K2 */ be_nested_str_weak(Matter_TLV_struct),
/* K3 */ be_nested_str_weak(add_TLV),
/* K4 */ be_const_int(0),
/* K5 */ be_nested_str_weak(BOOL),
/* K6 */ be_nested_str_weak(keep_subscriptions),
/* K7 */ be_const_int(1),
/* K8 */ be_nested_str_weak(U2),
/* K9 */ be_nested_str_weak(min_interval_floor),
/* K10 */ be_const_int(2),
/* K11 */ be_nested_str_weak(max_interval_ceiling),
/* K12 */ be_nested_str_weak(to_TLV_array),
/* K13 */ be_const_int(3),
/* K14 */ be_nested_str_weak(attributes_requests),
/* K15 */ be_nested_str_weak(event_requests),
/* K16 */ be_nested_str_weak(event_filters),
/* K17 */ be_nested_str_weak(fabric_filtered),
/* K18 */ be_nested_str_weak(data_version_filters),
/* K19 */ be_nested_str_weak(U1),
/* K20 */ be_nested_str_weak(InteractionModelRevision),
}),
be_str_weak(to_TLV),
&be_const_str_solidified,
( &(const binstruction[50]) { /* code */
0xB8060000, // 0000 GETNGBL R1 K0
0x88040301, // 0001 GETMBR R1 R1 K1
0x8C080302, // 0002 GETMET R2 R1 K2
0x7C080200, // 0003 CALL R2 1
0x8C0C0503, // 0004 GETMET R3 R2 K3
0x58140004, // 0005 LDCONST R5 K4
0x88180305, // 0006 GETMBR R6 R1 K5
0x881C0106, // 0007 GETMBR R7 R0 K6
0x7C0C0800, // 0008 CALL R3 4
0x8C0C0503, // 0009 GETMET R3 R2 K3
0x58140007, // 000A LDCONST R5 K7
0x88180308, // 000B GETMBR R6 R1 K8
0x881C0109, // 000C GETMBR R7 R0 K9
0x7C0C0800, // 000D CALL R3 4
0x8C0C0503, // 000E GETMET R3 R2 K3
0x5814000A, // 000F LDCONST R5 K10
0x88180308, // 0010 GETMBR R6 R1 K8
0x881C010B, // 0011 GETMBR R7 R0 K11
0x7C0C0800, // 0012 CALL R3 4
0x8C0C010C, // 0013 GETMET R3 R0 K12
0x5C140400, // 0014 MOVE R5 R2
0x5818000D, // 0015 LDCONST R6 K13
0x881C010E, // 0016 GETMBR R7 R0 K14
0x7C0C0800, // 0017 CALL R3 4
0x8C0C010C, // 0018 GETMET R3 R0 K12
0x5C140400, // 0019 MOVE R5 R2
0x541A0003, // 001A LDINT R6 4
0x881C010F, // 001B GETMBR R7 R0 K15
0x7C0C0800, // 001C CALL R3 4
0x8C0C010C, // 001D GETMET R3 R0 K12
0x5C140400, // 001E MOVE R5 R2
0x541A0004, // 001F LDINT R6 5
0x881C0110, // 0020 GETMBR R7 R0 K16
0x7C0C0800, // 0021 CALL R3 4
0x8C0C0503, // 0022 GETMET R3 R2 K3
0x54160006, // 0023 LDINT R5 7
0x88180305, // 0024 GETMBR R6 R1 K5
0x881C0111, // 0025 GETMBR R7 R0 K17
0x7C0C0800, // 0026 CALL R3 4
0x8C0C010C, // 0027 GETMET R3 R0 K12
0x5C140400, // 0028 MOVE R5 R2
0x541A0007, // 0029 LDINT R6 8
0x881C0112, // 002A GETMBR R7 R0 K18
0x7C0C0800, // 002B CALL R3 4
0x8C0C0503, // 002C GETMET R3 R2 K3
0x541600FE, // 002D LDINT R5 255
0x88180313, // 002E GETMBR R6 R1 K19
0x881C0114, // 002F GETMBR R7 R0 K20
0x7C0C0800, // 0030 CALL R3 4
0x80040400, // 0031 RET 1 R2
})
)
);
/*******************************************************************/
/********************************************************************
** Solidified class: Matter_SubscribeRequestMessage
********************************************************************/
@ -3285,18 +3037,17 @@ extern const bclass be_class_Matter_IM_Message_base;
be_local_class(Matter_SubscribeRequestMessage,
8,
&be_class_Matter_IM_Message_base,
be_nested_map(10,
be_nested_map(9,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_weak(to_TLV, -1), be_const_closure(class_Matter_SubscribeRequestMessage_to_TLV_closure) },
{ be_const_key_weak(attributes_requests, 7), be_const_var(3) },
{ be_const_key_weak(fabric_filtered, 6), be_const_var(6) },
{ be_const_key_weak(attributes_requests, -1), be_const_var(3) },
{ be_const_key_weak(event_requests, -1), be_const_var(4) },
{ be_const_key_weak(min_interval_floor, -1), be_const_var(1) },
{ be_const_key_weak(from_TLV, -1), be_const_closure(class_Matter_SubscribeRequestMessage_from_TLV_closure) },
{ be_const_key_weak(event_filters, -1), be_const_var(5) },
{ be_const_key_weak(fabric_filtered, 0), be_const_var(6) },
{ be_const_key_weak(keep_subscriptions, 3), be_const_var(0) },
{ be_const_key_weak(data_version_filters, -1), be_const_var(7) },
{ be_const_key_weak(max_interval_ceiling, -1), be_const_var(2) },
{ be_const_key_weak(event_requests, 3), be_const_var(4) },
{ be_const_key_weak(event_filters, -1), be_const_var(5) },
{ be_const_key_weak(from_TLV, -1), be_const_closure(class_Matter_SubscribeRequestMessage_from_TLV_closure) },
{ be_const_key_weak(keep_subscriptions, 0), be_const_var(0) },
})),
be_str_weak(Matter_SubscribeRequestMessage)
);
@ -3360,50 +3111,6 @@ be_local_closure(class_Matter_SubscribeResponseMessage_to_TLV, /* name */
/*******************************************************************/
/********************************************************************
** Solidified function: from_TLV
********************************************************************/
extern const bclass be_class_Matter_SubscribeResponseMessage;
be_local_closure(class_Matter_SubscribeResponseMessage_from_TLV, /* name */
be_nested_proto(
5, /* nstack */
2, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
&be_class_Matter_SubscribeResponseMessage,
1, /* has constants */
( &(const bvalue[ 5]) { /* constants */
/* K0 */ be_nested_str_weak(subscription_id),
/* K1 */ be_nested_str_weak(findsubval),
/* K2 */ be_const_int(0),
/* K3 */ be_nested_str_weak(max_interval),
/* K4 */ be_const_int(2),
}),
be_str_weak(from_TLV),
&be_const_str_solidified,
( &(const binstruction[14]) { /* code */
0x4C080000, // 0000 LDNIL R2
0x1C080202, // 0001 EQ R2 R1 R2
0x780A0001, // 0002 JMPF R2 #0005
0x4C080000, // 0003 LDNIL R2
0x80040400, // 0004 RET 1 R2
0x8C080301, // 0005 GETMET R2 R1 K1
0x58100002, // 0006 LDCONST R4 K2
0x7C080400, // 0007 CALL R2 2
0x90020002, // 0008 SETMBR R0 K0 R2
0x8C080301, // 0009 GETMET R2 R1 K1
0x58100004, // 000A LDCONST R4 K4
0x7C080400, // 000B CALL R2 2
0x90020602, // 000C SETMBR R0 K3 R2
0x80040000, // 000D RET 1 R0
})
)
);
/*******************************************************************/
/********************************************************************
** Solidified class: Matter_SubscribeResponseMessage
********************************************************************/
@ -3411,89 +3118,17 @@ extern const bclass be_class_Matter_IM_Message_base;
be_local_class(Matter_SubscribeResponseMessage,
2,
&be_class_Matter_IM_Message_base,
be_nested_map(4,
be_nested_map(3,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_weak(subscription_id, 2), be_const_var(0) },
{ be_const_key_weak(to_TLV, -1), be_const_closure(class_Matter_SubscribeResponseMessage_to_TLV_closure) },
{ be_const_key_weak(from_TLV, -1), be_const_closure(class_Matter_SubscribeResponseMessage_from_TLV_closure) },
{ be_const_key_weak(max_interval, -1), be_const_var(1) },
{ be_const_key_weak(to_TLV, -1), be_const_closure(class_Matter_SubscribeResponseMessage_to_TLV_closure) },
{ be_const_key_weak(subscription_id, -1), be_const_var(0) },
})),
be_str_weak(Matter_SubscribeResponseMessage)
);
extern const bclass be_class_Matter_WriteRequestMessage;
/********************************************************************
** Solidified function: to_TLV
********************************************************************/
extern const bclass be_class_Matter_WriteRequestMessage;
be_local_closure(class_Matter_WriteRequestMessage_to_TLV, /* name */
be_nested_proto(
8, /* nstack */
1, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
&be_class_Matter_WriteRequestMessage,
1, /* has constants */
( &(const bvalue[16]) { /* constants */
/* K0 */ be_nested_str_weak(matter),
/* K1 */ be_nested_str_weak(TLV),
/* K2 */ be_nested_str_weak(Matter_TLV_struct),
/* K3 */ be_nested_str_weak(add_TLV),
/* K4 */ be_const_int(0),
/* K5 */ be_nested_str_weak(BOOL),
/* K6 */ be_nested_str_weak(suppress_response),
/* K7 */ be_const_int(1),
/* K8 */ be_nested_str_weak(timed_request),
/* K9 */ be_nested_str_weak(to_TLV_array),
/* K10 */ be_const_int(2),
/* K11 */ be_nested_str_weak(write_requests),
/* K12 */ be_const_int(3),
/* K13 */ be_nested_str_weak(more_chunked_messages),
/* K14 */ be_nested_str_weak(U1),
/* K15 */ be_nested_str_weak(InteractionModelRevision),
}),
be_str_weak(to_TLV),
&be_const_str_solidified,
( &(const binstruction[30]) { /* code */
0xB8060000, // 0000 GETNGBL R1 K0
0x88040301, // 0001 GETMBR R1 R1 K1
0x8C080302, // 0002 GETMET R2 R1 K2
0x7C080200, // 0003 CALL R2 1
0x8C0C0503, // 0004 GETMET R3 R2 K3
0x58140004, // 0005 LDCONST R5 K4
0x88180305, // 0006 GETMBR R6 R1 K5
0x881C0106, // 0007 GETMBR R7 R0 K6
0x7C0C0800, // 0008 CALL R3 4
0x8C0C0503, // 0009 GETMET R3 R2 K3
0x58140007, // 000A LDCONST R5 K7
0x88180305, // 000B GETMBR R6 R1 K5
0x881C0108, // 000C GETMBR R7 R0 K8
0x7C0C0800, // 000D CALL R3 4
0x8C0C0109, // 000E GETMET R3 R0 K9
0x5C140400, // 000F MOVE R5 R2
0x5818000A, // 0010 LDCONST R6 K10
0x881C010B, // 0011 GETMBR R7 R0 K11
0x7C0C0800, // 0012 CALL R3 4
0x8C0C0503, // 0013 GETMET R3 R2 K3
0x5814000C, // 0014 LDCONST R5 K12
0x88180305, // 0015 GETMBR R6 R1 K5
0x881C010D, // 0016 GETMBR R7 R0 K13
0x7C0C0800, // 0017 CALL R3 4
0x8C0C0503, // 0018 GETMET R3 R2 K3
0x541600FE, // 0019 LDINT R5 255
0x8818030E, // 001A GETMBR R6 R1 K14
0x881C010F, // 001B GETMBR R7 R0 K15
0x7C0C0800, // 001C CALL R3 4
0x80040400, // 001D RET 1 R2
})
)
);
/*******************************************************************/
/********************************************************************
** Solidified function: from_TLV
********************************************************************/
@ -3564,65 +3199,19 @@ extern const bclass be_class_Matter_IM_Message_base;
be_local_class(Matter_WriteRequestMessage,
4,
&be_class_Matter_IM_Message_base,
be_nested_map(6,
be_nested_map(5,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_weak(suppress_response, 5), be_const_var(0) },
{ be_const_key_weak(to_TLV, -1), be_const_closure(class_Matter_WriteRequestMessage_to_TLV_closure) },
{ be_const_key_weak(timed_request, -1), be_const_var(1) },
{ be_const_key_weak(write_requests, -1), be_const_var(2) },
{ be_const_key_weak(more_chunked_messages, -1), be_const_var(3) },
{ be_const_key_weak(suppress_response, 2), be_const_var(0) },
{ be_const_key_weak(timed_request, -1), be_const_var(1) },
{ be_const_key_weak(from_TLV, -1), be_const_closure(class_Matter_WriteRequestMessage_from_TLV_closure) },
{ be_const_key_weak(more_chunked_messages, -1), be_const_var(3) },
})),
be_str_weak(Matter_WriteRequestMessage)
);
extern const bclass be_class_Matter_WriteResponseMessage;
/********************************************************************
** Solidified function: from_TLV
********************************************************************/
extern const bclass be_class_Matter_WriteResponseMessage;
be_local_closure(class_Matter_WriteResponseMessage_from_TLV, /* name */
be_nested_proto(
7, /* nstack */
2, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
&be_class_Matter_WriteResponseMessage,
1, /* has constants */
( &(const bvalue[ 6]) { /* constants */
/* K0 */ be_nested_str_weak(write_requests),
/* K1 */ be_nested_str_weak(from_TLV_array),
/* K2 */ be_nested_str_weak(findsubval),
/* K3 */ be_const_int(0),
/* K4 */ be_nested_str_weak(matter),
/* K5 */ be_nested_str_weak(AttributeStatusIB),
}),
be_str_weak(from_TLV),
&be_const_str_solidified,
( &(const binstruction[14]) { /* code */
0x4C080000, // 0000 LDNIL R2
0x1C080202, // 0001 EQ R2 R1 R2
0x780A0001, // 0002 JMPF R2 #0005
0x4C080000, // 0003 LDNIL R2
0x80040400, // 0004 RET 1 R2
0x8C080101, // 0005 GETMET R2 R0 K1
0x8C100302, // 0006 GETMET R4 R1 K2
0x58180003, // 0007 LDCONST R6 K3
0x7C100400, // 0008 CALL R4 2
0xB8160800, // 0009 GETNGBL R5 K4
0x88140B05, // 000A GETMBR R5 R5 K5
0x7C080600, // 000B CALL R2 3
0x90020002, // 000C SETMBR R0 K0 R2
0x80040000, // 000D RET 1 R0
})
)
);
/*******************************************************************/
/********************************************************************
** Solidified function: to_TLV
********************************************************************/
@ -3679,11 +3268,10 @@ extern const bclass be_class_Matter_IM_Message_base;
be_local_class(Matter_WriteResponseMessage,
1,
&be_class_Matter_IM_Message_base,
be_nested_map(3,
be_nested_map(2,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_weak(from_TLV, 2), be_const_closure(class_Matter_WriteResponseMessage_from_TLV_closure) },
{ be_const_key_weak(to_TLV, -1), be_const_closure(class_Matter_WriteResponseMessage_to_TLV_closure) },
{ be_const_key_weak(write_responses, -1), be_const_var(0) },
{ be_const_key_weak(write_responses, 0), be_const_var(0) },
})),
be_str_weak(Matter_WriteResponseMessage)
);
@ -3728,55 +3316,6 @@ be_local_closure(class_Matter_TimedRequestMessage_from_TLV, /* name */
/*******************************************************************/
/********************************************************************
** Solidified function: to_TLV
********************************************************************/
extern const bclass be_class_Matter_TimedRequestMessage;
be_local_closure(class_Matter_TimedRequestMessage_to_TLV, /* name */
be_nested_proto(
8, /* nstack */
1, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
&be_class_Matter_TimedRequestMessage,
1, /* has constants */
( &(const bvalue[ 9]) { /* constants */
/* K0 */ be_nested_str_weak(matter),
/* K1 */ be_nested_str_weak(TLV),
/* K2 */ be_nested_str_weak(Matter_TLV_struct),
/* K3 */ be_nested_str_weak(add_TLV),
/* K4 */ be_const_int(0),
/* K5 */ be_nested_str_weak(U2),
/* K6 */ be_nested_str_weak(timeout),
/* K7 */ be_nested_str_weak(U1),
/* K8 */ be_nested_str_weak(InteractionModelRevision),
}),
be_str_weak(to_TLV),
&be_const_str_solidified,
( &(const binstruction[15]) { /* code */
0xB8060000, // 0000 GETNGBL R1 K0
0x88040301, // 0001 GETMBR R1 R1 K1
0x8C080302, // 0002 GETMET R2 R1 K2
0x7C080200, // 0003 CALL R2 1
0x8C0C0503, // 0004 GETMET R3 R2 K3
0x58140004, // 0005 LDCONST R5 K4
0x88180305, // 0006 GETMBR R6 R1 K5
0x881C0106, // 0007 GETMBR R7 R0 K6
0x7C0C0800, // 0008 CALL R3 4
0x8C0C0503, // 0009 GETMET R3 R2 K3
0x541600FE, // 000A LDINT R5 255
0x88180307, // 000B GETMBR R6 R1 K7
0x881C0108, // 000C GETMBR R7 R0 K8
0x7C0C0800, // 000D CALL R3 4
0x80040400, // 000E RET 1 R2
})
)
);
/*******************************************************************/
/********************************************************************
** Solidified class: Matter_TimedRequestMessage
********************************************************************/
@ -3784,11 +3323,10 @@ extern const bclass be_class_Matter_IM_Message_base;
be_local_class(Matter_TimedRequestMessage,
1,
&be_class_Matter_IM_Message_base,
be_nested_map(3,
be_nested_map(2,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_weak(timeout, 1), be_const_var(0) },
{ be_const_key_weak(from_TLV, -1), be_const_closure(class_Matter_TimedRequestMessage_from_TLV_closure) },
{ be_const_key_weak(timeout, 2), be_const_var(0) },
{ be_const_key_weak(to_TLV, -1), be_const_closure(class_Matter_TimedRequestMessage_to_TLV_closure) },
})),
be_str_weak(Matter_TimedRequestMessage)
);
@ -3852,70 +3390,6 @@ be_local_closure(class_Matter_InvokeRequestMessage_from_TLV, /* name */
/*******************************************************************/
/********************************************************************
** Solidified function: to_TLV
********************************************************************/
extern const bclass be_class_Matter_InvokeRequestMessage;
be_local_closure(class_Matter_InvokeRequestMessage_to_TLV, /* name */
be_nested_proto(
8, /* nstack */
1, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
&be_class_Matter_InvokeRequestMessage,
1, /* has constants */
( &(const bvalue[14]) { /* constants */
/* K0 */ be_nested_str_weak(matter),
/* K1 */ be_nested_str_weak(TLV),
/* K2 */ be_nested_str_weak(Matter_TLV_struct),
/* K3 */ be_nested_str_weak(add_TLV),
/* K4 */ be_const_int(0),
/* K5 */ be_nested_str_weak(BOOL),
/* K6 */ be_nested_str_weak(suppress_response),
/* K7 */ be_const_int(1),
/* K8 */ be_nested_str_weak(timed_request),
/* K9 */ be_nested_str_weak(to_TLV_array),
/* K10 */ be_const_int(2),
/* K11 */ be_nested_str_weak(invoke_requests),
/* K12 */ be_nested_str_weak(U1),
/* K13 */ be_nested_str_weak(InteractionModelRevision),
}),
be_str_weak(to_TLV),
&be_const_str_solidified,
( &(const binstruction[25]) { /* code */
0xB8060000, // 0000 GETNGBL R1 K0
0x88040301, // 0001 GETMBR R1 R1 K1
0x8C080302, // 0002 GETMET R2 R1 K2
0x7C080200, // 0003 CALL R2 1
0x8C0C0503, // 0004 GETMET R3 R2 K3
0x58140004, // 0005 LDCONST R5 K4
0x88180305, // 0006 GETMBR R6 R1 K5
0x881C0106, // 0007 GETMBR R7 R0 K6
0x7C0C0800, // 0008 CALL R3 4
0x8C0C0503, // 0009 GETMET R3 R2 K3
0x58140007, // 000A LDCONST R5 K7
0x88180305, // 000B GETMBR R6 R1 K5
0x881C0108, // 000C GETMBR R7 R0 K8
0x7C0C0800, // 000D CALL R3 4
0x8C0C0109, // 000E GETMET R3 R0 K9
0x5C140400, // 000F MOVE R5 R2
0x5818000A, // 0010 LDCONST R6 K10
0x881C010B, // 0011 GETMBR R7 R0 K11
0x7C0C0800, // 0012 CALL R3 4
0x8C0C0503, // 0013 GETMET R3 R2 K3
0x541600FE, // 0014 LDINT R5 255
0x8818030C, // 0015 GETMBR R6 R1 K12
0x881C010D, // 0016 GETMBR R7 R0 K13
0x7C0C0800, // 0017 CALL R3 4
0x80040400, // 0018 RET 1 R2
})
)
);
/*******************************************************************/
/********************************************************************
** Solidified class: Matter_InvokeRequestMessage
********************************************************************/
@ -3923,13 +3397,12 @@ extern const bclass be_class_Matter_IM_Message_base;
be_local_class(Matter_InvokeRequestMessage,
3,
&be_class_Matter_IM_Message_base,
be_nested_map(5,
be_nested_map(4,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_weak(invoke_requests, -1), be_const_var(2) },
{ be_const_key_weak(suppress_response, 2), be_const_var(0) },
{ be_const_key_weak(suppress_response, 1), be_const_var(0) },
{ be_const_key_weak(from_TLV, 3), be_const_closure(class_Matter_InvokeRequestMessage_from_TLV_closure) },
{ be_const_key_weak(timed_request, -1), be_const_var(1) },
{ be_const_key_weak(from_TLV, -1), be_const_closure(class_Matter_InvokeRequestMessage_from_TLV_closure) },
{ be_const_key_weak(to_TLV, -1), be_const_closure(class_Matter_InvokeRequestMessage_to_TLV_closure) },
{ be_const_key_weak(invoke_requests, -1), be_const_var(2) },
})),
be_str_weak(Matter_InvokeRequestMessage)
);
@ -4263,57 +3736,6 @@ be_local_closure(class_Matter_InvokeResponseMessage_to_TLV, /* name */
/*******************************************************************/
/********************************************************************
** Solidified function: from_TLV
********************************************************************/
extern const bclass be_class_Matter_InvokeResponseMessage;
be_local_closure(class_Matter_InvokeResponseMessage_from_TLV, /* name */
be_nested_proto(
7, /* nstack */
2, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
&be_class_Matter_InvokeResponseMessage,
1, /* has constants */
( &(const bvalue[ 8]) { /* constants */
/* K0 */ be_nested_str_weak(suppress_response),
/* K1 */ be_nested_str_weak(findsubval),
/* K2 */ be_const_int(0),
/* K3 */ be_nested_str_weak(invoke_responses),
/* K4 */ be_nested_str_weak(from_TLV_array),
/* K5 */ be_const_int(1),
/* K6 */ be_nested_str_weak(matter),
/* K7 */ be_nested_str_weak(InvokeResponseIB),
}),
be_str_weak(from_TLV),
&be_const_str_solidified,
( &(const binstruction[18]) { /* code */
0x4C080000, // 0000 LDNIL R2
0x1C080202, // 0001 EQ R2 R1 R2
0x780A0001, // 0002 JMPF R2 #0005
0x4C080000, // 0003 LDNIL R2
0x80040400, // 0004 RET 1 R2
0x8C080301, // 0005 GETMET R2 R1 K1
0x58100002, // 0006 LDCONST R4 K2
0x7C080400, // 0007 CALL R2 2
0x90020002, // 0008 SETMBR R0 K0 R2
0x8C080104, // 0009 GETMET R2 R0 K4
0x8C100301, // 000A GETMET R4 R1 K1
0x58180005, // 000B LDCONST R6 K5
0x7C100400, // 000C CALL R4 2
0xB8160C00, // 000D GETNGBL R5 K6
0x88140B07, // 000E GETMBR R5 R5 K7
0x7C080600, // 000F CALL R2 3
0x90020602, // 0010 SETMBR R0 K3 R2
0x80040000, // 0011 RET 1 R0
})
)
);
/*******************************************************************/
/********************************************************************
** Solidified class: Matter_InvokeResponseMessage
********************************************************************/
@ -4321,12 +3743,11 @@ extern const bclass be_class_Matter_IM_Message_base;
be_local_class(Matter_InvokeResponseMessage,
2,
&be_class_Matter_IM_Message_base,
be_nested_map(4,
be_nested_map(3,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_weak(suppress_response, 3), be_const_var(0) },
{ be_const_key_weak(suppress_response, -1), be_const_var(0) },
{ be_const_key_weak(to_TLV, -1), be_const_closure(class_Matter_InvokeResponseMessage_to_TLV_closure) },
{ be_const_key_weak(invoke_responses, -1), be_const_var(1) },
{ be_const_key_weak(from_TLV, -1), be_const_closure(class_Matter_InvokeResponseMessage_from_TLV_closure) },
})),
be_str_weak(Matter_InvokeResponseMessage)
);

View File

@ -2428,7 +2428,7 @@ be_local_closure(class_Matter_Device_process_attribute_expansion, /* name */
extern const bclass be_class_Matter_Device;
be_local_closure(class_Matter_Device_stop_basic_commissioning, /* name */
be_nested_proto(
5, /* nstack */
6, /* nstack */
1, /* argc */
2, /* varg */
0, /* has upvals */
@ -2453,32 +2453,26 @@ be_local_closure(class_Matter_Device_stop_basic_commissioning, /* name */
}),
be_str_weak(stop_basic_commissioning),
&be_const_str_solidified,
( &(const binstruction[25]) { /* code */
0x8C040100, // 0000 GETMET R1 R0 K0
0x7C040200, // 0001 CALL R1 1
0x78060004, // 0002 JMPF R1 #0008
0xB8060200, // 0003 GETNGBL R1 K1
0x8C040302, // 0004 GETMET R1 R1 K2
0x580C0003, // 0005 LDCONST R3 K3
0x58100004, // 0006 LDCONST R4 K4
0x7C040600, // 0007 CALL R1 3
0x4C040000, // 0008 LDNIL R1
( &(const binstruction[19]) { /* code */
0x4C040000, // 0000 LDNIL R1
0x8C080100, // 0001 GETMET R2 R0 K0
0x7C080200, // 0002 CALL R2 1
0x780A0004, // 0003 JMPF R2 #0009
0xB80A0200, // 0004 GETNGBL R2 K1
0x8C080502, // 0005 GETMET R2 R2 K2
0x58100003, // 0006 LDCONST R4 K3
0x58140004, // 0007 LDCONST R5 K4
0x7C080600, // 0008 CALL R2 3
0x90020A01, // 0009 SETMBR R0 K5 R1
0x8C040106, // 000A GETMET R1 R0 K6
0x7C040200, // 000B CALL R1 1
0x4C040000, // 000C LDNIL R1
0x90020E01, // 000D SETMBR R0 K7 R1
0x4C040000, // 000E LDNIL R1
0x90021001, // 000F SETMBR R0 K8 R1
0x4C040000, // 0010 LDNIL R1
0x90021201, // 0011 SETMBR R0 K9 R1
0x4C040000, // 0012 LDNIL R1
0x90021401, // 0013 SETMBR R0 K10 R1
0x4C040000, // 0014 LDNIL R1
0x90021601, // 0015 SETMBR R0 K11 R1
0x4C040000, // 0016 LDNIL R1
0x90021801, // 0017 SETMBR R0 K12 R1
0x80000000, // 0018 RET 0
0x8C080106, // 000A GETMET R2 R0 K6
0x7C080200, // 000B CALL R2 1
0x90020E01, // 000C SETMBR R0 K7 R1
0x90021001, // 000D SETMBR R0 K8 R1
0x90021201, // 000E SETMBR R0 K9 R1
0x90021401, // 000F SETMBR R0 K10 R1
0x90021601, // 0010 SETMBR R0 K11 R1
0x90021801, // 0011 SETMBR R0 K12 R1
0x80000000, // 0012 RET 0
})
)
);