mirror of
https://github.com/arendst/Tasmota.git
synced 2025-07-23 10:46:31 +00:00
Matter add option to disable bridge mode (#18992)
This commit is contained in:
parent
504b51a9b4
commit
952811b4eb
@ -6,6 +6,7 @@ All notable changes to this project will be documented in this file.
|
|||||||
## [13.0.0.1]
|
## [13.0.0.1]
|
||||||
### Added
|
### Added
|
||||||
- Command ``Delay -1`` to wait until next second (#18984)
|
- Command ``Delay -1`` to wait until next second (#18984)
|
||||||
|
- Matter add option to disable bridge mode
|
||||||
|
|
||||||
### Breaking Changed
|
### Breaking Changed
|
||||||
- Berry `bool( [] )` and `bool( {} )` now evaluate as `false` (#18986)
|
- Berry `bool( [] )` and `bool( {} )` now evaluate as `false` (#18986)
|
||||||
|
@ -63,6 +63,7 @@ class Matter_Device
|
|||||||
var root_discriminator # as `int`
|
var root_discriminator # as `int`
|
||||||
var root_passcode # as `int`
|
var root_passcode # as `int`
|
||||||
var ipv4only # advertize only IPv4 addresses (no IPv6)
|
var ipv4only # advertize only IPv4 addresses (no IPv6)
|
||||||
|
var disable_bridge_mode # default is bridge mode, this flag disables this mode for some non-compliant controllers
|
||||||
var next_ep # next endpoint to be allocated for bridge, start at 1
|
var next_ep # next endpoint to be allocated for bridge, start at 1
|
||||||
# context for PBKDF
|
# context for PBKDF
|
||||||
var root_iterations # PBKDF number of iterations
|
var root_iterations # PBKDF number of iterations
|
||||||
@ -92,6 +93,7 @@ class Matter_Device
|
|||||||
self.next_ep = 1 # start at endpoint 1 for dynamically allocated endpoints
|
self.next_ep = 1 # start at endpoint 1 for dynamically allocated endpoints
|
||||||
self.root_salt = crypto.random(16)
|
self.root_salt = crypto.random(16)
|
||||||
self.ipv4only = false
|
self.ipv4only = false
|
||||||
|
self.disable_bridge_mode = false
|
||||||
self.load_param()
|
self.load_param()
|
||||||
|
|
||||||
self.sessions = matter.Session_Store(self)
|
self.sessions = matter.Session_Store(self)
|
||||||
@ -628,7 +630,7 @@ class Matter_Device
|
|||||||
import json
|
import json
|
||||||
self.update_remotes_info() # update self.plugins_config_remotes
|
self.update_remotes_info() # update self.plugins_config_remotes
|
||||||
|
|
||||||
var j = format('{"distinguish":%i,"passcode":%i,"ipv4only":%s,"nextep":%i', self.root_discriminator, self.root_passcode, self.ipv4only ? 'true':'false', self.next_ep)
|
var j = format('{"distinguish":%i,"passcode":%i,"ipv4only":%s,"disable_bridge_mode":%s,"nextep":%i', self.root_discriminator, self.root_passcode, self.ipv4only ? 'true':'false', self.disable_bridge_mode ? 'true':'false', self.next_ep)
|
||||||
if self.plugins_persist
|
if self.plugins_persist
|
||||||
j += ',"config":'
|
j += ',"config":'
|
||||||
j += json.dump(self.plugins_config)
|
j += json.dump(self.plugins_config)
|
||||||
@ -693,6 +695,7 @@ class Matter_Device
|
|||||||
self.root_discriminator = j.find("distinguish", self.root_discriminator)
|
self.root_discriminator = j.find("distinguish", self.root_discriminator)
|
||||||
self.root_passcode = j.find("passcode", self.root_passcode)
|
self.root_passcode = j.find("passcode", self.root_passcode)
|
||||||
self.ipv4only = bool(j.find("ipv4only", false))
|
self.ipv4only = bool(j.find("ipv4only", false))
|
||||||
|
self.disable_bridge_mode = bool(j.find("disable_bridge_mode", false))
|
||||||
self.next_ep = j.find("nextep", self.next_ep)
|
self.next_ep = j.find("nextep", self.next_ep)
|
||||||
self.plugins_config = j.find("config")
|
self.plugins_config = j.find("config")
|
||||||
if self.plugins_config != nil
|
if self.plugins_config != nil
|
||||||
|
@ -104,7 +104,7 @@ class Matter_Plugin_Device : Matter_Plugin
|
|||||||
d1.add_TLV(1, TLV.U2, types[dt]) # Revision
|
d1.add_TLV(1, TLV.U2, types[dt]) # Revision
|
||||||
end
|
end
|
||||||
# if fabric is not Alexa
|
# if fabric is not Alexa
|
||||||
if self.NON_BRIDGE_VENDOR.find(session.get_admin_vendor()) == nil
|
if (self.NON_BRIDGE_VENDOR.find(session.get_admin_vendor()) == nil) && (!self.device.disable_bridge_mode)
|
||||||
var d1 = dtl.add_struct()
|
var d1 = dtl.add_struct()
|
||||||
d1.add_TLV(0, TLV.U2, 0x0013) # DeviceType
|
d1.add_TLV(0, TLV.U2, 0x0013) # DeviceType
|
||||||
d1.add_TLV(1, TLV.U2, 1) # Revision
|
d1.add_TLV(1, TLV.U2, 1) # Revision
|
||||||
|
@ -197,6 +197,8 @@ class Matter_UI
|
|||||||
webserver.content_send(f"<input type='number' min='0' max='4095' name='discriminator' value='{self.device.root_discriminator:i}'>")
|
webserver.content_send(f"<input type='number' min='0' max='4095' name='discriminator' value='{self.device.root_discriminator:i}'>")
|
||||||
var ipv4only_checked = self.device.ipv4only ? " checked" : ""
|
var ipv4only_checked = self.device.ipv4only ? " checked" : ""
|
||||||
webserver.content_send(f"<p><input type='checkbox' name='ipv4'{ipv4only_checked}>IPv4 only</p>")
|
webserver.content_send(f"<p><input type='checkbox' name='ipv4'{ipv4only_checked}>IPv4 only</p>")
|
||||||
|
var disable_bridge_mode_checked = self.device.disable_bridge_mode ? " checked" : ""
|
||||||
|
webserver.content_send(f"<p><input type='checkbox' name='nobridge'{disable_bridge_mode_checked}>Disable bridge mode (not recommended)</p>")
|
||||||
webserver.content_send("<p></p><button name='passcode' class='button bgrn'>Change</button></form></p>"
|
webserver.content_send("<p></p><button name='passcode' class='button bgrn'>Change</button></form></p>"
|
||||||
"<p></p></fieldset><p></p>")
|
"<p></p></fieldset><p></p>")
|
||||||
|
|
||||||
@ -755,6 +757,7 @@ class Matter_UI
|
|||||||
self.device.root_discriminator = int(webserver.arg("discriminator"))
|
self.device.root_discriminator = int(webserver.arg("discriminator"))
|
||||||
end
|
end
|
||||||
self.device.ipv4only = webserver.arg("ipv4") == 'on'
|
self.device.ipv4only = webserver.arg("ipv4") == 'on'
|
||||||
|
self.device.disable_bridge_mode = webserver.arg("nobridge") == 'on'
|
||||||
self.device.save_param()
|
self.device.save_param()
|
||||||
|
|
||||||
#- and force restart -#
|
#- and force restart -#
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -210,7 +210,7 @@ be_local_closure(Matter_Plugin_Device_read_attribute, /* name */
|
|||||||
0, /* has sup protos */
|
0, /* has sup protos */
|
||||||
NULL, /* no sub protos */
|
NULL, /* no sub protos */
|
||||||
1, /* has constants */
|
1, /* has constants */
|
||||||
( &(const bvalue[35]) { /* constants */
|
( &(const bvalue[37]) { /* constants */
|
||||||
/* K0 */ be_nested_str_weak(matter),
|
/* K0 */ be_nested_str_weak(matter),
|
||||||
/* K1 */ be_nested_str_weak(TLV),
|
/* K1 */ be_nested_str_weak(TLV),
|
||||||
/* K2 */ be_nested_str_weak(cluster),
|
/* K2 */ be_nested_str_weak(cluster),
|
||||||
@ -231,25 +231,27 @@ be_local_closure(Matter_Plugin_Device_read_attribute, /* name */
|
|||||||
/* K17 */ be_nested_str_weak(NON_BRIDGE_VENDOR),
|
/* K17 */ be_nested_str_weak(NON_BRIDGE_VENDOR),
|
||||||
/* K18 */ be_nested_str_weak(find),
|
/* K18 */ be_nested_str_weak(find),
|
||||||
/* K19 */ be_nested_str_weak(get_admin_vendor),
|
/* K19 */ be_nested_str_weak(get_admin_vendor),
|
||||||
/* K20 */ be_nested_str_weak(read_attribute),
|
/* K20 */ be_nested_str_weak(device),
|
||||||
/* K21 */ be_nested_str_weak(string),
|
/* K21 */ be_nested_str_weak(disable_bridge_mode),
|
||||||
/* K22 */ be_nested_str_weak(UTF1),
|
/* K22 */ be_nested_str_weak(read_attribute),
|
||||||
/* K23 */ be_nested_str_weak(tasmota),
|
/* K23 */ be_nested_str_weak(string),
|
||||||
/* K24 */ be_nested_str_weak(cmd),
|
/* K24 */ be_nested_str_weak(UTF1),
|
||||||
/* K25 */ be_nested_str_weak(DeviceName),
|
/* K25 */ be_nested_str_weak(tasmota),
|
||||||
/* K26 */ be_nested_str_weak(get_name),
|
/* K26 */ be_nested_str_weak(cmd),
|
||||||
/* K27 */ be_nested_str_weak(Status_X202),
|
/* K27 */ be_nested_str_weak(DeviceName),
|
||||||
/* K28 */ be_nested_str_weak(StatusFWR),
|
/* K28 */ be_nested_str_weak(get_name),
|
||||||
/* K29 */ be_nested_str_weak(Version),
|
/* K29 */ be_nested_str_weak(Status_X202),
|
||||||
/* K30 */ be_nested_str_weak(_X28),
|
/* K30 */ be_nested_str_weak(StatusFWR),
|
||||||
/* K31 */ be_nested_str_weak(wifi),
|
/* K31 */ be_nested_str_weak(Version),
|
||||||
/* K32 */ be_nested_str_weak(mac),
|
/* K32 */ be_nested_str_weak(_X28),
|
||||||
/* K33 */ be_nested_str_weak(),
|
/* K33 */ be_nested_str_weak(wifi),
|
||||||
/* K34 */ be_nested_str_weak(BOOL),
|
/* K34 */ be_nested_str_weak(mac),
|
||||||
|
/* K35 */ be_nested_str_weak(),
|
||||||
|
/* K36 */ be_nested_str_weak(BOOL),
|
||||||
}),
|
}),
|
||||||
be_str_weak(read_attribute),
|
be_str_weak(read_attribute),
|
||||||
&be_const_str_solidified,
|
&be_const_str_solidified,
|
||||||
( &(const binstruction[258]) { /* code */
|
( &(const binstruction[261]) { /* code */
|
||||||
0xB80E0000, // 0000 GETNGBL R3 K0
|
0xB80E0000, // 0000 GETNGBL R3 K0
|
||||||
0x880C0701, // 0001 GETMBR R3 R3 K1
|
0x880C0701, // 0001 GETMBR R3 R3 K1
|
||||||
0x88100502, // 0002 GETMBR R4 R2 K2
|
0x88100502, // 0002 GETMBR R4 R2 K2
|
||||||
@ -289,7 +291,7 @@ be_local_closure(Matter_Plugin_Device_read_attribute, /* name */
|
|||||||
0x54260003, // 0024 LDINT R9 4
|
0x54260003, // 0024 LDINT R9 4
|
||||||
0x7C180600, // 0025 CALL R6 3
|
0x7C180600, // 0025 CALL R6 3
|
||||||
0x80040C00, // 0026 RET 1 R6
|
0x80040C00, // 0026 RET 1 R6
|
||||||
0x700200D8, // 0027 JMP #0101
|
0x700200DB, // 0027 JMP #0104
|
||||||
0x541A0003, // 0028 LDINT R6 4
|
0x541A0003, // 0028 LDINT R6 4
|
||||||
0x1C180806, // 0029 EQ R6 R4 R6
|
0x1C180806, // 0029 EQ R6 R4 R6
|
||||||
0x781A0016, // 002A JMPF R6 #0042
|
0x781A0016, // 002A JMPF R6 #0042
|
||||||
@ -315,7 +317,7 @@ be_local_closure(Matter_Plugin_Device_read_attribute, /* name */
|
|||||||
0x54260003, // 003E LDINT R9 4
|
0x54260003, // 003E LDINT R9 4
|
||||||
0x7C180600, // 003F CALL R6 3
|
0x7C180600, // 003F CALL R6 3
|
||||||
0x80040C00, // 0040 RET 1 R6
|
0x80040C00, // 0040 RET 1 R6
|
||||||
0x700200BE, // 0041 JMP #0101
|
0x700200C1, // 0041 JMP #0104
|
||||||
0x541A0004, // 0042 LDINT R6 5
|
0x541A0004, // 0042 LDINT R6 5
|
||||||
0x1C180806, // 0043 EQ R6 R4 R6
|
0x1C180806, // 0043 EQ R6 R4 R6
|
||||||
0x781A0011, // 0044 JMPF R6 #0057
|
0x781A0011, // 0044 JMPF R6 #0057
|
||||||
@ -336,12 +338,12 @@ be_local_closure(Matter_Plugin_Device_read_attribute, /* name */
|
|||||||
0x54260003, // 0053 LDINT R9 4
|
0x54260003, // 0053 LDINT R9 4
|
||||||
0x7C180600, // 0054 CALL R6 3
|
0x7C180600, // 0054 CALL R6 3
|
||||||
0x80040C00, // 0055 RET 1 R6
|
0x80040C00, // 0055 RET 1 R6
|
||||||
0x700200A9, // 0056 JMP #0101
|
0x700200AC, // 0056 JMP #0104
|
||||||
0x541A001C, // 0057 LDINT R6 29
|
0x541A001C, // 0057 LDINT R6 29
|
||||||
0x1C180806, // 0058 EQ R6 R4 R6
|
0x1C180806, // 0058 EQ R6 R4 R6
|
||||||
0x781A003A, // 0059 JMPF R6 #0095
|
0x781A003D, // 0059 JMPF R6 #0098
|
||||||
0x1C180B05, // 005A EQ R6 R5 K5
|
0x1C180B05, // 005A EQ R6 R5 K5
|
||||||
0x781A002F, // 005B JMPF R6 #008C
|
0x781A0032, // 005B JMPF R6 #008F
|
||||||
0x8C18070B, // 005C GETMET R6 R3 K11
|
0x8C18070B, // 005C GETMET R6 R3 K11
|
||||||
0x7C180200, // 005D CALL R6 1
|
0x7C180200, // 005D CALL R6 1
|
||||||
0x881C010C, // 005E GETMBR R7 R0 K12
|
0x881C010C, // 005E GETMBR R7 R0 K12
|
||||||
@ -375,139 +377,142 @@ be_local_closure(Matter_Plugin_Device_read_attribute, /* name */
|
|||||||
0x7C200400, // 007A CALL R8 2
|
0x7C200400, // 007A CALL R8 2
|
||||||
0x4C240000, // 007B LDNIL R9
|
0x4C240000, // 007B LDNIL R9
|
||||||
0x1C201009, // 007C EQ R8 R8 R9
|
0x1C201009, // 007C EQ R8 R8 R9
|
||||||
0x7822000B, // 007D JMPF R8 #008A
|
0x7822000E, // 007D JMPF R8 #008D
|
||||||
0x8C200D0E, // 007E GETMET R8 R6 K14
|
0x88200114, // 007E GETMBR R8 R0 K20
|
||||||
0x7C200200, // 007F CALL R8 1
|
0x88201115, // 007F GETMBR R8 R8 K21
|
||||||
0x8C24110F, // 0080 GETMET R9 R8 K15
|
0x7422000B, // 0080 JMPT R8 #008D
|
||||||
0x582C0005, // 0081 LDCONST R11 K5
|
0x8C200D0E, // 0081 GETMET R8 R6 K14
|
||||||
0x88300707, // 0082 GETMBR R12 R3 K7
|
0x7C200200, // 0082 CALL R8 1
|
||||||
0x54360012, // 0083 LDINT R13 19
|
0x8C24110F, // 0083 GETMET R9 R8 K15
|
||||||
0x7C240800, // 0084 CALL R9 4
|
0x582C0005, // 0084 LDCONST R11 K5
|
||||||
0x8C24110F, // 0085 GETMET R9 R8 K15
|
0x88300707, // 0085 GETMBR R12 R3 K7
|
||||||
0x582C0008, // 0086 LDCONST R11 K8
|
0x54360012, // 0086 LDINT R13 19
|
||||||
0x88300707, // 0087 GETMBR R12 R3 K7
|
0x7C240800, // 0087 CALL R9 4
|
||||||
0x58340008, // 0088 LDCONST R13 K8
|
0x8C24110F, // 0088 GETMET R9 R8 K15
|
||||||
0x7C240800, // 0089 CALL R9 4
|
0x582C0008, // 0089 LDCONST R11 K8
|
||||||
0x80040C00, // 008A RET 1 R6
|
0x88300707, // 008A GETMBR R12 R3 K7
|
||||||
0x70020007, // 008B JMP #0094
|
0x58340008, // 008B LDCONST R13 K8
|
||||||
0x60180003, // 008C GETGBL R6 G3
|
0x7C240800, // 008C CALL R9 4
|
||||||
0x5C1C0000, // 008D MOVE R7 R0
|
0x80040C00, // 008D RET 1 R6
|
||||||
0x7C180200, // 008E CALL R6 1
|
0x70020007, // 008E JMP #0097
|
||||||
0x8C180D14, // 008F GETMET R6 R6 K20
|
0x60180003, // 008F GETGBL R6 G3
|
||||||
0x5C200200, // 0090 MOVE R8 R1
|
0x5C1C0000, // 0090 MOVE R7 R0
|
||||||
0x5C240400, // 0091 MOVE R9 R2
|
0x7C180200, // 0091 CALL R6 1
|
||||||
0x7C180600, // 0092 CALL R6 3
|
0x8C180D16, // 0092 GETMET R6 R6 K22
|
||||||
0x80040C00, // 0093 RET 1 R6
|
0x5C200200, // 0093 MOVE R8 R1
|
||||||
0x7002006B, // 0094 JMP #0101
|
0x5C240400, // 0094 MOVE R9 R2
|
||||||
0x541A0038, // 0095 LDINT R6 57
|
0x7C180600, // 0095 CALL R6 3
|
||||||
0x1C180806, // 0096 EQ R6 R4 R6
|
0x80040C00, // 0096 RET 1 R6
|
||||||
0x781A0060, // 0097 JMPF R6 #00F9
|
0x7002006B, // 0097 JMP #0104
|
||||||
0xA41A2A00, // 0098 IMPORT R6 K21
|
0x541A0038, // 0098 LDINT R6 57
|
||||||
0x1C1C0B04, // 0099 EQ R7 R5 K4
|
0x1C180806, // 0099 EQ R6 R4 R6
|
||||||
0x781E000A, // 009A JMPF R7 #00A6
|
0x781A0060, // 009A JMPF R6 #00FC
|
||||||
0x8C1C0706, // 009B GETMET R7 R3 K6
|
0xA41A2E00, // 009B IMPORT R6 K23
|
||||||
0x88240716, // 009C GETMBR R9 R3 K22
|
0x1C1C0B04, // 009C EQ R7 R5 K4
|
||||||
0xB82A2E00, // 009D GETNGBL R10 K23
|
0x781E000A, // 009D JMPF R7 #00A9
|
||||||
0x8C281518, // 009E GETMET R10 R10 K24
|
0x8C1C0706, // 009E GETMET R7 R3 K6
|
||||||
0x58300019, // 009F LDCONST R12 K25
|
0x88240718, // 009F GETMBR R9 R3 K24
|
||||||
0x50340200, // 00A0 LDBOOL R13 1 0
|
0xB82A3200, // 00A0 GETNGBL R10 K25
|
||||||
0x7C280600, // 00A1 CALL R10 3
|
0x8C28151A, // 00A1 GETMET R10 R10 K26
|
||||||
0x94281519, // 00A2 GETIDX R10 R10 K25
|
0x5830001B, // 00A2 LDCONST R12 K27
|
||||||
0x7C1C0600, // 00A3 CALL R7 3
|
0x50340200, // 00A3 LDBOOL R13 1 0
|
||||||
0x80040E00, // 00A4 RET 1 R7
|
0x7C280600, // 00A4 CALL R10 3
|
||||||
0x70020051, // 00A5 JMP #00F8
|
0x9428151B, // 00A5 GETIDX R10 R10 K27
|
||||||
0x541E0004, // 00A6 LDINT R7 5
|
0x7C1C0600, // 00A6 CALL R7 3
|
||||||
0x1C1C0A07, // 00A7 EQ R7 R5 R7
|
0x80040E00, // 00A7 RET 1 R7
|
||||||
0x781E0006, // 00A8 JMPF R7 #00B0
|
0x70020051, // 00A8 JMP #00FB
|
||||||
0x8C1C0706, // 00A9 GETMET R7 R3 K6
|
0x541E0004, // 00A9 LDINT R7 5
|
||||||
0x88240716, // 00AA GETMBR R9 R3 K22
|
0x1C1C0A07, // 00AA EQ R7 R5 R7
|
||||||
0x8C28011A, // 00AB GETMET R10 R0 K26
|
0x781E0006, // 00AB JMPF R7 #00B3
|
||||||
0x7C280200, // 00AC CALL R10 1
|
0x8C1C0706, // 00AC GETMET R7 R3 K6
|
||||||
0x7C1C0600, // 00AD CALL R7 3
|
0x88240718, // 00AD GETMBR R9 R3 K24
|
||||||
0x80040E00, // 00AE RET 1 R7
|
0x8C28011C, // 00AE GETMET R10 R0 K28
|
||||||
0x70020047, // 00AF JMP #00F8
|
0x7C280200, // 00AF CALL R10 1
|
||||||
0x541E0009, // 00B0 LDINT R7 10
|
0x7C1C0600, // 00B0 CALL R7 3
|
||||||
0x1C1C0A07, // 00B1 EQ R7 R5 R7
|
0x80040E00, // 00B1 RET 1 R7
|
||||||
0x781E0015, // 00B2 JMPF R7 #00C9
|
0x70020047, // 00B2 JMP #00FB
|
||||||
0xB81E2E00, // 00B3 GETNGBL R7 K23
|
0x541E0009, // 00B3 LDINT R7 10
|
||||||
0x8C1C0F18, // 00B4 GETMET R7 R7 K24
|
0x1C1C0A07, // 00B4 EQ R7 R5 R7
|
||||||
0x5824001B, // 00B5 LDCONST R9 K27
|
0x781E0015, // 00B5 JMPF R7 #00CC
|
||||||
0x50280200, // 00B6 LDBOOL R10 1 0
|
0xB81E3200, // 00B6 GETNGBL R7 K25
|
||||||
0x7C1C0600, // 00B7 CALL R7 3
|
0x8C1C0F1A, // 00B7 GETMET R7 R7 K26
|
||||||
0x941C0F1C, // 00B8 GETIDX R7 R7 K28
|
0x5824001D, // 00B8 LDCONST R9 K29
|
||||||
0x941C0F1D, // 00B9 GETIDX R7 R7 K29
|
0x50280200, // 00B9 LDBOOL R10 1 0
|
||||||
0x8C200D12, // 00BA GETMET R8 R6 K18
|
0x7C1C0600, // 00BA CALL R7 3
|
||||||
0x5C280E00, // 00BB MOVE R10 R7
|
0x941C0F1E, // 00BB GETIDX R7 R7 K30
|
||||||
0x582C001E, // 00BC LDCONST R11 K30
|
0x941C0F1F, // 00BC GETIDX R7 R7 K31
|
||||||
0x7C200600, // 00BD CALL R8 3
|
0x8C200D12, // 00BD GETMET R8 R6 K18
|
||||||
0x24241105, // 00BE GT R9 R8 K5
|
0x5C280E00, // 00BE MOVE R10 R7
|
||||||
0x78260002, // 00BF JMPF R9 #00C3
|
0x582C0020, // 00BF LDCONST R11 K32
|
||||||
0x04241108, // 00C0 SUB R9 R8 K8
|
0x7C200600, // 00C0 CALL R8 3
|
||||||
0x40260A09, // 00C1 CONNECT R9 K5 R9
|
0x24241105, // 00C1 GT R9 R8 K5
|
||||||
0x941C0E09, // 00C2 GETIDX R7 R7 R9
|
0x78260002, // 00C2 JMPF R9 #00C6
|
||||||
0x8C240706, // 00C3 GETMET R9 R3 K6
|
0x04241108, // 00C3 SUB R9 R8 K8
|
||||||
0x882C0716, // 00C4 GETMBR R11 R3 K22
|
0x40260A09, // 00C4 CONNECT R9 K5 R9
|
||||||
0x5C300E00, // 00C5 MOVE R12 R7
|
0x941C0E09, // 00C5 GETIDX R7 R7 R9
|
||||||
0x7C240600, // 00C6 CALL R9 3
|
0x8C240706, // 00C6 GETMET R9 R3 K6
|
||||||
0x80041200, // 00C7 RET 1 R9
|
0x882C0718, // 00C7 GETMBR R11 R3 K24
|
||||||
0x7002002E, // 00C8 JMP #00F8
|
0x5C300E00, // 00C8 MOVE R12 R7
|
||||||
0x541E000E, // 00C9 LDINT R7 15
|
0x7C240600, // 00C9 CALL R9 3
|
||||||
0x1C1C0A07, // 00CA EQ R7 R5 R7
|
0x80041200, // 00CA RET 1 R9
|
||||||
0x781E000B, // 00CB JMPF R7 #00D8
|
0x7002002E, // 00CB JMP #00FB
|
||||||
0x8C1C0706, // 00CC GETMET R7 R3 K6
|
0x541E000E, // 00CC LDINT R7 15
|
||||||
0x88240716, // 00CD GETMBR R9 R3 K22
|
0x1C1C0A07, // 00CD EQ R7 R5 R7
|
||||||
0xB82A2E00, // 00CE GETNGBL R10 K23
|
0x781E000B, // 00CE JMPF R7 #00DB
|
||||||
0x8C28151F, // 00CF GETMET R10 R10 K31
|
0x8C1C0706, // 00CF GETMET R7 R3 K6
|
||||||
0x7C280200, // 00D0 CALL R10 1
|
0x88240718, // 00D0 GETMBR R9 R3 K24
|
||||||
0x8C281512, // 00D1 GETMET R10 R10 K18
|
0xB82A3200, // 00D1 GETNGBL R10 K25
|
||||||
0x58300020, // 00D2 LDCONST R12 K32
|
0x8C281521, // 00D2 GETMET R10 R10 K33
|
||||||
0x58340021, // 00D3 LDCONST R13 K33
|
0x7C280200, // 00D3 CALL R10 1
|
||||||
0x7C280600, // 00D4 CALL R10 3
|
0x8C281512, // 00D4 GETMET R10 R10 K18
|
||||||
0x7C1C0600, // 00D5 CALL R7 3
|
0x58300022, // 00D5 LDCONST R12 K34
|
||||||
0x80040E00, // 00D6 RET 1 R7
|
0x58340023, // 00D6 LDCONST R13 K35
|
||||||
0x7002001F, // 00D7 JMP #00F8
|
0x7C280600, // 00D7 CALL R10 3
|
||||||
0x541E0010, // 00D8 LDINT R7 17
|
0x7C1C0600, // 00D8 CALL R7 3
|
||||||
0x1C1C0A07, // 00D9 EQ R7 R5 R7
|
0x80040E00, // 00D9 RET 1 R7
|
||||||
0x781E0005, // 00DA JMPF R7 #00E1
|
0x7002001F, // 00DA JMP #00FB
|
||||||
0x8C1C0706, // 00DB GETMET R7 R3 K6
|
0x541E0010, // 00DB LDINT R7 17
|
||||||
0x88240722, // 00DC GETMBR R9 R3 K34
|
0x1C1C0A07, // 00DC EQ R7 R5 R7
|
||||||
0x58280008, // 00DD LDCONST R10 K8
|
0x781E0005, // 00DD JMPF R7 #00E4
|
||||||
0x7C1C0600, // 00DE CALL R7 3
|
0x8C1C0706, // 00DE GETMET R7 R3 K6
|
||||||
0x80040E00, // 00DF RET 1 R7
|
0x88240724, // 00DF GETMBR R9 R3 K36
|
||||||
0x70020016, // 00E0 JMP #00F8
|
0x58280008, // 00E0 LDCONST R10 K8
|
||||||
0x541E0011, // 00E1 LDINT R7 18
|
0x7C1C0600, // 00E1 CALL R7 3
|
||||||
0x1C1C0A07, // 00E2 EQ R7 R5 R7
|
0x80040E00, // 00E2 RET 1 R7
|
||||||
0x781E000B, // 00E3 JMPF R7 #00F0
|
0x70020016, // 00E3 JMP #00FB
|
||||||
0x8C1C0706, // 00E4 GETMET R7 R3 K6
|
0x541E0011, // 00E4 LDINT R7 18
|
||||||
0x88240716, // 00E5 GETMBR R9 R3 K22
|
0x1C1C0A07, // 00E5 EQ R7 R5 R7
|
||||||
0xB82A2E00, // 00E6 GETNGBL R10 K23
|
0x781E000B, // 00E6 JMPF R7 #00F3
|
||||||
0x8C28151F, // 00E7 GETMET R10 R10 K31
|
0x8C1C0706, // 00E7 GETMET R7 R3 K6
|
||||||
0x7C280200, // 00E8 CALL R10 1
|
0x88240718, // 00E8 GETMBR R9 R3 K24
|
||||||
0x8C281512, // 00E9 GETMET R10 R10 K18
|
0xB82A3200, // 00E9 GETNGBL R10 K25
|
||||||
0x58300020, // 00EA LDCONST R12 K32
|
0x8C281521, // 00EA GETMET R10 R10 K33
|
||||||
0x58340021, // 00EB LDCONST R13 K33
|
0x7C280200, // 00EB CALL R10 1
|
||||||
0x7C280600, // 00EC CALL R10 3
|
0x8C281512, // 00EC GETMET R10 R10 K18
|
||||||
0x7C1C0600, // 00ED CALL R7 3
|
0x58300022, // 00ED LDCONST R12 K34
|
||||||
0x80040E00, // 00EE RET 1 R7
|
0x58340023, // 00EE LDCONST R13 K35
|
||||||
0x70020007, // 00EF JMP #00F8
|
0x7C280600, // 00EF CALL R10 3
|
||||||
0x601C0003, // 00F0 GETGBL R7 G3
|
0x7C1C0600, // 00F0 CALL R7 3
|
||||||
0x5C200000, // 00F1 MOVE R8 R0
|
0x80040E00, // 00F1 RET 1 R7
|
||||||
0x7C1C0200, // 00F2 CALL R7 1
|
0x70020007, // 00F2 JMP #00FB
|
||||||
0x8C1C0F14, // 00F3 GETMET R7 R7 K20
|
0x601C0003, // 00F3 GETGBL R7 G3
|
||||||
0x5C240200, // 00F4 MOVE R9 R1
|
0x5C200000, // 00F4 MOVE R8 R0
|
||||||
0x5C280400, // 00F5 MOVE R10 R2
|
0x7C1C0200, // 00F5 CALL R7 1
|
||||||
0x7C1C0600, // 00F6 CALL R7 3
|
0x8C1C0F16, // 00F6 GETMET R7 R7 K22
|
||||||
0x80040E00, // 00F7 RET 1 R7
|
0x5C240200, // 00F7 MOVE R9 R1
|
||||||
0x70020007, // 00F8 JMP #0101
|
0x5C280400, // 00F8 MOVE R10 R2
|
||||||
0x60180003, // 00F9 GETGBL R6 G3
|
0x7C1C0600, // 00F9 CALL R7 3
|
||||||
0x5C1C0000, // 00FA MOVE R7 R0
|
0x80040E00, // 00FA RET 1 R7
|
||||||
0x7C180200, // 00FB CALL R6 1
|
0x70020007, // 00FB JMP #0104
|
||||||
0x8C180D14, // 00FC GETMET R6 R6 K20
|
0x60180003, // 00FC GETGBL R6 G3
|
||||||
0x5C200200, // 00FD MOVE R8 R1
|
0x5C1C0000, // 00FD MOVE R7 R0
|
||||||
0x5C240400, // 00FE MOVE R9 R2
|
0x7C180200, // 00FE CALL R6 1
|
||||||
0x7C180600, // 00FF CALL R6 3
|
0x8C180D16, // 00FF GETMET R6 R6 K22
|
||||||
0x80040C00, // 0100 RET 1 R6
|
0x5C200200, // 0100 MOVE R8 R1
|
||||||
0x80000000, // 0101 RET 0
|
0x5C240400, // 0101 MOVE R9 R2
|
||||||
|
0x7C180600, // 0102 CALL R6 3
|
||||||
|
0x80040C00, // 0103 RET 1 R6
|
||||||
|
0x80000000, // 0104 RET 0
|
||||||
})
|
})
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user